翻译: How to Choose a Programming Language
微信公众号后台以及知乎私信经常受到这样的提问:甲哥,我十分想学习编程,但是编程的语言众多,我该如何进行选择呢?许多人对代码很好奇。不幸的是,选择一种编程语言可能是一个主要的障碍,因为人们缺乏必要的信息做出一个好的决定。
在这一切开始前,我希望你考虑好你想用代码去干什么,当然是目标越明确越好,我希望这个目标不是说为了得到一个好的工作。就算你得到了一份不错的工作,薪资也不错,但是你能确保你不讨厌吗?代码无处不在,这意味着你将会有很多的选择。你想做APP吗?你对Arduino和Raspberry Pi感兴趣吗?你是一个研究员,想要尽量掌控自己的数据?你可以用代码完成很多事情,并且机会会越来越多。
当你开始考虑你想研究什么,做什么并且贡献点什么的时候,你就可以开始考虑要学习哪门语言了。可能有很多种语言让你选择,你仍然会混乱、困惑,别担心,所有的编程语言都有优缺点,某些语言在特定领域被更频繁地使用。通过选择项目或目标,您已大幅缩小了选项。
简单来说,你不会在去西藏之前花几个月的时间刷普通话。当然,在西藏部分地区可能有几个人会说普通话,但是学习藏语会更好。如果你提前知道目的地,你将从一开始就正确的工作。
但这不是那么容易
以上我说的听起来好像很简单,但是你还是很难决定你想做什么。一旦你得到一个一般的普遍的想法,它会变得十分混乱。假设您想要构建Web应用程序。太好了,现在你谷歌用来做Web应用程序的语言,然后......你...... 你找到一个论坛上发帖说... OK ... PHP似乎流行...但是Ruby也......嗯,这个人与Twitter追随者TON说...... AHHHHH ......算了吧!
有人会告诉你先学习JavaScript,然后有人会告诉你Python的语法更简单,所以你应该从Python开始。然后你会听到Java和所有可用的工作...
所以你会怎么做?你可以继续精炼你的目标。也许有一个特定的公司,你想为之工作。他们在那里使用什么?你可能会得到一个总体思路stackshare,这是一个网站,显示许多公司的技术堆栈(不同的技术杰作,走到一起,形成使用服务)。
其他一些有益的网站论坛,包括StackOverflow和知乎等。不幸的是,这些论坛可能导致前面提到的一些混乱,这些论坛的所谓大V仍然不能给你一个好的建议,让你十分的苦恼。
我建议你去和自己信任的人面对面的交谈 ,询问在这个领域工作的人,让他们为你推荐合适的语言。
我还建议你投入技术社区。这些社区的技术氛围很浓,对于初学者来说是十分有益的,如果你能在社区中认识一些志同道合的前辈,那一定是一个不错的机会。
说了这么多,我想下面说一下我所了解的主流语言的用武之地。
HTML / CSS
人们通常从学习HTML和CSS开始,为什么?这两种语言对于创建静态网页是必不可少的。你在网站上看到的所有文本,链接,和其他内容都是HTML(超文本标记语言)结构;CSS是使网页看起来漂亮的样式。
为什么不从HTML和CSS开始?您可能不感兴趣为Web创建内容。正如我前面所说,你可以做很多代码,Web只是它的一部分。但是,如果你有兴趣制作网站,肯定从HTML和CSS开始。
JavaScript
JavaScript是许多人的第一个完整的编程语言。为什么?这是学习HTML和CSS后的逻辑下一步。JavaScript提供的行为一网站的部分。例如,当您看到表单字段指示错误时,这可能是JavaScript在工作。
JavaScript已经变得越来越受欢迎,它不仅仅出现在网络浏览器中。学习JavaScript将使你处在一个更好的地位,因为它是一个更通用、流行的语言,JavaScript现在似乎无处不在。
Java
Java与JavaScript没有任何有意义的相关。Java可用于从Web应用程序到桌面和移动应用程序的任何东西。Java在大型企业应用程序中有很强的存在 - 例如银行,医院和大学软件。它还支持Android应用程序,因此它是那些倾向于移动开发的人的不错选择。
Swift
苹果于2014年6月发布Swift作为开发Mac,iPad,iPhone,Apple Watch和Apple TV应用程序的现代语言。如果你想进入iOS的世界,Swift是你的不二之选。
PHP
PHP是最流行的网络语言之一。它支撑了大量的网站,如Facebook和Etsy等。WordPress和Drupal都是用PHP编写的,这两个平台今天在网上上线了大量的网站。因为它的流行,学习PHP将很好地为你服务,如果你打算编写Web。
Python
Python是一种通用语言,用于从服务器自动化到数据科学。Python对初学者来说是一门伟大的语言,因为它很容易阅读和理解。你也可以用Python做这么多事情,很容易坚持使用语言相当一段时间,在需要别的东西。当然Python也可以创建Web应用程序,如Instagram和帮助研究人员了解他们的数据。
不要担心
选择一种编程语言可能仍然看起来不堪重负。不用担心,你不会出错的,只要你选择一种经常在技术上使用的语言,你就赢了。当你开始时,目标是在基础中变得坚实,几乎所有现代编程语言的基础是相似的。
无论您选择哪种语言,变量,循环,数组或函数的概念都是相同的。如果您决定参与前端Web开发,您可以选择JavaScript。你可能,一段时间后,无聊。你然后认为构建手机应用程序听起来很有趣。现在你需要学习Objective-C,Swift或Java。你所学习的JavaScript对这些没有一点帮助吗?一点也不。你学到的JavaScript的大部分内容适用于你处理的下一种语言。
学习代码的一部分是学习语言的语法(其语法或结构规则)。学习代码的更大部分,需要更长时间并给让你更头痛的部分是学习解决像程序员这样的问题。你可以很快地学习英语的语法结构; 然而,你不会真正理解语言,直到你把这种语法结构用于在对话中。在编程中也是如此。你想学习核心概念,以解决问题。在一种语言中这样做与在另一种语言中做的类似。
因为核心概念从语言到语言是类似的,我建议坚持使用您选择的任何语言,直到您对核心概念的理解是坚实的。
贵在坚持
无论你选择什么,首先将是具有挑战性的,坚持!这可能意味着需要一段时间来处理所有的新信息,但不要放弃。不管如何,一定要选择一个感兴趣的项目。如果你对一开始的项目不感兴趣了,没关系重新选择一个感兴趣的。你现在还没开始工作,你的生活和时间都不受控制,所以尽情地选择享受它吧。
Good luck in your coding journey!
...更多文章,关注:知乎专栏 - 学习编程