原文地址:Which Programming Language Should I Learn First? 你想要学习编程.也许你已经问过你开发的朋友关于推荐哪种语言,而且也获得了不同的回答.但他们说出一些你不懂的术语(什么是面向对象?!).为了帮助你选择一个编程语言来学习,这里给你提供一个易于理解的信息图,凭借你的目的和兴趣,有助于你做出最好的选择.一些详细资料,包括学习的难度,语言受欢迎程度和平均收入,每一种编程语言都会涉及.我也为每一种编程语言编译了一个列表,最佳编程工具和资源,为了帮助你赶快行动.特别感谢Prithviraj Udaya授权我是用他在Quora上的的指环王类比注意:一个优秀的程序员应该至少了解一些编程语言来学习用不同方式来解决问题.为了技术不落后,他们持续学习和成长.这仅仅是你的编程之旅的开始,简单的选择一个然后马上开始编码.> 大多数优秀的程序员编程不是因为他们想要获得丰厚的薪酬或者更多的荣誉,他们仅仅觉得编程有趣.> - Linus Torvalds (Linux之父)
来源于:CarlCheo.Com
点击上面的信息图查看完整大小.获取PDF版本信息图详解和问题与解答:点击这里跳转或者滚动到文章底部查看.
最佳编程工具和资源初学者:IDE代表集成开发工具.它是帮助开发人员写代码的工具,一般由代码编辑器,编译器和调试器组成.下面是最佳课程,教学,数据等等.涉及每一种编程语言.可以随意建议任何的新资源来保持以下列表更新.(译者注:(1)原文使用标签页,markdown格式暂不支持,所以在此用目录代替索引如果想要看原文格式,请查看原文 (2)各语言推荐书籍中,尚无中文版本,皆保持原文显示.)
目录:PythonJavaC/C++JavaScriptC#RubyPHPObjective-CFor Kids有用的资源问题与解答
Python ↑官方网站:https://www.python.org/- 官方Python入门指南- 开启一个文本编辑器,类似Sublime Text,之后可以移步到IDE上做一些更为复杂的项目,比如PyCharm或pydev课程- Treehourse - Python基础课程- Udemy - Python编程终极教程- 免费 - Udacity - 计算机科学简介 - Codeacademy - Python - Google’s Python Class 免费交互式指南- Learn Python书籍- Python Programming: An Introduction to Computer Science- Python Programming for the Absolute Beginner- 像计算机科学家一样思考Python (免费在线阅读)- Learn Python The Hard Way (免费)Web开发如果你打算使用Python创建网站,尝试Flask,一个对初学者十分友好的PythonWeb框架- 官方Flask文档:书写非常清晰和完善的文档接下来,你或许继续前进到Django,没流行和广泛使用的Python Web框架- 官方Django入门指南- 教程:如何用Django跳探戈: 一个 Python Django 教程(免费)- 书籍: Test-Drive Development with Python(免费在线阅读)
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终极教程教程(免费)- Eclipse And Java 视频教程- 学习Java- 免费交互式Java教程- YouTube 视频 – Java (初学者) 编程教程书籍- 新手学Java7编程- Java编程思想 (免费获取旧版本:这里)- Effective Java- 学习完基础和原理之后:深入浅出Java- 如果你想深入掌握Java: Java完全参考手册- Think Java (免费)如果你想要创建Android应用:- 下载 Android Studio and SDK 工具- 官方入门教程- 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++ 教程- 书籍- C++程序设计原理与实践- C++ 程序设计语言- 游戏编程 – Beginning C++ Through Game Programming
JavaScript ↑- 代码编辑器: Sublime TextCourses (Free)- Codeacademy – JavaScript- Crockford on JavaScript: 在雅虎的一个公开演讲系列!教程 (免费)- Mozilla 开发社区 – JavaScript 基础 – 学习Web- Superhero.js书籍- A Smarter Way to Learn JavaScript- JavaScript语言精粹- JavaScript模式- JavaScript权威指南- JavaScript 编程精解 (免费)对于前端开发人员, 必须学习HTML & CSS. jQuery也是重要的.- 关于HTML, CSS, 和JavaScript不错的类比: 以一个房子来解释网站中的一部分- 书籍- Web Design with HTML, CSS, JavaScript and jQuery Set- JavaScript and JQuery: Interactive Front-End Web Development- 课程- Treehouse –学习前端Web开发JavaScript + jQuery- Codeacademy – HTML & CSS (免费)- 教程: W3Schools (免费)对于服务器端开发人员, 学习 Node.js:- 课程- Treehouse – Node.js 基础- nodeschool.io (免费)
C#
↑官方网站:http://msdn.microsoft.com/en-US/vstudio/hh341490- 首先,简单阅读C#,.NET和ASP.NET之间的练习- 官方C#入门指南- IDE: Visual Studio- web 开发: 官方ASP.NET入门指南课程- 零基础学习C#编程- 零基础学习C#原理 (免费)教程- LearnVisualStudio.NET- 免费- 零基础学习Visual C# .NET- 教程要点 – C# Tutorial书籍- 深入浅出C#- C# 5.0 核心技术- CLR via C#- ASP.NET高級編程 (For web development)- Programming C# for Beginners (Free)
Ruby ↑注意: 以下资源主要针对Ruby on Rails框架.官方网站:http://rubyonrails.org/- 官方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 (免费)书籍- PHP and MySQL for Beginners- Head First PHP & MySQL学习完基础知识之后,你或许会考虑使用框架:- CodeIgniter – 非常适合初学者,容易,适用于小型项目- Laravel – 最好的和最流行的PHP开发框架
Objective-C ↑官方网站: https://developer.apple.com/- 如果我想成为一名iOS开发人员,我应该马上学习Swift而不是Objectvie-C吗?- Objective-C和Cocoa之间的区别是什么?- 官方入门指南:- iOS- Mac- 你或许打算学习 Swift 作为你的第一个/下一个语言.课程- Treehouse – Objective-C基础- Code School – 尝试Objective-C (免费)- iOS 应用开发:- Treehouse – 使用Objective-C构建一个简易的iPhone应用- Udemy – 如何构建iPhone应用– iOS 开发课程教程(免费)- Cocoa开发中心- 编程要点 – Objective-C Tutorial书籍- Big Nerd Ranch培训系列:Objective-C编程- Big Nerd Ranch培训系列:iOS编程- Programming in Objective-C- 苹果开发之Cocoa编程
面向儿童 ↑- 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- YouTube优秀教程视频频道: 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.我认为Facebook使用PHP吗?谷歌是使用Python ?
两家公司都使用多个编码语言,像Java和c++。在这种情况下,我们应该遵循规则# 1中的规定。底线是,你绝对需要学习不止一个编程语言在大多数公司找到一份工作。
5. 程序员通常面临的挑战是什么?
-
数小时盯着你所谓的工作代码.
-
有时你觉得自己愚蠢.
-
你认为花费了许多的开发时间.
-
被委派来修复一切事情,而且不得不和电脑一起工作.
你同意上面的流程图吗?在下面评论中让我们知道.
网友评论