分类 职业生涯 下的文章

这个星期我将给本地一所高中做一次有关于程序猿是怎样工作的演讲。我是志愿(由 Transfer 组织的)来到这所学校谈论我的工作的。这个学校本周将有一个技术主题日,并且他们很想听听科技行业是怎样工作的。因为我是从事软件开发的,这也是我将和学生们讲的内容。演讲的其中一部分是我为什么觉得软件开发是一个很酷的职业。主要原因如下:

5个原因

1、创造性

如果你问别人创造性的工作有哪些,别人通常会说像作家,音乐家或者画家那样的(工作)。但是极少有人知道软件开发也是一项非常具有创造性的工作。它是最符合创造性定义的了,因为你创造了一个以前没有的新功能。这种解决方案可以在整体和细节上以很多形式来展现。我们经常会遇到一些需要做权衡的场景(比如说运行速度与内存消耗的权衡)。当然前提是这种解决方案必须是正确的。这些所有的行为都是需要强大的创造性的。

2、协作性

另外一个表象是程序猿们独自坐在他们的电脑前,然后撸一天的代码。但是软件开发事实上通常总是一个团队努力的结果。你会经常和你的同事讨论编程问题以及解决方案,并且和产品经理、测试人员、客户讨论需求以及其他问题。 经常有人说,结对编程(2个开发人员一起在一个电脑上编程)是一种流行的最佳实践。

3、高需性

世界上越来越多的人在用软件,正如 Marc Andreessen 所说 " 软件正在吞噬世界 "。虽然程序猿现在的数量非常巨大(在斯德哥尔摩,程序猿现在是 最普遍的职业 ),但是,需求量一直处于供不应求的局面。据软件公司说,他们最大的挑战之一就是 找到优秀的程序猿 。我也经常接到那些想让我跳槽的招聘人员打来的电话。我知道至少除软件行业之外的其他行业的雇主不会那么拼(的去招聘)。

4、高酬性

软件开发可以带来不菲的收入。卖一份你已经开发好的软件的额外副本是没有 边际成本 的。这个事实与对程序猿的高需求意味着收入相当可观。当然还有许多更捞金的职业,但是相比一般人群,我认为软件开发者确实“日进斗金”(知足吧!骚年~~)。

5、前瞻性

有许多工作岗位消失,往往是由于它们可以被计算机和软件代替。但是所有这些新的程序依然需要开发和维护,因此,程序猿的前景还是相当好的。

但是...

外包又是怎么一回事呢?

难道所有外包到其他国家的软件开发的薪水都很低吗?这是一个理想丰满,现实骨感的例子(有点像 瀑布开发模型 )。软件开发基本上跟设计的工作一样,是一个探索发现的工作。它受益于强有力的合作。更进一步说,特别当你的主打产品是软件的时候,你所掌握的开发知识是绝对的优势。知识在整个公司中分享的越容易,那么公司的发展也将越来越好。

换一种方式去看待这个问题。软件外包已经存在了相当一段时间了。但是对本土程序猿的需求量依旧非常高。因为许多软件公司看到了雇佣本土程序猿的带来的收益要远远超过了相对较高的成本(其实还是赚了)。

如何成为人生大赢家

虽然我有许多我认为软件开发是一件非常有趣的事情的理由 (详情见: 为什么我热爱编程 )。但是这些理由,并不适用于所有人。幸运的是,尝试编程是一件非常容易的事情。在互联网上有数不尽的学习编程的资源。例如,CourseraUdacity 都拥有很好的入门课程。如果你从来没有撸过码,可以尝试其中一个免费的课程,找找感觉。

寻找一个既热爱又能谋生的事情至少有2个好处。首先,由于你天天去做,工作将比你简单的只为谋生要有趣的多。其次,如果你真的非常喜欢,你将更好的擅长它。我非常喜欢下面一副关于伟大工作组成的韦恩图(作者 @eskimon) 。因为编码的薪水确实相当不错,我认为如果你真的喜欢它,你将有一个很好的机会,成为人生的大赢家!


via: http://henrikwarne.com/2014/12/08/5-reasons-why-software-developer-is-a-great-career-choice/

作者:Henrik Warne 译者:mousycoder 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在本篇中,我们将指点顶尖的IT技能,这会帮助你找到理想的工作。这些资料和统计结果是会伴随市场和需求的变化而变化的。只要有任何主要的变化,我们会尽可能地更新列表。所有的统计数据基于最近的,全球一些IT公司的招聘信息和需求。

