2016 年 12 月 31 日

2017年最值得學習的程式語言

本文為John Sonmez在2016年下旬的建議。 John Sonmez為軟體工程師都應讀的十本書之一 Soft Skills: The software developer’s life manual 作者,提倡工程師要有所選擇的學習,才能 學什麼都很快

很多人問我應該學習什麼程式語言。 我發現這問題相當困難,實在是個很難回答的問題。在決定前你需要考慮很多事情,尤其是涉及應該學習哪種程式語言。

決定2017年要學哪種程式語言的最簡單的決定方法之一是聆聽市場的聲音。市場肯定會告訴你未來哪個程式語言將為趨勢。

那麼,你怎麼知道什麼是2017年最需要的程式語言?

根據我的研究,這些是你應該在2017年關注的程式語言:

– JavaScript

– Python

– Elixir

– Rust

– Swift

以上…你同意嗎? 你的想法如何? 歡迎在下面給與回饋 !

字幕與翻譯

Hey, what’s up, John Sonmez from simpleprogrammer.com. I thought I would do a video about what programming language should I learn in 2016. This will probably carry over to 2017 since we’re more than halfway through 2016. I’ve had this on my board thinking about making this video, but you know, hopefully you still find it valuable.
嘿,近來好嗎? 我是 simpleprogrammer.com 的John Sonmez。我想我會做一個有關2016年應該學習什麼程式語言的影片。這將可能持續到2017年都有效,因為目前已經是2016下半年。我把這寫在白板上,一直想做這影片,你知道的,我希望這對你有價值。

This is sort of a tough choice because, well, if you’re a beginner and you’re trying to figure out what programming language should you learn there’s definitely some subtleties, some thoughts on that that are different than this. There are kind of 2 paths here. If you’re a beginner, what programming language should you learn in general and it being 2016 at least when I’m recording this video? Then if you’re an experienced programmer, if you want to learn a new programming language, what programming language should you learn or where should you shift your focus potentially?
這是一個艱難的選擇,因為,如果你是一個初學者,想知道應該學習什麼程式語言,肯定有一些細微之處,思考這和那有什麼不同的比較。我們以兩種途徑來想:如果你是初學者,於今我錄製這影片2016年的時間點,一般來說你應該學習什麼程式語言?如果你是有經驗的軟體工程師,想學習一門新的程式語言,你又該學習什麼,或者你應該把注意力移轉到哪裡?

First, let’s address beginners here. If you’re a beginner, if you’re starting out, you don’t know software development, you’re at this channel because you want to learn a programming language, you don’t know which programming language you should learn in 2016, well, first of all I’m going to point you to my new book. Actually, which you can sign up to get free and I have a chapter in here talking about how to decide what programming language you should learn and how to learn it. That’s probably going to be a lot more valuable than anything I’m going to say here in this short video. Definitely sign up there and check it out and you can get access to that. The full book might be up by the time you’re watching this video. You can just buy the book, if you want, but you can get free access. It’s posted on the blog and you can sign up if you sign up there.
首先,讓我們先說初學者。如果你是初學者,如果你剛開始,你不知道什麼是軟體開發,你想學習一種程式語言,但不知道應該在2016年學習哪種,嗯-首先我要指引你來看我的新書-The Complete Software Developer’s Career Guide(譯者註: 目前講師正在寫)。實際上,你可以免費註冊獲得這本書,這裏有個章節談論如何決定什麼程式語言你應該學習和如何學習。這可能會比任何我在這短視頻中說的更有價值。你一定要註冊,並檢查來信,你將獲得訪問連結。當您觀看此影片時,也許整本書已完成。 你可以買書,如果你想,但你也可以在發佈的部落格上看到內容,你可以註冊。

I will address it a little bit here. If you are starting out in 2016 and you want to learn a programming language you’re going to want to weigh 2 things. I’m going to tell you when I talk about in general what programming languages are popular and what you might want to learn you’re going to want to just take that advice and you’re going to want to apply one more layer to it which is that you need something that is going to be easy enough to learn and valuable enough that it is going to get you started right away, because the biggest obstacle to success is getting started. You’ve got to overcome that. You’ve got to build momentum.
我會在這裡談一點。如果你是在2016年開始想學習一門程式語言,你要衡量兩件事。我將會告訴你,當我談論一般流行的程式語言是什麼時你可能想要學習這語言,就只採取這個建議,且多一層了解,你需要夠容易學習且夠有價值的某樣東西讓你能立即開始學習。因為成功的最大障礙是開始,你必須克服這一點,你必須建立動能。

