自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個(gè)新手如何選擇自己的第一門編程語(yǔ)言

開發(fā) 前端
實(shí)際上,你選擇哪一種編程語(yǔ)言作為開始并不重要,今天將和大家討論一下如何選擇你的第一個(gè)編程語(yǔ)言。

剛想要入門的軟件工程師經(jīng)常會(huì)的問(wèn)題就是,他們應(yīng)該首先學(xué)習(xí)什么編程語(yǔ)言,這個(gè)可能是學(xué)習(xí)編程過(guò)程中面臨的最棘手的問(wèn)題之一,以至于很多老程序員也沒(méi)有辦法給你很明確的回答。實(shí)際上,你選擇哪一種編程語(yǔ)言作為開始并不重要,今天將和大家討論一下如何選擇你的第一個(gè)編程語(yǔ)言。

編程語(yǔ)言不是工作

初學(xué)者高估這個(gè)決定的重要性的主要原因是,他們不了解程序員的工作。作為一個(gè)軟件軟件工程師,人們付給你錢不是因?yàn)槟銜?huì)使用編程語(yǔ)言,而是因?yàn)槟憧梢酝ㄟ^(guò)教機(jī)器如何解決問(wèn)題來(lái)創(chuàng)造價(jià)值。在你的職業(yè)生涯中,你會(huì)學(xué)習(xí)如何使解決方案更簡(jiǎn)單,當(dāng)復(fù)雜性不可避免時(shí),你會(huì)學(xué)習(xí)如何將其分解,將一個(gè)復(fù)雜的系統(tǒng)分解成更簡(jiǎn)單、更易于管理的部分。你還會(huì)學(xué)習(xí)如何在不增加理解難度的情況下向你的軟件添加功能,最重要的是,如何讓別人也可以這樣做。

這些技能都是完全獨(dú)立于任何編程語(yǔ)言的,它們完全取決于你是否能夠理解軟件需求、編寫算法、將解決方案分解為更小的邏輯單元,以及理解軟件是如何工作的,專注于這些方面,會(huì)讓你的編程生涯走的更遠(yuǎn)。

一個(gè)良好的心態(tài)

我并不是說(shuō)編程語(yǔ)言一點(diǎn)都不重要。我所主張的是一種心態(tài),即把語(yǔ)言視為我們可以使用的工具,而不是你工作的全部,沒(méi)有人會(huì)認(rèn)為選擇最好的手術(shù)刀是醫(yī)生工作中最重要的部分,因?yàn)槟憬^對(duì)不會(huì)信任一個(gè)連手術(shù)刀都不會(huì)拿的心臟外科醫(yī)生。

在選擇第一門編程語(yǔ)言時(shí),你幾乎沒(méi)有任何信息,因此這種心態(tài)就變得更加重要。人們往往害怕在錯(cuò)誤的編程語(yǔ)言上浪費(fèi)時(shí)間,然而他們沒(méi)有看到的是,每個(gè)人都有選擇錯(cuò)誤語(yǔ)言的經(jīng)歷,而且這與他們的工作沒(méi)有絲毫關(guān)系。

之所以會(huì)出現(xiàn)這種情況通常有以下兩種原因:人們最終會(huì)了解一個(gè)之前都不知道的新領(lǐng)域(比如你可能在研究一年后,才對(duì)數(shù)據(jù)科學(xué)有所了解);他們學(xué)習(xí)了更多已知領(lǐng)域的信息之后,找到了會(huì)使數(shù)據(jù)科學(xué)更容易的Python庫(kù)。

更換語(yǔ)言是工作的一部分

將語(yǔ)言視為工具的另一個(gè)原因是,你需要經(jīng)常更換編程語(yǔ)言,在過(guò)去的幾年里,每次我加入一個(gè)正在進(jìn)行的項(xiàng)目,我都必須學(xué)習(xí)一些新的語(yǔ)法。在一個(gè)例子中,我的新產(chǎn)品的首要任務(wù)之一是修改一個(gè)每天被數(shù)千萬(wàn)用戶使用的功能,該功能是建立在一個(gè)我完全沒(méi)有聽過(guò)的編程語(yǔ)言之上。

