全栈工程师

     全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。

也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。


       今天,让我们来聊聊 全栈工程师

       在我看来,所谓“全栈“是一个没有确定意义的动态概念;至多说明“此人比较胜任自己目前所从事的工作,相关领域都能插上一手”罢了;一旦领域换了或者要求提高了,对“全栈”的要求自然大不相同。

       因此,谈论一名工程师是否“全栈”是没太大意义的:“全栈”应当是一名有追求的工程师在某个职位上对自己的要求,并不是一个头衔。比如说我吧。最初使用PB做项目;玩着玩着,从动态界面生成、显示效率优化到数据库调优就全都能插上手了;然后,基于自己对底层知识的理解,还能用PB玩一些黑科技,实现官方没有提供支持的功能(用俺同事的话说就是“你都玩到圈外面了”)。甚至,我还直接和客户方技术人员交流,修补了很多过去需求调研时留下的坑(被客户评价“够半个XX工程师”、“[去做他们行业的工程师] 日常问题应该没有能难倒你的了”),然后自己设计方案、制定计划并成功完成;之后这个软件才通过客户验收。

       你看,从需求调研到方案设计;从数据库设计到网络通信协议制定再到后台逻辑、软件界面……这差不多算全栈了吧?

       后来用C/C++做项目,然后就知道了内存屏障、cache、分支预测,知道了模板推导、编译期计算;于是开始学着去写能讨好CPU的代码……埋头底层N年,逐渐熟悉了linux环境。于是,往下,改过linux kernel module、挖过tcp/ip协议栈、查过各种加密/验证算法/体系的底细(不能说了如指掌,但清楚其来龙去脉、自己也亲手实现过一些核心算法);中间,玩过apache/nginx/django,用C写过cgi页面,折腾过hadoop/gluster;上层嘛,用gtk/wpf等等都写过界面,用脚本写过自动探测机器硬件然后自动裁剪linux kernel生成最小化系统的东东,用python+django实现过自己的oauth2页面(当时oauth2刚刚推出,还没有现成实现可用)……从kernel一口气玩到web页面,从C折腾到js……随便哪个环节都能掺乎进去,也都搞出过商业软件。

       按照定义,这似乎也勉强能算“全栈”吧?

       这个“全栈”和当初的“全栈”,含金量是否一样?

       样样行,样样怂?您可千万别这样表扬我。“

       样样怂“这个评价可谓恰如其分;”样样行“可实在是愧不敢当。

       在我看来,所谓“全栈”,大概就是“自以为已经在自己所能接触领域的各个地方都留下过爪印”吧。很遗憾。虽然的确经常自我膨胀;但有一点很清楚:我从未做到过“在所有地方都留下爪印”。各种意想不到的细节且不提它;比如各种加密算法背后的数学原理及其证明,其上覆盖的淤泥太深太硬:既然根本没有能力去挖掘它,凭什么在那里留下爪印呢?更重要的是,很多地方我甚至都不知道其存在。一旦跳出自己所熟悉的井口、被新鲜事物糊到脸上……所谓“全栈”就是个笑话。

       所以,成为一个全栈工程师的体验就是:这只青蛙又进入了新一轮的膨胀周期,现在它迫切需要一块分量十足的“醒工砖”,否则很可能就要被困死在熟悉的井底了 ^_^


也有人理解的全栈是这样的:

 1. 熟悉硅的提纯,以及晶体硅参杂的基本工艺

2. 精通数字电路,模拟电路。精通 FPGA ,会自己流片。

3. 精通通信原理,数字信号处理。

4. 精通程序员的旧三大浪漫: 操作系统, 图形学, 编译原理

5. 精通程序员的新三大浪漫: 人工智能, 云计算, 区块链

6. 精通客户端开发, web 开发, 桌面开发, 熟练掌握一百种语言以及 API

7. last but not least, 精通 C++ 


附上最近很火的全栈工程师技能树:


                     


回答源自网络。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值