|||
第1个问题:为什么社会需要全栈工程师?
先说结论:我认为,中国发展到2016年,时代有几个鲜明的变化,一个是大量的创业企业,需要以最低的人力成本快速推出第一代产品(注意这个产品不是DEMO,要远超DEMO的工作量),如果一个全栈工程师搞定的话,企业是不大愿意或者没有能力拿出3倍甚至更多的资金来去做的,当然不是说一个全栈工程师是全能的,可能还需要外包UI之类的,但是总体上使用全栈工程师将大大降低人力成本。另外一个变化是在中大型企业里,积累了多年经验的你,甚至刚参加工作的你,有一个创新的想法(好比在银行工作的你,以前数据处理是在EXCEL里,现在你想开发个web网站,自动汇总展示报表),你总想去实现它,完成之后给大家一个惊喜,获得职业上的提升的机会,也是实现自己的价值,之前是苦于一个人无法胜任,现在全栈工程师的概念来了,原来你发现自己是可以搞定主体工作的。另外一个变化是学习成本并不高,好比前端APP开发,掌握了基本的布局,完全自己做个APP H5页面,网上也有大量的模板,在此基础上改也不难,再比如中间层,不用任何Struts框架仅仅用Servlet写个Restful API轻轻松松,没有复杂的令人生畏的学习内容,再比如数据库,现在数据库里直接支持了JSON类型,增删改查都极其简单,完全在几天之内掌握基本的SQL,再比如UE设计,通过Axure等类似工具,完全自己做出想要的UE图,再比如营销,现在微信朋友动不动就上百上千,找你的100个种子用户并不难,而且建微信服务号也是初中生就能干的事,所有的这些大大降低了你作为全栈工程师的门槛,发现以前一个人做不出来的产品,现在主要靠自己,竟然也能在短期内做出来了,而且做出来的也还像模像样。
当全栈工程师的目的不是让你什么都会,而是让你具备想实现的想法的能力,即给你自由,让你创造。
学习的内容的广泛和学的精深并不冲突,因为二者目的不同,学的精深是因为你需要把事情做的完美,是你的兴趣所在,或者是你的职责所在,学的广是为了独立完成一个自己的想法,尤其是在资金、人手、甚至保密的限制条件下去做。
第2个问题:全栈工程师需要掌握哪些技能和思维?
我认为全栈工程师具备几个方面的技能和思维,一是产品设计方面的,这包括价值思维,即产品的最明显的价值是什么;竞争者分析,即同类或者相关的产品做的如何了?他们是如何做的?产品的目标用户是谁?产品如何做营销?买广告位去哪里买?都是多少钱?如何设计UE图,如何砍掉看似必要实际多余的功能?如何申请商标?如何起个好名字?是做平台还是做内容,还是相互促进?一是开发方面的,包括H5前端/PC端/微信服务号开发,JAVA/PHP/Node.js中间层写Restful API,还有数据库的基础知识,云平台/域名/微信服务号的申请,如何用敏捷开发的工具?如何用git/svn?等等。另外一个是和项目管理方面的,毕竟做一个产品不是一个人完全搞定的,你可能需要外包美工,你可能还有个技术伙伴一起做,如何量化大家的工作?如何做工作进度的监控?如何建立奖惩机制?如何止损?如何选择外包人员,如何识人用人?都是要掌握的。
第3个问题:什么时候刻意开始训练提高自己的全栈工程师素养?
我认为越早越好,越早学越能知道自己的价值所在,越能清醒自己的擅长的不擅长的,越能知道自己能赚多少钱,未来的工作不是老板给自己安排工作,而是自己给自己发工资,自己做出有价值的内容,自己就是公司的合伙人。现在高校推行的创业,我就觉得是一个契机,不是说你不学习光去创业了,而是说通过周末或者有空的时候做一个对社会有价值的产品,进而全面锻炼自己全栈工程师的能力,一定是大有收获的。
参考:
What is a Full Stack developer? http://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/
怎样成为全栈工程师(Full Stack Developer)? https://www.zhihu.com/question/22420900
https://www.quora.com/What-should-a-fullstack-developer-know-in-2016-1
加我私人微信,交流技术。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 04:21
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社