Even though another programming language might be optimal, what I mean by that is that there might be a better programming language in general for your career that you’re going to make more money or whatever, the biggest problem that most people are going to face that are trying to become a software developer is that it’s hard and they don’t hang on long enough. What ends up happening is they give up, they’re not taking action. They’re just learning. You want to be able to take action as soon as possible.
即使另一種程式語言可能是最佳的,我的意思是,以職業生涯來看可能一般來說有更好的式程語言,你會因此賺更多的錢或任何其他原因,大多數人在試圖成為一個軟件開發者時會面臨的最大的問題是,它很難,他們沒堅持夠久。最終發生的是他們放棄,他們不採取行動。他們只是學習。但你應該想要盡快付諸行動。

With that said, let’s talk about in general, 2016, where are we at? Surprisingly a couple of different studies I’ve seen have said that the most popular programming language for employers that employers are looking for is still Java, by a large margin. How did we find this information? By looking at job recs and seeing what jobs are available and what languages are being requested.
說到這裡,讓我們一起談談一般,2016年,我們在哪裡?令人驚訝的是,我看到的幾個不同的研究表明,雇主正在尋找人才最多的還是Java,大幅的。我們如何找到這樣的資訊呢? 通過查看徵才紀錄和市場上有哪些職缺,以及職缺要求應徵者要會什麼語言。

Java’s pretty high up there by a pretty high margin and then comes C# and C++ and then JavaScript. If you’re just thinking about, hey, what is the most universal programming language that I could learn today? Java is a really good choice.
Java得分值相當高,出現幅度相對很高,然後是C#和C + +,接著是JavaScript。如果你只是想,嘿,我現在可以學習的最通用的程式語言是什麼? Java是一個很好的選擇。

Now, why is Java a good choice besides it being popular? Well, let’s talk about that. First of all, if a lot of employers are looking for people who have Java experience it doesn’t necessarily mean that you’re going to be writing code in Java also, right? It doesn’t stop you, it’s just that Java may be or they may have existing systems in Java. So having that background and knowing Java could get you those jobs. That’s really important. But also Java is a pretty good programming language in general, right? Why? Because it’s simpler than C++, it’s simpler than some of the more advanced programming languages. It’s not esoteric. It’s pretty standard. It’s improved a lot. It’s a very easy to use programming language. There’s a lot of libraries out there. There’s a lot of help on there. If you want to learn Java you can check out my PluralSight course. I actually created a PluralSight course on how to learn Java, it’s a 2-part course and I show you how to do that. I’ve actually got several of them. The reason why I did that as opposed to C# or other programming language is because it’s a really good language to get started and it’s fairly easy but not super easy and it’s very useful. Like I said, there’s a lot of resources and it’s valuable. In general, if you know Java, you’re going to be able to do a lot.
現在,為什麼Java是一個很好的選擇,除了很多人用它的理由?好吧,讓我們來談談。首先,如果很多雇主正在尋找有Java經驗的人,這並不一定意味著你將要用Java編寫程式,對嗎?它不會阻止你用別的,只是Java可能是或他們可能現有的系統是用Java寫的。所以擁有這樣的背景和會用Java可以讓你獲得這些工作。這真的很重要。但是Java也是一個相當不錯的程式語言,對嗎?為什麼?因為它比C ++簡單,它比一些更高階的程式語言更簡單。它不深奧,很標準。它已被改進很多,是個非常容易使用的程式語言,有很多libraries,也有很多幫助。如果你想學習Java,你可以查看我的PluralSight課程。我實際上製作了一個PluralSight課程教你如何學習Java,它是一個2部分的課程,我告訴你如何做到。 這方面我實際上有幾個。我之所以做這,而不是C#或其他程式語言是因為它是一個很好的語言,以此開始相當容易,雖不是超級簡單,它是非常有用的。就像我說的,有很多資源且很有價值。一般來說,如果你學會Java,你將能夠做很多。

If you compared it to C++, I did this video on how to learn C++ or basically telling you not to learn C++ especially for beginners which you can check out here, C++ is probably a deeper skill set. It’s more valuable in general like in being a programmer because you understand a lot more complex computer science topics and computer engineering topics, but it’s more difficult.
如果你把它和C ++比較,我以前曾做一個關於如何學習C ++的課或基本上告訴你不要學習C ++,尤其是初學者,你可以在這裡查看,C ++可能是一個更深的技能集。它對於一個程式設計師會有價值一般來說在於因為你理解了很多更複雜的計算機科學和計算機工程的主題,但這語言比較難。

