導讀:現在,技術已經成為所有行業創新的基石。這引發全世界對程式員和開發人員的巨大需求。技術的美妙之處在於它觸手可及,所以……
你不用先成為火箭科學家就能成為一個牛逼的程式員。
這看起來可能很難,但事實是……它可能比你想象的要容易。你只需要閱讀,練習並付出一些努力。 但是……這不就是你每天都做的事嗎?
作者:Agnel Nieves
譯者:之餚
來源:優達學城Udacity(ID:youdaxue)
本文主要大綱:
-
打好基礎
-
入門資源
-
編輯器推薦
-
線上課程推薦
-
精神食糧
-
圖書推薦
-
融入社群
-
App推薦
-
程式設計環境推薦
-
社群推薦
-
如何提問
-
技術網站推薦
-
一些方法論
01 打好基礎
首先, 在你開始糾結分號之前(也許你現在還不明白這個梗,但相信我,以後你就會明白的)你需要一個好的電腦科學基礎資源和一個好的文字編輯器。 即使已經有一大堆這玩意兒,我會告訴你最常用的那個。
1. 入門資源
-
Teach Yourself Computer Science
這個網站給你提供了一個瞭解電腦科學和程式設計的起點。 它涵蓋了許多重要的基本主題,可以幫你構建對 CS 的背景知識。
-
Git
Git 是一個版本控制系統,能維護你的程式碼版本。如果你改了什麼地方,或者加的新東西出了什麼問題,你都能回到前一個版本。你可以從https://try.github.io/ 開始學習 git。
-
Github
這是一個非常重要的資源。 幾乎每家程式設計公司都會要求你有版本控制系統的經驗。 GitHub 是一個基於 Web 的託管服務,用於使用 git 進行版本控制,主要用於託管計算機程式碼。 它提供了 Git 的所有分散式版本控制和原始碼管理功能,還能新增自己的功能。 你還能在上面和其他程式員協作,或者可以將它用作靜態 HTML 主機來儲存你的個人專案檔案。實際上你也可以在 Github 裡面弄個網站。
-
Bitbucket
Bitbucket 與 Github 相同,除了沒有同性社交平臺。 這兩者之間的另一個重要區別是 Bitbucket 允許你建立私有儲存庫,而在 Github 中你必須為此功能付費。其他和 GitHub 基本相同。
2. 學習命令列
命令列是大多數神奇的事兒發生的地方。 因此具備一些命令列技能非常重要。
-
Sublime
在我看來,這個編輯器是最好的編輯器之一,它有很多外掛和程式碼片段,在效能和生產力方面也非常可靠。 我還會用它,但我也愛嘗試新的東西,所以我最近切換到 Visual Studio Code 。
支援平臺:Windows,Mac OS和Linux
-
Visual Studio Code
Visual Studio Code由微軟開發,雖然它還很新,但它已經進入了2017年頂級文字編輯器的行列。它很好用,並促使我最終捨棄Sublime,我得說它是一個非常牛逼的文字編輯器,用了不後悔。
支援平臺:Windows,Mac OS和Linux
-
Atom
Github出品的這個文字編輯器以前是我的首選。 它介面很好看,設定起來非常簡單。 但讓我用回Sublime的原因在於它有時會變得非常緩慢,有時我開啟一個縮小的檔案時它就會崩潰。 但總體而言,它是一個不錯的文字編輯器。
支援平臺:Windows,Mac OS和Linux
-
Notepad++
Notepad ++是一個基本的文字編輯器,具有編寫程式基本所需的功能。 有些人喜歡這個,因為它很簡單。 就我而言,我發現自己在更強大的文字編輯器(如VS code或Sublime)上更有效率。
支援平臺:Windows
-
VIM
駭客們,這個適合你。 這個文字編輯器更具技術性,需要更多配置。 它預設出現在Mac OS和大多數基於UNIX的系統上。
支援平臺:Mac OS,Linux和Windows
記住:你可以任意選擇其中的文字編輯器。 根據流行趨勢和我的經驗來說,這些都是最好的。
3. 線上學習資源
-
Free Code Camp
Free Code Camp是面向 Web 開發人員和全棧開發人員的免費程式設計學習網站。 我的 Web 開發職業生涯的第一批資源中就有它,我真的很喜歡用。 他們甚至還提供真實的非盈利專案,以磨練你的技能。
-
Code Academy
Code academy是最好的學習資源之一,它提供了全面的基礎程式設計體驗。 在課程頁面上還有一個實時的文字編輯器,以便你邊學邊練。
-
Ruby Monk
Ruby Monk是學習Ruby的非常好的入門教程。 它為初學者提供了一個簡單、直接的課程,非常容易理解。
-
CodeWars
Code Wars 是個學習編碼的好地方。 你能在上面和真人實時互動,完成真實的程式碼挑戰,提升自己的技能。
-
Railsforzombies.org
這是另外一個學習程式設計的好地方,我建議在嘗試這個網站之前掌握一些關於Ruby的基本知識。 這個網站能讓你透過遊戲學習 Ruby。
-
CodeSchool
CodeSchool提供豐富多樣的課程,有各種學習路徑,可讓你根據自己的興趣確定要點的技能樹。
-
Egghead.io
這是我最愛的學習資源之一,它更專註於 Web 開發技術。 它提供了高質量的編碼教程和課程,以更好地提升 Javascript 技能。
-
Udacity
我只用過 Udacity 幾次,但我已經知道很多關於它的內容,它真的很棒。 他們為初學者提供付費課程,他們稱之為“奈米學位”。 奈米學位看起來很有前途,基本上是針對某一特定主題的課程,從初級到高階都有。
例如,全棧開發者奈米學位涵蓋了從前端 Web 開發到後端 Web 開發的所有內容。 我必須指出,這些 Nanodegrees 是與谷歌,亞馬遜,IBM等大公司合作建立的。
-
Devslopes
Devslopes最初是一個Kickstarter眾籌專案,看到它後我頓時一見鐘情。 它提供各種高質量的程式設計課程,專案還能寫在簡歷上。 作為早期支持者,我得以為他們的專案做出貢獻,作為交換,我可以終生免費訪問他們釋出的所有課程版本。現在,如果你想擁有這個特權,機會還有,因為他們即將推出Devslopes 2.0並且有相應促銷。但我不確定是否還會有這個特權專案。 但這是買過最好的東西之一。 畢竟知識是無價的。
-
Treehouse
坦率地說,我以前從未考慮過這個網站,但在 Tomáš Vorel 的建議和幾周之後出現在 Facebook 和 Youtube 廣告的轟炸下,我決定嘗試一下。 我得說,這個學習資源非常有條理,我非常喜歡其中的教學方法。 主題有對應的視覺表現,特別好看。
02 精神食糧
沒錯,如果你想要真正掌握程式設計,你還是得讀書。 這是學習新技能的最傳統、有時也是最有效的方式。
這是我覺得有用的書籍清單:
Computer Science Distilled
這本書可能有點“無聊”,但它涵蓋了電腦科學和演演算法的基礎知識。 如果你真的想瞭解程式碼和演演算法的工作原理,那麼這本書是必須的。
Cracking the Coding Interview
本書涵蓋了在求職面試中可能會被問到的程式設計問題,並且教你如何處理它們。
The Innovators: How a group of Hackers, Geniuses, and Geeks Created the Digital Revolution
本書更多的是關於創新和技術的歷史。 它基本上涵蓋了所有以某種方式將技術化為現實的人。
Learn Python the Hard Way
這本書就是是一本練習冊,你可以邊學邊練。它還有每日挑戰,它涵蓋了python的基本內容。
Soft Skills: The developer’s life manual
《軟體開發人員的生活手冊》是一本獨特的指南,他給專業的軟體開發人員提供技術和實踐,以獲得更愉悅的生活。 作者從一個開發人員的視角出發,從職業和生產力到個人理財和投資,甚至健身和人際關係,書中涉及許多的重要“軟”技能。
03 融入社群
這是成為優秀開發人員的重要因素之一。 大多數人跳過這部分是因為他們認為這沒用,但事實是,它有很多幫助。你想不到與其他開發人員交談的一兩個小時會對你有多大的幫助。
舉個例子,在我第一次見面時,我有機會見到了 Advanced Custom Fields 的開發者之一(一個全球知名的Wordpress開發人員外掛),我實際上經常使用這個外掛。 我還成功成為 Wordcamp Miami 2018 WordPress 會議的工作人員。
話說到這兒,這裡有一些我常用的聚會和交流平臺:
-
Eventbrite 、Meetup
這倆 APP 能讓你找到附近的程式碼會議。
-
Co-working spaces
只需檢視“協作空間”,你就可以輕鬆找到附近的協作空間。 協作空間能讓你與其他開發人員分享知識,並獲得有關你的程式碼庫的真實反饋。
-
Playgrounds
遊樂場基本上是虛擬編輯器,可以隨時隨地練習,無需超頻電腦,它能幫你節省時間並掌握任何程式語言。 這些虛擬遊樂場的優點是你可以從任何地方訪問它們。
-
Cloud9
這個虛擬遊樂場實際上是一個基於Linux的全功能IDE。 這意味著什麼? 這意味著你可以透過終端在Linux機器上執行所有操作,甚至可以安裝庫。 它在大學裡給了我很多幫助。
-
Codepen
我經常使用這個。 Codepen是Web開發人員的聖杯。 它更像是一個線上社群,用於測試和展示使用者建立的HTML,CSS和JavaScript程式碼片段。
-
Glitch
Glitch幾乎與Codepen相同。 除了它更“友好”,它也非常強大。 但我還是更喜歡Codepen。
-
Orion
Orion是一個可以使用Java的線上IDE。
-
Python Fiddle
Python 在過去幾年中獲得巨大人氣。 對於那些想要將 python 新增到你的技能棧中的人來說,這是一個不錯的程式設計環境(你應該至少知道基礎知識)。
-
Codeanywhere
Codeanywhere是一個跨平臺的雲IDE。 它能讓使用者在Web瀏覽器和任何移動裝置上即時編寫、編輯、協作和執行Web開發專案。
-
Reply.it
這個是Vic A.建議的,我得說它看起來非常有前景。 這個虛擬程式設計平臺能讓你建立虛擬遊樂場,在上面開發、測試甚至部署應用程式。 它還包括一個非常棒的教學平臺,它有自己的評分系統。
04 卡住了?問問別人
作為一名生活在2018年的開發者的好處在於,有很多人已經踩過了你就要踩的坑。 很有可能其他人和你一樣都在同一段程式碼上卡住了,除非你正在研究專有程式碼。 即便如此,你應該能夠找到關於如何解決這些令人討厭的錯誤的提示。 現在,如何解決問題取決於自己的經驗。
以下是一些網站和資源串列,能幫你不用糾結於各種問題:
-
Stack Overflow
Stack Overflow 也被稱為程式員的聖經。它是最大的程式員學習、提問、分享甚至找工作的線上社群。 所以你的收藏夾裡一定得有這個。
-
Stack Exchange
Stack Exchange是一個簡單的問答網站。上面有論壇,幫助你清除那些程式碼疑慮。
-
Quora
我認為 Quora 更像是專業版的 Stack Exchange。 Quora 是一個獲取和分享知識的地方。 這是一個提出問題並能和提供獨特見解和高質量答案的答主交流的平臺。 它能讓人們相互學習,更好地瞭解世界。
-
Github
再說一遍,Github是程式員最常用的線上社群之一。學習、使用、分享,併在上面做貢獻。
-
Twitter
我猜你肯定聽過這個。 但是你有沒有想過用它作為學習和回答問題的資源? 好吧,讓我告訴你,Twitter 上有大量使用者,上面有很多專家。 只需發推提問題加上相應標簽就行。
-
Reddit
Reddit 上不止有 Meme 和 GIF。 Reddit 也可以成為尋找解決方案或學習新技術的強大資源。 它有一個執行緒系統,可以更好地規劃主題。
-
Hacker News
該資源有科技行業的重要資訊,真的很有用。
-
Producthunt
我難以表達我對這個網站的喜愛程度。 我每天都會使用它。 它不斷釋出一系列新工具,應用程式,框架,網站甚至是查詢小工具。很多都和技術相關! 所以你總能在上面學到新東西。 它還具有求職和問答部分。
05 結論
閱讀,練習,分享,提問……重覆,這就是一條學習之路,你得堅持下去並有很大的耐心。 沒有人生來就是某一領域的專家。我也還有很多東西需要學習。 請記住,成為優秀開發人員最重要的因素之一就是成為社群的一部分。 所以,多嘗試不同的東西,約會,結識新朋友,獲得一些反饋,改正程式碼並獲得樂趣。
更多精彩
在公眾號後臺對話方塊輸入以下關鍵詞
檢視更多優質內容!
PPT | 報告 | 讀書 | 書單 | 乾貨
Python | 機器學習 | 深度學習 | 神經網路
區塊鏈 | 揭秘 | 高考 | 福利
推薦閱讀
Q: 這些神器你用了幾個?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視