1. VMware

VMware公司设计的虚拟化和云计算软件高居榜首。VMware首次宣布商业支持x86架构的虚拟化。VMware的招聘需求在上个季度已经增长至16%。

最新稳定发行版: 11.0

2. MySQL

这款开源的关系型数据库管理系统憾居第二。直到2013年,MySQL都还是第二大使用广泛的RDBMS(注:Relational Database Management System)。上季度MySQL的招聘需求已经达到了11%。非常著名的MarialDB就是来自被甲骨文公司收购之后的MySQL的分支。值得掌握。

最新稳定发行版: 5.6.23

3. Apache

这个跨平台的开源网页(HTTP)服务器位居第三。截至上个季度,Apache的招聘需求已经超过了13%。

最新稳定发行版: 2.4.12

4. AWS

AWS是亚马逊网站提供的所有远程计算服务的集合,AWS排在第四位。上个季度,AWS的招聘需求已经呈现出将近14%的增长。

5. Puppet

Puppet作为配置管理系统被应用在设置IT基础架构,它排在第五位。它用Ruby语言编写,属于客户端-服务器型的结构。上个季度puppet的招聘需求已经增长超过9%。

最新稳定发行版: 3.7.3

6. Hadoop

Hadoop是用Java编写的一款开源软件框架,用于处理大数据。列表中Hadoop位列第六。对Hadoop的招聘需求在上个季度已经下降了0.2个百分点。

最新稳定发行版: 2.6.0

7. Git

Linux Torvalds最初编写的著名版本控制系统Git排在了第七。Git的招聘需求在上个季度已经超过了7%。

最新稳定发行版: 2.3.4

8. Oracle PL/SQL

Oracle公司开发的SQL扩展版,占据第八的位置。PL/SQL从Oracle 7后就包含在Oracle数据库中。它在上个季度已经呈现将近8%的衰退。

9. Tomcat

这个开源网页服务器和服务程序容器出现在了第九的位置。在上个季度,它已经表现出需求增长,将近15%。

最新稳定发行版: 8.0.15

10. SAP

这款最著名的企业资源规划软件排在了第十。上个季度SAP在需求市场表现出将近3.5%的增长。

具体数据表格如下:

| 1. | VMware | **16% +** |

| 2. | MySQL | 11% + |
| 3. | Apache | 13% + |
| 4. | Amazon web services (AWS) | 14% + |
| 5. | Puppet | 9% + |
| 6. | Hadoop | 0.2% + |
| 7. | Git | 7% + |
| 8. | Oracle PL/SQL | 8% - |
| 9. | Tomcat | 15% + |
| 10. | SAP | 3.5% + |

这篇文章就到这里,我会积极跟进这个系列的下一部分。敬请期待,保持联系,积极评论。不要忘了给我们提供你的反馈。喜欢的话就分享吧,让更多人认识我们。


via: http://www.tecmint.com/famous-it-skills-in-demand-that-will-get-you-hired/

作者:Avishek Kumar 译者:wi-cuckoo 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

美国作家 Kurt Vonnegut(当代幽默讽刺大师冯内果)过去总是将他的演讲题目定为“如何得到一份跟我一样的工作(How to Get a Job Like Mine)”,然后在演讲的时候讲任何他想讲的东西。我的状况跟他相反,我被告知可以讲任何自己想谈的。于是我决定,与其谈论网际网络的未来或是集体协作(mass collaboration),我最感兴趣的恐怕还是“如何得到一份像我这样的工作”。

 title=

所以该怎么做呢?毫无疑问,第一步当然是选对基因:我是出生在美国的白人男性,家境不错,父亲在电脑产业工作。然而不幸的是,我也不知道怎样才选得到这种好康,所以讲这个大概没什么用。

但是另一方面,刚开始的时候我只是被困在美国中部一个小镇的孩子,所以我的确摸索出一些让我逃离这里的撇步。我想我可以将这些方法与各位分享,希望多少能够减少一些生命中的不公平。

第一步:学习(Learn)

我做的第一件事,你们可能都听说过了,就是学习电脑、网际网络以及网络文化。我读了一大堆书、看了大量的网络文章,并且作了一些尝试。首先我加入了一些电子邮件通讯列表(mailing list,一种特定群组内部互相发送群组电子邮件的名单),试着去理解大家在讲什么,直到我自认 OK 了才加入大家的讨论之中。

