如何选择第一门编程语言?
译者:“互联网+”时代,不懂点计算机、不会点编程是不行的。但是编程语言数目众多,近几年还诞生了Rust、Ceylon等新生语言,到底该如何选择?
Udacity网站根据2014年编程语言排行的数据,制作了一张非常清晰的信息图(见文末,已翻译制作为中文版),帮助大家更好地进行选择。而本文的作者IBM公司的资深工程师SIMON LIGHTSTONE则在信息图的基础上,针对不同行业的人给出了自己的建议。
译文中多次提到学习Python的好处,让我更加坚定了继续学习的动力。作为Python爱好者,我也在这里向没有编程基础的初学者,推荐Python作为第一门语言。至于之后选择哪一个方向继续发展,感兴趣的朋友还可以看我在简书发布的另一篇文章:学习Python:做数据科学还是网站开发?
译文链接:编程派(http://codingpy.com/)
原文链接:Lifehack
程序员的工作机会众多,而且薪资也不错。
即使你不想从事程序员这个职业,学点编程仍然是没错的。尤其是对于那些网页设计、数字营销、企业和IT行业的工作岗位来说。
但是你应该学习哪门语言呢?
Udacity网站制作了一张很棒的信息图(见下文),有助于你选择。但是我还想讲得更深入一点。
在它们那张信息图的基础上,我会根据你的愿望,分门别类地给出我的建议。比如,我会针对于旅行爱好者、设计师、IT人员或者其他职业的人员给出建议。
过去一年中,我面试了很多人,面试的岗位也不一样。我经常和其他也在招聘的技术公司交流,对比各自的笔记。这使得我比较了解技术的长远发展方向(跟大家透露一下,我在IBM工作)。
怎么做到在任何地方能找到工作?
你热爱旅行吗?如果是的话,你应该选择像Python这样的网络开发语言,在C语言上投入的时间要少一点。
推荐一些帮助学习的云平台:要去高水平的网站,比如Heroku,BlueMix和Azure。如果了解亚马逊的AWS也不错,但是与其他选择相比,学习曲线比较陡。作为初学者,你应该关注的是编程概念,而不是如何配置。
你可以在Stack Overflow Careers和Angel.co两个网站上找到远程工作机会。
如何打造出色的硬件?
如果你计划打造实实在在的东西,推荐给你两个很棒的原型开发用板:树莓派和Arduino。可以看这篇二者的对比文章详细了解。
在我看来,树莓派是一个更好的选择,因为Python语言比C语言更容易学。但是如果你想要打造硬件,最终你是不得不学习C语言(和C++)。
但是,如果是做个人“物联网”项目的话,有时候购买一台便宜、碎屏的iPhone或Android手机会更简单些。
通过IBM的BlueMix IoT演示项目,不需要编程,你就可以立即追踪智能手机的3D位置和震动情况。之后,你可以修改用于演示的Python代码,做些自己认为酷的事情。(比如说,把iPhone藏在你前任的床垫下面,看看能不能找出些规律。)
我是一名程序员,如何提高薪资水平?
除了学习一门新语言外,还有一个策略就是学习、掌握更多的利基企业系统。例如,你可以学习像Hadoop和Spark这样的大数据系统。(网上有很多免费学习这些技术的地方,比如IBM的大数据大学或Edx.org)
如果我选择的职业不是编程呢?
对于IT和网页设计,我有如下建议。
但是其他行业呢?有一些编程知识会不会有帮助?
首先,如果你不知道sumif()
是什么,那你应该花点时间学习一门Excel课程。Excel表格比大家想象的要强大的多。大多数程序员在进行编码之前,都会尝试使用Excel进行计算(如果能算出来的话)。举个例子,Excel中利用数据制作一张精美的图表,只要几分钟,但是纯编程的话,可能需要很多个小时(甚至几天的时间)。
之后,你应该学习下面这些知识:
HTML:每一个网站使用了HTML。(而且,很多移动应用现在也在使用。)不论你现在尝试深入掌握WordPress,或者需要设置数字营销工具,懂一点HTML都是有好处的。
CSS:CSS,又称为“层叠样式表”。它是网站用来选择网页的字体和颜色时,所使用的一种特殊排版语言。
JavaScript:懂一点JavaScript,在你需要给老板调整网站插件时是挺有用的。
PHP、Visual Basic或者ASP.net中的一种:这些是非常容易学习的语言,可以让你快速地做出些有用的东西来。另外,它们还是日常编写脚本和建设网站时所使用的语言。懂类似Python或Java这种语言,对于解决普通员工日常碰到的编程问题没有太大帮助。(因为它们主要用于更大规模的计算机服务器编程,网络应用开发或者是编写系统脚本)。值得说明的是,了解JavaScript或者PHP之后,之后可以很容易地转到Python语言。它们的基本概念是一致的。
我是一名IT从业人员,应该学习哪种编程语言?
如果你是Windows管理员,那么就学HTML和PowerShell。如果你是Linux管理员,就学HTML和bash脚本。
在IT行业,你不需要学习编程就可以赚大钱:拥有企业级技术证书或资质的话,和程序员的薪资是差不多的,有时甚至更好。但是懂得如何编写bash脚本就是一个优势。
网页设计师应该学习哪种编程语言?
学习SASS这种基于CSS的语言是个很好的起点。之后,重点学习JavaScript。最后学习Node.js,也就是不依赖于浏览器运行的JavaScript。Node.js市场现在很火热,之后长期都会如此。不要偏离JavaScript领域。相反,要专攻Node.js,深入学习。(注意,以后io.js可能会取代Node.js。所以你要与JavaScript社区保持技术上同步更新。)(译者注:最近io.js与Node.js已经合并了代码库,不过作者说的保持技术更新是没错的。)
关于信息图的最后一点说明
Udacity在描述JavaScript的发展趋势时,我想他们应该没有把这点考虑进去,即Node.js只是不依赖浏览器运行的JavaScript。
2005年,对Node.js工程师的需求异常的高。如果开不出6位数的薪资(截至2015年十月),很难招到一名拥有丰富Node.js经验的工程师。
随着越来越多的人学习Node.js,市场也许会慢慢平静一些。最后一点忠告:Node.js比原生JavaScript要难掌握的多。所以,如果你是初学者,请先学习原生JavaScript,然后再转到Node.js。
最后,奉上Udacity制作(EarlGrey@codingpy.com编译)的信息图。
来源:编程派
小枣君有话说:
很多同学问我,搞通信的要不要学编程。小枣君的答案是肯定的,而且小枣君认为,不仅是通信人需要编程,所有工科和理科生都需要学习编程,甚至包括文科生。
一种语言是打开一个世界的窗户,就像英语会让你更加了解英文国家。以后都是人工智能、云计算、大数据的天下,学会一门程序语言,就能够理解信息世界的思维方式,还能够帮助自己更好地与信息世界交流和沟通,一定是有好处的。
从短期角度看,程序语言能力对于提升工作效率有很大的帮助,例如excel宏。
所以,选一门语言,开始学习吧!