`
modabobo
  • 浏览: 535490 次
文章分类
社区版块
存档分类
最新评论

全栈工程师的悲与欢

 
阅读更多

从小米辞职出来创业的两个多月里,通过猎头或自己投简历,先后面试了知乎,今日头条,豌豆荚,美团,百度,App Annie,去哪儿,滴滴打车等技术团队,一二面(技术面)几乎都轻松的过了,三面却没有毕业那会的干脆。

回想两年前刚毕业那会,去百度,创新工场,搜狗面试,一二三面全都一次通过,在面试完回家的路上就接到电话拿到了offer,去年加入小米亦是如此。

工作两年后,随着项目经验的积累,技术能力的沉淀,团队管理的成长,似乎反而更难拿到offer,有些迷惑,有些思考。


经过思考也深刻分析了原因,优点是知识面广,架构设计视野开阔,缺点是精专不足,基础知识不够非常扎实,跟自己的工作阅历有关,原因终在自己。

先介绍一个名词“全栈工程师”,这个词在国外(QuoraStackOverflow)和国内(知乎CSDN)知名论坛的讨论是比较火的,结论也是毁誉参半,详见我的个人博客:全栈工程师的毁与誉


全栈工程师(Full Stack Developer),又名全端工程师,指掌握多种技能,并能利用多种技能独立完成产品的人。简言之,他一个人可以做一个系统。

当年研究生毕业时,放弃了百度,搜狗的高薪offer,选择回到创新工场(注:研一暑假在百度实习半年,后来研二暑假去了创新工场实习,更多经历见CSDN专访),加入创业的潮流中,在一个初创的技术团队;去年又加入小米电视团队,也是一个初创技术团队。

初创的技术团队,优势是它有一个足够大的舞台,能够让你尽情施展自己的才能,发挥自己的技术,拓展事物视野;缺点是业务刚起步,你必须扛住压力,快速学习各种技术,迅速搭建业务原型并上线,核心是解决问题

在创业公司里,各种快速迭代的业务需求,强力驱使你必须快速的融入团队与技术,从Android应用,到Android游戏,到网页爬虫,到游戏后台,到AWS服务器,到后台接口API封装与优化,用到的技术也是从前端到App,从后台到测试自动化,用到的语言和工具有Java,Python,HTML/CSS/JS,JSP,HighChart,Shell,AWK,MySQL, Memcache, Redis, DynamoDB, MongoDB,Tomcat,Resin,Apache,Nginx,Tornado,又拍云,阿里云,AWS云服务等,犹如一个知识网络栈,一个人全搞定!

广而不精,往往会被认为功底不深厚(实事也可能是),比较难进TABLE(Tencent, Alibaba, Baidu, Xiaomi, 360)等大公司的核心技术部门。

由此,全栈工程师的地位就很尴尬,说得不好听一点,全栈工程师就是什么都会,什么都不会

他们的技术专长是能够根据不同业务特点和项目周期,合理权衡并选择相应的实现架构和工具,因为他们有着全局性的思维视野和业务经验;

但他们的弱点也很明显,例如在应聘面试的时候,就会很吃亏,在某一专业领域,他可能只会用来解决问题,但研究的不够深入,在遇到深入某一专业面试的时候可能会被提前直接淘汰。

全栈工程师,犹如一匹赤兔马,埋没于千军万马里,遇到赏识自己的伯乐,它将会成为一匹脱缰的战马,驰骋沙场,纵横千里,荡平水,帮助主人成就一番丰功伟业。

面试,在基本技术能力和责任态度都靠谱的前提下,更多的是和面试官的一种缘份

鉴于此,在简历的项目经验和技术专长里,会特意去掉了一些自己熟悉并能用之解决问题的技术,项目经验也只写一两个具有代表性的作品,目的只有一个:尽力避免给面试官以为自己什么都会,什么都不会的印象。因为大公司的很多面试官,在潜意识里就只招技术专业精专的人才,哪怕在实际项目中用不着那么高深的专业能力,哪怕实际项目需要的是技术面广,更肯学习,更能解决问题的人。

全栈工程师与专家工程师,犹如一个是特战队员手里的瑞士军刀,一个是削铁如泥的干将莫邪

瑞士军刀负责单兵独入一个人清除掉项目前期的各种技术障碍,快速实现产品原型,验证产品的可行性;

干将莫邪就像项目底层技术的中流砥柱,稳健有力支撑强大的业务技术难点,但需要多柄干将莫邪剑融合才能显示出它的强大威力。

这两个技术方向都没有对与错,发展到一定程度都会相互溶合,就好比中国佛家禅修的南顿北渐,其实到了最后,渐悟与顿悟是一样的,顿由渐中来。

全栈工程师不是全为了工作本身,而是为了方便实现自己的梦想。

工作对于他们来说不是负担,而是一种乐趣;工作已融入了他们的生活,犹如空气和水。

全栈工程师,是一群渴望上进、积极主动、务实肯干、想闯出一番天地的程序员

他们内心深处不安于已掌握的技术和安稳的工作,他们非常乐意并且会主动去学习一些新技术,新框架,业余时间还会自己动手实践一些小创意,寓学于乐。

工作,学习,技术,小创意,已经成为了他生活的一部分,不断主动的去学习,自然而然的就学会了多门技术,精通多种语言。

技术学无止境,广而不精,这个问题自己也很早就认识到了,也想了很多办法来弥补,例如花大量时间和精力写技术博客,记录自己学习到的点点滴滴,并把知识和技术转化成自己理解的语言;遇到解决不了的问题,会很自然的主动去官方下载源码下来学习;业余时间自己也动手实践,做一些小创意(建立博客音乐盒理财)或写一段工具源码托管在Github上(priorityqueue),来加深自己对技术理解。

在工作之余的周末假日,会宅在家里研究一些自己感兴趣的技术或产品,例如自学Clojure,Go,PHP语言;搭建WordPress博客Discuz论坛;创建微信公众帐号(ithomer),支付宝捐助;捣鼓GAE,AWS,BAE,SAE,Aliyun等各种云服务(对比);安装配置Tomcat,Resin,Apache,Lighttpd,Nginx,Tengine服务器;学习Hadoop,Storm,Lucene,SolrClould,ElasticSearch,Sphinx等工具;跨平台Thrift,Protobuf接口….(不会又是精而不专的“罪证”吧,^_^)


自认自己还不算一名真正的全栈工程师,它只是自己努力的方向,在通向全栈工程师的道路上,业余时间做的小产品,让我感到很快乐,有一种淡淡的成就感

在中科院,百度,创新工场,小米的学习和工作经历,不仅学会了分析解决问题,更学会了思考。

各种编程语言,系统架构,设计模式在我的脑海里,已经编织成了一张脉络清晰,相互交融的知识网。

当遇到问题,会立刻由点及面快速搜罗合理的解决方案,并快速实现项目原型;当遇到新技术,会发散联想已有的知识体系来对比学习,把它编织进自己的知识网络,最终提炼,磨合,打通经脉,做到融汇贯通,自成体系。

我追求的全栈工程师,是从全栈 —> 精专 —> 精专全栈的迂回辗转,回味甘甜的一条路。

路上,有苦亦有乐,也有说不出的难言与误解,更多的是自己学习奋斗的青春歌谣,自己是快乐着。

以前,软件工程师最在意的是成为某个领域的专家或者高手,例如中国第一代程序员王江民,鲍岳桥,求伯君等。

今天,随着软件技术的发展以及需求的变化,尤其是越来越多的程序员出来自己创业,由于各种条件限制,许多技术上的问题不得不亲力亲为地去完成,因此,很多程序员慢慢地就练就了精通多门技术的本领,有意或无意识之间便成了全栈工程师。

一个真正的Full Stack Engineer,他从生活中发现问题,洞察需求,并设计解决方案,开发出产品原型。为了达到目标,他愿意去学习任何领域的技能和知识。同时他不追求一个人完成所有工作,如果有人可以比他在某方面做得更出色,便会十分热情的邀请他们加入。

Full Stack Engineer的核心并非否定团队和协作,而是更多的体现在架构设计,快速原型,TroubleShooting等方面。随着今天的分层越来越清晰,平台和语言越来越有特点,更加全面的技术人员可以根据不同的语言搭建整个架构。

全栈工程师,在创业公司,大企业,小团队,都可以发挥出他独有的技术特长。这一特长在面试,刚进公司或许还体现不出来,甚至还会有负面的印象(不够精专),但一旦他熟悉了业务,跟进了团队的节奏,他体内的巨大能量将会源源不断的释放出来,对团队的贡献将会是两三个工程师工作量的总和还多。因为全栈工程师,具备了前端后台以及测试运维服务器等多专业知识,沟通成本几乎为零,他甚至可以在不寻求外力的条件下,独立完成整个项目的核心或全部(时间足够)。

工作,只是全栈工程师生活的一部分。

在工作中,由于种种条件限制,全栈工程师的能量很难全部释放出来。

全栈工程师,是孤独的,也是寂寞的,他们在寂寞中孤独。

一个真正的全栈工程师,目标只有一个:创业

2014.07.31 夜



摘自我的独立博客全栈工程师的悲与欢


分享到:
评论

相关推荐

    全栈工程师个人简历模板.docx

    【全栈工程师】是软件开发领域中的一个多面手,具备前端和后端开发技术的复合型人才。全栈工程师能够处理整个应用的架构,从用户界面到数据库,涵盖Web开发的各个方面。他们不仅理解HTML、CSS和JavaScript等前端技术...

    2017最新Python全栈工程师2期 .txt

    除了技术能力之外,全栈工程师还需要具备良好的沟通能力和团队协作精神,以便于与其他团队成员有效合作,共同完成项目目标。 #### 七、持续学习与发展 技术日新月异,作为一名全栈工程师,需要保持好奇心和学习热情...

    Python-全栈工程师技能图谱

    Python全栈工程师是一种掌握前端开发、后端开发以及数据库管理等多种技能的专业程序员。他们能够从项目的开始到结束全面参与,实现高效、灵活的软件开发。在这个"Python全栈工程师技能图谱"中,我们将深入探讨全栈...

    全栈工程师技能树梳理

    此外,全栈工程师还需要具备一定的API设计和集成能力,了解RESTful API原则,能够与第三方服务进行数据交互。测试驱动开发(TDD)和行为驱动开发(BDD)也是提高代码质量和可维护性的关键方法。 最后,全栈工程师需...

    教你成为全栈工程师(Full Stack Developer)

    全栈工程师是指一个可以处理前端、后端、数据库、服务器、网络、客户端以及中间件等所有技术层面的开发任务的技术人员。他们能够在项目开发的每一个环节发挥作用,并且对各个方面的技术都有一定的了解和实践。 全栈...

    全栈工程师-阅读笔记-自制

    全栈工程师-阅读笔记-自制,是我在阅读《全栈工程师》一书的读书感想,如果帮助,最好多下载几下,我想要积分

    Java全栈工程师 基础+项目+就业班(完).txt

    Java全栈工程师 基础+项目+就业班

    全栈工程师指南

    首先,全栈工程师需要了解技术的发展史,了解软件开发的核心难题之一是沟通问题,以及大公司与小公司在技术人才配置上的差异。全栈工程师的角色正成为未来软件开发行业的趋势。 在基础知识篇中,全栈工程师应当熟悉...

    全栈工程师实战

    全栈工程师的实战能力对于当今的软件开发领域至关重要,他们能够独立搭建系统,优化性能,确保系统的安全与稳定。 从提供的文件内容来看,实战技能包括了从基础的Web开发到高级的前后端分离、移动应用开发、自动化...

    课工场Web全栈工程师7月份结业考试机试试卷.zip

    【描述】"课工场Web全栈工程师7月份结业考试机试试卷.zip"的描述简单明了,与标题一致,表明这个压缩包包含了7月份课工场Web全栈工程师课程的期末机试试卷。课工场作为一个在线学习平台,可能会提供这样的资源来帮助...

    教你成为全栈工程师

    全栈工程师的技能修炼,从后端到前端,你可以把这个看做一个全栈工程师教程, 因为看过“网站开发”部分的几篇文章你基本上就可以开发一个小型的 博客网站了, 而看过第二部分的几篇你也许对信息检索充满兴趣和信心...

    《Web全栈工程师的自我修养》

    《Web全栈工程师的自我修养》是一本非常不错的书籍,作者来自于腾讯,根据自己的工作经验,总结了一套全栈工程师需要的各种技能。

    6个多G的全栈工程师电子书整理

    6个多G的全栈工程师电子书整理,包括JavaScript,jQuery,other skills ,PHP相关

    最新Java全栈工程师企业级开发视频教程(17G)

    开篇-程序员的玄学与佛学.mp4---003.开篇-程序员的玄学与佛学.mp4---004.第01章-使用IntellijIDEA-IDEA简介.mp4---005.第01章-使用IntellijIDEA-第一个IDEA应用程序.mp4---006.小知识-使用Markdown记笔记.mp4---007....

    BaiduComate.comate-2.4.0.vsix Baidu Comate全方位测评结果-全栈工程师的福音

    BaiduComate.comate-2.4.0.vsix Baidu Comate全方位测评结果——全栈工程师的福音

    go语言全栈工程师教程.txt

    根据提供的文件信息,这里将基于“go语言全栈工程师教程”的标题、描述及标签来展开相关的知识点介绍。尽管部分内容提供了一个百度网盘链接,但由于安全和隐私原因,无法直接访问该链接获取具体信息。因此,以下内容...

    python全栈工程师完整版视频教程

    python全栈工程师完整版视频教程,全套52.38G,92天课程,包含免密视频、课件、项目代码,课程目录: 1.全栈开发-基础篇 第1-39天 2.全栈开发-前端篇 第40-50天 3.全栈开发-web框架篇 第51-69天 4.全栈开发-项目...

    如何成为一名优秀的全栈工程师.pdf

    成为一名优秀的全栈工程师,意味着你需要具备广泛而深入的技能,涵盖软件开发的多个层面。全栈工程师不仅要精通前端和后端开发,还需要了解项目管理、架构设计和用户体验等多个领域。以下是一些关键知识点: 1. **...

Global site tag (gtag.js) - Google Analytics