什么是2016年最值得学习的编程语言

Python015

什么是2016年最值得学习的编程语言,第1张

TOP1:JavaScript

豁然醒目排名第一的是 JavaScript,毋庸置疑,JavaScript的关注度持续增长,使之成为大势,尤其是现在它也可以用来开发后台,甚至能用来构建本地语言的移动应用(通过使用React Native),随着移动端各种跨平台框架的需求,js 被予以重任。JavaScript将持续地获得更多的开发工具,并且以相当快的速度升级着,所以你可以料想到它将来仍然会极度的重要。还有一点,我有一些同学做前端工程师工资比我高很多,毕业一年后就月薪2万五,听说他们公司急缺H5,bootstrap,angular.js、react.js 等等这些前端技术工程师,开的工资也蛮高的。所以有对 web 前端感兴趣的同学,js 是必备技能,工资也乐观。

TOP2:Java

我学的第一门语言就是Java。Java一直稳居榜单前几位,这能体现编Java的持久热度。Java有一些极佳的后台开发工具并且Java更多的为企业开发着想。另外,Android 使得Java在流行语言中有了大爆发,大多是企业因Java的稳定和扩展性而对它钟爱有加。因此,Java在未来几年将继续作为最流行的编程语言而坚挺下去。

TOP3:Python、Ruby、PHP

Python、Ruby、PHP,这三种都是属于动态语言,动态语言通常被人们认为更加适合初学者学习,因为它们更加多样化也更加有趣。你可以很快地用相对少的代码构建一个应用程序,在你希望用代码实现某个你想要的功能时,没有太多的强制规则限制。

由于动态语言通常是很高级的语言,你只需要话很少的时间去掌握编程语言的细节,从而让更多的精力集中于学习编程概念上,由于初学者对于能让学习成果立竿见影感到很有动力,这也是动态语言在初学者中很流行的另一个原因。

Python

想必大家多听说过Python爬虫,因为@向右奔跑前辈之前用Python爬虫分析出了简书中的"首席评论官"(该用户没文章,确实简书上评论次数最多的用户),Python适合给初学者的入门编程语言。开发者可以用它来编写桌面端和服务器端的应用,它也有用来数据挖掘的很好的工具。另外,Python在科学计算,数据分析,生物信息等学术领域也非常流行。很多的公司已经开始用Python构建软件了。

Ruby

为了让开发更加开心和高效地开发而设计的语言,Ruby因Ruby on Rails框架而流行,Ruby on Rails 是一个一站式的 Web 开发框架,为了开发者开发的便利而优化。

Ruby 主要被用来做后端的开发,一些很流行的网站比如 Airbnb,Shopify,Bloomberg,Hulu,Slideshare,和更多的网站开始用Ruby on Rails构建后台。我最近也想用Ruby来构建自己的个人博客。

PHP

PHP是一门服务器端的脚本语言,由于易于其代码掌握而通常被认为是对初学者友好的语言,PHP入门并不难。大部分网站曾经用过PHP构建,因为很大程度上这就是一门专门为Web开发设计的语言。

Facebook, WordPress等更多的网站曾用过PHP构建。

TOP4:C++

C++是一门基于C的强大语言。它是设计用来编写系统软件的,但也用来编写游戏或者是游戏引擎,桌面应用,移动应用和web应用。C++非常强大和快速,所以以至于Facebook用它开发了一些高性能的,可靠的组件。

许多软件的部分是用C++来构建的,包括Adobe系统,Amazon,Paypal,Chrome等等。想C一样,C++通常被认为是初学自学比较难的,所以如果你决定把C++作为你学习的第一门百年城语言,最好是通过在一些分享会上找个好的导师,或是找一个C++的编程老师教导一下。

TOP5:CSS

对于喜欢各种炫酷吊炸天的效果的必备技能,当然,只掌握CSS是完全不行的。当你没有充分了解HTML,JS等等,你不会走的太远。你需要的越多,学习掌握的也就越多。

TOP6:C#

像我自己公司很多系统都是用C#写的前端,Java写的后端。C# 是被设计成在.NET框架在开发的一门语言,主要在微软的Windows上运行。

C# 被用来进行web开发,游戏开发和一些微软通用的开发。尽管微软在过去并不提倡跨平台兼容,Xamarin一直致力于一个名为Mono开源项目,这个项目目的是把C#移植到其他平台上和给Linux开发者提供更好的开发工具。你现在也可以通过Xamarin使用C#为iOS和Android构建本地移动应用。

