只会Python可造不出iPhone
大数据文摘出品
编译:王缘缘、Ivy、小七、Aileen
Python正成为计算机领域的红人,它的走红不仅仅因为它的简易语言设计和各种方便的调用包,还与各种培训课程中的营销般的吹捧不无关系。
在这些热文的叙述中,似乎学会Python,就能搞定一切计算机难题了。对于这种普及类编程工具和课程,今天的文章可能可以带来一些不一样的看法。
这篇文章的作者Bhavya Kashyap在计算机领域可算是“老司机”,其目前在亚马逊做开发相关的工作,之前雇主是微软以及Facebook。接下来Bhavya Kashyap用她多年的工作经验告诉你,为什么她不喜欢Python和相关培训班,毕竟,iPhone可不是只靠python就造的出来的。
以下,enjoy。
最近我的一位朋友给我讲述了她与一位同事的故事。她的同事是一个好好先生,认识之后,每天都在给她强烈安利编程训练营,称其为工程领域一种新的学位。他自己本来也是编程训练营的获利者,就他所说,这份工作就是自己编程培训的成果,他认为为了计算机去拿一个学位这个事情是多余的。
我的朋友就读于滑铁卢大学的计算机工程专业、并且获得了多伦多大学的工程硕士学位,她对此显然非常不服。
经过一番思考后,我朋友试图改变他的想法,她详细询问了相关编程训练营是否涉及安全、服务器硬件资源或操作系统相关学习,并试图解释:编程培训班和专业学位学习的区别到底是什么。
编程训练营及其所传递的信息
根据对于编程训练营毕业生的观察,我发现他们有一种荒谬的结论,其中之一就是他们相信web开发和app开发就是整个计算机工程领域的内容。
编程训练营所教的语言和技能组合
这并不意外。目前的现实就是这样,编码正在成为Web开发的代名词。这个同等性在一些零基础编程训练营,甚至在《纽约时报》等高频出版物中看到。
编程行业正在迅速扩张,但SaaS、设备、安全、系统工程(生产自动驾驶汽车梦寐以求的技术),甚至游戏开发等领域都存在人才匮乏的情况。这极具讽刺意味。从理论上讲,编程训练营是将非技术工人转变为技术工人的一种方式,并且创造熟练劳动力的廉价渠道。工人们纷纷涌向这些训练营,但结果是工人们都偏向于web开发,而计算机科学领域则需要从其他领域努力寻找技术人才。
有人可能会说主动型人才早已明白24周的菜鸟训练营能教给你的只有那么多,但是他们自己知道自己未来的方向和他们的才能所在。但流量是非常必要的,特别是当这种现象如此普遍时。毕竟,流量使得这样的训练营如此畅销。
编程训练营当然是有价值的。对于那些没有能力接受技术教育的人来说,这是他们进入技术领域的一种渠道。对于那些意识到自己太晚加入,甚至只是想多赚一点钱的人来说,也是如此。对于web和移动端开发的诱惑力和即时满足感是可以理解的,尤其是在当前环境下,下载框架和文本编辑器成本很低,却很可能获得大量奖励。这些训练营的美妙之处在于它们可以成为其他类型的开发,工程甚至学术计算机科学的门户。
但是,我只是不知道新学员需要花多久才能进入那些领域。
编程不等同于计算机科学,也不等同于软件工程或计算机工程,更不等同于STEM(科学、技术、工程和数学的英文首字母缩写)。
虽然它现在很火,已近乎成为计算机科学的代名词。但如果你是一个计算机科学毕业生,你应该知道这两者是不同的,也知道这种等同性对两个学科都是一种伤害。如果你不是从事这方面工作,你可能会想这两者有什么区别。其实这两者的差别不仅在于其所需技能的不同,还在于其根本目标就是不一样的,当然两者也有重合的部分。
编程是战术性的。它是解决眼前问题的过程,并构建某些东西以使其发挥作用。而软件工程则是在此基础上引入战略思维,并应用工程技术,来构建强大且可持续的解决方案。计算机工程包括一定程度的软件工程,但也包含硬件即制作平板电脑、手机和控制台所需的材料。最后,还有计算机科学,在某种程度上,这是最具哲学性的学科,因为其中包括深入研究数学,以及为什么不同类型的算法,数据结构和计算方法的工作方式却相同。
虽然编程训练营对很多人来说是合适的解决方案,但是正规的计算机科学项目所教授的技能和思维模式对于推动技术发展至关重要。这就是为什么从训练营毕业的学生很少有人进入大型科技公司。
需要有能力为公众提供服务,如Google Maps或Waze,它们使用的是 Dijkstra 等算法和MongoDB或Android SDK等工具,他们的用户不可避免地包括编程训练营的参与者。虽然许多菜鸟训练营确实会涉及算法和数据结构,但是它们所覆盖的深度和广度都不够。而且训练营通常是以面试为目的来教授这些,所以教学内容差异很大。
最好的雇主
对计算机科学专业人员的需求一直在快速增长,并且没有任何消退的迹象。根据Cod.org官方网站收集的数据,全美国范围内开放了570,926 个计算机相关岗位。然而,去年美国国内的计算机科学毕业生人数仅为49,291 。
根据美国劳工统计局的数据, 2016年至2026年间 ,计算机和信息技术的总体就业率预计将增长 13% 。即使计算机科学的毕业率的增长速度能达到同样的比例,绝对数字也必须增加一个完整的数量级才能赶上。 最近的趋势表明有越来越多的学生正在参加计算机科学项目,但仍然不够,还需要做更多工作来缩小差距。
值得庆幸的是, 在过去几年里,越来越多的人注意到了计算机科学(CS)教育的重要性。这很鼓舞人心,但是依然存在类似的问题。
从大多数编程网站的内容来看,人们对“CS”和“STEM”这两个术语的概念产生了混淆。
甚至连computerscience.org官方网站都混淆了这两个术语。网站有一篇文章的标题为“为什么越来越多的女性不愿意从事计算机科学?”文章中表明只有 12% 的工程师为女性。
至于是哪一种工程师的12%并未说明?
后来工程领域发布的数据则显示女性从业者占“计算机科学相关专业”的25%。但是为什么在专门讨论计算机科学的问题时要突出来自工程领域的数据, 从而混淆事实呢?对专业知识不了解的人来说,这会让他们认为某些术语的意思是一样的。
将CS定位为STEM最具代表性的行业,会把那些想探索这个行业的人引向一个狭窄的领域,这意味着其他的领域会失去很多新员工。当涉及到低级API或系统工程设计等方面,你会惊讶地发现它们是多么具有挑战性。总线设计需要电气工程知识,闪存开发(例如闪存驱动器和手机存储)需要材料科学的知识。我们不要忘记像底盘/外观设计这样的领域,需要工业工程师和设计师来创建像Surfaces,Xboxes和Pixel 3s这样美丽而时尚的外观。一些科技工作者在交流中, 这些话题几乎完全被忽略。
包括我在内的许多专业工程师,都对人们现在高度专注于那些偏向于更高层次的客户端编程的训练营和 CS项目感到不安。这个趋势让人们只关注到了科技的一部分领域,这个行业需要对工程有更深入了解的人, 这样我们周围的空缺才能被填补。如果年轻的大学生甚至是年长的技术人士都不了解它们的可能性,他们就会选择技术阻力最小的那条道路。最终, 工程人才将失去对核心软件工程、土木、机械、网络还有应用程序开发的关注。
向小群体展现STEM梦想
这也是少数人群组织的想法,例如:Women Who Code,Girls Who Code,Black Girls Code等。这些以少数群体为重点的组织,无论是否无意,都传播了编程为STEM的观点。他们支持将女性带入科学和工程领域,这种说法之所以成立,只是因为公众对这些领域的看法又被缩小到了代码范围。
在这种背景下,大部分组织的举措主要就是教授他们脚本和功能性语言。其实对年轻人来说,能大致领略C 和 C++等语言, 这是非常有价值的, 这样能让他们觉得编程语言不是那么的难。冒充者综合症是导致追求 CS学位的少数群体辍学的一个真正因素,所以需要为他们提供帮助来消化这些更难的编程语言, 而将这些编程语言纳入所有CS课程, 可以增强他们学习的信心。
有趣的是,这里我们又说回到了编程训练营,越来越多的少数群体者加入去提升自己的能力,弥补自己的不足。Facebook的广告不断宣传这些举措,这些举措的领导者非常认真的(也许是真诚的)对待学员,但是编程训练营对学员而言最终只起到了非常微弱的作用。这些举措的直接结果尚不清楚——并非所有训练营都公布了学员的就业率,即使他们公布了,某些人也会认为这些举措具有误导性。
显然,除了编程之外,还缺乏很多专业技能训练营,这是因为需要这些技能的公司并没有给训练营助资。
本着乐观的精神,我将假定学员就业率确实很高,训练营的毕业生在离开训练营几个月后就能在初创公司或中型公司找到工作。然后凭借几年的经验,一些人能够跳槽到像谷歌或亚马逊这样的巨头公司中。
但这些少数群体毕业生中的大部分最终并没有担任领导职务, 尤其是在上述巨头公司中。训练营在大部分人的印象中已经与能力弱画上等号,拥有训练营证书的人有时甚至会被剥夺参加某些MFAANG面试的资格(MFAANG是Microsoft, Facebook, Amazon, Apple, Netflix和Google.的缩写)。
我听说同行们在简历上对拥有这类证书的少数群体候选人的资历提出了激烈的质疑。不幸的是, 这就是目前的状况。因此,只有拿到正式的STEM学位,少数群体人才的实力才能得到正视。当然,如何才能得到STEM学位又要另外花费一番功夫了。
Techgirlz涵盖了应用工程和理论工程
向少数群体引入CS是第一步,同时我们也需要让工程学科多样化。无论在大公司还是小公司中,在所有的领域中,我们都需要妇女、有色人种和其他少数群体的加入。这不仅仅能提高行业水平,为顾客带来好的产品,这也是增强社会和社会经济能力的一个步骤。
下一步应该如何?
我已经表明了我的忧虑,但问题都没有解决。负责教授给学员所有可能会用到的知识是谁的职责呢?
显然,除了编程之外,还缺乏很多专业技能训练营,这是因为需要这些技能的公司并没有为训练营提供资金支持。虽然编程训练营和一般CS项目举措是这个教育计划的一部分,实际上它们已经做了很多工作,为很多人打开了大门。他们没有义务扩大学员的知识基础去涵盖所有的专业领域,虽然他们这样做也是应该的。
我的结论仍然是, 信息传递很重要。
作为一个行业, 我们不能继续只重视Web/app开发和高级CS。我们应当做得更好, 以便满足对科学、技术和工程角色的需求。我们需要新的人才来设计操作系统、主板、相机、屏幕、机箱、装配线和服务器来推动行业技术的更新。毕竟, 你不能仅仅用 Python就做出一部 iPhone。
相关报道:
https://medium.com/s/story/you-cant-build-an-iphone-with-python-ad690e5b2164