Again, some of you that said, “Oh, well you should learn C++” I totally agree. C++ is valuable but it’s more theoretically valuable. What I mean by that is the process of learning C++ is still valuable today, but the language itself is not as valuable. It’s how difficult it is, it’s the concepts that you learn that are going to help you with every other programming language, but it’s just not a great place to start especially today when there’s many other choices there.
再次,有些人說,“哦,那你應該學習C ++” 我完全同意。 C ++是有價值的,但它更在理論上來說有價值。我的意思是,學習C ++的過程今天仍然有價值,但語言本身沒有那麼有價值。它的價值在於它多麼困難,概念上你學習這將幫助你學會其他任何程式語言,但它並不是一個很好的起始點,特別是今天,你有許多其他的選擇。

That takes care of Java. C# is sort of in the same boat. If I were to tell someone between C# and Java today I would probably actually tell them in 2016, even though there is more jobs that are being requested for Java that C# is probably better. If you know one, you know the other pretty much so you could pretty much pick and choose. It’s not going to be a big deal there, but the reason why C# is because Microsoft is really changing its game here in 2016. We’re seeing Microsoft adopting open source, we’re seeing it buy companies like Xamarin, we’re seeing them build iOS apps, we’re seeing Microsoft really focusing on getting C# on multiple platforms. We’ve got the .NET runtime running on Mac and Linux now and being supported and being open so C# is probably a decent choice. It’s got a lot of really good language development that’s going on actively whereas Java is a little bit slower to move although it’s been moving lately.
那我們就得回到Java。 C#有點像是在同一條船上。如果今天要在 C#和 Java 之間選擇的話,我可能會說在2016年,即使有更多的工作被要求要會Java,但 C#可能比較好。如果你知道其一,你幾乎知道另一個,你就可以幾乎挑出並選擇了。 這不會是一個大問題,但選 C#的原因是因為微軟這邊2016年正在改變其遊戲規則。我們看到微軟採用開源,我們看到它購買像Xamarin公司,我們看到他們構建iOS應用程式,我們看到微軟真的專注要讓C#用於多個平台。現在也已經在Mac和Linux上運行 .NET runtime,且微軟提供支援並持續開放,所以C#可能是一個不錯的選擇。它有很多真正良好的程式語言發展,積極進行中,相較下Java的發展有點慢,雖然它最近有點動。

Let’s look at now some other interesting things here. What programming languages are employers necessarily looking for? Again, like I said Java, and then we’ve got C#, C++, JavaScript, but what about programmers? What do developers and programmers think? What’s going on here?
現在讓我們再這看看一些其他有趣的事情。哪種程式語言的人才是雇主想要的呢?再次,如我說是Java,然後我們有C#、C ++、JavaScript,但寫程式的人怎麼想?開發人員和程式設計師認想什麼?正在發生什麼事?

JavaScript is still really important. I think it’s going to, I think it’s fading a little bit here. It’s not as popular when node.js first came out and there was that huge, huge thing. JavaScript is still valuable. It’s valuable because it’s going to be useful in multiple situations. If you’re going to be a web developer you’re going to have to know JavaScript and it can allow you to do more than that.
JavaScript仍然很重要。我認為將會,這裡它有點褪色。當node.js第一次出來,如此很大很大的事件,它變得沒那麼很受歡迎。 但 JavaScript 仍然有價值的。它之所以有價值是因為它將在多種情況下有用。如果你要成為一個web開發人員,你將不得不知道JavaScript,它可以允許你做更多的事情。

It kind of depends, if you’re doing web development you’ve got to know JavaScript. You might as well start there and have that be your programming language. It’s sort of a difficult programming language to learn, there are some transitions going on here. JavaScript has become a lot better of a language but there’s still a lot of old JavaScript.
這就要看 ,如果你做的是Web開發,你必須懂 JavaScript。你可以從那裡開始,並讓它成為你會的程式語言。 這是一種比較難學的程式語言,有些變遷正在發生。 JavaScript已經成為一種更好的語言,但仍有很多舊的 JavaScript。

