如何选择一种编程语言来立即学习并在2年内找到一份出色的工作

编码并不容易;或至少不是学习编码,尤其是从头开始学习时。要成为一名真正的优秀程序员,可能需要花费多年的精力。那么有没有办法从今天开始选择正确的语言,以便在几年内被录用?

要找出答案,我将这个问题带给了我们的常驻专家小组:所有人都写,我们中的一些人也有编码经验。随之而来的是一个有趣的讨论,在您踏上成为专业程序员的旅程之前,您会希望阅读。

疯狂的方法?

这不是第一次我们讨论选择一种编程语言:回到2011年,我们讨论了应该为软件开发学习哪种编程语言? 。

But this isn’t about one piece of advice (such as “go with JavaScript”) but a methodology — something people could use in two years from today, theoretically. How to actually figure out which languages are on the rise? Which code popularity metrics to trust and which to distrust (and why)? What are the best salary projection websites? Is GitHub an indication or not?

例如,您会发现如今没有人热衷于PHP-但是许多开发人员都在靠编写PHP来谋生,而这仍然是Web上运行的大部分内容。那么学习PHP现在是个坏主意吗? (可能是……)

没有一种语言

这是我们的常驻Web开发人员和技术人员James介入的地方:

程序员通常通常不会学习任何一种语言。任何采用经典CompSci路线的人都将以大量的Java,一些Haskell,一些Prolog(如果他们学习AI的课程),一些Node(如果他们是启动工程的课程),一些PHP(如果他们学习传统课程)而告终。 CMS,一些.NET(如果他们在某个毫无价值的公司办公室实习),一些JavaScript(如果他们进行网页设计),一些C ++(如果他们进行游戏设计)以及一些Ruby(如果他们想用一种没人喜欢的晦涩的语言浪费生命)

没有“方法论",您也不选择要学习的语言:它选择了您!

学习一种语言语言就像整条饼干都只吃了一年的消化道。认真地说,谁根据预计薪水选择工作?

但是如果您不学习CompSci怎么办?

我回答詹姆斯说:

这里是事情:这不是给采用经典CompSci路线的人的。从MOOC爆炸式增长和在线编程课程的数量来看,很多人只是从头开始学习编码。当您这样开始时,您确实需要一种语言作为起点。也许您以后会逐渐放弃它,但是第一语言将是时间和精力的一项重要投资,因此值得这么做。

与我最共鸣的是最后一点他说了一点-谁根据预计薪水选择工作。我认为有些人会这样做,但是我也认为这不是解决问题的好方法。

When it comes down to it, people are trying to figure out which language to start with, and the usage that language gets in the real world carries weight in that decision (not just how easy it is to learn – Pascal…).

首先选择一个项目,然后选择语言

James回来了:

好的,也许这种方法论的要点之一是:没有一种方法论。当我第一次遇到PHP时,是通过WordPress。我具有CompSci编程背景和一些Web设计经验,但是以前从未见过PHP。我之所以学习它是因为WordPress看起来很容易,而且我想弄混WordPress。不是因为我查看了一系列趋势技术,或者是在考虑职业发展,而是因为我想知道一些很酷的东西来使用它。

如果某人只是出于学习目的而学习编程工作,他们会失败。如果他们只是因为喜欢学习如何编程的声音而看着,那么他们选择哪种语言都没关系,只要它可以激发他们的热情即可。

优先选择项目的另一个原因< /

这是Simon提出一些务实建议的时候:

首要的是,这取决于您要开发Web还是“标准"软件。