另外,即使你沒(méi)有切換項(xiàng)目,對(duì)于團(tuán)隊(duì)來(lái)說(shuō),在活躍的代碼庫(kù)中添加新語(yǔ)言,從而需要團(tuán)隊(duì)成員學(xué)會(huì)新語(yǔ)法也是很正常的,因?yàn)槟撤N新語(yǔ)言的出現(xiàn)可以減輕每個(gè)人的工作負(fù)擔(dān),或者是某個(gè)重要人物決定采用某種徹底改變行業(yè)格局的語(yǔ)言(比如蘋果在完全由Objective-C主導(dǎo)的OS中添加了Swift的支持,Google在Android中添加Kotlin的原生支持)。

考慮到當(dāng)今市場(chǎng)存在這么多編程語(yǔ)言,以及所處地區(qū)的發(fā)展動(dòng)態(tài),迅速掌握新語(yǔ)言的能力成為了一項(xiàng)不可或缺的技能有人甚至?xí)f(shuō),一開始選擇錯(cuò)誤的語(yǔ)言對(duì)你有好處!

不同語(yǔ)言之間比你想象的更為相似

上一節(jié)描述的場(chǎng)景可能聽起來(lái)非常令人難以接受,但別擔(dān)心,我并不是說(shuō)你每次都必須從頭開始學(xué)習(xí)一種全新的思維方式,事實(shí)上,快速學(xué)習(xí)新語(yǔ)言并不難,因?yàn)榫幊陶Z(yǔ)言往往遵循類似的模式,需要學(xué)習(xí)一次,就可以在其他地方使用。為了說(shuō)明這一點(diǎn),我們來(lái)看一看用以下兩種完全不相關(guān)的語(yǔ)言實(shí)現(xiàn)同一個(gè)簡(jiǎn)單的算法。

Typescript實(shí)現(xiàn)查找最小值的算法

Kotlin實(shí)現(xiàn)

這只是一個(gè)例子而已,在現(xiàn)實(shí)世界中,代碼庫(kù)必須處理大量的概念,這些概念在這些代碼片段中沒(méi)有涉及。但是,這兩種方法看起來(lái)非常相似——當(dāng)你向代碼中添加更高級(jí)的概念時(shí),情況往往也是如此。

事實(shí)上,除非你一直在學(xué)習(xí)非常奇怪的東西,否則無(wú)論你在哪里,過(guò)渡到一門新語(yǔ)言都應(yīng)該是很簡(jiǎn)單,盡管對(duì)于任何人來(lái)說(shuō),掌握一個(gè)新的編程語(yǔ)言可能需要一段時(shí)間,但一個(gè)有經(jīng)驗(yàn)的開發(fā)人員應(yīng)該能夠在第一次使用一種新語(yǔ)言后幾天內(nèi)編寫生產(chǎn)級(jí)代碼。

如何選擇編程語(yǔ)言

我們已經(jīng)確定了語(yǔ)言并不是工作中最重要的部分,你大可不必因?yàn)檫x擇第一個(gè)編程語(yǔ)言而糾結(jié),但是,這仍然是你成為一名開發(fā)者之前所必須做的,那么,你如何決定呢?這里有一些建議:

(1) 選擇適合領(lǐng)域的語(yǔ)言

有些人一進(jìn)入計(jì)算機(jī)科學(xué),就確切的知道他們想要構(gòu)建什么樣的軟件,如果你屬于這種類型,就選擇該軟件領(lǐng)域最常見的編程語(yǔ)言,如果你想成為一名Web開發(fā)人員,學(xué)習(xí)Javascript,如果你想成為Android開發(fā)人員,則可以選擇Kotlin,如果想成為一名數(shù)據(jù)科學(xué)家,你可能更應(yīng)該了解Python。