As we transition to ES6 which—ECMAScript is really JavaScript, version 6 where we’re getting a lot more functionality into it, it’s better but it’s still harder to learn in general because you’ve got this mixed up world between the old stuff and now you’ve got the new stuff and not very many people are doing the new stuff and you’ve got a lot of frameworks. I would actually avoid that now is what I would say. I would say learn a basic programming language and if you haven’t learned JavaScript already and you’re doing web development, I don’t know what you’re doing.
當我們轉換到ES6時,ECMAScript是真的 JavaScript,第6版,我們得到了更多的功能,它是更好,但一般說來它仍然比較難學,因為這是有舊東西混雜的世界,現在你有了新玩意,不過並沒有很多人在用這新玩意,你有很多框架。我希望我現在能告訴你避免學JavaScript,學習基本的程式語言吧,但如果你說你正在做web開發卻從沒學過JavaScript,我不知道你在做什麼。

Now there are some interesting ones to think about here besides that which is Rust. Rust is picking up a lot of steam and it’s a very popular programming language. This is one that I would recommend more for experienced developers like if you’re a C, C++ developer and you want to pick up a new language in 2016 or 2017 even pick up Rust, Rust is really good. It’s this low level systems language. It’s more elegant, more refined than C and C++ and is a good replacement for those languages and it just keeps on picking up steam. I think this is going to be a really popular language. I think it’s going to replace some of these legacy programming languages and some systems.
現在我們在此來想想還有其他有趣的語言嗎?我認為是Rust。 Rust正在蒸蒸日上,是個很受歡迎的程式語言。這是一個我會比較建議給有經驗的程式設計師,如你已經會C或C ++,想在2016年或2017年學一種新的語言,那就選擇Rust。 Rust真的是很好的語言,這是個低階系統語言。比C和C ++,更優雅、更精緻,是那些很好的替代者,它正在持續爆紅中。 我認為這將會是一個非常受歡迎的語言,將會取代掉一些遺留的程式語言和一些系統。

Now if you’re talking mobile side now we might consider Swift. Objective-C is pretty much dead. If you know Java you’re going to build a new android development but if you want to do strictly iOS development Swift makes sense. Again though, if you want to do mobile development I might instead of learning Swift, if you don’t know it already, go the C# route because Microsoft bought Xamarin. Xamarin is a really good tool. Xamarin will let you build all kinds of apps in C#. C# is everywhere. I keep coming back to it now, but because of Xamarin, because of things like Unity3D for game development C# will definitely be useful for those.
現在如果你問有關移動端,我們可能會考慮Swift。 Objective-C已經過氣了。如果你知道 Java 你將能構建一個新的Android開發程式,但如果你想做嚴格的iOS開發,用 Swift 沒錯 。 雖然如此,如果你想做移動開發,在你不會Swift的情況下,我可能建議你考慮走 C#這一途,而不是學Swift。 因為微軟買了Xamarin。 Xamarin是一個非常好的工具。 Xamarin將讓你在C#中構建各種應用程式。 C#無處不在。我現在繼續回來談C#,但因為Xamarin、因為像Unity3D的遊戲開發這類的事,C#肯定在這些方面很有用處。

We’ve got a few more contenders in here. F#, I wouldn’t mess with this. There’s not enough traction here. It’s an interesting language and I love the language itself, but it doesn’t make a lot of sense to me. We’ve got—we’ve got some of the languages like Scala and Haskell and stuff like that. Those are interesting but, again, not so widely used. Those would be interesting if you’re an experienced developer and you want to pick up a new language, but I might encourage you actually to look at Elixir. Elixir is sort of a new programming language that is really interesting and there’s a lot of people that are jumping onboard with Elixir because it sort of has this elegance, this expressiveness of Ruby, readability of Ruby but it’s extremely powerful and it does a lot of things right. But that’s a gamble because Elixir could go down. There’s not a huge community, but it’s starting to develop, but again, for an experienced developer.
我們在這裡有更多的競爭者。 F#,我不會去沾這個。它沒有足夠的牽引力。它是一個有趣的語言,我喜歡這語言本身,但它不會對我有很多的意義。我們已經有一些像Scala和Haskell這樣的語言。他們有趣,但並沒被廣泛使用。 如果你是個有經驗的開發人員,想要學習一門新的語言,那麼我可能鼓勵你好好看看Elixir。 Elixir是一種新的程式語言,非常有趣,且有很多人已選用Elixir,因為它有這種優雅、像Ruby的表現力和可讀性,但它非常強大,它在很多方面都做得正確。 不過這是個賭博,因為Elixir有可能沒落。 還沒有一個龐大的社群支持,正在開始發展中,但再次,這是給有經驗的開發者的建議。

