每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文，欢迎关注开源日报。交流QQ群：202790710；电报群 https://t.me/OpeningSourceOrg
思路：这个说法最早是由荷兰著名计算机科学家E.W.Dijkstra于1968年提出的，在一封给ACM编辑的信《go to statement considered harmful》中指出。http://ce.sharif.edu/courses/90-91/1/ce364-1/resources/root/GoTo/Dijkstra.pdf
非结构性地使用goto可能导致程序流图不可规约（irreducible）。而非系统的使用goto语句并且会降低代码的可读性。对于编译器来说，良好结构的代码和goto语句产生的面条式代码（这里没有贬义）根本没有区别。这里引用一篇文章 （http://blog.csdn.net/cpq37/article/details/47342665）其中节选：Donald Knuth在他的论文结构化编程语句写道，”过早的优化是万恶之源。”清晰的编程重要得多,直到你知道您的代码中的hot spot,特别是考虑到现代的优化和分析工具比Knuth当他在1974年写论文是更加强大；大部分他给出的例子：使用goto来进行优化，事实上现代编译器都已经做了这部分工作。
数据库问题：什么是N + 1问题？
Here are the best programming languages to learn in 2018
This is the definitive guide for anyone wanting to choose the right programming language career path in 2018.
And let me be clear about something:
This is not a “top hottest languages” post throwing around a bunch of names and buzzwords.
This is an objective and practical review of the current state, tendencies, and safe near-future predictions of the IT industry at the start of 2018.
It’s based on statistical data from various trusted sources and is the result of a two-week period of in-depth research.
The goal of this post is to help you make an informed decision about which languages the IT market is looking for in 2018. It’ll help you decide which niche is worth the time and effort to master, and which will help you start (or continue) a successful and profitable career as a software developer.
When trying to decide which programming language makes the best career path, developers typically look for these four traits:
- High salary
- Popularity — plenty of job openings, variety
- Tendency to become more in-demand in the future
- Preferably easy to learn and pleasant to work with
For each language outlined in the list, you’ll see:
- A brief intro to get you familiar with the language, what types of career options it can offer, and what’s cool about it
- Language popularity diagrams according to TIOBE and GitHub Octoverse
- Salary comparison based on data from Indeed.com and StackOverflow’s 2017 survey
- The tendency in demand for the last five years according to Google Trends
- A short example code snippet to give you a visual idea of the language’s syntax
At the end, I’ve included four lesser-known languages which gained rapid popularity in the past few years and are expected to be in very high demand for 2018.
Let’s dive right in with the number one pick.
Swift is a relatively new programming language released by Apple in 2014. This is a language for developing native iOS or macOS applications.
It is considered an improvement in terms of usability and performance compared to Objective-C — the language used for Apple’s iOS and OS X operating systems.
If you want to get into mobile development, you should definitely consider Swift as a high-paid career path. Generally, iOS apps have proven to be more profitable than Android apps.
Swift tendency in popularity for the past 5 years: Steep above
Python is a general purpose language which you can find almost anywhere today. You’ll find it in web applications, desktop apps, network servers, machine learning, media tools and more.
It’s used by big players like NASA or Google, where the Python creator Guido van Rossum was employed for about 8 years writing mostly…Python.
Python code is neat, readable, and well-structured. Proper indentation is not just for beauty here — it determines code execution.
Python-based web development frameworks like Django and Flask have been gaining more and more popularity. Also, the language is heavily equipped with quality machine learning and data analysis libraries like Scikit-learn and Pandas.
On the whole, career paths with Python are various and here to stay. It’s a good choice for beginner developers, as it’s high-level and easy to read and comprehend.
Python tendency in popularity for the past 5 years: Impressive
Java is arguably the most popular programming language as 90% of the Fortune 500 companies heavily use it. Its famous slogan “write once, run anywhere” captures one of the keys that makes Java so valuable — its powerful Java Virtual Machine (JVM), which makes it cross-platform compatible.
Popular career paths with Java are backend developer, big data developer, embedded systems engineer, or Android developer. Although not the most “trendy” language at the moment, Java is so heavily used that we can pretty much guarantee it won’t go anywhere in the next decade and beyond.
Because of this, you can be confident that there are plenty of Java job positions both in your city and remotely, which can’t be said for some of the less popular languages on this list. Thus, if you are comfortable with Java, it’s only a matter of time before you’ll find the right place.
Java tendency in popularity for the past 5 years: Decrease
C++ is a highly efficient and flexible language, first created back in 1985. It has remained in high demand due to its performance, reliability, and variety of contexts you can use it in.
Plenty of large systems have been created and maintained successfully using C++, including the likes of Microsoft, Oracle, PayPal, and Adobe.
A career with C++ typically involves developing desktop applications, especially for performance-intensive tasks. While rather complex, getting comfortable with C++ would give you a deeper understanding of how languages work, for example by giving facilities for low-level memory manipulation.
C++ tendency in popularity for the past 5 years: Ups and downs
Ruby is one of the most loved programming languages around. It’s designed to be friendly and easy to use by developers, as even its own tagline is “a programmer’s best friend.”
Ruby is a high-level language which aims to achieve a lot with few lines of clean, readable code. This sometimes takes significant effort “under the hood,” which makes Ruby relatively slower in terms of efficiency compared to other popular languages — but it definitely boosts your productivity.
Well-written Ruby code almost looks like sentences written in plain English. It’s a great choice for the first language to learn, as beginners typically pick it up fast and enjoy it along the way.
Ruby is mostly used for its most popular framework — Ruby on Rails. Ruby on Rails is a web framework which encapsulates all of Ruby’s ideas into a powerful tool for the web. The great productivity achieved with Rails makes it a common choice for startups who aim for a running start.
A career with Ruby on Rails is definitely a great choice as the framework is “optimized for programmer happiness” and is also well-paid. The only major drawback of picking up a career with Ruby is that the language is not quite as popular compared to the languages mentioned above. Thus, job openings with Ruby may be limited in some locations.
Ruby tendency in popularity for the past 5 years: Decrease
Rust is sponsored by Mozilla and was voted most liked by developers for a second consecutive year in StackOverflow surveys. This is a relatively new language, first appearing in 2010, which already gained remarkable popularity and is expected to improve even more in the future.
For a beginner, Rust might be a bit of a struggle to pick up as it insists on various rules to achieve the memory safety. However, experienced developers love it, and it’s quite possible that in the next few years Rust will be in very high demand.
As far as salary is concerned, Rust is considered well-paid, ranking second worldwide in StackOverflow’s 2017 survey.
One more reason to choose Rust is that the language is being developed by a household name in IT, Mozilla.
Rust tendency in popularity for the past 5 years: Rising
Elixir is another new language, first appearing in 2011, that immediately gained popularity.
Elixir was inspired by Erlang, a language developed back in the 1980s by Ericsson and stands as arguably one of the best tools for heavy concurrency. Elixir’s author José Valim himself said that he liked everything about Erlang, but also saw room for improvement. The biggest drawback of Erlang for developers is the often quirky syntax and usability plus the lack of intuitive package management.
Thus, Elixir appears — combining aspects from Ruby, a highly developer-friendly language and ecosystem, with those from Erlang.
Elixir is mainly used for web development, and career options are typically well-paid but limited. The popularity of the language has been increasing year after year, so if your city has various IT companies around, Elixir developers may be highly sought after.
Salary-wise, Elixir is typically well-paid standing at third place worldwide in StackOverflow’s 2017 survey.
Elixir tendency in popularity for the past 5 years: Rising
Scala stands for Scalable Language, and is one of the many attempts to “rewrite Java” while improving its drawbacks. Scala code is compiled to run on the Java Virtual Machine (JVM).
We can safely agree that Scala is already a success given the fact that big companies like LinkedIn, Twitter, and The Guardian use it in their codebases.
Scala has the reputation of being a complex language to learn for a junior developer. But those who make it past the learning curve probably enjoy a great career as open positions for Scala developers are definitely popping up more and more.
Scala ranks high in salary surveys, making the top ten worldwide and sharing first place in the US according to StackOverflow’s 2017 report.
Scala tendency in popularity for the past 5 years: Rising
R is a programming language and environment used for statistics, graphic representation and data analysis. This is the #1 choice for data scientists. If you find yourself interested in this field, then R is a stable and profitable career choice for you.
R tendency in popularity for the past 5 years: Steady rise
That concludes the list of the top ten programming languages you should consider learning in 2018.
If you are looking for free courses to try out any of the above-mentioned languages, you can check out our advice on choosing from the best tutorials or even having a dedicated website browse tutorials for you.
This article was originally published on MyFirstITJob.
Choosing the right language career path is great — but usually problems start when trying to get “good enough” and get hired.
Next, I’ll focus on the results of my research on why many developers give up before ever getting a job. The main reason is actually quite simple.
每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文，欢迎关注开源日报。交流QQ群：202790710；电报群 https://t.me/OpeningSourceOrg