2016年世界编程大赛

tech2023-05-11  59

2016年世界编程大赛

Craig’s Best Programming Language to Learn in 2015 article was a huge hit, and in this article he offers a fresh perspective on the programming landscape in 2016.

克雷格(Craig) 在2015年学习的最佳编程语言一文获得巨大成功,在这篇文章中,他为2016年的编程前景提供了新的视角。

If you’re keen to learn a new programming language, why not take a look at Elm, a language for building webapps that compiles to JavaScript, with our video tutorial Why Elm?

如果您热衷于学习一种新的编程语言,为什么不看我们的视频教程《 为什么是Elm》,请看一下Elm,Elm是一种用于构建可编译为JavaScript的Web应用程序的语言。



It’s the start of a new year, so it’s natural to start thinking about your future life and career choices. I’ve been analyzing ‘best language’ statistics for several years, and we’ve seen reporting systems rise and fall. GitHut — one of my favorites — has not been updated since 2014. There are still a few around, so let’s look at the most recent data.

这是新的一年的开始,因此自然要考虑您的未来生活和职业选择。 几年来,我一直在分析“最佳语言”统计数据,并且我们已经看到报告系统的兴衰。 GitHut (我的最爱之一)自2014年以来就没有进行过更新。仍然有一些更新,因此让我们看一下最近的数据。

2016年1月TIOBE指数 (TIOBE Index, January 2016)

TIOBE’s latest report assesses the popularity of programming languages using the number of skilled engineers and search engine rankings. The results:

TIOBE的最新报告使用熟练的工程师数量和搜索引擎排名来评估编程语言的流行性。 结果:

Java

Java C

C C++

C ++ C#

C# Python

Python PHP

PHP VisualBasic.NET

VisualBasic.NET JavaScript

JavaScript Assembly Language

汇编语言 Ruby

Ruby Perl

Perl Delphi

德尔菲 VisualBasic

VisualBasic Swift

Swift MATLAB

的MATLAB Pascal

帕斯卡 Groovy

Groovy Objective-C

物镜 R

