程序人生 - “全栈”这个概念坑害了多少开发者

简介: 程序人生 - “全栈”这个概念坑害了多少开发者

全栈”这个概念坑害了多少开发者

技多不压身,这么一个传统观念充斥着每一个行业希望进取进步的人们,当然包括了互联网行业。作为互联网行业“技多”的头号标签就是“全栈”,作为公司之中的技术负责人,“深度”和“广度”哪个更为重要,一直是一个争论不休的话题。最近我和朋友也对此有些争论,这里反跟大家分享一下。我们先看看:

全栈的定义是什么? 度娘给出的答案是:

全栈工程师,也叫全端工程师,英文Full Stack developer。是指掌握多种技能,并能利用多种技能独立完成产品的人。

相信很多人不认同此观念,但是不得不说,绝大多数的开发者都以此为目标。近段时间在工作中,频繁的与同事聊到这个话题,也让我深思了一下。

何为“全栈”工程师?

以实现一个电商APP作为例子:

  • 使用Java之中的maven项目管理,以Spring + SpringMVC + MyBatics作为服务端框架,以RestFULL形式提供API接口。数据存储使用MySQL,使用Redis作为缓存加速。刚开始可能由于不够熟悉运维,设备云服务都在阿里云和七牛上购买现成的。将整个需要制作的需求全部理清楚,API接口开发完毕之后。可以开始书写前端和客户端逻辑了。
  • JavaScript对于每个后端的开发者都是一个较为头痛的问题,好在与朋友咨询过,前端页面使用Google的AngularJS作为MVVM框架,使用Bootstrap作为UI,使用Gulp作为整个项目的打包工具。调用之前自己封装的接口,终于能够出现一些商品展示页面了。
  • 这个时候开始书写客户端了,Android客户端开发之中在github上淘了一些华丽的第三方控件,使用OkHTTP、Retrofit作为网络框架,EventBus作为整个APP中的事件流传递系统。配置使用Gradle并使用第三方的360加固保护自己的APP。iOS开发使用AFNetworking作为网络框架,JSONKit来解析协议之中传输过来的JSON。等~

左青龙,右白虎,老牛在腰间,龙头在胸口。人挡杀人,佛挡杀佛的不叫全栈工程师,而是一个公司之中的救世主。他凭借一己之力,减少了公司内部的沟通成本,人员招聘成本,帮助画饼的CEO,把饼变成了现实。对于这样,我只能说“请收下我的膝盖~!”。

然而,这样的人存在吗?

根据格拉德威尔的10000小时定律,希望熟练的掌握前端、后端、客户端方向的知识内容,每天都花时间来专研也得花10年左右的时间。大多数自称为“全栈”的工程师,都停留到这个方向我“略懂”的境界。至于具体如何实现,如何让架构更时候后面阶段的模块化开发,那就真不知道了。

什么公司会招聘“全栈”?

国内的公司基本很少在自己的招聘JD上书写自己需要招聘全栈工程师,很多CTO的职位所描述的也不是对一位“全栈”的要求。。Facebook的一位员工就曾在OSCON上说他们只招聘全栈工程师,这样很多了解很多方便技术的人才都欢欣鼓舞。然而,“全栈”指的不是掌握不同方向的技术,在Facebook工作的朋友之前就和我说过,自己曾是一位做推荐系统方向的专家,然而由于Facebook部门内部的人员变动,自己却要扛起整个部门系统架构的事情。随着公司业务的发展,每个缺少人力的方向都会得到补充,这里的“全栈”所指的更多是,在业务需要的时候迎难直上的自我学习能力与责任担当能力。并不是让一个人亲手的完成公司内部的业务,这从时间成本、精力成本都不现实。这样的“全栈”工程师才是Facebook所真正需要的。

对于创业公司来说,“全栈”工程师无意是一个香饽饽,因为这么一个人对于创业公司来说,能够解决很多的招聘成本。鄙人的朋友小B,在大学的时候学习过Java,毕业之后现在一个初创公司使用Python写过1年的网页后端,后面发现公司的业务发展需要,自己又转头回去从事Java的开发。近两年由于iOS的大力发展,工资待遇也不错,自己又转行去做了iOS APP的研发。自称自己为“全栈”,从起频换更换技术方向来说,我并不认为他在之前的那几个方向都擅长,反而模糊了自己的定位,弄不清楚自己想要什么。对一个企业来说,我招聘Python工程师、iOS工程师、Java工程师,他都能算是中级(也许还算不上)。这个时候,除了跳槽去一个不懂技术CEO的初创企业之中扛大旗,其他也别无他法。

锚定自己的目标,培养自己的“一技之长”

如同我们公司的CEO一样,公司初创的时候,自己得做PR、市场、金融产品采购、企业注册、工资发放、融资、产品需求确定、以及扫地阿姨。但是,HR+市场+财务+PM+扫地阿姨 ≠ CEO,只要CEO的事情他们没有做好,其他方向他做的再好那也是百搭。一个牛逼的人,能够在需要他的时候承担一些之前没有从事过的工作。反过来,一个每个方向都做得得心应手的技术小能手,却未必是一位牛逼的人。