TOP7:C

C 通常被用于系统软件的开发,也是操作系统的通用语言。

C语言几乎影响了所有我们介绍的编程语言,尤其是Objective-C和C++。所以如果你很了解C语言,你在学习其他语言时就不会有什么困难。由于使用C完成一个简单任务需要更复杂的代码,初学者也许会发现如果他们如果把C作为入门语言,会很难保持学习的动力。然而C语言的有关知识会使一个程序员受益匪浅。

Objective-C / Swift (for iOS development)

Objective-C 是在C语言上进行了一层封装,使得它变成静态,但同时也能用于动态类型。苹果的Swift是一门设计成与Objective-C兼容的的静态语言,但它的静态类型使得他更不容易出错。

受Python的启发,Swift是想成为编程新手易于掌握的语言,也是按照能修复一些Objective-C的问题的方向设计的。

宏观方面

一、 JAVA。

要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级)

工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您

对JAVA的所有包都浏览一下,知道大概的API,这样您就发现其实您想实现的很多功能,通过JAVA的API都可以实现了,就不必自己费太多的脑经 了。

二、 设计模式。

其实写代码是很容易的事情,我相信您也有同感。但如何写得好就比较难了。这个“好”字包括代码可重用性,可维护性,可扩展性等。如何写出好的代

码往往要借助一些设计模式。当然长期的代码经验积累,只要您用心,会使您形成自己代码风格。相信您的代码也比较符合代码的可重用性,可维护性,可扩展性。

但既然前人已经给我们总结出了经验,我们何不踩着前人的肩膀前进?

三、 XML。

现在的系统中不使用XML几乎是不可能的。XML的功能非常强大,它可以做数据转换、做系统的配置、甚至可保存您的系统业务数据。因此您必须了解

XML,包括它的语法,结构。您还需要比较熟练的使用解析XML的一些API,比如JDOM,SAX等,因为在我们一般的项目中,XML往往担当系统配置

信息的作用,您需要用这些API解析这些配置信息,开发完美的项目。

四、 精通使用一种或两种框架。

“框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开

发使你可以省出很多的开发成本”。这里希望您能精通,更多的是希望您能通过框架的使用了解框架的思想。这样您在开发一个项目时思路会开阔一些,比如您

会想到把SQL语句与您的JAVA代码分开,再比如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项目就很容易扩张了。

五、 熟悉主流数据库。其实真正比较大的项目都是有人专门做数据库的,但往往很多项目要求作为(高级)工程师的您也参与数据库的设计以及SQL的编写。所以为了

更好的为国家做贡献,建议您还是多了解一些主流数据库,比如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出

身,您还需要补充一些数据库原理方面的知识。

六、 精通一种或两种WEBServer。

因为作为JAVA工程师,特别时

想成为高级JAVA工程师的您,您不可避免地要部署您的项目到WebServer上,而且只有当您精通一种WebServer,您才可能最大限度地使用它

的资源,这往往可以节省很多时间和精力。

七、 UML。

您肯定想成为高级工程师,因此您有必要了解或熟练或精通UML,这取决于您有多大决心想成为高级工程师和项目经理。在比较正规的开发团队

中,UML是讨论项目的交流工具,您要想做一个软件工程师,您至少要能看懂,您要想做高级工程师,您要能通过它来描述您对项目的理解,尽管这不是必须,但

却很重要。

八、 站在高度分析问题:

这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而

不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在

您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。

九、 工具。

您在这个阶段可能接触到不同的工具了,尽管您还需要使用JB或者IDEA,但能可能对

ROSE,Together要多了解一些,因为您要画UML了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页面让初级程序员去写吧

微观方面

1.Core Java部分

这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下:

a.面向对象编程思想(封装继承多态接口)

b.字符串处理

c.java.lang包,java.util包等常用包

d.java异常处理

2.Java高级部分

a.Java I/O流

b.Java多线程技术

c.Java网络编程

d.Java Swing

后两项可以了解即可,如果项目需要可以深入研究

3.前端基本技能

* HTML + CSS网页开发

* JavaScript

* Jquery

* 浏览器兼容性 CSS hack(了解)

4.熟练使用JSP + Servlet进行开发

5.MVC设计模式,原理,以及相关框架,如Struts

6.SSH框架

7.缓存技术 session &cookie

8.熟练使用一种以上Java开发工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