我逛网站,也打算作一个自己的网站。最终我学会了如何打造一个 web 应用程序(web app)并且着手进行。当时我 13 岁。

第二步:尝试(Try)

我做的第一个网站是 get.info。这个点子是希望有一个免费的线上百科全书,让所有人都可以在网站上新增、编辑、组织内容。我全部自己来,还加入许多很酷的功能,也差不多在所有浏览器上测试过,我感到非自豪。这个网站当时也的确得过奖,成为年度最佳创新 web 应用程序之一。很不幸的,那时候我认识的人都只是学校里的孩子,所以其实没什么人可以写出很多篇百科条目。(幸好几年之后,我妈妈告诉我有个新网站叫“维基百科”,做的事跟我的网站一样。)

第二个我做的网站叫“my.info”。这个点子主要想解决的问题是,与其从网络上不同的地方获取新闻,何不有个程序自动从网页上将所有的新闻集中到一个地方呢?后来我完成了,网站也顺利运作,但我并不是唯一想到这个点子的人,那时有许多人正在着手开发一个新技术“syndication(联合供稿)”。有一组人从中分离出来,打算为它建立一个叫“RSS 1.0”的技术标准,我加入了他们。

第三步:抓紧机会(Grab)

从学校毕业的那个夏天我还没有工作,所以有很多时间可以自由运用。我把所有的时间花在阅读 RSS 1.0 电子邮件群组的内容,做尽了所有奇怪的工作或是任何他们需要帮忙的事。很快地,他们就问我想不想成为他们的一员,最终我成了 RSS 1.0 技术规格的共同制定人。

RSS 1.0 是建立在一种叫“RDF(Resource Description Framework,资源描述框架)”的技术上,经常引发大家激烈的讨论。所以我也开始研究 RDF,加入了他们的电子邮件群组,研读相关资料、问一些蠢问题,渐渐地我开始搞懂它了,于是很快我在这个 RDF 的圈子有点名气。当他们宣布打算成立新的工作群组制定新的 RDF 规格,我决定偷偷跟上。

一开始我先问那个群组的成员我能不能加入,他们拒绝了。由于我真的很想加入那个群组,所以我想出别的办法。我读了 W3C(World Wide Web Consortium,全球资讯网协会,负责制定 web 标准,不过其标准仅是“推荐”而非强制)的规则,W3C 就是负责运作那个工作群组的组织。他们的规则说,工作群组可以拒绝让别人加入,但是如果有 W3C 的成员组织推荐,那么就不得拒绝。所以我开始找 W3C 的会员组织名单,找了一个看起来最友善的,问他们可不可以推荐我加入那个工作群组,他们同意了。

成为工作群组的成员表示每週要参加电话会议、大量的电子邮件或是透过 IRC(Internet Relay Chat)讨论,偶尔要飞去奇怪的城市和别人碰面、有许多人要认识。

我是 RDF 的信徒,所以很认真地想让别人采用它。当我看到哈佛的 Lawrence Lessig 教授正在建立一个叫“Creative Commons(创用 CC)”新组织时,我寄了一封信给他,说他们的计划应该采用 RDF,并解释给他听。几天之后他回覆说:“好主意,你可以帮我们做这件事吗?”

所以我后来就加入了 Creative Commons,也因此到各地参加研讨会或聚会,也认识了更多人。大家开始认识我之后,我也开始在各地、各个领域中有了朋友。

第四步:创建(Build)

后来我放下这些去史丹佛读了一年大学,那是加州一间有如田园诗般的小学校,阳光永远是那么闪耀、草地永远是那么地绿、学生总是往外跑。那里有一些很棒的教授,我也的确学到很多,但我感受不到知性的气氛,因为大多数的学生似乎一点也不在乎学习和研究。

但是在接近年底的时候,我收到一封署名“Paul Graham”的信,他说自己正要开始一项“Y Combinator”计划。背后的概念是找一群聪明无比的程序设计师,将他们聚在一起、给他们一些钱、完成一切文书作业后成立新公司。这群人在打造新公司/服务的同时,也很用心地学习Y Combinator 教的一些必要知识,例如商学、如何找投资人或买主等等。Paul 建议我提出申请加入Y Combinator。

