w3ctech

unbug:我的前端工程师之路

编者按:最近我在筹备一个关于前端工程师之路的话题,主要是想请行业内比较有经验的朋友来讲述一下自己的前端工程师的经历,同时谈谈在这个过程中的成长之道。今天我们就一起来看看unbug的前端工程师之路。同时也欢迎其他朋友联系我。

unbug介绍:前网易前端工程师、知名移动前端调试工具MIHTool的作者

06年刚上大一那会一直逛各种技术论坛,当时JAVA很热逐开始自学J2EE,学校并没有系统的课程,我就开始各种迅雷+电驴+CSDN的下载资料自学,那时国内前后端还没细分,J2EE要学的东西很多,我自己就订制了个“求学之路”的自学计划,大学就按它自学的,一直保留至今,如图:

“求学之路”的自学计划

这里也给想自学的同学一点建议:

  1. 独立订制计划,你需要花大量的时间去阅读和整理才可能独立订制出符合自己的,确实可行的学习计划。千万不要贸然用别人的计划或者让别人给你订制计划。独立订制的计划容易坚持,容易有产出,更健壮也不容易被外界影响。
  2. 计划要从基础出发,越细越好,尽量给自己一个胸有成竹的暗示,否则你可能看不到进度而前进缓慢
  3. 计划就是为学以致用服务,与实践要紧密结合,否则一直没有产出,你很难验证自己的编程技能
  4. 学习的过程要是进阶进行,也要点到即止,先让知识全面对系统化和术业有专攻有很大的帮助

之后的三年大学时间我几乎全部呆在校研发中心带团队做外包项目,这些项目从设计到编码全一手包办的,所以很大程度上锻炼了我独立编程的能力,自己不仅写了大量学习笔记, 还封装些有用的工具分享到网上。

10年离开大学后随便进了学校旁的一家小公司。当时智能手机开始流行,我们公司也想赶这个浪潮。当时国内移动前端开发还处于萌芽期,各大门户的手机版要么没适配要么都是WAP,国内专业的移动前端知识很少,都得到国外啃,为今后移动前端开发打下了基础。

由于当时国内移动前端人才稀少,加上我一直在 blog 上发笔记,有幸被网易招安到北京。开始接触到专业的产品研发流程,首先是不用自己写后端也不用到处抄人家UI,还有专人帮测试,自己全部时间都专注移动前端开发和打磨产品UI及性能上了。北京有各种技术讲座,周末没事就蹭蹭,更重要的是网易的技术氛围大大刺激了我对前沿技术的嗅觉和积极创作及独立思考的潜力。加上前端这几年迅猛发展,我也走上了这条前端开发的不归路。

