從小我就知道我想成為一名程序員。關于它的事情總是令人興奮。編程就像一個思維難題,您需要找出如何利用計算機來表達自己的創(chuàng)造力。剛開始的時候,我很迷茫,不知道從哪里開始。我最終選擇了Java,主要是因為這是我真正聽說過的唯一語言(謝謝,《我的世界》)。我不知道Java是用來做什么的。從Codecademy開始,我學習了非常基本的控制臺語法。我覺得這很無聊,因此,我從中學不到任何東西。不幸的是,這段經(jīng)歷使我離開了很長一段時間。
如果您迷失了方向,不知所措,我想讓您知道您并不孤單。有太多不同的技術,語言,框架,庫等,因此很容易忘記每個功能。我想,您單擊本文的原因是您有這種感覺,并問自己"我從哪里開始?"。這個問題的問題在于,沒有一個簡潔明了的答案。就像問"我應該使用什么螺絲刀?"或"我的汽車最適合的輪胎?"。簡短的答案是:這取決于。
選擇語言
當您進入編程領域時,您需要考慮一些路徑和最終目標。基本上,您想通過編程完成什么,您想解決什么問題。不要僅僅因為某一種語言受歡迎而選擇一種語言,或者您的朋友說您應該嘗試一下。您想學習一種用于構建您熱衷的東西的語言。您需要對目標進行一些研究,并查看完成該任務需要哪些技術。
一個例子
假裝您想了解Web開發(fā)。為了幫助您理解,我將在Medium網(wǎng)站上對此進行解釋。 Web開發(fā)的第一部分是前端。當您在Medium網(wǎng)站上閱讀文章時,您正在看的是前端。它使用三種語言構建:HTML,CSS和JavaScript。 HTML和CSS不是編程語言,而是與JavaScript一起使用以創(chuàng)建應用程序的語言。 HTML(超文本標記語言)用于向您的網(wǎng)站添加元素。您在中級文章中閱讀的文本全是HTML,按鈕和圖像也是如此。 CSS(層疊樣式表)使您可以設置頁面上看到的這些元素的樣式。本文中使用的字體,文本的位置,不同組件的不同大小,均由CSS控制。 JavaScript是用于Web開發(fā)的編程語言。它用于向頁面上顯示的元素添加功能。當您單擊作者帳戶上的"關注"按鈕時,正在使用JavaScript。 JavaScript使用HTML和CSS制作了一個按鈕,用來跟蹤該帳戶,然后開始向您展示他們的故事。
Web開發(fā)的第二部分是后端,用戶實際上看不到它。后端是存儲所有站點數(shù)據(jù)的位置,然后將其發(fā)送回前端,以供用戶查看。此帖子的評論或拍手數(shù)量全部存儲在此。然后,您可以使用JavaScript來獲取此信息并對其進行處理。我不會詳細說明,但是希望您理解我要提出的觀點-您需要弄清楚要構建和利用必要技術以完成任務的內容。
您可以認為它就像一臺機器一樣進行編程。假設有一輛汽車。為了正常運行,它需要引擎蓋下的各種不同部件一起協(xié)同工作。
學習資源
確定了要學習的語言后,下一步就是找到要使用的資源。這完全取決于您的學習方式和預算。通過閱讀或觀看視頻,您可能會學得最好。您可以花錢購買課程或書籍,也可以只使用YouTube等免費資源。學習編程并非要花錢,而是要花費時間。您的時間很寶貴,因此請確保明智地使用它。我將在下面鏈接到一些我發(fā)現(xiàn)最有用的資源。
1. Udacity
該網(wǎng)站提供免費和付費的編程課程以及各種其他主題。付費的幾乎總是以10-11美元的價格出售。但是,這很受歡迎。有一些杰出的講師,然后有一些非常糟糕的老師。幸運的是,他們確實提供30天退款保證,因此,如果您不喜歡自己的課程,則可以獲得全額退款。
如果您想學習Web開發(fā),我目前正在上一門很棒的課程,我強烈建議您退房。這是那些有興趣的人的鏈接。
2. YouTube
該平臺上有大量免費視頻,它們對于學習基礎知識和更高級的主題非常有幫助。盡管與Udemy一樣,它還是很受歡迎的。
我最喜歡的創(chuàng)作者包括Brad Traversy,Web Dev Simplified,The Net Ninja和Colt Steele。
3. Codecademy
一個免費的網(wǎng)站,您可以邊做邊學。您在網(wǎng)站上有一個內置的代碼編輯器,可以為您輸入的代碼提供即時反饋。這是一種習慣于編寫代碼方式的有趣方式。他們提供了多種語言的大量課程。
4. FreeCodeCamp
與Codecademy非常相似的另一個站點,您可以在其中瀏覽器中進行編碼。雖然我沒有親自使用過該網(wǎng)站,但一直有人告訴我,它對了解基礎知識有很大幫助。對于那些對程序感興趣但還不想投資的人,它可以作為一個很好的切入點。
無論您選擇利用哪種資源,都需要確保自己也在練習。在學習了一個主題之后,嘗試并以此為基礎。
警告—不惜一切代價避免"教程地獄"
> via Freepik
正如我剛才提到的,構建輔助項目對于成為一名成功的程序員至關重要。在學習編程時,很有可能在某個時候發(fā)現(xiàn)自己陷入了"教程地獄"。這是一種學習狀態(tài),您必須依靠教程,不能自己構建任何東西。您需要有人牽著手,告訴您確切的操作。沒有此幫助,您將無法做到。別誤會,課程是學習編程語言基本語法的絕妙方法,但它們只占您學習內容的25%。
絕大多數(shù)需要使用您所學的知識制作自己的應用程序。我知道這非常難,因為在那里有很多課程可以構建出色的應用程序。盡管您需要花一些時間并了解基礎知識,然后再去構建有趣的東西。我被困在教程地獄中浪費了一年多的學習時間。我沒有動力,我無法獨自做任何事情,而且對所教的內容我?guī)缀鯖]有保留。自從在我最近的課程中采用一種新方法,利用包括的編碼練習并嘗試在看到解決方案之前構建應用程序以來,我學到了很多東西。
通過這樣做,您將學到的最重要的內容是如何使用Google。您將學習如何獨自解決問題。現(xiàn)在這并不容易,但是未來的自己會感謝您。
總結
編程是一項很棒的技能。那里有許多種語言都可以滿足自己的目的并解決自己的問題。您需要弄清楚自己的熱情是什么,并通過代碼進行追求。這將是一條漫長的路。當然,這并不容易。您將在某個時候遇到障礙,您只需要為他們做好準備,并且知道您會成功解決。
祝你好運!
原文鏈接:
https://medium.com/codex/what-is-the-best-programming-language-to-learn-as-a-beginner-50f6f967fc4b
原文地址:https://www.toutiao.com/i6916687702876340748/