于是我照做,也入选了。在长时间辛劳地工作后,我发现自己正在做一个叫“Reddit.com”的小网站。其实我们根本不知道自己在干嘛,我们没有任何商业方面的经验,我们真正打造一个产品的经验也不多,甚至我们也不知道自己的网站到底行不行,或是为何可行。每天早上我们起来就是确认服务器没有挂点、网站没有被垃圾留言给占领、使用者也没有弃我们而去。

当我刚开始做Reddit 的时候,成长得很慢。这个网站很早就上线了,我们只用了几周就做好。前三个月里,每天超过三千人造访已属难得,也差不多就是一个RSS feed 的基本水准。后来,过了几个礼拜马拉松式的coding,我们将Reddit 从Lisp 语言换成Python,我也因此在博客写了一篇文章。这件事受到许多人注意,没有人生气起来像Lisp 粉丝那么夸张。直到今天,我在派对上自我介绍时提到自己在Reddit 工作,人们还是会说:“噢,是那个从Lisp 转换出去的网站。”

差不多就是那个时候,网站的流量开始起来了。之后的三个月,我们的网站流量翻倍了两次。每天早上我们都会查看一下流量图表、看看我们表现得如何——加入的新功能是否获得关注、我们的网站是否在网友间口耳相传、使用者有没有抛弃我们等等。每一天数字都成长得更高。每当我们稍稍从工作中休息一下、喘口气,网站看起来还是成长得一天比一天快。

但我们还是不知道要怎么赚钱。我们在网站上卖T-Shirt,但是每当我们赚了一点钱,也只能用来订更多T-Shirt 来卖。我们也开始卖广告,然而表现得并不好,差不多就是每个月几块钱。我们也想过授权“Reddit 技术”给其他像我们一样运作的网站,却找不到谁真的需要这种授权。

很快地,Reddit 每个月都有数百万的使用者造访——一个远超过美国一般杂志读者的数字,我会知道是因为当时跟很多杂志发行商聊过,他们都很好奇Reddit 的魔法使否也适用在他们身上。一开始,我们对他们建议的每件事都说好,而且很幸运地,也都管用,因为我们写程序的速度比他们写一份正式合约的速度还快。

此外,线上新闻网站也开始注意到Reddit 能为他们带来巨大的流量。他们觉得在所有文章加上某种“Reddit this”的链接可以带来更多流量。但是据我所知,加入这种链接其实对文章在Reddit 更受欢迎其实帮助有限(而且还会让你的网站看起来更丑),不过这的确是帮我们打了许多免费的广告。

没多久,谈合作就变成谈收购。被收购——我们一直以来的梦想!再也不必烦恼网站赚不赚钱。有些公司愿意接手这件事,我们还会因此致富。于是我们放下手边所有的事务进行协商,然后那些工作就一直被晾在一旁。

我们花了好几个月协商。首先,我们对价格争论不休。我们准备了一堆计划跟报表,到他们公司总部做简报、参加永无止境的会议、讲一大堆电话。最后对方回绝我们的报价,我们就这样走了。后来他们的态度改变,我们还是握手同意了交易,开始商讨一些关键的部份,然后谈判又破裂。最终定案前我们这样来回了大概三、四次,还因此停下手边的工作长达半年之久。

我开始必须疯狂地考虑金钱问题。因为压力的关系,我们开始变得很敏感、缺乏生产力。我们开始互相吼叫、冷战,接着再设法回头一起工作,然后又开始彼此互相大吼。在收购定案前,这家公司几乎要分崩离析。

最后,我们跟律师一起签完了所有文件,隔天钱就进了户头,结束了。

我们全部移到旧金山,开始到Wired News(我们被Condé Nast 这家拥有WIRED 等多本刊物的巨型出版公司收购)办公室上班。

那时我蛮惨的,我难以忍受旧金山、难以忍受办公室的生活、难以忍受WIRED。我生病了,过了一段很长的圣诞假期,也想过自杀,跑给警察追…… 当我礼拜一早上回到办公室,他们叫我辞职。

第五步:自由

失业的前几周感觉蛮怪的。多亏旧金山的阳光,我在家附近闲晃,也读了很多书,但没多久我就发现自己需要做点事。我开始写书、开始整理我在心理学领域发现的有趣研究,我不是要谈那些研究结果,而是用说故事的方式。每天我都去史丹佛大学的图书馆(史丹佛大学对心理学家来讲是所好学校)。

