相信大家对于 Inside 前一阵子发表的「2014 百大最佳职业,软体工程师跃居冠军」这篇文章仍记忆犹新。相信大家第一个想到的问题就是我不是资工系毕业的,有办法找到一个软体工程师的工作吗? 很幸运的 Medium 有一篇文章「Top Tech Skills Required for Entry-Level Programming Jobs (初阶软体从业人员必须要学会的科技)」给了我们解答,这篇文章从美国知名求职网站 Indeed 中对于 231 份并不要求资工系学位的工作中,整理出了你必须会的一些科技技术,让你即使不是资工系出身,但藉著学会这些技术(其中包含语言,平台,框架,资料库等)帮助你抢上初阶工程师的滩头。
资料来源:Talentbuddy
Javascript
在这些技术海中,第一名的是 Javascript ,有 42.4 % 的职缺中都要求必须会这项技能。Javascript 为什麽这麽厉害?最主要在于网路软体开发的盛行,Javascript 是很多现有的开发框架的基础除了用在前端的开发( Angular 、Ember 、Backbone 等),也用在后端的架构像是 Node.js 以及资料库数据的读取如 MongoDB 。Javascript 所建立起来的生态系非常的庞大也造就了大多数的工作都需要这项技能。Javascript 本身学起来并不会太困难,如果想要懂一些基本的应用那可以参考这裡。
Java
榜上的第二名是 Java ,占了 34.2% ,关于 Java 有些人认为它一个比较过时的语言也认为它即将被淘汰。但是根据 TIOBE Index 上的排行(根据程式语言的普及与受欢迎程度),Java 还是名列第二的。Java 不仅没有被淘汰,它还过得很好仍然是很多大企业爱好的后端语言。Java 之所已受到企业的重视,一个很大的原因不止是因为他本身好用,而是因为学好 Java 让你学其他程式语言相对容易,因为 Java 是种物件导向语言而且不需要处理指标( Pointer ),加上他有很好的开发环境( IDE )让初学者使用起来相对的简单,可以说是身为一个软体工程师绝对要懂得基础。以笔者的经验而言 Java 学起来比 Javascript 稍微难一些网路上关于这方面的资源也不缺乏,像是 MIT 就有提供他的课程教材免费让大家学习。
HTML
在榜上第三名是 HTML,HTML 严格说起来并不是一种程式语言它是一种标记语言( Markup Language ),简单来说就是利用标记可以达到与单纯的文字不同的效果。例如一段文字在前后加上标记就可以加上超连结。HTML 是网路开发中基础中的基础,尤其在前端的开发上了解 HTML 每一个标记的功能是必要的。 但是笔者还是要强调他本身并不是一种程式语言,如果只会 HTML 对找工作是没有任何帮助的,他只是基本中的基本。在这裡也推荐一个网站让大家可以花大约一天的时间就学会 HTML。
SQL and NoSQL
除此之外,榜上有名的是 SQL 在 31.2%的职缺上这项技能都是必须的。根据 Asurvey 的调查 有 79% 的受访者仍然是使用关系资料库也就是为什麽 SQL 受到欢迎的原因。但这并不代表 NoSQL 就不重要虽然 MongoDB 在榜上只有 4.3%,但是它主要被用在需要快速存取资料的产品上,像是 Craigslist 还有 Expedia。
NoSQL 与 SQL 究竟孰好孰坏,在资料库的社群上一直是一个广受争论的议题,绝大多数的任认为 NoSQL 是未来的趋势,但是以目前而言 SQL 仍然是占了上风。
Javascript Frameworks
建立在 Javascript 上的开发框架总共有三个 Angular.js 、Ember.js以及 Backbone.js,这类的框架可以让你很简便而且快速的处理前端的开发。然而这三种开发框架由于性质相近,因此也有很多的谁才是最好的争论。目前是由 Google 所开发的 Angular.js 站在榜上第一。当然这三种开发框架都有自己的好处,像是 Angular.js 比较适合大型的开发,Backbone.js 比较简单易学,Backbone.js 让合作开发更简单1。
Node.js
在原文中也特别提到了 Node.js 原因是在于其逐渐增加的使用者,以及大型公司像是 Linkedin 以及 Wal-mart 的使用。
结语
文章中提到了很多种的程式语言与科技技术,或许有些读者会认为把上面所说的每一项都摸一遍就可以找到一份软体工程师的工作。关于这样做有没有效果不敢保证,但是如果对于其中特定的几项技能能够有深刻的了解,对于找到一份软体工程师的工作有绝对的帮助。当然以笔者在国外求学以及找工作的经验而言,要找到一份软体工程师的工作所需要的绝对不止这些,这部分就留在下次与读者分享。