希望奋斗在一线的年轻工程师不要迷信“全栈”的歪理邪说,把自己的精力都投入到学习井喷式的“新技术”之中。明确自己的目标是什么,系统架构师? or 客户端安全专家? or 推荐系统大神? 每个方向都感兴趣就等于没有兴趣,“略懂”足以能够帮助你在后面的工作中减小你与别的工程师沟通的成本,“深究”一门技术才能然自己的眼界变得更宽。毕竟技术在进步,时间不等人,锚定目标,才能不断的接近目标。最后,给大家几个建议:

  • 尝试与别人沟通自己的想法——不做困在笼子里的孤鸟
  • 学会阅读英文文档——拒绝阅读英文意味着永远只能接受别人的二手资料
  • 要做思维迁移——IT技术本质是相同的,打好技术才能以不变应万变
  • 对自己负责——所有你发现的问题,都是你的问题
目录
相关文章
|
6月前
|
移动开发 前端开发 JavaScript
谈谈你对移动应用全栈开发的理解。
**全栈移动开发**涉及前端、后端、数据库及服务器技能,包括HTML、CSS、JavaScript、Java等语言。开发者需独立完成应用的开发与部署,具备团队协作和沟通能力,以保证应用质量、性能及用户需求。
88 3
|
16天前
|
前端开发 JavaScript NoSQL
探索后端开发之旅:从基础到高级实战
【10月更文挑战第24天】在这个数字时代的浪潮中,后端开发如同一座巨大的宝藏岛,等待着勇敢的探险者去发掘。本文将作为你的藏宝图,引领你从浅滩走向深海,探索后端开发的广阔天地。无论你是初心者还是资深开发者,这篇文章都将为你提供价值连城的知识和技能。准备好了吗?让我们启航,一起构建强大、高效、安全的后端系统!
|
1月前
|
存储 网络协议 关系型数据库
探索后端开发:从基础到高级
【9月更文挑战第32天】在这篇文章中,我们将一起探索后端开发的奥秘。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。我们将从基础知识开始,然后逐步深入到更复杂的主题。最后,我们将通过一些代码示例来展示这些概念的应用。让我们一起开始这段旅程吧!
|
6月前
|
存储 API 数据库
探索后端开发的奥秘:从基础到高级
【5月更文挑战第31天】本文将带领读者深入理解后端开发的世界,从基础的服务器和数据库知识,到复杂的API设计和微服务架构。我们将通过实例和案例分析,揭示后端开发的关键概念和技术,帮助读者提升他们的技能和知识。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
3月前
|
前端开发 Java PHP
探索后端开发之旅:从基础到高级
【8月更文挑战第28天】本文将带领读者走进后端开发的奇妙世界,从基础概念出发,逐步深入到高级技术。我们将通过易懂的语言和生动的比喻,让读者轻松理解后端开发的精髓。同时,文章还将分享一些实用的技巧和建议,帮助读者在后端开发的道路上越走越远。让我们一起踏上这场充满挑战与乐趣的旅程吧!
|
4月前
|
前端开发
全栈技术实践问题之全栈开发带来的主要好处是什么
全栈技术实践问题之全栈开发带来的主要好处是什么
|
6月前
|
前端开发 JavaScript NoSQL
从前端到后端:构建全栈开发者的必备技能
随着互联网技术的不断发展,全栈开发者的需求日益增长。本文将介绍如何从前端到后端,掌握全栈开发所需的关键技能,包括前端框架的选择、后端语言的学习以及数据库的应用,帮助读者构建成为全面的技术专家。
|
6月前
|
小程序 前端开发 API
小程序全栈开发中的前后端分离实践
【4月更文挑战第12天】本文探讨了小程序全栈开发中的前后端分离实践,强调其能提升开发效率、代码可维护性和可扩展性。文中详细阐述了接口设计、数据交互、前端渲染、后端处理以及团队协作的重要性,并指出统一的API接口、使用前端框架和后端服务器是关键。通过这种模式,开发者能更高效地掌握小程序开发,打造高质量应用。
159 0
|
6月前
|
开发框架 小程序 前端开发
小程序全栈开发中的跨平台解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨平台问题,包括前端、后端和数据交互差异,并提出了解决方案:使用跨平台框架(如Taro、uni-app)、设计统一后端接口、创建API适配层以及利用云开发平台。这些方法旨在帮助开发者提高效率,实现一次开发多平台运行。随着技术进步,预计会有更多便捷的跨平台工具出现。
112 0
|
6月前
|
Rust 前端开发 JavaScript
Rust在前端与全栈开发中的实践探索
随着Rust语言的日渐成熟,其应用场景已经从后端扩展到前端和全栈开发领域。本文将深入探讨Rust语言在前端与全栈开发中的实际应用案例,分析Rust语言在这些领域的优势和面临的挑战,并展望Rust未来的发展趋势。