在我写了《为什么你应该让你的孩子尽早学习编程》一文后,收到很多读者的留言,询问如何自学编程以及希望我推荐一些书籍或教程。令我颇感惊讶的是他们中的大部分并非孩子的家长,而是那些渴望自学编程的年轻朋友们。我并没有急着给他们提供意见,因为我知道那些短时间内所做的仓促回复很可能会让他们作出错误的选择,从而使他们走上弯路,而最终半途而废。经过一番思考之后,我将那些自学编程前需要了解和思考的问题记录下来,希望能给那些刚刚开始或正准备自学编程的朋友们带去一些启发。
你是否适合自学编程
自学编程会是一个漫长而艰辛的过程,在你信心满满地准备开始之前,不妨先问问自己下面这几个问题,来判断你是否真的适合自学编程呢?
- 你是一个逻辑和抽象思维能力比较强的人吗?
- 你是否愿意不断地去学习那些新的东西,而在大多数时间内你都需要去自学。
- 当你遇到一些问题和困难的时候,你是否有足够的耐心和毅力去独自解决这些问题?
- 你是否有很强的好奇心去研究和探索那些未知的领域?
如果上面这四个问题中,至少有两到三个你的答案是Yes的话,那相信你是适合自学编程的,相反,你可能需要考虑选择更适合自己的学习方式,比如参加一些培训班,由导师带着进行系统地学习。
学习编程后你能做什么,不能做什么
很多人只是将编程作为一项技能去学习,而他们并不清楚学习编程之后能做些什么。这就和孩子在学校学习英语一样,由于缺乏目的性和应用的场景,而使得效果大打折扣。带有目的性地去学习,并不断地实践是学习编程的最佳方式。
学习编程以后,你可以:
- 独立地设计、开发一个软件,然后通过测试将它发布出去给更多的人使用。并不断地去维护与改进它。
- 可以参与到开发团队中,去开发一些更复杂应用,满足你客户的需求。
但你不能:
- 维修电脑,或解决Inernet连接问题。
- 像黑客一样去黑其他人的电脑。(黑客也都是程序员,但他们需要更多其他方面的知识和技能,我可以在后面谈谈我认识的那些黑客们是如何修炼的)
选择你的第一门编程语言
编程语言有几十种,你该如何选择你的第一门编程语言呢?我的建议是根据你学习编程的目的去进行合理的选择。
希望找到一份程序员工作
下面是那些大型企业最普遍采用的开发技术,你可以根据自己的喜好,选择不同领域的开发语言。
- Web前端开发(开发网站,基于Html5的手机APP等):JavaScript
- 后端开发(企业应用,后端服务):Java(跨平台), C#(Windows平台)
- 移动开发:Swift(iOS平台),Java(Android平台)
- 3D或游戏开发:C++
- 大数据或人工智能:Python,Java
如果你已经有一个很好的点子,并希望实现它
- 搭建网站:JavaScript + HTML5
- 做一个APP: Swift(iOS平台),Java(Android平台)
如果你希望为那些初创公司工作
可以选择JavaScript,因为越来越多的初创公司直接使用JavaScript来构建他们的前端和后端应用(比如使用基于JavaScript的NodeJs来开发后端服务等)。
如果你希望教孩子编程
可以先让孩子尝试Scratch或类似的游戏类编程学习软件,当孩子对那些基本编程知识有所了解,并具备一定逻辑思能力后,可以转而学习Python。
如果你只是想建一个个人博客或搭一个论坛或企业服务站点
你可以学习PHP,因为几乎所有那些优秀的基于CMS的建站平台都是用php写的,包括Wordpress,Drupal,Joomla等等。
从语言的难易程度方面选择
- 选择从最简单的编程语言开始:选择Python
- 稍微难度高一些,但使用场景更广的语言:选择Java
完全没有任何想法
如果你暂时对学习哪门编程语言没有任何想法,或只是为了提高自己想学习一门编程语言,那么我的建议是 Python
可以帮助你免费学习编程的在线网站
慕课网
慕课网是国内我比较喜欢的IT在线教育平台,包含了大量的视频教程,我上面提到的那些编程语言几乎都能在慕课网上找到相应教学视频。另外,它也根据不同的学习目的,比如制定了针对 前端工程师,Java工程师,PHP工程师 的学习计划。可以根据它的学习计划,由浅入深进行学习。
codecademy
Codecademy创建于2011年,它是一种基于网络的互动编程教程。每一节课你都会被要求完成一些练习,帮助你巩固学习的编程知识。
网易云课堂
网易云课堂也包含了大量的优秀IT课程,其中有不少编程基础课程,它们大部分也是免费的,非常适合初学者进行学习。
StuQ
如果你觉得自学开发对自己来说不太适合,那么你可以考虑StuQ,它采用众筹小班制教学的方式,由一些有经验的讲师进行授课,让你能够更有效地学习。
推荐几本教孩子学编程的书
最后,回答部分家长的问题,推荐几本我觉得写得不错,适合家长或孩子一起学习的编程书籍。
Scratch少儿趣味编程
Scratch 是麻省理工学院设计开发的一款编程工具,是适合少儿学习编程和交流的工具和平台,有中文版且完全免费。这本书结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教大家如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,通俗易懂,寓教于乐。
趣学JavaScript
JavaScript可能是目前最流行的的开发语言,这本书用轻松愉快的方式,通过耐心的、按部就班的示例,以及充满乐趣的图示,帮助你轻松地学习编程知识。
父与子的编程之旅:与小卡特一起学Python
这本书得到了很多人包括教育专家的推荐,经过了孩子们的亲身检验。这本书同样适合大人阅读,如果你想自己学习编程,就赶紧拿起本书,探索看似神秘的编程世界吧!
自学编程绝不是一件容易的事,需要极大的耐心和克服一切困难的毅力,希望这篇文章能给每一位编程自学者一些帮助和启发。
简书签约作者:技匠,以上内容欢迎大家分享到朋友圈/微博等。