以下是我这几年前端开发的一点总结:

  1. 不用第三方 UI 库。由于公司业务变化节奏快,早前使用第三方 UI 库受到到诸多限制,我开始发力自己写前端布局,每个项目的 CSS 都是从头到脚自己写,能用上前沿的 CSS3 特性就渐进增强,之后越写效率就越高,应用好 SMACSS+BEM 能在今后的项目里很好的得到复用。

  2. 为每个项目订制专属的 MVC。前端每年 MV* 框架层出不穷,但其实用 MVC 思想写一个框架毫不费劲,观察者+渲染引擎就能满足大部分 MVC 的核心需求,模块化+预编译就能很好的组织项目的结构。MVC 思想本身很灵活,不同的项目有不同的业务,遵循 SOLID 设计原则并灵活的运用 MVC 能在产品迭代过程中不至于捉襟见肘,另外锻炼自己写架构的技能对新人的培养和技术沉淀帮助极大。

  3. 做好自动化。开发流程的几个基本步骤(不同团队顺序有所不同):新建项目-开发及调试-打包-[可能有代码检查]-[可能有自动化测试]-静态资源压缩及优化-发布。除了开发及调试其它步骤均可以自动化,我个人从自动化中最大的受益点就是节省时间。写自动化脚本是一劳永逸的,我先后用过的工具有ANT(JAVA),NPM,Grunt,Gulp,Webpack,现在团队里是Yeoman+Glup+Webpack。

  4. 西学东渐。我平时对前端前沿技术保持敏感,学习流行框架的原理及先进的设计思想,每年的 Google IO, Apple WWDC, Microsoft Build, Facebook F8, JSConf/CSSConf 等是我获取原汁原味的前端知识的最佳途径。关注前端大师的 Twitter, blog 更新等也是日常。

  5. 坚持创作坚持分享。我在团队内部经常总结分享,在外面也做过不少分享,还先后创作了 MIHTool, Codelf, DOMSnap, webappstarter, ddms, logproxy, gitlab-pages-webhook 等,几乎都是来源于工作,平时习惯了总结能沉淀出不少工具,这些工具分享出来主要为了进一步总结和互相学习,另外开源到 GitHub 能增强自己的开源技巧,为随时参与开源项目为社区做点贡献也不错。

  6. 对参与的东西保持热情。我无论是公司的项目,还是自己折腾的东西我都对它们满怀热情,自己多用,也让别人用用,发掘产生的数据会让开发过程变得有趣

  7. 优化再优化。工作中有很多重复的业务,难免影响自己的提高,但我平时很注意优化和重构,把妥协的代码优化,用先进的设计替换糟糕的设计其实很有挑战性,收获也很大,加上坚持创作让自己不轻易迷茫。

  8. 为自己创造舞台。我对业界发展趋势也保持敏感和激情,正是早期鼓动老板做移动应用才打开了我移动前端开发的舞台。平时会为团队打造些服务或解决方案开拓自己的职责,有些会直接服务于公司的开发业务。当下是 AR/VR/MR 潮流前夕,自己也想尝试这方面的开发。

我每年都看很多书和资料,个人关于看书学习的总结:

  1. 多多益善。不同的书出发点不同,特别是书里的实例通常因为业务场景不同而不同,知识面越广解决问题的方法就越多。

  2. 速战速决。看书不要拖,看不明白的地方先过,把该看的看完多半就豁然开朗了。不要屯书,手头的书太多了就按当前急需的知识点,挑两三本出来,不用每本书都从头到脚看完,把重点章节规划一下,各取所需就好。

  3. 温故知新。每个阶段所需的知识点不同,看同本书自然收获不同,经典的书像犀牛书,没事可以找个章节看看,第一次看很费时间,但可能半个小时就能温习完一章,而收获更多。
  4. 术业有专攻。同一阶段,有目的性的多看同个方面的书,理解会深刻些,容易帮助大脑建立起专业的思维。

我换工作多数是熟人推荐,总的来说没什么坎坷,但我负责面试过很多人,以下是我个人给想换工作的同学的一点建议:

  1. 磨刀不误砍柴功。如果清楚的意识到需要提高自己才能找到心仪的工作,我建议离职花几个月专心学习,巩固基础,提高知识储备量,让自己有质的提高,薪资往往翻倍。
  2. 把握时机。很多人都年后跳槽,意味着秋季后机会很多,除此外,如果了解到某心仪的公司正急招,往往机会很大。
  3. 实战演习。当明确心仪的公司后,不要急着就去投,一旦失败至少一年内都很难有戏了,先投几家自己有把握的公司,先去面试,提高自己面试的综合技巧,总结后带着自信再投自己心仪的公司,往往比较顺利。

得益于前端的迅猛发展,前端工程师是很容易转全栈,发展前景还是很好的,欢迎大家关注我的 GitHub @unbug, 我最近做了一系列《React Native 开发培训教程》大家也可以看看。

w3ctech微信

扫码关注w3ctech微信公众号

共收到3条回复

  • 这个真心厉害了!这张图就很屌了!这是我们搭建的网站,希望能一起交流。 http://www.dreawer.com

    回复此楼
  • 好的文章需要让更多人看到,我要发咯~

    回复此楼
  • @灵感_idea 你到是发呀!

    回复此楼