但有一天我接到Brewster Kahle 的电话,他创办了Internet Archive,一个意图将所有东西数位化之后放上网络的超酷组织。他说他想要将我们过去聊过的计划付诸实现。那个点子就是收集世界上所有书里的资讯然后将之共同存放在一个地方,一个自由的维基系统(a free wiki)。

译注:这里的“维基”指的是网络上开放且可供多人协同创作的超文字(hypertext)系统。

于是接下来几个礼拜我投入了这个我称之为“图书馆”的工作,号召程序设计师、与一位设计师合作,并且做了其他奇奇怪怪的工作,就为了让网站上线。最终这个网站成了“开放式图书馆(Open Library)”(openlibrary.org)。这个网站很多部分的工作是由一位非常优秀的印度程序设计师完成:Anand Chitipothu。

另一位朋友Seth Roberts 建议我试着去改善高等教育系统。虽然对于解决方案我们无法达成共识,但我们一致同意一个好办法:一个告诉学生不同职业之间差异为何的维基系统。这个网站就快上线了。

另一位老朋友Simon Carstensen 寄来一封E-mail 说他从大学毕业了,打算找我创办一家公司。Well,一直以来我都有份创业点子的清单,于是我就把排行第一的点子拿来用:让架设网站变得跟填一个文字输入框一样简单。接下来几个月我们不断努力让网站变得越来越简单(同时也变得比较复杂)。这个网站最近上线了,叫Jottit.com。

同时我还申请担任两个暑期程序计划的“导师(mentor)”,这两个计划都极富野心而且相当惊人,也就快上线了。

我也决定要投入新闻工作,第一篇文章已经刊登出来。我弄了几个跟科学有关博客,开始着手进行我自己的学术论文,这是基于我自己对“谁才是真正写维基百科的人”此一议题的研究。有一些人,包括Jimmy Wales(维基百科创办人)这位维基百科发言人,都声称维基百科并非是个大型的分散式计划,差不多就是500 人左右在贡献内容,许多人还是他也认识的。他是做了一点研究支持自己的论点,但我在处理数字上面更加小心,也发现截然不同的结果:维基百科上有非常大量的内容是来自于新的编辑者,许多人甚至还没有申请帐号,只是在条目中东加一句西加一句。为何Jimmy Wales 会犯下这个错误?因为他看的是每一个使用者做出更改的次数,却没有观察到他们所更改的“量”有多大,所以这500 多人对维基百科做了非常非常多的编辑工作,但他们每一次编辑所修改的内容都很少,大多只是修改拼字错误、更改格式等等。所以我们似乎更有理由相信这500 人是在“编辑”维基百科而非认为他们是在“撰写”维基百科。

我的建议

所以秘诀是什么?我如何用简洁的几句话就说完做过的事,让自己听起来像是个还不赖的人?

保持好奇心、广泛地阅读、尝试新事物。我想许多人们所说的智慧,追根究柢都是源自好奇心。

接纳一切事物。我很不擅长说“不”——到了病态的程度,无论是计划、访谈邀约或是对朋友。我做过非常多的尝试,即便当中大部分都是失败的,我还是有所作为。

假设其实没有人知道自己在干嘛。有一大票人拒绝尝试,因为他们觉得自己知道的不够多,或是他们假设自己所想到的所有方法其他人一定已经全都试过了。Well,的确有一小搓人真的知道该怎么把事情做对,而知道要尝试新事物的人又更少。所以如果你愿意在某些事上全力以赴,想信你会做得不错。

遵循这些法则造就了今日的我,一大堆专案让我压力冲天。

每天早上我起来收信,查看有哪个计划今天会崩盘、有哪个最后期限得赶上、有哪个演讲需要准备、有哪篇文章我得编辑……

或许,有天你也会像我一样,万一果真如此,希望我能帮上忙。

(全文完)

本文的作者相信大家都猜到了,他是Aaron Swartz。这样一位年轻才华洋溢的人,却在年仅26岁之龄,于纽约家中自杀了,令人不胜唏嘘。以下来自百度百科

Aaron Swartz,1986年11月8日-2013年1月11日,一位程序员、作家、政治组织策划人和积极行动主义者。他年仅14岁就参与创造RSS 1.0规格,因而在程式设计圈当中声名大噪。2011年7月19日他被指控自 JSTOR 非法下载大量学术期刊文章,并遭联邦政府起诉被捕,因而获得主流媒体关注。斯沃茨是 Demand Progress 和 Progressive Change Campaign Committee 的共同创办人。他曾住在美国马萨诸塞州的剑桥,于2013年1月11日自杀。

