我两年的web开发生涯
我两年的web开发生涯
与以前的文章分享给大家自己的知识和观点不同,这篇文章更多的是写给自己的总结。
现在是 2017年10月18.
从 2015年9月 开始接触前端开发,至今两年零一个月。
从 2016年3月 入职中油瑞飞从事相关工作,至今一年零七个月。
目前我即将离职,并于下个月加入一点资讯。
本文只涉及到技术话题,更像是流水账一样记录我两年以来的成长。
下水
当时离毕业还有半年,编程语言玩的溜的只有 Matlab,但这货毕竟主要用于科学计算,称霸于校园和各大实验室。我还是打算深入一门商业性强的语言,好吧就是好找工作的语言,因为我即将毕业而且需要一份工作。就此踏上前端开发的征途。当时考虑了几个方向,比如说后台开发(PHP等),移动端(swift等),数据挖掘(python等)。结合兴趣,前景等因素,最后定在了web前端这块。当时买了个 Udemy 的课程,老师送了2年的虚拟空间,我自己租了个域名,一路学下来自己的个人站点也上线了。从html,css模仿别人的站点开始,到js加上各路动画特效,当时做了个人站点更多的意义是展示自己学会了什么。那个站点包括 AJAX 在内的全部 js 的内容都使用的原生 js。留言板用的 PHP 把内容写在 JSON 文件里。现在看来当初的开发方式就是刀耕火种,但谁都的经历过新人阶段不是么。
入坑
接下来就是毕业了,补一补基础概念,加上实际操练也不少,第一份工作找的还是比较顺利。当时面了也没几家公司,中油瑞飞结束三轮面试后马上就向我伸出了橄榄枝,晚上部门经理请我喝咖啡跟我聊了一个多小时,初入社会小屌丝哪受得了这,当即签了卖身契。不过当时理由也是比较充分的,首先作为应届生,待遇方面还是可以接受的,其次都说国企好,想体验一下大国企的工作氛围,还有重要的一点,工作压力小,我会有很多时间学习感兴趣的内容,探索自己的发展方向,况且还能比较顺利的解决户口。后来事实证明,我上面的几点考虑是非常成熟的。就这样我进入了人生的第一份工作。
过河
入职以后还是体会到了轻松的工作氛围和无尽的人文关怀的,朝九晚五从不加班,甚至上班时候还有一些时间做自己的事。我当然不能闲着,得好好利用这些时间。当时部门里的前端工作,大部分就是往移动端里插几个 H5 页面,或者做个门户的登陆页下载页之类的,基本就是我之前的刀耕火种加了点 JQuery 。不能这么搞啊,得上点高端大气上档次的货啊,当时最流行的前端框架 React,Angular 当时 Vue 也小有名气了,而且据说会更火,但总感觉前两个更成熟可靠,Angular2 当时呼之欲出但是还没出,所以非常尴尬,我就抄起 React 开始学习,练习,了解周边工具。没多久来活儿了,我和一个PHP小哥负责一个会议管理系统,最初的方案是基于 yii2 框架,我配合做页面就行,我当即提出异议,提出前台用 React 做单页应用,后台只写接口。领导表示你们俩商量好了就行,后台小哥表示OK,不过他当然OK了,只写接口工作量少多了有木有,而且捅出篓子不能按期完工啥的都是我的锅有木有。此项目前段部分使用 gulp 构建 browserify 打包,使用 React React-Router 和一些工具库,中间加入过 Redux 后来需求改版后复杂度降低取消了 Redux,两个人,历时6个月有余,第一版正式上线。中间遇到了许多困难克服了许多困难。接下来,我参照了很多大神的项目,自己总结了很多周边工具,写了个 react-starter 是使用 webpack 构建和打包的,因为他实在是太火了我没法假装看不见么,css 方案采用的是 CSS Modules 配合 CSS变量(自定义属性) 完全可以取代 sass less 之类的预编译器,而且个人感觉比 css in js 舒服那么一些,immutable lodash 什么的也都是比较流行的东西了,配合 React 全家桶,是一个中型项目非常好的开端(当然是自己的评价)。我不但安利了同事们 React 还安利了他们我的 React-starter 于是几个月前启动的瑞信综合管理平台重构项目中,我们四个前端分成两组分别负责门户和统计的前端部分,都是以我的 React-starter 作为起点,安利成功。可以说我一手把他们带到了 React 这个坑里,现在我即将离职,项目进展顺利,估计离上线也不会太远。而且你也看得出来,我膨胀了。
捞鱼
前面都是工作中的内容,讲讲工作外的。工作之外我一直也没忘记我的全栈梦想,好吧其实只是觉得比较酷而已。最开始觉得 python 酷,官网看看语法,抄起 Django 就开始整,玩了一段时间算是勉强能用了,又觉得 php 用的人多,用 PHP 的公司也多,用途应该更广,跟着我搭档的项目熟悉了一遍 yii2 ,最后真正沉下心来学习的还是 node。首先这年头会不 node 根本不好意思说自己是前端工程师,其次 node 写接口的爽快的感觉也吸引了我。从这儿作为起点,我开始了解更多的后台内容,之前只是大概熟悉 mysql 现在又开始搞 mongodb,之前用过现成的空间,现在直接登陆 Linux 服务器,什么日志啊 Nginx 服务啊之类的也是在这个过程中接触的。当时觉得部署个 node 到生产服务器应该很麻烦吧,后来发现其实也就那么几步。在这个过程中,我的个人站点第二版 www.dabao.love 也面世了。前台就是工作中那一套不用多说,后台用 nodejs 写的接口,配合之前学的一堆知识,终于给弄上线了。这个站点的最终目的当然了和上一个一样,只是实践一下刚学到东西,并没有什么卵用。等我下次上线站点的时候一定搞一个有卵用的出来。
还在游
写到上一句的时候我以为已经发出去了,忙活入职,熟悉业务,做新人串讲,突然发现还没结尾呢。好吧,那就写到这,今天是11.18,我得接着游了。
我两年的web开发生涯的更多相关文章
- Web 开发和数据科学家仍是 Python 开发的两大主力
由于 Python 2 即将退役,使用 Python 3 的开发者大约为 90%,Python 2 的使用量正在迅速减少.而去年仍有 1/4 的人使用 Python 2. Web 开发和数据科学家仍是 ...
- (译)Web是如何工作的:给Web开发新手的初级读物
原文地址:https://medium.freecodecamp.org/how-the-web-works-a-primer-for-newcomers-to-web-development-or- ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- Go web开发初探
2017年的第一篇博客,也是第一次写博客,写的不好,请各位见谅. 本人之前一直学习java.java web,最近开始学习Go语言,所以也想了解一下Go语言中web的开发方式以及运行机制. 在< ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- 移动端web开发的一些知识点
整理一下自己平时移动端web开发中遇到的问题,也参考一下前辈的一些总结 1.最常见的要数1像素边框了 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在dpr=2的retina屏下会显示成 ...
- Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...
- 转载:移动web开发规范
本文来源:http://blog.csdn.net/joueu/article/details/44329825 以下是规范建议,均是日常在开发当中的的一些经验,仅供参考. 移动web开发规范 一.头 ...
随机推荐
- C#仪器数据文件解析-XPS文件
XPS为微软推出的类似于Adobe PDF的一种文件格式,个人认为XPS很好,但毕竟PDF已经被大家所熟知,因此XPS的使用很少,也少有仪器数据输出为该格式. XPS百度百科:https://baik ...
- WPF控件 在XP下获得焦点有虚线框
所有 Button.ListBox等控件获得焦点时有虚线框.如图:选中523这个按钮就出线虚框. 我在App.xaml中添加适应所有按钮的样式,无效 <Style TargetType=&qu ...
- 从实践的角度理解cookie的几个属性
cookie的处理流程大致分为以下几步: 1.浏览器初次请求服务器. 2.服务器认为有必要设置cookie,通过响应报文首部:Set-Cookie告知浏览器,cookie的内容. 3.浏览器本地保存( ...
- Pyhton编程(二)之变量、用户输入及条件语句
一:变量 变量定义的规则 1)只能由数字.字母.下划线组成(不能以数字开头) 2)不能使用关键字作为变量名 ['and', 'as', 'assert', 'break', 'class', 'con ...
- ABAP 选择屏幕创建标签页
*&---------------------------------------------------------------------* *& Report ZTEST_TAB ...
- java内部类demo
内部类主要有三种:静态内部类,实例内部类,局部变量内部类 1.静态内部类,该类被static修饰,并且是成员变量,它只能访问外部类被static修饰的方法以及字段(这种说法只局限于不再内部类中创建外部 ...
- win10应用 UWP 使用MD5算法
windows有自带的算法来计算MD5 原本在WPF是 private string get_MD5(string str) { System.Security.Cryptography.MD5Cry ...
- Bootstrap 引用的标准模板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- [转载]Vector用法(C++ Primer中文版)
转自:http://blog.sciencenet.cn/blog-261330-551086.html vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和 string 对 ...
- zookeeper 笔记-ACL
zookeeper中,znode的ACL是没有继承关系的,是独立控制的,zookeeper的acl可以从3个维度理解,一是scheme,二是user,三是permission,通常表示为scheme: ...