为什么会有这篇文章?
- 需求来源于我自己,我很想看看,大家都是怎么一步步走过来的,有时候对你帮助最大的不是一个10年老鸟,而是领先你一点点的学长
- 前端的分岔路越来越多,好迷茫,将心比心,于是有了这篇文章,也许多年后,我会嘲笑现在的自己,那又怎么样?此刻我只想将我自己刻盘
承上启下
long long ago...写了这篇 转行辛酸史的开篇,自己回看了一下,感觉写的还行哈哈,即使有些不成熟,我也不会去改,因为那就是那一刻真实的我(除非明显的误导性错误)
这是我转行的第二年,也是第二篇,本文没有吸引人的标题,只是默默地延续我的成长之路,由于前端越来越庞大,我也时常会迷茫,我是谁?我在干嘛?我想要什么?
谨以此文记录成长,总结完善知识体系,查漏补缺,能帮到一些人就更好啦(记得点赞哈哈)
一贯的流水账
本文还是以软文的形式,让你们轻松愉快的感受一下某只程序猿的一年
- 主线任务——公司为主,工作第一
- 支线任务——找准基点,自我拓展
- 日常任务——走马观花,每日三省吾身
- 历练任务——沧海一粟,持续学习
1.主线任务
- 游戏也好,工作也好,主线任务必须做,不做就升不了级(吃不起饭)啦;
- 由于各种原因吧,应该可以从我的第一篇文章中找到蛛丝马迹,我希望我的前三年是不一样的三年,所以第二份工作涉及的技术栈是之前完全没有经验的,包括现在的第三份工作;
- 为了延续性,前情摘要:第一年我们正式转行前端,主要使用jq、bs等传统框架类库做着mvc模式的项目,还涉及了mui混开app,H5自适应布局,自学了vue等
主线任务没有偏离我的期望值,那时候小程序,vue相继大火,这是我必须掌握的技术栈,能在主线中进阶是多么棒的一件事,不过机会是留给有准备的人的,刚开始我也是疯狂补相关知识,不能因为小程序简单就自以为是,做好本职工作是基本素养,由于我家离公司较远,基本地铁坐到头的样子,刚开始就在地铁上看各种小程序视频,主要看看开发流程,发布流程,调试技巧,坑点等等,有些东西不是你学不会,而是你不知道,对待未知的事物,往往是恐惧多一点,我喜欢掌控的感觉
第一个任务
来到新公司,第一个任务就是做一个小程序+app的项目,用原生微信小程序和vue做,这2个都没有经验哈哈,这酸爽~
- vue上文提到过,自学过一段时间,使用cdn引入的方式做过东西,工程化也尝试过,就是对webpack的各类配置不甚其烦,那时候好像才2.x,转眼3,4都出来了
- 实践出真知,一边看文档一遍搞起,基础配置模版都配好了,就是依葫芦画瓢,艰难的就是动不动就编译报错,语法错误?路径问题?看到如此复杂的工程目录也很慌,其实熟了也就那样了
- 微信小程序算是最简单的技术栈了吧?总结一句就是有啥用啥,虽然坑多,但是多看看文档你就知道你能做什么,不能做什么;不像web海洋那样广阔,往往不是不能做,而是你不会或不知道,真是糟糕!
2,3,4,5......
后面茫茫多的主线任务,就不罗列了,意义不大,反正就是以微信小程序为主,vue为辅;
学到了什么?
刚开始来公司,是做定制项目,让现在的我来说,可以说没学到什么!什么是定制项目?就是一个人搞一个项目,客户给出要求,自己随意发挥,不管用什么手段快速完成就行,由于这种心态/时间/氛围,长期来看对编程是没有任何好处的,在当时的好处就是熟悉了技术栈
转折点——转做产品项目
由于公司产品开始赚钱了,鼓励大家转向产品开发,接下来差不多8个月时间,主要是搞小程序产品
- 心态转变:从客户要求什么,就改什么,转变为我做什么,客户就用什么;爽不爽?
- 自我完善:不再像定制一样,基于一个模板,做一个扔一个,下一个又重头再来,我就是那个做模板的;终于有时间对一类问题深入研究,比较实现方案,思考改进空间,测试性能
- 团队协作:使用svn协作开发,之前虽然研究过很多前端开发规范,css模块化,vue指南,小程序风格等等,似乎没用上,只有多人协作才能深刻的意识到规范的重要性,存在即合理!
主线任务奖励:业务逻辑代码能力(产品定位所致,后面展开细说)
2.支线任务
做一个有心的人,支线任务不像主线一样,会被要求去做,支线任务就是爱做不做,作为主线的补充,肯定是有大大的好处,甚至彩蛋!
什么时候做支线?
玩过游戏的人都知道,每个等级段总有一段时间主线做完了,只能死肝的;此时不做,更待何时!一波需求结束,改bug期间~
怎么接支线任务?
围绕主线,横向拓展,纵向发掘,不要觉得无聊就跑去玩别的游戏哈~
举个栗子:公司正在如火如荼的推进微信小程序产品,某一天,A同事不是很忙,打开react官网,愉快的敲起了示例代码,被主管看到了,喷他不务正业(对此我觉得还是需要尊重领导和公司的价值观)
so~我们的支线任务应该是打开小程序文档/指南/开发者社区,逛一逛,看一看,分享一下我的支线任务吧:(本来打算写很多的,比如自定义组件,custom头部和底部导航等等,写文章确实费劲,哎,懈怠了)
支线任务奖励:深入理解MVVM模式原理(还是那句话基础很重要,要透过现象看本质,你小程序做透彻了,vue对你来说就是份规范文档,反之累死累活被框架牵着走)
3.日常任务
万事开头难,要有始有终,坚持是最难的,综上所述没有简单的,干就完事了!
你是不是以为日常任务,应该是每天看一篇文章,或是写几行代码啥的?
emmm,我的日常就是吹逼而已,毕竟教学相长,会的就告诉人家,不会赶紧小笔记,吹出去的逼想着补起来,仅此而已;回归正题,确实这一年没怎么看书,有点遗憾,只有地铁上零零碎碎、走马观花看了很多公众号文章,不知道有多少长进,大概回忆一下,列一下吧:
- 木易杨的面试进阶题壹题
- winter的《重学前端》
- 还有茫茫多的走马观花就不列举了,接触的东西越多越迷茫,建议大家按照下图(不算打广告吧?)去梳理一下自己的知识体系,我一直强调基础和看书,真心觉得看枯燥的书才能沉淀出自己的东西,别人的心得只能算是一番交流,一种鼓励,一个方向
居安思危
日常吹逼的时候要自信,我天下无敌,吹完逼之后要认真审视自己,有大佬建议每年出去面试3次以上,让市场检验你的价值,我觉得是可行的,就是我懒而已,还有就是小地方就这么几家公司,怪不好意思的
日常任务奖励:让自己保持激情,每天进步一点点
4.历练任务
首尾呼应,开头说了,我希望我的三年是不一样的三年,所以做好本职工作并深入之后,就该进军下一站了吧。这一次我把目标定为了nodeJs/react,而我现在也如愿进入了这样的公司,1年后又是一篇好文哈哈哈
国际惯例:感谢看我废话的童鞋,分享一下我的静态博客文档,觉得有用的给这篇文章点个赞哈,如上图,不断完善中,已加入日常任务中( github的 star 就算了,话说现在github一颗星都没有,努力方向又有了。。。)
个人网站:一直想做一个的(做什么是个大难题),服务器和域名买了1年了,一直闲置,心疼ing,于是先用vuepress搭了一个静态文档,先放在github上,伴我成长,目前实现了axios跨域请求,服务器也配了https,使用nodejs提供接口,使用puppeteer爬取数据,使用七牛云做图片存储等等,敬请期待。。。
历练任务奖励:作品就是最好的简历(在此之前,我还学了php,yii,mysql等试图打开后端的大门,最终考量还是走上nodejs这条不归路哈哈,毕竟都是js,typescript补全静态代码分析)
总结过去
总的来说,我感觉第二年的成长没有第一年那么多,实际应该不是这么回事,第一年学东西很费劲,学完很有成就感,而且做的东西繁杂,有了天下无敌的错觉;而第二年算了入门了吧,看到新东西不慌了,接受的也相对较快,能够举一反三,却被前端庞大的生态一次次按在地上摩擦,一个知识点背后有无数个支撑,就像node_modules的依赖一样,需要一层层剥开,因此感觉自己啥都没学会,淹没在了知识的海洋~此时就自己骗自己好啦:相信付出总有回报!
第一年vs第二年
- 第一年主要是单打独斗,无中生有,对于个人综合能力提升帮助比较大,没有退路,想用新技术必须自己顶风冒雨去踩坑,墨守成规就自己恶心自己,全凭自己选择,需要对接销售/客户/客服等等,虽然工资很低,从头干到尾,切片-前端布局-后端数据-后台资料-服务部署-测试发布,还是感恩这个机会,感恩努力的自己~
- 第二年似乎改变了很多,客服的事情,如账号平台申请,资料录入完全没有我的事情,也不让技术参与,前后端完全分离,只管做好前端的事就好!
- 得益于前后端分离,大部分业务逻辑都交给前端来做了,因此这一年最大的成长就是写业务逻辑代码,同时提高了js能力
- 补全简历上vue和小程序技术栈,还做过基于vue和echarts的2D大数据分析平台,所以canvas及3D渲染这块版图也要找时间补上
- 没有比较就没有伤害,相比第一年,我感觉css能力落下了很多,上文提到的产品定位是以功能为主,实现基础模板,再加上小程序的包体积限制,直接不允许写特效和第三方插件;前端没有了酷炫,跟咸鱼有什么分别?
总结:基础才是最重要的,技术栈只是表现形式,明确自己想要什么,得到了什么,失去了什么
展望未来
接下来,自然又是新一轮的打怪升级,贴一张根据主线任务暂定的规划吧,可以看到这份脑图还是以巩固基础为主要目的,这一年要补上去年没看的书,尽可能多的阅读优秀源码,站在巨人的肩膀上举一反三!同时希望以扎实的基础为基石,多思考多创新,产出更多作品,最近也倒腾了好久git高级操作,争取参与到优秀的开源项目中去...
结尾
前端就是两座金字塔
人才分布是正三角,知识面是倒三角,完全符合大自然良性发展规律,大家努力攀登吧,前端路上You are not alone!
也以此文勉励自己,总结过去,走向未来!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。