诸如Apple、Facebook及Google这样的大公司正在开发他们自己的编程语言,开发者们被迫只有适应。

前不久的世界开发者大会上,Apple公布了它的新开发语言Swift。这是最近大型技术公司们开发的一大波新语言中的最新成员,这些新语言某种程度上都是专门应用于他们自己的平台。

对iOS开发者,Apple有Swift;而Facebook 有 Hack —— 一门用于后端开发的语言。与此同时,Google已经拥有了它自己的Javascript替代者 Dart,以及一门新的通用编程语言Go。

这一波又一波的新语言,给开发者们带来了许多问题。也许其中最严重的问题正如我一位同事Adriana Lee在Apple发布Swift后所说:

(开发者们到底还得学习多少门语言?) ——Adriana Lee (@adra\_la) June 2, 2014

计算机语言的通天塔

目前已经存在的编程语言有数百种,同时还有更多的语言正在涌现。其中许多都是被设计用在相对较窄的应用程序范围内,大多数甚至从未走出过项目小组的范围。

与此类似,大技术公司开发的新语言其实也是伴随着公司一起成长的。通用语言的鼻祖,C语言),就源于上世纪70年代初的AT&T贝尔实验室。Java,目前作为Android app开发的主要语言,诞生于上世纪90年代Sun公司的Microsystems系统)。

发展到现在,不同之处在于,公司们拥抱新语言、从而想要延伸的特定商业目标的范围不一样了 —— 这一过程同时建立了一个忠心耿耿的开发者基础,他们被牢牢锁定在了某个公司的特定平台上。这类一石二鸟的战略,最早可以追溯到Sun对Java的采用,当时公司就将其作为了挑战微软PC桌面统治地位的一种手段。(事情虽然没有像Sun计划的那样发展下去,但在Google转向Android之前,Java大体上也算是在企业中间件系统中找到了自己的一席之地。)

这么看来,Apple的Swift其目标也就很明确了。Swift应该不会辜负公司前期的大肆宣传,通过磨平Objective-C那粗糙的毛边,看起来它能够成功简化iOS app开发者的开发过程。但是同样还是这些开发者,他们却需要学习一门新语言的输入和输出,而这些功能很可能在其他地方都不会用到。

大公司们为什么要重复造轮子

“不要重复造轮子”这一哲学在绝大多数开发者心中根深蒂固,大公司们对此却并不买账。那他们为何不只是修改下现有语言用于新的用途呢?

答案很简单,公司们发明他们自己的语言,是因为他们有这个能力。设计一门新语言可能很复杂,但对资源要求却并不很高。困难之处也就在对其提供支持,包括提供软件资源(共享代码库、API、编译器、文档等)以及赢得开发者的支持。大公司们在这两方面尤其擅长。

还有一个事实,现有语言通常很难硬塞进如今的复杂代码框架中。举个栗子,Facebook决定发明的Hack,就是一个普遍适用于Web开发的脚本语言PHP的超集合(superset)。

Facebook的Hack最近已经比较普遍,其主要目标就是改进代码的稳定性,针对这一目的,它强制在程序运行之前对数据类型进行检测。这样的检测确保了一个程序,比方说,不会将一个整数解析为一个字符串,这样的错误如果捕获不到很可能会导致不可预知的后果。在Hack中,这些检测会预先执行,以便程序员能够在程序上线前早早发现这样的错误。

据Facebook的Hack项目组核心成员Julien Verlaguet透露,公司之前尝试过用一门现有语言实现更高效的编程。但是Facebook的大部分代码都是由PHP编写的,公司实际上已经建立了一个支持PHP及其分支的软件架构。即使能够让PHP同其他语言编写的代码协同工作,实现的难易程度和运行速度都无法满足要求。

“比如说我们尝试用Scala重写PHP代码库,”Verlaguet说。“Scala是一门设计优秀的漂亮语言,但是它与PHP完全不兼容。每次我需要从Scala的代码库部分调用PHP的时候,都会损失性能。我们很愿意使用一门现有语言,但是对于我们来说,这条路行不通。”

于是,Facebook发明了Hack,它与PHP一样能够共用公司现有的架构。Verlaguet介绍说,Facebook的代码库主体已经从PHP迁移到了Hack,同时公司将Hack开源,希望独立开发者们能够帮公司找到Facebook以外的用途。

