怎样成为全栈工程师

 我来答
魔神巴尔233
2017-10-25 · TA获得超过4704个赞
知道大有可为答主
回答量:2984
采纳率:66%
帮助的人:652万
展开全部
在我看来,所谓“全栈“是一个没有确定意义的动态概念;至多说明“此人比较胜任自己目前所从事的工作,相关领域都能插上一手”罢了;一旦领域换了或者要求提高了,对“全栈”的要求自然大不相同。因此,谈论一名工程师是否“全栈”是没太大意义的:“全栈”应当是一名有追求的工程师在某个职位上对自己的要求,并不是一个头衔。

比如说我吧。最初使用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……随便哪个环节都能掺乎进去,也都搞出过商业软件。按照定义,这似乎也勉强能算“全栈”吧?

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

样样行,样样怂?您可千万别这样表扬我。
“样样怂“这个评价可谓恰如其分;”样样行“可实在是愧不敢当。

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

更重要的是,很多地方我甚至都不知道其存在。
一旦跳出自己所熟悉的井口、被新鲜事物糊到脸上……所谓“全栈”就是个笑话。

所以,成为一个全栈工程师的体验就是:这只青蛙又进入了新一轮的膨胀周期,现在它迫切需要一块分量十足的“醒工砖”,否则很可能就要被困死在熟悉的井底了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式