Another great one potentially for someone starting out especially if you’re anywhere in the science or academic or image processing field would be Python. Python is a very popular programming language especially with companies like Google and it will continue to be so just because there’s so much going on in the scientific realm there. It’s an easy to learn language. The fact that it uses white space for formatting makes it very readable. If you like cleanliness in your code you might enjoy that language and find that valuable.
另一個很棒的語言有可能成為你的起點,特別是如果你在科學或學術或圖像處理領域的任何時點,是Python。 Python是一種非常受歡迎的程式語言,特別是像Google這樣的公司,它將繼續蓬勃發展,因為它在科學領域持續發展。 這是一個容易學習的語言。 事實上,它使用空白格式化使其非常易讀。如果你喜歡你的程式碼很乾淨,你可能會喜歡這種語言,並發現它很有價值。

I’m going to go through a few more here. That’s where I stand here. What would I recommend for 2016? What are the things that are showing up here? Rust, like I said is showing up. Elixir is showing up here. Go is still gaining popularity as well. I didn’t talk about Go but Go is a good one as well especially for systems type of programming but it’s also moving to the web somewhat.
我將在這裡提及更多其他東西,以我目前所看到的。 2016年我會推薦什麼? 有什麼正在上場呢? Rust,如我之前所說。Elixir,也在上場中。Go也仍越來越受歡迎中。 我前面沒說到Go,但Go是個很好的語言,尤其是對於系統類型的程式設計,但它也有點轉移到網絡設計。

Yeah, I think that you’ve got a lot of choices here. It depends on what you want to do. Again, if you’re a beginner you don’t want to try and necessarily pick the trend. You want to pick a solid base that’s why Java is always going to be a good choice or something like C# because you’re going to get—it’s an object oriented language. You’re going to cover a lot of the concepts that you need to know as a programmer and you can branch out from there.
是的,我想在此你已聽到很多選項。 選什麼取決於你想做什麼。 再次,如果你是一個初學者,你不想摸索,且想一選就跟上趨勢。 你想選擇一個堅實的基礎,這就是為什麼 Java 總是一個好的選擇或類似C#的東西,因為你會由它學到很多-它是一種物件導向的語言。 這將涵蓋你作為程是設計師需要知道的許多概念,讓你可從那裡分支出去。

Once you know 1 or 2 programming languages it becomes easier. Same thing with Python, for a beginner Python is going to make a lot of sense. Even for someone more experienced, if you don’t know Python already, there’s a lot of opportunity in Python as well.
一旦你知道1或2種程式語言,它變得更容易。 Python也是如此,對於初學者,學Python有很大的意義。 即使對於更有經驗的人來說,如果你不知道Python,也要知道Python會帶來很多機會。

Anyway, I hope that helps you. I know that’s a lot of information there and there’s a lot of different choices. I didn’t even mention programming languages I would avoid like Ruby, unfortunately. I love Ruby but it’s going down and Objective-C is definitely one you want to avoid. Anyway, if you want more tips like this, if you have more questions, subscribe to the channel. Just click that subscribe button wherever it appears, I’m not supposed to point because I don’t know where it’s going to appear, but maybe it will—I’ll be doing a video and there’ll be a subscribe button there, I don’t know.
反正,我希望能幫助你。我知道有太多資訊,且有很多不同的選擇。 我甚至沒有提到我會避免的程式語言像Ruby,不幸地說。 我喜歡Ruby,但它正在式微,另外,Objective-C絕對是你避免考慮的。 反正,如果你想要更多的提示,如果你有更多的問題,訂閱頻道。只要點擊那個訂閱按鈕,不管它出現在什麼地方,我不應該指向,因為我不知道它會出現在哪裡,但也許會,我會做一個影片,通常都有一個訂閱按鈕,我不確定。

Anyway, click the subscribe button and you’ll get more of these videos every week, actually everyday because I put out videos everyday. If you came here from the YouTube search or something you should know that this is software development career and personal development channel so I will be talking about all kinds of crazy stuff, but that’s the way I like it. Thanks for joining me. I’ll talk to you next time. Take care.
無論如何,點擊訂閱按鈕,你每週會得到更多的這些影片,實際上是每天,因為我每天推出影片。如果你從YouTube搜索來到這裡,或者你應該知道這是軟體開發職業和個人發展的頻道,我一直也將會繼續談論各種這類瘋狂的東西,這是我喜歡的方式。 感謝您把我加入。下次再跟你說更多囉! 保重。

本文:Top Programming Languages To Learn In 2017 獲得John Sonmez授權翻譯。

也許你會有興趣

喜歡這樣的內容嗎?歡迎點以下按鈕分享吧~感謝你的支持!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

分類

趨勢, 人生與成長