对于后者,Java相当不错:

  • 简单的OO
  • 多平台(Linux,Windows,Mac,Android)
  • 语法类似于许多其他编程语言(JS,C#)。
  • 关于Web开发的内容不多,尽管HTML / JS / CSS / PHP / MySQL似乎对很多人都有用。

    但是,是的,“在两年内为您找到一份好工作"对我也很不满意。强调学习如何编程的错误方面。一旦编程,就很容易掌握另一种语言。

    被雇用来了解一种特定的语言类似于被雇用为一位知道如何处理MS Excel的PA。如果那是主要的资格,那就可能很糟糕。

    不要学习语言:学习软件设计

    开始形成共识。 PCPC.me Answers的成名者Bruce Epper这样说:

    语言本身并不重要。在进行编程工作时,最重要的方面往往是了解基本软件设计和体系结构,总体编码过程,了解设计模式,何时使用它们以及如何将特定的模式应用于手头的任务-所有这些都与语言无关。一旦程序员知道了这些,就可以轻而易举地选择一种全新的语言。

    甚至,项目管理,文档和写作技能对程序员来说比知道任何一种特定语言都更为重要。

    您要构建的基础:英语还是拉丁语?

    这是盖伊介入的时候,提醒我们所有人,语言在一定程度上很重要:

    我同意,语言本身并不是找工作中最重要的事情。但是,您正在建立的基础。由于我已经完成了这两种方法,所以我将比较编程语言和人类语言。

    Python似乎是当今的英语。越来越多,我看到Intro CompSci和编程课程从Python开始,而不是Java,这似乎是10年来最流行的语言。您可以使用Python做很多事情。

    C ++是编程世界的拉丁。如果您学习了它,则可以学习多种语言的基本原理,并且更轻松地学习它们。如果您使用C ++很好地建立Python,那将是步履维艰。

    无论如何,什么是“编程工作"?

    现在轮到马修了,提醒我们所有人对于不同的人来说,编码器可能意味着不同的事情:

    一个没有被广泛讨论的事情就是您想要什么样的编程工作。

    Are you not too fussed about the perks thrown at Startup employees? Want stability and a decent pay packet, but no equity? Do you like wearing business formalwear? Learn C#, Java or COBOL. COBOL also has the advantage of having every single banking application ever conceived (hyperbole, but you get the idea) having been written in it. With most COBOL developers either retired or dead, there’s a lot of demand for COBOL developers with some earning six figure salaries! However, you’ll be working on huge, badly-written codebases created over multiple decades. That’s not fun.

    但是,如果工作安全不是您的事该怎么办?想要开发有趣的产品,但是当业务模型无法解决时,您是否愿意失业?我发现继续(Hacker News)是一种确定初创企业使用的语言的可靠方法。当我从事早期工作时,我们混合使用Go,Python和CoffeeScript。其他初创公司使用Rails和Groovy以及各种晦涩的框架和语言。只需选择一个,您就会在某处找到有趣的工作。

    新代码,还是旧代码?

    编写新代码与维护现有应用程序的体验截然不同,如Bruce所补充。 :

    使用您对COBOL的评论,您会遇到另一种考虑:您是要开发新代码还是要维护他人的代码?在决定移动方向时,这可能是一个巨大的项目。对于较小的项目,维护由其他人编写的代码库可能还不错,但是我看到一些代码段中,有几个人盯着它问了几个小时,问他们:“这个人在想什么?",或者原始代码在哪里?程序员正在利用编译器中的特定功能或错误(可能已在当前编译器中修复)来完成某件事。

    如果您没有选择余地怎么办?

    Guy回来提醒我们所有人并非所有人都有很多选择:

    Matthew提出了一个很好的问题:“ 您想要什么样的编程工作?"

    Oddly, I never really thought that I’d have much of a choice in the matter. I knew I wanted to do web development when I started, having done other programming recreationally. But I figured I better be prepared to take any job I could get, and be willing to learn as I went. Now I’m a jack of all trades, proficient in several technologies — master of none.

    要弄清您想在哪里工作,确定所需的生活方式很重要。然后查看那些看起来符合您条件的企业发布的信息,并大致了解他们在寻找什么。将类似的东西组合在一起也很有帮助,特别是如果您没有使用它们的技术的正式培训。也许您在学校学习过Java,但是他们使用C#。因此,您可以自学C#,并用它做一些程序,以证明您知道自己在做什么,并且自己具有流动性。

    没有一个简单的答案

    如果有的话该讨论表明,简单的问题并不总是具有简单的答案。但是,在阅读了每个人的意见之后,我感到更加有见识-他们改变了主意。

    我敢肯定,我们在这里并未捕获所有可能的观点-这就是评论部分的目的。无论您是否是专业编码人员,我都很想听听您对这个问题的看法。您将如何选择一种编程语言来在两年内获得出色的表现?那是选择语言的好方法吗?在下面分享您的想法。

    标签: 求职 编程