摘要:我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言這一切都取決于你想要完成的事情作為技術(shù)作家,我的任務(wù)是使復(fù)雜的主題易于理解,因此在本文中您將找不到太多技術(shù)術(shù)語(yǔ)。我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言這是我自出版之前收到的最常見(jiàn)的問(wèn)題。是一種后端語(yǔ)言。
我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言?
這一切都取決于你想要完成的事情
作為技術(shù)作家,我的任務(wù)是使復(fù)雜的主題易于理解,因此在本文中您將找不到太多技術(shù)術(shù)語(yǔ)。我可以對(duì)面向?qū)ο蟮木幊毯蛿?shù)據(jù)結(jié)構(gòu)進(jìn)行咆哮和狂熱,但如果你是編碼和計(jì)算機(jī)科學(xué)的新手,這對(duì)你來(lái)說(shuō)并不是很重要。本文的目的是為您提供一個(gè)非常廣泛和簡(jiǎn)單的編程世界介紹,并幫助您了解如何(和什么)開(kāi)始學(xué)習(xí)。
我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言?
這是我自出版之前收到的最常見(jiàn)的問(wèn)題。在學(xué)習(xí)編碼之前,我希望知道這些問(wèn)題。大多數(shù)人都認(rèn)為有一個(gè)明顯的選擇,但答案并不總是那么清楚。
許多編碼bootcamp專(zhuān)注于JavaScript,可能假設(shè)每個(gè)想成為開(kāi)發(fā)人員的人都應(yīng)該從前端工作開(kāi)始。如果你想要進(jìn)入前端開(kāi)發(fā),JavaScript幾乎是不可避免的,但是許多人在考慮他們想要通過(guò)學(xué)習(xí)如何編碼來(lái)實(shí)現(xiàn)的目標(biāo)之前就會(huì)跳過(guò)它。
許多計(jì)算機(jī)科學(xué)程序都是從Python開(kāi)始的,也許是因?yàn)樗哂泻?jiǎn)單的語(yǔ)法和強(qiáng)大的文檔,使其成為初學(xué)者的理想語(yǔ)言。嘿,Python非常適合各種各樣的事情,包括數(shù)據(jù)科學(xué),所以為什么不先學(xué)習(xí)呢?畢竟,這是一種通用語(yǔ)言。
問(wèn)題在于,很多人都認(rèn)為他們想要“學(xué)習(xí)如何編碼”,但他們并沒(méi)有停下來(lái)思考他們想要學(xué)習(xí)如何制作的東西。
編程不是選擇一種語(yǔ)言,學(xué)習(xí)它的語(yǔ)法,然后弄清楚它以后可以做什么。
如果您想成為開(kāi)發(fā)人員,并且您不確定從哪里開(kāi)始,我強(qiáng)烈建議您從最后開(kāi)始。最終的結(jié)果。你想什么做?
如果答案是“很多錢(qián)”,那么繼續(xù)瀏覽工作列表并選擇您首選公司正在尋找的任何語(yǔ)言。但祝你好運(yùn),在沒(méi)有明確目標(biāo)的情況下學(xué)習(xí)。
畢竟,學(xué)習(xí)特定語(yǔ)言的“簡(jiǎn)單”或“困難”并不重要。你知道什么是真的很難嗎?試圖將語(yǔ)言推出超出其限制的范圍,以創(chuàng)建不能(或不應(yīng)該)使用該語(yǔ)言創(chuàng)建的內(nèi)容。
我不確定我想做什么,但我知道我喜歡編程的挑戰(zhàn)。
足夠公平 - 但在某些時(shí)候,你必須意識(shí)到你正在努力學(xué)習(xí)一些具有挑戰(zhàn)性的東西。這就像試圖學(xué)習(xí)一門(mén)外語(yǔ),但承認(rèn)你甚至不知道它在哪里說(shuō)話(huà),而且你也沒(méi)有興趣大聲說(shuō)出一句話(huà)。你可以學(xué)習(xí)所需的所有語(yǔ)境外語(yǔ)法,但你永遠(yuǎn)不會(huì)成為語(yǔ)言學(xué)家。
從結(jié)束開(kāi)始
你可以做些什么?
網(wǎng)站
電腦游戲
移動(dòng)應(yīng)用(iOS?Android?)
您可以做些什么?
數(shù)據(jù)科學(xué)
人工智能
機(jī)器學(xué)習(xí)
網(wǎng)絡(luò)安全
技術(shù)寫(xiě)作
數(shù)據(jù)庫(kù)管理
這個(gè)列表顯然不是包羅萬(wàn)象,但你明白了。你究竟想做什么?在您選擇編程語(yǔ)言之前先了解一下。雖然有些人說(shuō)你選擇哪一個(gè)并不重要,只要你學(xué)得很好,你可能會(huì)發(fā)現(xiàn)這不是最好的建議 - 特別是如果你已經(jīng)嘗試過(guò)并且失敗了。
如果您的夢(mèng)想是設(shè)計(jì)下一個(gè)Fortnite,那么您可能不應(yīng)該花費(fèi)數(shù)月和數(shù)月來(lái)應(yīng)對(duì)JavaScript挑戰(zhàn),就像您在嘗試成為Android開(kāi)發(fā)人員時(shí)不需要參加Swift課程一樣。
另一方面,如果您的夢(mèng)想是在一家大型科技公司擔(dān)任軟件工程職位,那么一旦您開(kāi)始工作,您可能會(huì)期望學(xué)習(xí)新的編程語(yǔ)言。您對(duì)算法和計(jì)算機(jī)科學(xué)原理的理解可能比您在編碼面試中選擇使用的語(yǔ)言更重要。
毫無(wú)疑問(wèn),在你學(xué)好一門(mén)編程語(yǔ)言之后,更容易學(xué)習(xí)它,但是如果你剛剛開(kāi)始,最好選擇一種與你的短期和長(zhǎng)期目標(biāo)很好地配合的語(yǔ)言,而不是隨意選擇一個(gè),或選擇一個(gè)你認(rèn)為會(huì)讓你賺錢(qián)最多的一個(gè)。
#wocintechchat
一些最流行的編程語(yǔ)言是什么?他們最常用的是什么?
HTML和CSS
如果您想對(duì)前端開(kāi)發(fā)做任何事情,請(qǐng)假設(shè)HTML和CSS是給定的。無(wú)論您是否認(rèn)為它們是編程語(yǔ)言(技術(shù)上HTML是標(biāo)記語(yǔ)言而CSS是樣式表語(yǔ)言),您需要學(xué)習(xí)這些,并且您應(yīng)該能夠快速學(xué)習(xí)它們。有一個(gè)原因可以通過(guò)HTML和CSS編寫(xiě)bootcamps輕松編程,有時(shí)使它們成為pre-bootcamp課程的一部分。
簡(jiǎn)而言之,HTML用于在網(wǎng)站上放置文本,圖像和其他元素。使用HTML創(chuàng)建頁(yè)眉,頁(yè)腳,換行符,鏈接,斜體文本等。頁(yè)面的整個(gè)層次結(jié)構(gòu)都是使用HTML完成的。
CSS用于更改這些元素的外觀(guān)。從不透明度到邊框,從字體大小到網(wǎng)格,CSS允許您自定義頁(yè)面上每個(gè)元素的外觀(guān)。您甚至可以在想到JavaScript這個(gè)詞之前使用CSS 來(lái)創(chuàng)建動(dòng)畫(huà)。
如果你想成為一名前端開(kāi)發(fā)人員,花一兩個(gè)星期真正學(xué)習(xí)HTML和CSS,并在繼續(xù)之前從頭開(kāi)始制作一些網(wǎng)站。學(xué)習(xí)Flexbox和網(wǎng)格以使頁(yè)面響應(yīng)(以便它們適應(yīng)不同的屏幕尺寸),并看看你可以推動(dòng)CSS多遠(yuǎn),因?yàn)樗梢员饶阆胂蟮淖龅酶唷J褂肂ootstrap,這是一個(gè)開(kāi)源的前端框架。然后,一旦你達(dá)到這一點(diǎn),你會(huì)發(fā)現(xiàn)你的編程之旅自然會(huì)引導(dǎo)你......
JavaScript
JavaScript可以在很多方面使用,但它最常用于前端開(kāi)發(fā)。JavaScript用于使網(wǎng)站互動(dòng)并使網(wǎng)絡(luò)元素發(fā)揮作用。您可以使用HTML為網(wǎng)站添加按鈕,使用CSS設(shè)置樣式,并使用JavaScript為其提供功能。如果沒(méi)有JavaScript,當(dāng)用戶(hù)點(diǎn)擊它時(shí),您的按鈕將不會(huì)執(zhí)行任何操作。
您不需要使用終端來(lái)使用JavaScript。您將在代碼編輯器和瀏覽器中工作。
JavaScript可用于設(shè)計(jì)基于瀏覽器的游戲。(如果你曾嘗試在學(xué)校的計(jì)算機(jī)上玩基于瀏覽器的游戲并遇到麻煩,可能是因?yàn)閷W(xué)校的管理員阻止了JavaScript,試圖阻止你玩游戲。)
有許多庫(kù)和框架可以更輕松地使用JavaScript。你不會(huì)從這些開(kāi)始,但你可能會(huì)在以后廣泛使用它們。
您甚至可以使用JavaScript來(lái)使用Node.js進(jìn)行后端工作。
JavaScript相對(duì)容忍錯(cuò)誤。相對(duì)。
如果您想成為前端開(kāi)發(fā)人員,則需要學(xué)習(xí)HTML,CSS和JavaScript。真的沒(méi)辦法解決它。
僅在LinkedIn上就有超過(guò)100,000個(gè)與JavaScript相關(guān)的職位發(fā)布。
Python
Python是一種多功能,功能強(qiáng)大的通用語(yǔ)言。你可以將它用于幾乎任何東西,從網(wǎng)頁(yè)開(kāi)發(fā)到游戲,這就是很多人選擇它作為第一語(yǔ)言的原因。
如果您只是對(duì)編碼感到好奇,可以從Python開(kāi)始。這很容易學(xué)習(xí)。
但如果你的夢(mèng)想是獲得一份數(shù)據(jù)科學(xué)家的工作......你現(xiàn)在也可以停止閱讀,因?yàn)槟憬^對(duì)可以從Python開(kāi)始。
長(zhǎng)話(huà)短說(shuō),Python是數(shù)據(jù)科學(xué)家的夢(mèng)想。它的包和庫(kù)使得處理大量數(shù)據(jù)變得容易。您可以使用Matplotlib創(chuàng)建可視化,您可以使用Numpy和Pandas分析表格數(shù)據(jù)......等等。
Python擁有強(qiáng)大的文檔。如果您需要查找某些內(nèi)容,您將能夠快速找到答案。這對(duì)于任何獨(dú)立學(xué)習(xí)的人來(lái)說(shuō)都是一個(gè)重要的考慮因素
但要注意你的縮進(jìn)。縮進(jìn)標(biāo)記代碼塊,因此如果執(zhí)行此操作錯(cuò)誤,您將收到錯(cuò)誤。缺少空間或額外空間是一個(gè)問(wèn)題。我之所以提到這是因?yàn)檫@是Python的一個(gè)顯著特征。使用JavaScript,您可以根據(jù)需要放置任意數(shù)量的空間 - 即使您弄得一團(tuán)糟。不要試試Python。
Ruby
Ruby是一種后端語(yǔ)言。“Ruby on Rails”不是一種語(yǔ)言。Ruby是語(yǔ)言,Rails是框架。Ruby因Rails而變得流行。
Ruby是一種非常棒的語(yǔ)言,語(yǔ)法溫和。每行末尾沒(méi)有分號(hào)!大多數(shù)開(kāi)發(fā)人員都認(rèn)為使用起來(lái)很有趣,但是它非常容忍錯(cuò)誤。只是一個(gè)抬頭。如果調(diào)試不是你的問(wèn)題,那么你將不會(huì)很開(kāi)心Ruby。
它是一種高級(jí)語(yǔ)言,只需幾行代碼即可完成相當(dāng)多的工作。Ruby在初創(chuàng)公司中越來(lái)越受歡迎,所以你可能已經(jīng)看過(guò)“Ruby on Rails開(kāi)發(fā)人員”的職位發(fā)布。
如果您獨(dú)立學(xué)習(xí)并且不是Python的粉絲,Ruby可能是一個(gè)很好的第一語(yǔ)言。另一方面,Ruby旨在使經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員盡可能地編程有趣和愉快,因此它不是編碼學(xué)院或計(jì)算機(jī)科學(xué)程序首先教授的語(yǔ)言。如果你希望在面對(duì)面的環(huán)境中學(xué)習(xí),那么找到一個(gè)專(zhuān)注于Ruby的“編程簡(jiǎn)介”課程你將沒(méi)有多少運(yùn)氣。
SQL
SQL(有些人發(fā)音為SQL而其他人說(shuō)“續(xù)集” ;我們可以將這個(gè)論點(diǎn)保存一天)并不是真正的“編程”語(yǔ)言。您不會(huì)使用SQL制作整個(gè)應(yīng)用程序。您將使用它與數(shù)據(jù)庫(kù)進(jìn)行通信或從數(shù)據(jù)庫(kù)獲取信息。
數(shù)據(jù)。基地。
如果您想從事數(shù)據(jù)科學(xué)工作,則必須學(xué)習(xí)SQL,否則您將無(wú)法獲得任何數(shù)據(jù)。如果你想做任何涉及數(shù)據(jù)庫(kù)的事情,你將不得不學(xué)習(xí)SQL。但是,如果你從未在生活中編寫(xiě)過(guò)一行代碼,那么你可能不應(yīng)該從SQL開(kāi)始。為什么?你不能用SQL開(kāi)發(fā)一個(gè)獨(dú)立的應(yīng)用程序(它不是那種語(yǔ)言),所以你幾乎要學(xué)習(xí)倒退。
Swift
如果你想成為iOS開(kāi)發(fā)人員,那么從Swift開(kāi)始就完全沒(méi)問(wèn)題了。Swift是一種相對(duì)較新的語(yǔ)言,但它很容易學(xué)習(xí)(孩子們可以做到),它實(shí)際上是為開(kāi)發(fā)iOS應(yīng)用程序而制作的。
這里不需要說(shuō)太多其他內(nèi)容。如果您的目標(biāo)是成為iOS開(kāi)發(fā)人員,那么Swift就沒(méi)有理由不能成為您的第一語(yǔ)言。
Java
[Java不是JavaScript的昵稱(chēng),就像汽車(chē)不是碳的昵稱(chēng)。]
如果您想構(gòu)建Android應(yīng)用程序,Java就是您的語(yǔ)言。您也可以將它用于桌面應(yīng)用程序。還有一些游戲。Java曾經(jīng)是計(jì)算機(jī)科學(xué)課程中最常用的語(yǔ)言之一,但近年來(lái)Python已經(jīng)超越了它。Java仍然很受歡迎,但Python和Ruby可以說(shuō)更容易學(xué)習(xí)。如果您已經(jīng)成為一名Android開(kāi)發(fā)人員,那么請(qǐng)從Java開(kāi)始 - 但如果沒(méi)有,您可能會(huì)發(fā)現(xiàn)通過(guò)首先學(xué)習(xí)Python可以獲得更多功能(并且可以說(shuō)更多功能)。
C#
如果你想成為游戲開(kāi)發(fā)者 - 特別是如果你想開(kāi)發(fā)控制臺(tái)或桌面游戲 - 你可能已經(jīng)看過(guò)Unity。如果沒(méi)有,請(qǐng)?jiān)谛麓翱谥写蜷_(kāi)此鏈接,并在讀完后立即瀏覽。
使用Unity,即使您是初學(xué)者,也可以構(gòu)建(并貨幣化)令人難以置信的游戲。你可能會(huì)使用C#。
雖然Unity曾經(jīng)支持UnityScript(基本上是JavaScript的“方言”),但它在2017年開(kāi)始逐步取消對(duì)UnityScript的支持,使C#成為最強(qiáng)大的競(jìng)爭(zhēng)者。
如果你的目標(biāo)是成為一名游戲開(kāi)發(fā)者,C#是一門(mén)很好的語(yǔ)言。這不一定很困難。Unity擁有一些我見(jiàn)過(guò)的最強(qiáng)大的文檔。他們有與眾不同的教程。
學(xué)習(xí)C#的另一個(gè)原因是:微軟。如果要構(gòu)建Microsoft應(yīng)用程序,C#就是您的語(yǔ)言。
PHP
PHP是一種腳本語(yǔ)言,考慮到80%的Web由PHP提供支持,它有點(diǎn)被低估了。它作為WordPress主題的基礎(chǔ)而聞名,因此如果您對(duì)創(chuàng)建自定義主題感興趣,那么您必須熟悉PHP。
你可以用PHP做很多事情。它只是作為第一個(gè)推薦的奇怪語(yǔ)言,因?yàn)樗赡懿蛔阋詽M(mǎn)足您的所有編程需求。PHP有其局限性,但實(shí)際上初學(xué)者很容易學(xué)習(xí)。
還有很多其他語(yǔ)言,這并不是一個(gè)包羅萬(wàn)象的列表。
如果有足夠的興趣,我會(huì)用更多語(yǔ)言更新這篇文章。請(qǐng)記住一件事:每個(gè)開(kāi)發(fā)人員都有一個(gè)喜歡的語(yǔ)言,每個(gè)開(kāi)發(fā)人員都會(huì)告訴你先學(xué)習(xí)這門(mén)語(yǔ)言。
但你不是每個(gè)開(kāi)發(fā)人員。
一旦你弄清楚你想要做什么,你應(yīng)該從對(duì)你最有意義的語(yǔ)言開(kāi)始。如果您知道自己想要制作移動(dòng)應(yīng)用程序,請(qǐng)不要在教授JavaScript的訓(xùn)練營(yíng)中投入18,000美元(無(wú)論JavaScript多么令人驚訝)。
我們來(lái)談?wù)劜磺袑?shí)際的編程語(yǔ)言。
我不打算給任何名字命名,但是如果你偶然發(fā)現(xiàn)了一個(gè)“酷語(yǔ)”并且你不知道它的用途是什么,那么很可能它不是一個(gè)好的第一語(yǔ)言。
這包括“遺留”語(yǔ)言。如果幾十年來(lái)沒(méi)有人使用過(guò)某種語(yǔ)言,那就不要把它作為你的第一種編程語(yǔ)言。這就像試圖學(xué)習(xí)阿拉姆語(yǔ)作為你的第一外語(yǔ)。您將找不到足夠的文檔來(lái)超越“初學(xué)者”級(jí)別,如果您在編碼面試中嘗試使用古老的語(yǔ)言,人們會(huì)睜大眼睛看著您。我只是說(shuō)。
務(wù)實(shí)。
最好的第一語(yǔ)言是做你需要它做的事情。