“你仍然可以使用PHP,”他说,“但是我们希望你有使用Hack的欲望。”

谁说了算

公司和开发者之间有一种微妙的平衡。公司可以按照自己的喜好发明语言。但是如果开发者都不愿使用这门语言,那就没人用了,公司以外的人也就没人愿意将自己的职业生涯托付给这家公司。

公司在开发过程中同时使用不同的语言,这并不少见。例如,你可能用Objective-C开发iOS app,但却用Java开发Android app。对开发者来说,这从来都不是症结所在,因为Objective-C和Java都是通用面向对象语言。它们用途广泛适用于很多场合。

然而,Hack、Dart、Go和Swift,到目前为止,仍然只适用于严格特定公司的编程解决方案,往往和公司选择的编程环境相对应。诚然,现在下结论可能还太早。比方说Hack,就可以用在一些后端的实现中;它只是太新了,以至于Facebook还没有任何数据供人们如此使用。

不是开发者不能学习多门语言。事实上,大多数人已经掌握了多门语言。这好比罗曼斯语(一种由拉丁语演变而成的语言),如果你会说西班牙语,再去学法语就比那些不会西班牙语的人简单许多。与此类似,如果你已经会Java,再学Ruby或Perl就简单得多。如果你会PHP,基本上就已经学会了Hack。

与此相反,学习多门语言更多的是一个习惯问题。如果Java已经解决了你的问题,你就不再有动力去学Ruby。如果你用Objective-C编写iOS app感觉很爽,你就不会有强烈的意愿去学Swift。

另外,对于一些开发者来说,封闭生态系统的语言只会使每个人的生活变得更糟。例如,自由设计师Jack Watson-Hamblin就告诉我说,像Apple这样强势推出Swift,其实是在冒险增加程序员的负担,同时将开发者社区割裂开来:

程序员掌握多门语言固然重要,但是不断强迫他们紧跟新语言,却是行不通的。如果我正在开发一个简单的跨平台app,我可不想被迫掌握四门语言再来完成它。如果真的需要,我也只想使用一门语言。

Watson-Hamblin就主张说,当每家公司都为了自家需要发明自己的语言时,程序员的注意力被分散,开发的视野也局限于一种,这只会拖慢整个开发进程。他说,“如果拿公司负责一门语言与负责一个开源社区相比较,这两者的区别就好比一家大企业与一个初创小公司的区别”。社区生来就更加灵活,适应能力更强。

当然,Apple有许多非常好的理由推出Swift从零开始,就像当初Facebook发明Hack的时候一样。我并不是说,大公司不会强迫开发者接受这种改变,在这方面,有些公司一直都很让人讨厌。

“新语言的发明,伴随着霸权的支配,”Verlaguet说,“被迫不停追赶,确实令人沮丧,但另一方面,你又多了一种解决问题的新语言。反过来想想,要是全世界的程序员都用同样一门语言做所有事情,即使啥都凑合着能干,这门语言也一定干得不怎么样”。

题图来自于Flickr user Ruiwen Chua,CC 2.0


via: http://readwrite.com/2014/06/17/apple-swift-facebook-hack-google-dart

译者:Mr小眼儿 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

IT技能清单调查报告结果显示,雇主所需的Linux人才应具备的IT技能可分成相对独立的组群。本文将着重介绍在上一个季度(2013年7月-9月)需求度最高的3组IT技能,这些技能在包括美国在内的被选国家招聘广告中都有所提及,同时结果表明这三组技能可以和Linux相关的工作领域需求相匹配。

报告指出在上一季度具有嵌入式开发人员相关技能的人才是Linux专业雇主亟需的一类。排在第二位和第三位涉及的技能领域分别对应虚拟化技术和LAMP管理。本文将基于这三类工作清单涉及到的技能需求加以讨论,并对分析后的三组技能间的依赖结构关系加以洞悉。

如果您尚未阅读IT技能清单,我们强烈建议您在阅读以下内容前先熟悉这篇文章。它详细阐明了本次研究中用到的方法,本文也是基于IT技能清单的材料才得以进一步分析。

2013年8月IT技能分类更新

