一个萌妹子的《全栈工程师养成日记》

 

想成为全栈工程师,需要的到底是什么?...

作为苦逼的数学专业学生,上学时最怕被问就是:你毕业后找哪方面的工作啊?本科毕业没找到工作的我执迷不悟,研究生又毅然选择了挚爱的数学。当我准备把青春贡献给伟大的数学事业时,突然发现:自己真的没钱付房租了...
打听了一圈儿,都说软件工程师好找工作,于是跟着大家投简历刷题一头雾水地找到了第一份工作 - Full Stack Developer。第一天上班,拿到Offer时的兴奋劲儿就烟消云散了:啥都不懂!全栈工程师是什么?front-end我猜应该是画画html?back-end应该就是某种我不理解的神秘力量了吧?但server又是什么?据说server要一天24小时跑着,难道不累么?
我迷茫的眼神没法打动任何人,作为一个内心强大的人,我决不能就此放弃。为了有朝一日证明自己的能力,我说干就干,
开启了
【全栈工程师】
的养成之路。
一转眼,两年的时间已经过去。回头看看:整个学习过程如同山路十八弯,走了太多的弯路。两点之间直线最短,
如果你也想成为全栈工程师,但不想用两年时间画圈圈,让我偷偷告诉你一些
小窍门
吧,一般人我不告诉他!




Step1
从哪儿开始学习?


【如何成为一个全栈工程师?】
这个问题在知乎和Quora上都有一堆人回答,大部分答案都会列一个清单:先学HTML/JS/CSS,然后bootstrap,然后选一个JavaScript framework,再然后(以下省略五万字...)
我当年也按照这个顺序,只是看完HTML和CSS的视频教程,就没有然后了...后来我明白:单纯看别人总结的视频就跟看电影一样,很多时候就看个热闹。就算看多少次,自己不动手也根本学不会。
所以,我特别推荐的学习方式,就是从头到尾去写一个真实项目。手敲代码,一步步从前台写到后台,用最流行的
MEAN Stack
(MongoDB, Express, Angular, Node.js),哪怕一个 TODO List 这种小项目,加上 Authentication,数据存 MongoDB,再deploy到server上。整个过程下来,你基本就对未来的工作流程就掌握七八分了。
如果有机会,参加一些code camp,或是在github上参与一些开源的项目。反正不用和人见面,写错了写瞎了都没啥事儿。不犯错误怎么学习,不摔倒学不会走路。
Step2
面试:算法之外还要准备什么?
即使是软件专业的科班出身,找工作时往往也是心虚的。在面试的时候发觉自己能力不够强?对,你其实不是一个人。
我个人非常推崇"
理解式学习
"。想象一下:当你被一个问题卡住后的第一反应是什么?去stackoverflow上面copy+paste,然后能跑就不管了?这样是学不到真东西的,唯一提高的只有搜索能力而已。
打个比方,所有人都在说 Node.js 简单好用,火爆异常,反正会用就好找工作。可你有没有想过,为什么 Node.js 如此火爆呢?有没有认真理解一下 Node.js 的 single threaded non-blocking I/O model 是如何工作呢?
全栈工程师不只是会写前端和后端代码,更重要的是对整个项目的
【大局观】
写前台时要考虑与后台高效沟通,
设计后端时又要考虑方便前端调用。只有具备足够的项目经验,才能在面试的短时间内做出一个漂亮的系统设计。而你对scalability和data handling的前瞻性也都会成为面试的亮点。
Step3
 选什么语言?什么Framework?
全栈工程师接触的语言和Framework多如牛毛,更新换代极快。因此,我推荐大家一种方式去筛选:
流行趋
拿现在最火的JavaScript和“世界上最好的语言”php打个比方吧。如果我们去Google trends上查一下就会发现:虽然搜索量差不多,但是php在走下坡路,JavaScript则缓慢上升。而且科技领先的国家:北美、中国都是JavaScript为主流,而php的贡献大多来自南美、东欧等IT相对落后的区域。这说明什么?JavaScript明显更与时俱进。
至于Framework,前端的framework淘汰实在太快了,两年就是一个大坎儿。很多曾经流行的framework都已经退出历史舞台了。即使是大红大紫的Angular 2能活多久?我估计也不会超越3年。所以不用拘泥于某一个Framework,你今天学的东西可能明年就没用了,就是这么残酷。
Step4
选择什么样的公司
进入IT行业前,我常常听到有人把FLAG当做神一般的存在,这辈子的使命就是进入这种公司。其实,每家公司都有自己的特点,就像每一个人都有不同的性格。
我认为公司怎么样并不是最关键的,最关键的还是组里的环境和氛围。什么样的领导,什么样的团队,什么样的项目才是你需要考虑的。大公司更是如此,因为大公司失败的产品比小公司多得多,即使在失败的项目里面,作为全栈工程师也可以学到很多。只要你的团队积极向上、互相帮助、斗志昂扬,那你作为一名软件工程师就成功了。
不用把任何公司当做神话,
重要的不是你在哪儿,而是你是谁
。不停学习,保持好奇心,下一个神话就是你。


【最后】
自学是一条需要有毅力但非常艰辛的道路
因为每个人都有惰性
我非常推荐 BitTiger 推出一站式课程——【全栈软件工程师直通车】。作为来自硅谷的终身学习平台,BitTiger的大牛老师三个月带你成为全栈软件工程师。
了解课程详情(或者点击左下角
阅读原文
):https://www.bittiger.io/livecourses/eqmcu7koE3NxajSQx
欢迎感兴趣的同学联系课程经理:
adadazz


每天加点料

这应该是Windows最没用的功能...

投稿,转载,商业合作,请联系E-mail:
SeattleITquan@gmail.com


    关注 西雅图IT圈


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册