對程序員或編程初學者來說,有哪些最有用或最好的編程語言適宜學習? 創業者Roger Huang將為大家推薦一些編程語言,并分享個人的經驗與看法。Huang是一名連續創業者,目前他正專注于他的第二個創業項目,并給予他人職業成長的建議。
有幾個人曾經問我,有哪些最有用或最好的編程語言適宜學習?
姑且略過HTML/CSS不談,我認為答案取決于你想通過編程來做什么。
要點速覽
-
對只用一種語言來構建某個項目的情況而言,Javascript和它的框架是非常有用的。
-
Angular.js可以控制展示給用戶的網站前端。
-
Node.js將作為管理網站所有內容的網絡服務器。
-
Express.js在前端和服務器兩者之間運行,對信息的來去進行導向。
MongoDB作為存儲中心,用于存儲從用戶處獲取的數據。MEAN(Mongo/Express/Angular/Node)——一個有助于構建你在一個Web應用中所需要的一切東西的結構化框架——是一套目前被大量初創公司所喜好的編程語言。這是一個完備的組件,它包含了基于單一語言來Web化地構建所有事物的技術。
我一直在用Egghead.io和Scotch.io來及時更新我的Angular.js和MEAN技術。Egghead的網站內容主要集中于有序地組織的教學視頻。Scotch有一些關于構建Web應用的整個流程的很棒的圖表,包括下面這張解釋MEAN的圖表:
它們都有很棒的教學視頻,教你如何構建精巧的應用,例如基本的搜索引擎和新的表單驗證方式(以確保若你創建輸入表單,人們的實際輸入將是有效標準下的值)。通過使用Angular.js,你可以使一個網站動畫化并使它“動”起來,而不需要過多的設置。這是非常精巧的一種方式。
Python可讀性和靈活性都非常好,最近它成為大學院校在教授計算機專業時選擇的入門語言之一。
對于玩轉數據以及用它的共通模塊來完成各種你以前認為不可能的精巧工作來說——例如抓取完整的網頁和進行高級科學計算,Python都是絕佳的。我是在Learn Python上開始學習Python的,它非常符合我“ 邊做邊學”的學習風格。
Java(以及其他更緊密地與計算機硬件交互的語言)對人類理解來說會稍難一些,盡管對于幫助你理解“代碼的實際運行過程”和“程序員與計算機的交互過程”的絕大部分知識而言,它們是很棒的。
Java也用于在安卓系統上的移動應用開發,而這將會是一直有需求的領域。
如果我們想簡捷地將知識轉換成金錢,那么,我曾見到業界對IOS開發者有著大量需求,而開發IOS應用所使用的Objective-C和Swift也并不那么難學習。
Ruby——尤其是當它與Rails一起使用時——是一種因其并不陡峭的學習曲線而被大量初創公司在初創時所用的語言(事實上,有一本叫Children's Book for Ruby的書)。
我自己正在學習Python以處理數據;學習Javascript和MEAN以創建Web應用;以及學習Java以對計算機科學有更深入的理解與構建移動應用。我認為這是一個可用的平衡良好的編程語言組合。
我已經有了一組學習清單和資源,用來幫助你我學習構建杰出作品所需要的東西。但實際上,這些都不是最好的編程語言。
最適宜學習的編程語言——以及如何著手去學習它
學習如何像一個程序員那樣思考——學習如何通過簡潔的代碼來用數學解決問題,絕對是最適宜學習的東西。編程語言會演進,它們會改變,它們會衰落并不再受歡迎;一個編程語言社群會變化成另外一個。
現在偉大的Web應用可能會在幾十年后被淘汰。不會改變的是對人們的邏輯思考和問題解決能力的需求——以及將它們變成在機器上運作的一個更簡單的自動化流程的需求。
你可以寄希望于一個事實,那就是隨著時代不斷發展,如果你訓練解決問題的技能,你將能夠找到最適合你的語言,以及獲得你建立偉大事業所需要的知識與金錢。
我已經開通了Project Euler,它提供一系列與數學和邏輯相關的編程問題。我在Codecademy workspace上嘗試用Python構造整潔的代碼來解決這些問題。這是一名Google招聘官所提到過的“一個學習編程的很好的訓練步驟”,而我并不懷疑這一點。我感到我的大腦更敏銳了,并對我的能力更充滿自信——不僅僅是編程能力,還有思考能力。
最適宜學習的編程語言最終還是位于編程核心的邏輯,數學和問題解決能力。“什么是最適宜學習的編程語言”這個問題并無對錯,只要你理解編程的基礎價值何在。