[R PL/SQL

PL / SQL

TIOBE states their chart is not an indicator of suitability or the number of lines written. Some languages rise because they’re still used and are relatively older than others. There are a few surprises: is VisualBasic still popular? It’s rarely used by professional developers, but it could be that many people use it for simple ad-hoc applications. That said, I don’t know of anyone who’s used assembly language for many, many years?

TIOBE声明其图表不是适用性或所写行数的指标。 一些语言之所以出现是因为它们仍在使用,并且比其他语言还古老。 有一些惊喜:VisualBasic仍然流行吗? 专业开发人员很少使用它,但可能是许多人将其用于简单的即席应用程序。 也就是说,我不认识使用汇编语言已有很多年的人了吗?

DevPost学生黑客报告,2016年1月 (DevPost Student Hackers Report, January 2016)

The DevPost report analyzes the work of 13,281 students participating on almost 10,000 projects during the 2014-2015 academic year. The results show technologies used, although it’s intermingled with programming languages:

DevPost报告分析了2014-2015学年期间参与近10,000个项目的13,281名学生的工作。 结果显示了所使用的技术,尽管它与编程语言混合在一起:

HTML/CSS

HTML / CSS JavaScript

JavaScript Python

Python Java

Java C/C++

C / C ++ PHP

PHP Objective-C

物镜 C#

C# Swift

Swift JSON

JSON格式 Ruby

Ruby XML

XML格式 Ajax

阿贾克斯 Shell

贝壳 Processing

处理中 Lua

a CoffeeScript

CoffeeScript Go

走 MATLAB

的MATLAB OpenGL

的OpenGL

The results mostly highlight what students are working on in their spare time. The projects tend to be dominated by native apps, embedded micro-controllers and wearables, which can be fairly niche technologies in the business world. In addition, these are languages the students wanted to use. Whether they were viable or pleasurable is another matter!

结果主要突出了学生在业余时间的工作。 这些项目通常由本地应用程序,嵌入式微控制器和可穿戴设备主导,这在商业领域可能是相当利基的技术。 另外,这些是学生想要使用的语言。 他们是可行的还是愉快的是另一回事!

立即学习编程! (Learn to Program Today!)

I’m going to state this clearly. Again:

我要明确说明这一点。 再次:

never choose a language from survey results

从不从调查结果中选择一种语言

It would be like choosing to live in a particular town because it has a higher population than others. These statistics are interesting, but they don’t help you pick the most appropriate language for your situation, project requirements or career objectives.

这就像选择居住在特定城镇中,因为它的人口比其他城镇要多。 这些统计数据很有趣,但是它们并不能帮助您选择适合您的情况,项目要求或职业目标的最合适的语言。

Forget choosing a language and start coding in something. It doesn’t matter what you choose. Learn the basic concepts and the majority of other languages become just an alternative syntax.

忘记选择一种语言,开始用某种语言编码。 选择什么都没关系。 学习基本概念,其他大多数语言都只是一种替代语法。

…但不要指望立即精通 (…but Don’t Expect to Become Proficient Immediately)

Developers often make coding look easy — but anything seems easy once you’ve learned it. Unfortunately, our industry has a tendency to underestimate the challenge.

开发人员通常会使编码看起来很容易-但是一旦您学会了,一切似乎就变得容易。 不幸的是,我们的行业倾向于低估挑战。

Have you ever seen books or courses titled “Learn Aeronautical Engineering in 21 Days” or “Bridge Construction for Idiots”? Of course not, yet good developers will spend just as long learning their craft. The primary difference is that development has a lower barrier to entry, and you’re less likely to hurt anyone with shoddy code … unless your software is used to design aircraft or bridges!

您是否看过标题为“ 21天学习航空工程”或“白痴桥梁建设 ”的书籍或课程? 当然不是,但是优秀的开发人员将花费相同的时间来学习他们的技术。 主要区别在于,开发具有较低的进入门槛,而且您使用伪劣代码伤害他人的可能性也较小……除非您的软件用于设计飞机或桥梁!

Coding is difficult. You’ll be able to create a few simple programs within days, but you’ll need many months’ knowledge to confidently tackle a large application. Most professional jobs require several years of solid experience. Even then, you’re always learning. We all look back at carefully constructed programs developed six months ago and think “who wrote that nonsense?”

编码很困难。 您将能够在几天之内创建一些简单的程序,但是您将需要数月的知识来自信地处理大型应用程序。 大多数专业工作需要几年的扎实经验。 即使那样,您始终在学习。 我们都回头看六个月前开发的精心构建的程序,并认为“谁写的这些废话?”

您可以成为一名开发人员吗? (Can You Become a Developer?)

Absolutely — but relatively few people will. If the job was easy, developer demand would never exceed supply. However, I do not believe developers are born with innate coding skills. Anyone can learn to program. Just like anyone can learn to play the guitar or speak Japanese … if they’re prepared to put the effort in.

绝对可以- 但很少有人会 。 如果工作简单,开发人员的需求将永远不会超过供应。 但是,我不认为开发人员天生具有先天的编码技能。 任何人都可以学习编程。 就像任何人都可以学会弹吉他或说日语一样……如果他们愿意付出努力的话。

The key is passion. If you’re excited about seeing your name on-screen or moving a green blob from one point to another, programming could be for you. The best developers are motivated by tasks and are mostly self-taught. Education, books and courses will help, but you only learn coding by doing it.

关键是激情。 如果您对在屏幕上看到自己的名字或将绿色斑点从一个点移动到另一个点感到兴奋,那么编程可能适合您。 最好的开发人员受任务激励,并且大多是自学成才。 教育,书籍和课程会有所帮助,但您只能通过这样做来学习编码。

我应该从哪里开始? (Where Should I Start?)

SitePoint is primarily a web development resource, but the web is a hostile environment for beginners. Even if you concentrate on client-side development, you won’t get far without some knowledge of browsers, HTML and CSS (they’re not programming languages and are considerably more quirky!) Here are solid introductions to HTML and CSS from our Premium content collection.

SitePoint主要是Web开发资源,但Web是对初学者不利的环境。 即使您专注于客户端开发,如果没有浏览器,HTML和CSS的一些知识,他们也不会走得太远(它们不是编程语言,而且更古怪!)以下是我们Premium中对HTML和CSS的可靠介绍。内容收集。

Native OS development in something like Java or C# isn’t much easier. There may be fewer dependencies, but many novices are bamboozled by the IDEs and tools required to get going. A lengthy compile step — which translates your code into something the computer can understand — isn’t conducive to learning.

用Java或C#之类的本机OS开发并不容易。 依赖关系可能会更少,但是许多新手对入门所需的IDE和工具感到困惑。 漫长的编译步骤-将您的代码转换为计算机可以理解的内容-不利于学习。

An interpreted language such as Python, Ruby (we have a great intro) or JavaScript (in Node.js) (ditto) may be a better option, but some are daunted by the command line. It’s also difficult to create anything graphically interesting to hold your excitement.

诸如Python,Ruby(我们有很不错的介绍 )或JavaScript(在Node.js中)( 同上 )之类的解释语言可能是更好的选择,但其中的一些命令却令人望而生畏。 创建任何有趣的图形来保持兴奋也很困难。

Modern development environments are complex, and the initial learning curve is steep. I’m showing my age, but I consider myself fortunate to have learned coding on a ZX Spectrum in Sinclair BASIC. The choice was limited — as was the memory and capabilities — but it allowed me to grasp the basics (of BASIC and coding) without getting bogged down in a stack of related technologies.

现代开发环境复杂,初始学习曲线陡峭。 我正在显示自己的年龄,但是我认为自己很幸运能够学习Sinclair BASIC中的ZX Spectrum上的编码。 选择是有限的-内存和功能也是如此-但它使我能够掌握(BASIC和编码的)基础知识,而不会陷入一堆相关技术的泥潭中。

We’ll never return to the simpler 8-bit days, but there are a number of BASIC environments which could help introduce you to the concepts of code structure, variables, looping and branching, e.g. Basic for Qt, SmallBasic, Basic256 or the ancient QBasic. Snobbier developers berate BASIC because it can teach bad practices, but writing a few lines of terrible code will teach you more than writing none.

我们永远不会再回到简单的8位时代,但是有许多BASIC环境可以帮助您介绍代码结构,变量,循环和分支的概念,例如Qt的Basic , SmallBasic , Basic256或古老的QBasic 。 Snobbier开发人员谴责BASIC,因为它可以教一些不良做法,但是编写几行糟糕的代码将比不编写任何东西教给您更多的知识。

我可以成为一名优秀的编码员吗? (Can I Become a Great Coder?)

Yes — in time. The best coders go through several phases on their programming journey:

是的- 及时 。 最好的程序员在编程过程中会经历几个阶段:

The “I know nothing” phase

“我什么都不知道”阶段

Everything is new, nothing is easy.

一切都是新的,没有什么是容易的。

The “it’s starting to make sense” phase

“开始有意义”阶段

You’ve written a few programs and are making fewer mistakes.

您已经编写了一些程序,并且犯了更少的错误。

The “I’m invincible” phase

“我立于不败之地”阶段

Your confidence matches your competence. No challenge seems too difficult.

您的信心与您的能力相称。 没有挑战似乎太困难了。

The “I know nothing” phase, part II

“我什么都不知道”阶段,第二部分

The sudden realization that development is infinitely more complex and you begin to doubt your own abilities.

突然意识到发展无限复杂,您开始怀疑自己的能力。

The “I know a bit and that’s OK” phase

“我知道了一点就可以了”阶段

You have decent coding skills but recognize your limitations and can find solutions to most problems (even if that means hiring another developer).

您具有良好的编码技巧,但会意识到自己的局限性,并且可以找到大多数问题的解决方案(即使那意味着要雇用其他开发人员)。

In my experience, the primary difference between good developers and great developers is curiosity. A great developer is never content to glue pre-written components together. They want to understand how things work. Completing a task in the quickest possible time is of lesser importance.

以我的经验,优秀的开发人员与优秀的开发人员之间的主要区别在于好奇心 。 优秀的开发人员永远不会满足于将预先编写的组件粘合在一起。 他们想了解事物的运作方式。 在尽可能短的时间内完成任务的重要性较小。

Consider writing your own libraries before using someone else’s work. For example, write your own JavaScript DOM manipulation functions or PHP database connectivity objects. Using jQuery or an ORM will allow you to produce something faster, but understanding the underlying technology is invaluable. Code re-use becomes increasingly important, but don’t be afraid to delve deeper while you’re learning.

在使用他人的作品之前,请考虑编写自己的库。 例如,编写您自己JavaScript DOM操作函数或PHP数据库连接对象。 使用jQuery或ORM可以使您更快地生成内容,但是了解基础技术是非常宝贵的。 重用代码变得越来越重要,但是在学习过程中不要害怕深入研究。

Finally, never be afraid of picking the wrong language … there are no wrong ones. There are those that aren’t best suited to a specific project, but you’ll only discover that by trial and error. Pick an interesting project, choose any language and get going.

最后,不要害怕选择错误的语言…… 没有错误的语言。 有些不是最适合特定项目的,但您只能通过反复试验才能发现。 选择一个有趣的项目,选择任何语言,然后开始。

Best of luck!

祝你好运!

Get ahead of the curve, with our course Functional JavaScript Programming.

通过我们的课程Functional JavaScript Programming领先一步 。

翻译自: https://www.sitepoint.com/whats-best-programming-language-learn-2016/

2016年世界编程大赛

相关资源:世界编程大赛一等奖作品
最新回复(0)