在IT技能清单这篇文章中,LinuxCareer.com分析了2013年5月到6月底的Linux工作清单,我们在这个基础上将2013年7月到9月底这个时间段的更新也加至分类分析中。10类相关的IT技能在Linux招聘广告中出现的比率列于如上条形图中。IT分类图表表明如何基于分类设计出此条形图。我们可以看到,IT技能需求前三组为:占据27%的Linux就业市场份额的嵌入式开发人员需求,占20%就业份额的虚拟化技术工程师和占12%Linux就业份额的LAMP管理员。文章接下来的三部分将围绕这三项IT技能需求组及三者的相互关系展开详细的讨论。例如,MySQL和PHP这两项技能有强关联性,通常雇主都会一起考虑。另外要指出的是,LinuxCareer.com的这项调查里掌握Linux的基础知识已默认存在于任一招聘需求中。

嵌入式开发人员及程序员

需求最高的第一类技能组是针对嵌入式开发人员及程序员的。如下的依赖图详细阐明了技能间的关联关系,尤其表明了哪几项技能更可能同时出现在Linux招聘需求中。例如,嵌入式开发非常需要C/C++/C#相关技能,而这些语言要么在图表下部的深色矩形区域,要么在图表上部的对应圆形阴影中聚集。

总体来说,这组技能可以进一步细分成如下三类:

  1. Android, Embedded, C/C++/C# 和 Java。如果您准备在嵌入式领域发展,这些是你需要掌握的核心技能,而C/C++/C#或Java掌握其一便可满足雇主需求,因为Java是基于部分C/C++/C#性能的扩展性语言。如果您阅读了8月的IT技能表,就会发现,Java以9513分居于编程语言的榜首,而C/C++/C#是5403分。如果您尚在犹豫是掌握C/C++/C#还是Java,从技能表得分看起来Java应该是更好的选择。但根据如下图表显示,C/C++/C#似乎在嵌入式领域的招聘需求中更受欢迎。总结可得尽管Java在IT技能表中有更高的得分,但在嵌入式开发职位上掌握C/C++/C#会比Java更有用。
  2. Python, Perl 和 Bash。这些是对脚本编程语言技能的补充。对Perl和Python语言的需求经常会在招聘中同时出现,当然,也可以理解成这两种语言技能都是需要掌握的。
  3. Git, Subversion 和 Jira。这些软件知识会应用到源码管理、调试和项目管理中,同时了解这几个方面的知识对相关项目的编程大有裨益。目前,主流开源项目和大量合作项目都在用类似的软件管理他们的源码。

涉及数据仓储及管理的虚拟化技术工程师

目前第二大需求技能组是如下依赖图所示与虚拟化技术工程师相关的技能。这一组可进一步细分成两部分,第一部分是Redhat, VMware, vSphere, ESX/ESXi, XenServer 和 Citrix,这些技能对寻求虚拟化技术工程师的工作很重要;第二部分是同Unix系统、数据仓储及管理相关的技能。同时这两部分是紧密联系的。显然VMware和ESX/ESXi及vSphere是相关的,因为ESX/ESXi是VMware虚拟机下提供的虚拟产品,而vSphere是VMware虚拟机的云端虚拟操作系统。Redhat和VMware、Citrix产品被分到同一部分同样有其原因。这里Solaris和AIX具有密切关系的原因可以理解为它们都是专有的Unix系统,掌握其一便可。

LAMP管理员

最后,第三大技能组是如下依赖图中显示雇主需求的LAMP管理员应具备的技能。LAMP是Linux、Apache、MySQL和PHP的简称,所有这四项内容是作为一名LAMP管理员所要了解的核心。这是一组相对来说小规模却会引领你至在Linux路途中发展更远的技能。实际上,PHP和MySQL的密切关系表明这些技能中的任一项都不能脱离其它技能来单独掌握。

总结

本文基于就业能力和Linux专业人员需求技能分组阐明了两点。第一点是对经常出现的IT技能通过集群分析划出了10类IT技能组;第二点是基于Linux工作需求与相应技能组的对应结果,嵌入式程序员在Linux招聘需求比率最高,第二及第三技能需求比率最高的领域分别对应虚拟化技术工程师及LAMP管理员领域。这三大技能组即为上一季度分析出的Linux技能需求的核心。

参考

[1] Percentage of Linux job ads linked with corresponding skill groups created by GNU R. Relevant package: graphics.

[2] Dependency charts created by GNU R. Relevant package: corrgram.


via: http://www.linuxcareer.com/insights-into-top-3-it-skills-groups-in-highest-demand

译者:icybreaker 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出