我两年的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开发规范 一.头 ...
随机推荐
- Echarts数据可视化地理坐标系geo,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- phpstudy升级mysql数据库
因为MySQL支持全文索引的只有5.6以上,而我下的phpstudy只有5.5的版本,在导入数据库的时候因为该数据库的表内有使用全文索引,因此必须升级phpstudy的mysql版本,这里就把自己当升 ...
- Windows 10 16251 添加的 api
本文主要讲微软最新的sdk添加的功能,暂时还不能下载,到 7月29 ,现在可以下载是 16232 ,支持Neon效果 实际上设置软件最低版本为 16232 就自动支持 Neon 效果. 主要添加了 A ...
- win10 UWP 全屏
win10 可以全屏软件或窗口,窗口有一般.最小化.最大化.我们有新的API设置我们软件是全屏,是窗口.我们可以使用ApplicationView让我们软件全屏,取消. 下面是一个简单的例子,判断我们 ...
- OpenWRT(RT5350) 路由客户模式(Routed Client) ,设置防火墙开放UDP指定端口
/* *功 能: 本文主要功能是设置OpenWRT(RT5350) 系统实现路由客户模式,无线连接上级路由, * 无线释放AP客户端,实现伪装的中继(子网段与上级路由网段不同),同时更改防火墙 ...
- multiprocessing模块
multiprocessing模块 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程. multiproce ...
- ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)
本文章将会继承上一篇文章,主要讲通过工具来进行日志的收集与发送,<ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd> Nxlog是一个日志收集工具, ...
- 深入理解Java虚拟机--中
深入理解Java虚拟机--中 第6章 类文件结构 6.2 无关性的基石 无关性的基石:有许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode),从而 ...
- LeetCode 495. Teemo Attacking (提莫攻击)
In LOL world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned ...
- C# Request.InputStream 读取输入流为空的原因处理
今天在手机App测试接口的时候发现一个通过POST方式的接口 获取body中的参数一直为空,但是在数据量小的时候却可以获取到数据,开始怀疑是不是POST的长度有限制,然后在web.config中修改了 ...