初级软件工程师必须要学会哪些编程技术
软件工程师(Software Engineer)可以说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格,通俗的来说,软件工程师就是从事软件开发相关工作的人员的统称,它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。

如果你不是计算机系毕业的,可又想做个软件工程师,那如何才能找到工作呢?对此,我们不妨从美国某知名求职网站中对231份并不要求计算机系学位的工作中,整理出了你必须会的一些编程技术,即使你不是计算机系出身,但试着学会这些技术,就可以助你成为一名初级软件工程师,那么究竟哪种编程技术最重要呢?又要学会那些编程技术呢?

1、Javascript
第一名的是Javascript,有42.4%的职缺中都要求必须会这项技能,那么Javascript为什么这么厉害呢?
最主要在于网络软件开发的盛行,Javascript是很多现有的开发框架的基础除了用在前端的开发(Angular、Ember、Backbone等),也用在后端的架构像是Node.js以及资料库数据的读取如MongoDB。
Javascript所建立起来的生态系非常的庞大也造就了大多数的工作都需要这项技能,Javascript本身学起来并不会太困难,如果想要懂一些基本的应用那可以参考这彦(这里也推荐大家可以看下马海祥博客的《老程序员给初学者的一些建议和忠告》相关介绍)。
2、Java
榜上的第二名是Java ,占了34.2%,关于Java有些人认为它一个比较过时的语言也认为它即将被淘汰。
但是根据TIOBE Index上的排行(根据程式语言的普及与受欢迎程度),Java还是名列第二的,Java不仅没有被淘汰,它还过得很好仍然是很多大企业爱好的后端语言。
Java之所已受到企业的重视,一个很大的原因不止是因为他本身好用,而是因为学好Java让你学其他程式语言相对容易,因为Java是种面向对象语言而且不需要处理指标(Pointer),加上他有很好的开发环境(IDE)让初学者使用起来相对的简单,可以说是身为一个软件工程师绝对要懂得基础。
以马海祥的经验而言,Java学起来比Javascript稍微难一些网络上关于这方面的资源也不缺乏,像是MIT就有提供他的课程教材免费让大家学习。
3、HTML
在榜上第三名是HTML,马海祥觉得HTML严格说起来并不是一种程式语言它是一种标记语言(Markup Language),简单来说就是利用标记可以达到与单纯的文字不同的效果。
例如一段文字在前后加上标记就可以加上超连结,HTML是网路开发中基础中的基础,尤其在前端的开发上了解HTML每一个标记的功能是必要的。
但是马海祥还是要强调他本身并不是一种程式语言,如果只会HTML对找工作是没有任何帮助的,他只是基本中的基本,在这里也推荐大家可以花一点时间看下马海祥博客的《12种最常用的网页编程语言简介》相关介绍。
4、SQL and NoSQL
除此之外,榜上有名的是SQL在31.2%的职缺上这项技能都是必须的。
根据Asurvey的调查有79%的受访者仍然是使用关?资料库也就是为什么SQL受到欢迎的原因,但这并不代表NoSQL就不重要虽然MongoDB在榜上只有4.3%,但是它主要被用在需要快速存取资料的产品上,像是Craigslist还有Expedia。
NoSQL与SQL究竟孰好孰坏,在资料库的社群上一直是一个广受争论的议题,绝大多数的任认为NoSQL是未来的趋势,但是以目前而言,SQL仍然是占了上风。
5、Javascript Frameworks
建立在Javascript上的开发框架总共有三个Angular.js、Ember.js以及Backbone.js,这类的框架可以让你很简便而且快速的处理前端的开发,然而这三种开发框架由于性质相近,因此也有很多的谁才是最好的争论。
目前是由Google所开发的Angular.js站在榜上第一,当然这三种开发框架都有自己的好处,像是Angular.js比较适合大型的开发,Backbone.js比较简单易学,Backbone.js让合作开发更简单。
6、Node.js
这里马海祥也特别提下Node.js,其原因是在于逐渐增加的使用者,以及大型公司像是Linkedin以及Wal-mart的使用。
Node.js是一个基于Chrome JavaScript运行时建立的一个平台,用来方便地搭建快速的易于扩展的网络应用Node.js借助事件驱动,非阻塞I/O模型变得轻量和高效,非常适合运行在分布式设备的数据密集型的实时应用。
Node.js可以在不新增额外线程的情况下,依然可以对任务进行并行处理——Node.js是单线程的,它通过事件轮询(event loop)来实现并行操作,对此,我们应该要充分利用这一点,尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
马海祥博客点评:
文章中提到了很多种的程式语言与科技技术,或许有些读者会认为把上面所说的每一项都摸一遍就可以找到一份软件工程师的工作,对于这样做有没有效果,我不敢保证,但是如果对于其中特定的几项技能能够有深刻的了解,对于找到一份软件工程师的工作有绝对的帮助。
当然以马海祥曾经的求学以及找工作的经验而言,要找到一份软件工程师的工作所需要的绝对不止这些,这部分就留在下次与读者分享。
本文发布于马海祥博客文章,如想转载,请注明原文网址摘自于http://www.mahaixiang.cn/bcyy/738.html,注明出处;否则,禁止转载;谢谢配合!您可能还会对以下这些文章感兴趣!
-
原来还能这样评价编程语言!
如果编程语言是女人,PHP是你的豆蔻年华的心上人,她是情窦初开的你今年夏天傻乎乎的追求的目标。玩一玩可以,但千万不要投入过深,因为这个女孩有严重的问题。Perl是PHP的姐姐。她对你来说年龄稍微大了一点,但在90年代,她是相当受欢迎的。她和Larry Wall(译注:Perl……【查看全文】
-
你知道Java内部的这些事儿吗?
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群,在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。你是不是写Java已经……【查看全文】
阅读:659关键词: java 日期:2014-11-21 -
一个美国程序员对IT行业招聘的吐槽
今天听到一个朋友抱怨说“作为程序员,找工作有时候似乎挺苦逼的。”说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕??我们没有任何可靠的方式来甄别会写代码并且写得好的人。这的确是真的,我们这行在这方面做得很糟糕。即……【查看全文】
-
计算机语言的发展简史
计算机语言总的来说分为机器语言,汇编一语言,高级语言三大类。而这三种语言也恰恰是计算机语言发展历史的三个阶段。1946年2月14日,世界上第一台计算机ENIAC诞生,使用的是最原始的穿孔卡片。这种卡片上使用的语言是只有专家才能理解的语言,与人类语言差别极大,这种……【查看全文】
-
为什么Swift编程语言刚一推出就这么火?
Swift语言是苹果公司在2014年WWDC(苹果开发者大会)上发布的全新开发语言,从演示视频及随后在appstore上线的标准文档看来,语法内容混合了OC,JS,Python,语法简单,使用方便,可与Objective-C*共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。作为一项……【查看全文】
-
盘点史上最奇葩的10大编程语言排行榜
一般来说,人们大多都认为编程语言很容易使用和学习,因为编程语言就是应该给你提供数据结构让你来解决实际问题,它们的语法也应清晰明了,容易理解且执行速度快,不应该有任何bug。但有时候编程语言设计者们会创建一些违背这些原则的语言,要么供研究使用,要么纯属娱……【查看全文】
-
初级软件工程师必须要学会哪些编程技术
软件工程师(Software Engineer)可以说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格,通俗的来说,软件工程师就是从事软件开发相关工作的人员的统称,它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一……【查看全文】
-
Python语言代码的性能优化方法大全
选择了脚本语言就要忍受其速度,这句话在某种程度上说明了python作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在performance较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率。那么我们该如何进行Python性能优化呢?接下来我就跟大家……【查看全文】
-
老程序员给初学者的一些建议和忠告
对于课程有这样简单的选择方法:如果你是计算机系的,请学好你所有的专业基础课;如果不是,请参照计算机系的课程表。如果你发现自己看一本书时无法看下去了,请翻到书的最后,看看它的参考文献,找到它们并学习它们,再回头看这本书。如果一本书的书名中带有“原理”……【查看全文】
-
工作中令程序员最生气的10件事情
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用,这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理,模块化思维能力的提高是程序员……【查看全文】
分类目录
互联网更多>>
盘点2010年代这10年的重大网络安全事件
二十一世纪的第2个十年即将过去,在过去十年里有很多的重大网络安全事件发生,我们见证了过去十年,大量的数据……
互联网思维的一些特征
如今,互联网迅猛发展已经渗透人们生活各个方面,尤其是互联网正加快向传统行业渗透和融合,对传统行业提出严……
基于高斯模糊原理的模糊图片的研究
高斯模糊(Gaussian Blur)的原理中,它是根据高斯曲线调节象素色值,它是有选择地模糊图像。说得直白一点,就是高……
SEO优化 更多>>
-
移动端手机站做站内优化的要点
随着移动流量的与日俱增,移动搜索引擎的功能…… -
SEO是什么?
对于刚入SEO行业的新人来说,要想做好网站的s…… -
百度搜索将推出飓风算法2.0:严厉打
为了营造良好的搜索内容生态,保护搜索用户的…… -
今年网站SEO优化要注意的6大策略
通俗的来说,SEO技术就是一种达到SEO效果所采用…… -
史上最全的网站SEO策略方案
在搜索引擎优化中,一个网站的SEO策略能最终影…… -
如何使用留言评论进行推广引流
随着新媒体的快速发展,留言评论变得随处可见…… -
网站收录量对于网站排名的影响作用
很多做SEO的朋友都会问,是不是网站收录越多网…… -
百度冰桶算法5.0:保障移动搜索用户
为了提升移动搜索落地页体验,营造优质的移动……



PHP、JSP和ASP.NET全面对比,那种编程语言更好?
竞品分析报告的3大步骤
产品经理怎样用数据指标分析的思路优化产品?
新接手一款App该怎么做App优化推广?
如何利用O2O模式经营一家理发连锁店
免费模式赚钱的核心竞争是什么
网赚新手快速寻找暴利项目产品的4大途径
依靠电子商务改变茶叶营销模式会遇到什么难题?
视频网站为什么很难赚钱?
数据分析的流程及分析方法
今日头条能否成为自媒体赚钱的新平台



响应式网页设计的现状与难点
动效设计的物理法则及应用
基于交互体验的扁平化设计要点 
