程序员的入职门槛和工作环境一直是我们津津乐道的话题,最近就有报道说,在IT技术最发达的美国,人人都可以成为程序员,即使你不是从正规的计算机专业毕业的;即使你之前从没接触过计算机;即使你,只是为了糊口养家而选择编程工作。程序员的世界都是欢迎你的。那么,我们不经要拿外国的程序员工作环境、入职条件等等在我们看来很有魅力的条件和我们国内程序员的条件相对比一下,可是从哪些方面进行对比呢?
一叶知秋,很多IT"专家"其实都只是"砖家"
linghu9990在博客中写到:最近面试了数十个应聘内核开发职位的求职者。这些求职者都来自于芯片或嵌入式操作系统领域出名的非常好的大公司。他们大都声称他们在内核开发领域有至少十年经验。他们的简历看起来闪闪发光,充满着相关项目经验,各种时髦的技术词和奖项等等。
但是他们大部分无法回答一个基础的问题:当你调用标准的malloc函数时,内核里面发生了什么?
不要吃惊。当让一位求职者写一个基于 glib 哈希函数的简单 LRU 缓存框架时,他首先说他从没用过 glib,这是我预料之中的。我把 glib 手册给他并给他详细讲解了接口,接着一个多小时以后他只写出了几行糟糕的代码。
事件的原因分析:
相信导致这种现象的不仅是他们自己的原因,更要归咎于他们就职的公司。这些公司会给他们大量的数年不会有重要修改的稳定的代码。有技术含量的东西都被封装进了这些代码,所以他们只能因循守旧,不再创新。一旦走到招聘市场,他们这些所谓的"专家"将毫无竞争力可言。这就是程序员的困境:我们以代码为生,但供养我们的大公司却慢慢摧毁我们谋生的能力。
如何摆脱这种困境:
我觉得,事件的出现都是有两面性的,孤掌难鸣。所以解决方案当然既有针对个人的,也有针对企业/用人单位的。
针对个人:首先,做你自己的项目。你需要不断"磨快你的刀"。工作之余挑一些自己感兴趣的任务去做,并且用自己的时间克服遇到的难题。这样做,你肯定会学到新东西。假如你在Github上发布自己的项目,你可能会有机会认识把你拉出当前位置的人。
另外,不要在一个团队里呆的时间超过两年。试着每18个月进行一些面试。你不一定要换你的工作,但是你要看一下市场上需要什么,而自己如何适应需求。
针对团队/公司:给你的员工压力与挑战。轮换岗位,让"专家"有机会去拓展技能。开启新的项目,给战士们提供战场。定期举办"编程马拉松"。这将建立一种改革与创新的文化。
美国"程序员世界"无门槛,人人都可当程序员
想在美国当程序员?可能没你想象的那么难。就算没钱去正经大学念个计算机科学,也有其他出路。最近,越来越多的在线学习编程学校在美国火了起来。许多真实的案例都为一些有志于此的人指出了一条光明大道:无论你是想找工作的穷学生,还是想改行的中年危机男,程序员的世界都欢迎你。
"闪电战"编程课程
西雅图的"代码伙伴"(Code Fellows)学校,就非常确信他们能够帮助学生找到工作。他们为学生提供六个星期的"闪电战"编程课程,让学生能够完成从零基础达到基本入门状态,收费1.2万美元——如果还是找不到工作,学费可以全退。
类似学校的兴起背后,是美国互联网市场的日渐繁荣,这导致了程序员供不应求的局面。据美国劳工部的数据预测,2020年美国大约会空出100万个程序员职位。而且许多传统高校对计算机课程的不怎么上心,正在让这个缺口越来越大。
比如今年华盛顿大学的计算机系,就只招了1/4完全够格的申请者。对于那些没能成功申请上一个计算机课程的学生来说,好在在程序员的世界里,学位并不是通向工作的唯一途径。
比如业界标杆谷歌公司里,一些团队就有14%的程序员没有相关正式学位。放大到全美来看,67%的编程岗位都是来自非科技类公司,这就意味着编程之外,还需要其他正常商业技能。
从这个角度来看,和焊接工或者木匠一样,编程其实就是一门手艺。是一门任何人都可以在几周或者几个月内稍加学习就具备基础技能的手艺。而且一旦那些刚刚开始的编程菜鸟们靠着这些基本技能混到了第一个工作,此后的职业发展道路上,他们就和其他正规学校出来的程序员同行们获得了相等的机会,只要各凭本事就好。
以脸谱网(Facebook)为例,每一个工程师在进入该公司要做的第一件事,就是6个星期的集中训练,大部分的课程自然都和编程相关。公司设立这个规定流程,是因为在大部分的高校里,计算机系都更注重理论学习而不是实打实的编程。后者其实包括了各种最流行的编程语言、项目管理与合作等一系列庞杂知识,这意味着一个合格的程序员往往需要和几十个其他程序员以及几百万运行程序同时打交道。
程序员或最终会被替代
计算机学位有助于理论学习并且帮助那些顶级工程师继续磨练这门艺术,但在这个互联网如此普及的时代,要求每一个程序员都要有一个计算机学位,就相当于要求每一个砌砖工有一个建筑学位一样。
"树屋"(Treehouse)的联合创始人卡森则认为,自己那张十几年前获得的计算机学位完全没有用。一日千里的互联网科技让工程师们必须持续学习新的模型和语言,这让很多半路出家的人有时也能站在同一起跑线上,只要他们愿意终其一生磨练这门技能。
"几乎所有我们现在能触摸到的东西都能和一个什么软件连上,这是人类历史上的头一遭。"卡森说。这就如硅谷一句最流行的话所言:"未来只有两种人,知道如何编程的人,和只能遵从机器指令的人。"
随着互联网科技注定要向人类社会的每一方面继续快速渗透,程序员岗位也会像其他被其所代替的劳动分工一样,越来越形形色色。
白宫允许程序员穿衬衫上班
据The Washington Post报道,白宫成立了美国数字服务小组(U.S. Digital Servic),小组长不是奥巴马,而是前谷歌资深工程师 Mikey Dickerson,去年年底为修复崩溃的 Healthcare.gov 从硅谷来到DC。
一周之后,白宫官方博客发布了一条5分钟的视频,记录了Mikey Dickerson在白宫工作的一天。Mikey 小组成员不需要穿西装,他认为,穿西装会给有些程序员带来不舒服的感觉,毕竟程序员的工作不是以和外人打交道为主,他们更喜欢随性化的着装,这样他们能更快适应周围的工作环境,提高工作效率,即使这是在白宫工作。
写在最后
也许上面所列举的事例只是个例,但我们不能否认,相比于国内的程序员行业,国外的程序员入职门槛更低、工作环境更好、发展空间更宽阔。之前就有美国的媒体叫嚣,如果中美开战,美国的信息安全部门分分钟钟就能让中国的网络回到石器时代。或许这么说有点吹嘘,但是也不是没有可能的。希望大家都支持国产。