(2) 選擇一些簡(jiǎn)單的語(yǔ)言

學(xué)習(xí)算法思維和解決問(wèn)題的能力已經(jīng)夠難了,同樣,編程語(yǔ)言應(yīng)該是一種工具,因此,盡量選擇低級(jí)語(yǔ)言像 C++ 這樣的低級(jí)語(yǔ)言可能非常強(qiáng)大,而且很實(shí)用,但我建議你從 Javascript 或 Python 等腳本語(yǔ)言開始學(xué)習(xí),它們的入門門檻極低,可以讓你專心學(xué)習(xí)核心的編程概念,而不是處理內(nèi)存管理和底層機(jī)器問(wèn)題。

(3) 選擇好找工作的語(yǔ)言

雖然ALGOL開發(fā)人員可能也有市場(chǎng),但你更應(yīng)該找一個(gè)可以被廣泛采用的現(xiàn)代語(yǔ)言,如果不確定要選擇哪一種編程語(yǔ)言,你就選擇更流行的,這樣一來(lái),當(dāng)你遇到問(wèn)題時(shí),有一個(gè)強(qiáng)大的社區(qū)支持你,同時(shí)也會(huì)讓你更容易找到第一份工作。

結(jié)論

最后我想通過(guò)列舉自己的編程語(yǔ)言史來(lái)結(jié)束這篇文章,認(rèn)為這很重要,因?yàn)槲业娜松壽E就是一個(gè)活生生的證明。我學(xué)的第一門編程語(yǔ)言是C++,其次是Java,這是兩種非常好的語(yǔ)言,擁有龐大的用戶基礎(chǔ)和一些非常強(qiáng)大的項(xiàng)目。但說(shuō)實(shí)話,在過(guò)去的10年里,我們沒(méi)用它們寫過(guò)一行代碼,在我的目前的職業(yè)生涯中,我還沒(méi)有在非學(xué)術(shù)環(huán)境中使用它們,盡管如此,我依然不后悔學(xué)習(xí)使用它們,它們是一種工具,為我提供了表達(dá)編程概念的方法。

因此,如果你是完美主義者,希望想清楚你應(yīng)該學(xué)習(xí)哪種編程語(yǔ)言,那么最終答案是:隨便選擇一種即可。

 

責(zé)任編輯:趙寧寧 來(lái)源: 程序員書庫(kù)
相關(guān)推薦

2022-02-21 11:15:59

編程語(yǔ)言后端開發(fā)

2017-04-07 10:45:43

編程語(yǔ)言

2015-11-12 10:25:48

編程語(yǔ)言

2017-04-07 16:49:00

語(yǔ)言程序編程

2015-11-11 10:01:42

編程語(yǔ)言選擇

2012-09-04 11:20:31

2022-02-27 14:45:16

編程語(yǔ)言JavaC#

2022-09-07 08:05:32

GScript?編程語(yǔ)言

2024-06-27 09:00:00

人工智能編程語(yǔ)言軟件開發(fā)

2013-07-26 10:23:04

2014-12-03 09:48:36

編程語(yǔ)言

2015-07-28 15:35:48

學(xué)習(xí)語(yǔ)言

2021-07-07 10:01:13

編程語(yǔ)言計(jì)算機(jī)斯坦福大學(xué)

2019-11-18 11:00:58

程序員編程語(yǔ)言

2020-11-12 07:00:50

JavaScript前端編程語(yǔ)言

2020-09-27 15:52:02

編程語(yǔ)言C 語(yǔ)言Python

2022-11-04 11:11:15

語(yǔ)言入職項(xiàng)目

2011-07-14 17:58:11

編程語(yǔ)言

2013-08-06 09:31:42

IT技術(shù)周刊

2018-07-16 12:36:48

編程語(yǔ)言PythonJava
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)