程序员,你能真正掌握多少编程技术?

我总能看到一些公司在招聘广告里这样描述他们的岗位要求:“有丰富的从零开始构建iOS及Android应用的经验;精通移动及 Web 技术,包括 Java、HTML5、CSS3、JavaScript 和 AJAX。“

(可世上根本)没有这样的人:一个人只能真正精通一个(技术方向),而在其他方向上技术平平。你也可以在精通一门技术后转而钻研另一种技术,(但这会让你很快)忘掉前者的很多细节。这样或许已经足够让你轻松唬住很多人,让他们认为你无所不能、无所不晓——但真遇上棘手的问题,你也只能靠运气了。

今时不同往日,当代任何一个主流领域的技术都相当复杂,并且不断地变化,需要人投入大量时间。只是利用业余时间学习的话,连保持跟进某个技术领域的最新动态都很困难,更不用说从零开始“精通”这项技术了。因此,只有参与一个真实的项目才能让你真正学习一套新的(技术)环境。而能够同时参与开发大型原生 Android、iOS 应用以及响应式 Web 客户端程序的又有多少人?

在过去 34 年的程序员生涯里,我很少同时在多个技术领域上工作。我的第一份工作是在 Supermini 上开发,后来用 Apple 写 6502 汇编、在PC 上写 Pascal,我的两个创业公司的开发环境都是 Mac 和 C。在为别的公司(包括 Apple)工作时, 我先后用过 C、一点 C++、Objective-C/WebObjects, 然后转向基于 Java 的 Web 前后端开发(但很少同时开发这两者)。再后来,我写了一些 JavaScript,做过基于 C++ 的游戏编程, 最后,就是我现在做的: Objective-C 和 iOS。为了掌握各种新知识,这中间的每次技术转变我都花了几年时间一边做一边进行大量的学习。

如果出于某些原因,有人真的能够同时精通 Android 和 iOS,甚至是 Web ,那么作为一个真正的全才,我想他的期望薪酬会远远高出多数公司愿意给出的价格:公司实际上只想以最低的工资水平招几个“什么都能做”的人以节约成本。我至今无法理解有人能够同时成为许多方面的专家,以及他们怎么能同时掌握不同的技术、开发不同平台的应用并与时俱进。我认识一些才华横溢的人,但我不记得有哪一个能够像耍杂耍一样将多种技术玩弄于股掌之上,并开发出能体现精湛技艺的应用。

好吧,可能会有一些例外吧,但是我始终认为多数人做不到这一点。一个人固然能先精通一种技能,然后再尝试精通另一个,但这个过程中必然会忘记很多前面的知识。去年我有几个月无所事事,等着被公司解雇(公司所有的技术都早已经落伍被替代了,他们开始把整个品牌打折出售,所以显然我的下岗也只是早晚的问题)。我花了一个月做了一些 C++ 开发,然后是 Node.js, 最后还搞了一段时间 Swift。今年再回顾这些学过的技术时(我的新工作用的是 Objective-C),我发现我已经忘了之前学到的大多数内容。如果不是经常使用的东西,肯定会很快被忘到脑后。当我用 PHP 重新搭建我现在这个博客系统时,我掌握过的各种语言在我脑袋里全都糊成了一片。

如果你用过 Objective-C、然后使用 Swift 做 iOS 开发的话,那至少两者还有一部分重叠。不过 Android 开发跟 iOS 相比可不仅仅只是另一种语言的差别了:你需要掌握完全不同的开发工具、布局方法,以及如何支持多个版本的操作系统,并兼容 24000 多种安卓设备。另一方面,单单要跟上今年六月 WWDC 里发布的新变化就要花很大的功夫,Apple 发布的示例代码并不兼容最新 beta 版的 Xcode 更是雪上加霜。 就算你能不写代码,每天能看完最新的视频、读完最新的文档和示例代码,不过这样你又哪来的勇气称自己是个专家呢?

除了安卓和 iOS 这两个截然不同的复杂移动开发环境,现在的 Web 开发也添了不少乱,尤其是此起彼伏层出不穷的各种 JavaScript 框架, 要跟随它们的变化真得有三头六臂才行。而且从跟我共事过的 JavaScript 程序员来看,他们甚至连一个框架的变化都跟不上(嗯,我说的就是 AngularJS)。

所以如果你找到这样一个人选,他/她:iOS 和 Android 开发不在话下、JS 桌面/移动端 Web 编程小菜一碟;熟练运用现代风格的 API 又能兼容各个老版本 OS,各种 UI 设计方式优劣如数家珍,诸多浏览器特性及安卓设备特例了然于胸,还总能以破纪录的时间交付无 Bug 的产品…那你就真的赚大了——对了,他应该还愿意以低于市场价为你工作。

回想我开始编程那会,一切都原始而简单。我只需要掌握一种语言,一种操作系统,而不需要任何框架。即使在我的两家初创公司,我也只需要掌握 C 语言,了解 Macintosh 和偶尔的一些 68K 汇编。时代变了,但我们还是只有一个并不遵循摩尔定律、也没法升级的大脑。

最后,假如你能(真正的)同时做 Android、iOS 和移动 Web 开发,并写出大师级的作品的话,我要向你致敬!当然同时,我也希望你也能拿到你应得的三倍酬劳。


Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目描述:建立购物小商城平台. 实现了前台页面系统。 技术描述:通过Spring 主框架来管理Struts2和Hibernate 框架搭建的电商小平台,用MySQL数据库并创建了表有用户表,订单表,商品表,商品分类表,商品内容表,购物车表等来存储数据。用到hibernate….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值