华尔街学徒工
软件工程师需要学什么
软件工程师(Software Engineer)可以说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。下面是我整理的关于软件工程师需要学的内容,希望可以帮助大家!
软件工程师就是从事软件开发相关工作的人员的统称,它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
1、Javascript
第一名的是Javascript,有的职缺中都要求必须会这项技能,那么Javascript为什么这么厉害呢?
最主要在于网络软件开发的盛行,Javascript是很多现有的开发框架的基础除了用在前端的开发(Angular、Ember、Backbone等),也用在后端的架构像是以及资料库数据的读取如MongoDB。
Javascript所建立起来的生态系非常的庞大也造就了大多数的工作都需要这项技能,Javascript本身学起来并不会太困难,如果想要懂一些基本的应用那可以参考这里(这里也推荐大家可以看下马海祥博客的《老程序员给初学者的一些建议和忠告》相关介绍)。
2、Java
榜上的第二名是Java ,占了,关于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在的职缺上这项技能都是必须的。
根据Asurvey的调查有79%的受访者仍然是使用关系资料库也就是为什么SQL受到欢迎的原因,但这并不代表NoSQL就不重要虽然MongoDB在榜上只有,但是它主要被用在需要快速存取资料的产品上,像是Craigslist还有Expedia。
NoSQL与SQL究竟孰好孰坏,在资料库的社群上一直是一个广受争论的议题,绝大多数的任认为NoSQL是未来的趋势,但是以目前而言,SQL仍然是占了上风。
5、Javascript Frameworks
建立在Javascript上的开发框架总共有三个、以及,这类的框架可以让你很简便而且快速的处理前端的开发,然而这三种开发框架由于性质相近,因此也有很多的谁才是最好的争论。
目前是由Google所开发的站在榜上第一,当然这三种开发框架都有自己的好处,像是比较适合大型的开发,比较简单易学,让合作开发更简单。
6、
这里马海祥也特别提下,其原因是在于逐渐增加的使用者,以及大型公司像是Linkedin以及Wal-mart的使用。
是一个基于Chrome JavaScript运行时建立的一个平台,用来方便地搭建快速的易于扩展的网络应用借助事件驱动,非阻塞I/O模型变得轻量和高效,非常适合运行在分布式设备的数据密集型的实时应用。
可以在不新增额外线程的情况下,依然可以对任务进行并行处理——是单线程的,它通过事件轮询(event loop)来实现并行操作,对此,我们应该要充分利用这一点,尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
品名暂无
软件工程师需要学习以下知识:(1)熟悉计算机系统的基础知识;(2)熟悉网络操作系统的基础知识;(3)理解计算机应用系统的设计和开发方法;(4)熟悉数据通信的基础知识;(5)熟悉系统安全和数据安全的基础知识;(6)掌握网络安全的基本技术和主要的安全协议与安全系统;(7)掌握计算机网络体系结构和网络协议的基本原理;(8)掌握计算机网络有关的标准化知识;(9)掌握局域网组网技术,理解城域网和广域网基本技术;(10)掌握计算机网络互联技术;(11)掌握TCP/IP协议网络的联网方法和网络应用服务技术;(12)理解接入网与接入技术;(13)掌握网络管理的基本原理和操作方法;(14)熟悉网络系统的基本性能测试和优化技术,以及可靠性设计技术;(15)理解网络应用的基本原理和技术;(16)理解网络新技术及其发展趋势;(17)了解有关知识产权和互联网的法律、法规;(18)正确阅读和理解本领域的英文资料
幸福人生168
初级部分:面向对象程序设计、JavaAPI使用、数据结构及算法基础、Java高级类特性、异常处理;及Swing图形程序设计、流、网络程序设计、对象序列化、Applet、多线程程序设计、Java应用国际化基础;桌面系统项目开发;编程基础提高课程:反射机制、设计模式(I)、正则表达式,新特性等;5.基于Oracle的数据库开发及管理、数据库设计、标准SQL、PL/SQL编程;、、、JavaBean编程;Tomcat服务器使用、Jbuilder及Eclipse等集成开发环境;操作系统中的Java程序开发、Linux系统管理;编程提高课程:JDBC进阶、高效分页处理、过滤器使用技巧、Struts中动态表单验证、DispatchForm等;高级部分设计模式、Struts架构核心工作机制、国际化、验证框架、StrutsTaglib、ORM基础、基于Hibernate的企业级应用;手机游戏设计、界面程序设计、数据库程序设计、手机短信、多媒体短信(彩信)开发;核心技术、XML、WebService、异构系统整合、分布式应用开发、WebLogic和JBoss等应用服务器;、UML与系统建模和设计、RationalRose、软件工程和软件过程模型、版本控制及设计模式;企业级应用开发提高课程:Hibernate使用技巧、设计模式(II)、Spring编程入门、提高JavaEE应用的性能;.NET程序设计.NET架构、.NET桌面和Web程序设计、.NET与JavaEE平台应用的整合;职业素质IT职业规划、沟通技巧、团队合作、专业技术规范、面试技巧等职业技能培训。完成以上培训课程后,通过考核就可以获得培训机构颁发的合格证书。现在比较吃香的是JAVA,特别是J2EE,未来3G出来后,手机编程将成为热点,J2EE当然就会很吃香了。关于证书的权威性,建议你要去知名的培训机构去,最好是像SUN这类国际大公司有关认证所指定的培训机构,这样权威性高些。一般来讲,软件公司是非常喜欢通过了软件工程师的人员,学历对他们来说并不重要,而重要的是能力。如果你的能力够强,在一个好的公司的话,这个月薪我想应该是可以拿到的。
水金之幻
软件工程师需要学习以下知识:(1) 熟悉计算机系统的基础知识;(2) 熟悉网络操作系统的基础知识;(3) 理解计算机应用系统的设计和开发方法;(4) 熟悉数据通信的基础知识;(5) 熟悉系统安全和数据安全的基础知识; (6) 掌握网络安全的基本技术和主要的安全协议与安全系统;(7) 掌握计算机网络体系结构和网络协议的基本原理;(8) 掌握计算机网络有关的标准化知识;(9) 掌握局域网组网技术,理解城域网和广域网基本技术; (10) 掌握计算机网络互联技术; (11) 掌握TCP/IP协议网络的联网方法和网络应用服务技术;(12) 理解接入网与接入技术;(13) 掌握网络管理的基本原理和操作方法;(14) 熟悉网络系统的基本性能测试和优化技术,以及可靠性设计技术;(15) 理解网络应用的基本原理和技术;(16) 理解网络新技术及其发展趋势;(17) 了解有关知识产权和互联网的法律、法规;(18) 正确阅读和理解本领域的英文资料。
优质工程师考试问答知识库