9.熟练使用XML

JDOM w3c.dom SAX

10.Java设计模式

工厂模式,单例模式 ==

11.Java反射机制

反射的各种用法

12.了解或熟悉 C, C++, .NET

13.熟悉JDK的配置,环境变量

14.数据库oracle必学,其他最好了解一种以上(mysql,sql server,access==)

oracle:视图,索引,存储过程,触发器,游标,包,常用函数 ==

15.数据库原理

事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案==

16.JDBC,连接池

17.Ajax,反向Ajax

18.HTTP协议,request 和 response的原理,HTTP status(了解常用的),Https原理

19.熟悉Linux基本命令,使用过Linux/Unix系统,可以编写shell脚本,可以在Linux上部署项目

20.了解windows系统批处理脚本bat

21.了解HTML5,最好学习过

22.熟悉一种JS框架,如Prototype

23.J2EE原理 熟悉一种以上web容器如Tomcat,JBoss,websphere,weblogic==

24.熟悉ant或maven

25.熟悉一门脚本语言,如python ,ruby

26.了解php/ asp

27.了解ftp协议及原理

28.熟练使用Junit测试,熟悉Mockito等测试工具

29,熟悉javac,javadoc,native,native2ascii等常用命令

30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究过一些的算法。

31.了解Flex(不学也没关系)

32.了解敏捷开发模式

33.工作流workflow至少用过一种,如OSworkflow,了解原理

34.使用过VPN了解其原理

35.熟悉jstl表达式和el表达式

36.熟悉webservice,WSDL,SOAP

37.图片处理,如图片上传,预览,限制大小等

38.版本控制工具,CVS VSS SVN

39,JSON技术,JSON+AJAX

40.分页技术,最好自己实现过不仅仅是用过要知道原理

41.Java Mail

42.Java读写txt,excel,JXL技术

43.JVM原理,JVM内存管理,GC,Java堆栈池

44.熟练使用下面的工具:

office办公软件,word,excel,ppt等

plsql,sqldevelop 数据库开发工具

outlook大公司都用

ue编辑器

浏览器控制台,调试

SHH/PUTTY 远程

45.UML建模工具Rational Rose等

46. 使用log4j

47.使用过开放Api如百度,腾讯街景,新浪微博等

48.页面静态化技术(伪静态页面)

49.报表技术,使用过报表制作工具,如水晶易表。

50.定时任务,如Spring batch ,学会自定义batch任务(不适用第三方工具)

51.了解uuid

52.b/s 和 c/s架构

53.正则表达式

54.了解jndi jms

55.ERP

56.UNICODE编码,乱码解决

57.开源网络编辑器,如ckEditor

58.二进制原理

59.使用过,了解过开源论坛框架,如discuzz

60.GWT,Closure框架

61.了解大数据,云计算

62.搜索引擎搜索技术

63.软件工程,项目管理

职业要求

教育培训

计算机相关专业,大专及以上学历。相关专业证书有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD) 认证。

工作经验

有一定的软件分析设计能力;熟悉Java、Servlet、JSP、EJB等开发技术;熟练使用Eclipse或jbuilder等java开发工具;熟悉JAVA+STRUTS体系结构和开发工具;熟悉至少一种数据库的开发和设计;具有良好的学习能力,具有强烈的工作责任心、有良好的沟通能力和团队合作精神。

薪酬参考

据智联招聘上对上海java工程师的薪资据说显示,截止到2012年6月13日,java工程师的平均水平已达6435。根据现在移动互联网中安卓市场的份额,相信这一职业的工资水平会一直上升。

就业前景

Java是目前世界上最流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言。这可以概括JAVA有着自己独特的优势:语言简单、是一个面向对象、分布式应用并且安全、体系结构中立并且可移植,最重要,它是一个动态语言。

权威统计机构统计——在所有软件开发类人才的需求中,对 JAVA工程师的需求达到全部需求量的60%~70%。JAVA工程师的薪水相对较高,通常来说,具有3~5年开发经验的工程师,拥有年薪 10万元是很正常的一个薪酬水平。

JAVA发展方向

一是成为管理人员,例如产品研发经理,技术经理,项目经理等继续二是他的技术工作之路,成为高级软件工程师、需求工程师等。

还是看看IDC Java工程师的薪水相对较高。 Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。

JAVA就业方向:可以从事JSP网站开发、Java编程、Java游戏开发、Java桌面程序设计,以及其他与Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。