专栏首页鲜枣课堂如何选择第一门编程语言?

如何选择第一门编程语言?

译者:“互联网+”时代,不懂点计算机、不会点编程是不行的。但是编程语言数目众多,近几年还诞生了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中利用数据制作一张精美的图表,只要几分钟,但是纯编程的话,可能需要很多个小时(甚至几天的时间)。

之后,你应该学习下面这些知识:

  1. HTML:每一个网站使用了HTML。(而且,很多移动应用现在也在使用。)不论你现在尝试深入掌握WordPress,或者需要设置数字营销工具,懂一点HTML都是有好处的。
  2. CSS:CSS,又称为“层叠样式表”。它是网站用来选择网页的字体和颜色时,所使用的一种特殊排版语言。
  3. JavaScript:懂一点JavaScript,在你需要给老板调整网站插件时是挺有用的。
  4. 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。

本文分享自微信公众号 - 鲜枣课堂(xzclasscom),作者:编程派

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基带、射频,到底是干什么用的?

    说起基带和射频,相信大家都不陌生。它们是通信行业里的两个常见概念,经常出现在我们面前。

    鲜枣课堂
  • 5G消息(RCS),到底是什么?

    4月8日上午,中国移动、中国电信、中国联通联合举行线上发布会,宣布共同发布《5G消息白皮书》,推出“5G消息”业务。

    鲜枣课堂
  • 对于通信专业大学生来说,哪些专业基础能力是必备的?

    对于一个通信专业大学生来说,究竟哪些专业基础能力是必备的?进入通信行业之后,究竟哪些知识更具有实用性价值,有利于工作效率的提升?大学期间不知道该学什么的时候,应...

    鲜枣课堂
  • 初识NodeJS

    1.JavaScript 模块化规范 浏览器环境 AMD Asynchronous Module Definition RequireJS CMD Com...

    用户1174387
  • 小学生编程入门从哪种编程语言学起?

    如果是编程零基础学习者,那么以Scratch为切入点是个不错选择。Scratch语法基于一系列孩子们可以拼插彼此的图形化“代码块”,其设计极具交互性,甚至单击一...

    贝尔科教
  • PHP技术栈

    本文把php程序员划分为中、高级程序员两大类程序员,并针对这两大程序员应具备的技能进行分类探索。

    ianzhi
  • OneinStack 1.7 发布,一键 PHP/JAVA 安装工具

    OneinStack 1.7 发布了,这个脚本是使用 shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa/lnmt(Linux、Nginx/...

    猿哥
  • Node.js VS PHP—你应该选择哪一个?

    现在,WEB开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变...

    企鹅号小编
  • 告别庞大 PSD,轻松测量尺寸

    但是日常开发的一个小弹窗页面,它的 psd 居然需要 30+Mb,所以经常得定期清理 psd...

    前端博客 : alili.tech
  • Vue.js学习系列七——Vue服务器渲染Nuxt学习

    关于SSR的文章网上很多,一开始看得我云里雾里。然后去Vue.js 服务器渲染指南和nuxt官网看了看,发现文章大多都是搬运官网的内容,真正讲的清晰明了的很少。...

    前端博客 : alili.tech

扫码关注云+社区

领取腾讯云代金券