[翻譯]首先我應該學習哪一種編程語言?
原文地址:Which Programming Language Should I Learn First?
你想要學習編程.也許你已經問過你開發的朋友關于推薦哪種語言,而且也獲得了不同的回答.但他們說出一些你不懂的術語(什么是面向對象?!).為了 幫助你選擇一個編程語言來學習,這里給你提供一個易于理解的信息圖,憑借你的目的和興趣,有助于你做出最好的選擇.一些詳細資料,包括學習的難度,語言受 歡迎程度和平均收入,每一種編程語言都會涉及.
我也為每一種編程語言編譯了一個列表,最佳編程工具和資源,為了幫助你趕快行動.
特別感謝Prithviraj Udaya授權我是用他在Quora上的的指環王類比
注意:一個優秀的程序員應該至少了解一些編程語言來學習用不同方式來解決問題.為了技術不落后,他們持續學習和成長.這僅僅是你的編程之旅的開始,簡單的選擇一個然后馬上開始編碼.
大多數優秀的程序員編程不是因為他們想要獲得豐厚的薪酬或者更多的榮譽,他們僅僅覺得編程有趣.
- Linus Torvalds (Linux之父)
點擊上面的信息圖查看完整大小.
獲取PDF版本
信息圖詳解和問題與解答:點擊這里跳轉或者滾動到文章底部查看.
最佳編程工具和資源
初學者:IDE代表集成開發工具.它是幫助開發人員寫代碼的工具,一般由代碼編輯器,編譯器和調試器組成.
下面是最佳課程,教學,數據等等.涉及每一種編程語言.可以隨意建議任何的新資源來保持以下列表更新.
(譯者注:(1)原文使用標簽頁,markdown格式暫不支持,所以在此用目錄代替索引如果想要看原文格式,請查看原文 (2)各語言推薦書籍中,尚無中文版本,皆保持原文顯示.)
目錄:
Python
Java
C/C++
JavaScript
C#
Ruby
PHP
Objective-C
For Kids
有用的資源
問題與解答
Python ↑
-
開啟一個文本編輯器,類似Sublime Text,之后可以移步到IDE上做一些更為復雜的項目,比如PyCharm或pydev
課程
- Treehourse - Python基礎課程
- Udemy - Python編程終極教程
-
免費
- Udacity - 計算機科學簡介
- Codeacademy - Python
- Google’s Python Class
免費交互式指南
書籍
- Python Programming: An Introduction to Computer Science
- Python Programming for the Absolute Beginner
- 像計算機科學家一樣思考Python (免費在線閱讀)
- Learn Python The Hard Way (免費)
Web開發
如果你打算使用Python創建網站,嘗試Flask,一個對初學者十分友好的PythonWeb框架
Java ↑
官方網站: http://www.oracle.com/technetwork/java/javase/overview/index.html
-
首先,你應該理解面向對象編程的概念(OOP):
- 一個車的類比:如何想非技術人解釋OOP概念?
- 更多細節版本:Java教程:不要害怕OOP!
- 下載和安裝Java SE 開發組件(JDK)
- IDE: Eclipse
- Oracle官方Java教程
課程
- Treehouse – Java基礎課程
- Udemy – 面向零基礎的Java教程
- Udemy – 初學者Java編程-Java終極教程
教程(免費)
書籍
- 新手學Java7編程
- Java編程思想 (免費獲取舊版本:這里)
- Effective Java
- 學習完基礎和原理之后:深入淺出Java
- 如果你想深入掌握Java: Java完全參考手冊
- Think Java (免費)
如果你想要創建Android應用:
-
Courses
- Treehouse – 構建一個簡單的Android應用
- Udemy – 從Scartch入手,學習Android編程
C/C++ ↑
關于C/C++
- 一個非常好的讀物關于為什么C和C++是不同的語言? - 我應該在學習C++之前學習C?
- 為什么C不是C++的子集
- IDE: Visual Studio 或者 Eclipse
- Tutorials & References: Cprogramming.com
關于 C
-
書籍
- C Programming Absolute Beginner’s Guide
- 如果你想掌握C編程,必須讀– C程序設計語言
- C語言程序設計:現代方法
- Learn C The Hard Way(免費)
-
教程(免費)
- Learn-C.org
- 教程要點 - C 教程
- C 常見問題
關于C++
- 每個水平不錯的書籍列表- C++權威書籍教程和列表
- cplusplus.com – C++ 資源網站
-
教程
- 一個關于游戲開發不錯的教程:Udemy - 學習C++游戲開發
-
教程(免費)
- LearnCpp.com
- C++控制臺視頻教程
- 教程要點 – C++ 教程
- 書籍
JavaScript ↑
- 代碼編輯器: Sublime Text
Courses (Free)
教程 (免費)
- Mozilla 開發社區 – JavaScript 基礎 – 學習Web
- Superhero.js
書籍
對于前端開發人員, 必須學習HTML & CSS. jQuery也是重要的.
-
關于HTML, CSS, 和JavaScript不錯的類比: 以一個房子來解釋網站中的一部分
-
書籍
-
課程
-
教程: W3Schools (免費)
對于服務器端開發人員, 學習 Node.js:
- 課程
C#↑
官方網站:http://msdn.microsoft.com/en-US/vstudio/hh341490
- 首先,簡單閱讀C#,.NET和ASP.NET之間的練習
- 官方C#入門指南
- IDE: Visual Studio
- web 開發: 官方ASP.NET入門指南
課程
教程
書籍
- 深入淺出C#
- C# 5.0 核心技術
- CLR via C#
- ASP.NET高級編程 (For web development)
- Programming C# for Beginners (Free)
Ruby ↑
注意: 以下資源主要針對Ruby on Rails框架.
- 官方Ruby on Rails入門指南
-
IDE: RubyMine
-
使用Ruby on Rails開發網站,必須有HTML,CSS和JavaScript的基礎.點擊"JavaScript"標簽頁獲取更多信息
Courses
- Treehouse – Ruby基礎課程
- Udemy – Ruby初學者編程訓練
- Rails for Zombies (免費)
教程
- RailsCasts (免費章節)
書籍
- Ruby on Rails 教程 (免費在線閱讀)
- 適合初學者的書籍 – 應用Rails進行敏捷Web開發
- 如果你想掌握Ruby on Rails 開發 – Ruby編程語言
PHP ↑
官方網站: http://php.net/
- IDE: PhpStorm
- 不錯的最新PHP參考和資源: 正確的方法學習PHP
課程
- Treehouse – PHP基礎課程
- Udemy – PHP 和MySQL開始指南
- Codeacademy – PHP (免費)
書籍
學習完基礎知識之后,你或許會考慮使用框架:
- CodeIgniter – 非常適合初學者,容易,適用于小型項目
- Laravel – 最好的和最流行的PHP開發框架
Objective-C ↑
官方網站: https://developer.apple.com/
- 如果我想成為一名iOS開發人員,我應該馬上學習Swift而不是Objectvie-C嗎?
- Objective-C和Cocoa之間的區別是什么?
- 官方入門指南:
- 你或許打算學習 Swift 作為你的第一個/下一個語言.
課程
- Treehouse – Objective-C基礎
- Code School – 嘗試Objective-C (免費)
-
iOS 應用開發:
- Treehouse – 使用Objective-C構建一個簡易的iPhone應用
- Udemy – 如何構建iPhone應用– iOS 開發課程
教程(免費)
- Cocoa開發中心
- 編程要點 – Objective-C Tutorial
書籍
面向兒童 ↑
- 8 – 16年齡: Scratch – 創建自己的游戲,輕松的故事和動畫.
-
讓孩子更多的有趣的方法來學習編程:
- 10+ 年齡 : Lego Mindstorms– 編寫程序賦予機器人生命.
- 3 – 8 年齡: Robot Turtles – 棋盤游戲教編程.
- 不錯的列表 兒童編碼應用和網站
- 兒童互動課程 – Tynker
-
一旦你的孩子學習完編程原理,你可以繼續教他們Python (參考 “Python” 標簽頁).
- 適合孩子學習Python書: 趣學Python編程
更多有用的資源 ↑
-
最佳在線編程課程:
- Treehouse (第一個月免費):為零基礎者提供,選擇這個作為你的第一步.
- Codeacademy: 適合初學者精彩和免費的課程.
- Code School (優惠$20頭一個月): 推薦作為你第二/第三的課程.適合"中級學者".
- Udemy (使用 “CARLCHEO” 優惠劵獲得75%的優惠): 許多在線課程列表.其中有一些是非常棒的.推薦你在注冊之前先閱讀課程簡介!
- Code.org
- Khan Academy: 計算機編程課程
- MIT OpenCourseWare: 最多訪問課程列表
- edX: 來自世界最好的大學中的免費在線課程
- 如果你使用一款IDE,也想要獲取它源代碼來快速查看和編輯代碼:Sublime Text 或 Notepad++
- Amazon: 入門級暢銷編程書籍
- 最好的實用編程指南之一: Code Complete
- 油Tube優秀教程視頻頻道: thenewboston
- CS50.tv : 哈佛大學的計算機科學入門課程
- Google Blockly:可視化編程語言(和 Scratch相似)
信息圖詳解和問題與解答 ↑
1. 為什么到處都是Python ?你是一個Python的粉絲嗎?
當有多個方案在一個場景中的時候,我決定使用Python作為首選語言,因為它被廣泛認為是最好的編程語言初學者。下面是一些證據:
- Lifehacker – 首次學習者選為最佳編程語言投票(18,665投票中占34%)
- 最受歡迎的介紹美國大學的教學語言
有成千上萬的辯論,認為其他編程語言是更好的,但我認為我們應該堅持大多數人的意見.
2. Favourite Toys Analogy
- 樂高 (Python) 和 玩泥巴 (Ruby): 下面是原始的玩具引用類比–
我對大多數初學者推薦Python,但沒關系。無論你是偏好Ruby或Python程序員,取決于你的個性。如果你年輕的時候最喜歡樂高玩具,選擇Python。如果是粘土,使用Ruby.
- Mattias Petter Johansson on Quora
- 古老和丑陋的玩具,但是非常喜歡它! (PHP): 在90年代有很少的選擇來開發網站,互聯網革命期間PHP才慢慢 主導web開發. 如今它仍然是 最流行的服務端腳本語言 ,但是會比C# (ASP.NET), Ruby (Ruby on Rails), JavaScript (Node.js)等等慢慢失去人氣. 查看 不錯的類比 關于為什么PHP是丑陋的, 而且 為什么它仍然是非常有用的和重要的呢.
3. 自動和手動汽車的類比
C比Java給你更多的控制。使用Java,你不必擔心換擋(比如Java的內存管理),但使用C,你可以開車(執行代碼)更快更有效。
4.我認為非死book使用PHP嗎?谷歌是使用Python ?
兩家公司都使用多個編碼語言,像Java和c++。在這種情況下,我們應該遵循規則# 1中的規定。底線是,你絕對需要學習不止一個編程語言在大多數公司找到一份工作。
5. 程序員通常面臨的挑戰是什么?
- 數小時盯著你所謂的工作代碼.
- 有時你覺得自己愚蠢.
- 你認為花費了許多的開發時間.
- 被委派來修復一切事情,而且不得不和電腦一起工作.
你同意上面的流程圖嗎?在下面評論中讓我們知道.
來自:https://github.com/jptiancai/jptiancai.github.com/issues/13