对于初学者而言,在选择合适的入门语言时至少需要考虑两点:
- 是否能适用于构建你想要的应用。如果你的目标是创建一个运行在IPhone上的APP,那么最好选择 Object C 或者 Swift,学习web开发可以选择PHP 或者JAVA。实际上我们仍然可以用汇编做出网页,但是这样做成本高昂。
- 是否容易学习,在满足第一点的条件下请尽量选择容易学习的语言。容易不仅仅指语法简单,包括环境搭建、部署等都需要考虑在内,以及能不能容易找到好的学习资料,因此尽可能的选择主流语言。
别忘了非常重要的一点,学习编程语言还包括平台提供的API,比如Win 32 之于C /C#/VB,以及周边的库和框架(这些库、框架和工具能在上面说的技术图谱中找到)。IT历史上甚至出现框架和库引领编程语言走向的情况:JQuery 和Angular 改变了前端开发的思想; Rails 抢走了Ruby的名气;而SSH三大框架一度代表了Java世界。
最后我为初学者整理了一个流行编程语言和用途的表:
另外还需要注意的是开发工具,可以选用IDE和有代码提示的编辑器,但尽量不要在这上喋喋不休,这就像用来盛放你锋利兵器的架子,用着顺手就行,也不推荐使用纯文本编辑器,这看起来像赤手空拳。 推荐一些编辑器和IDE
挑选合适的资料和有效的阅读
对初学者而言,我仍然推荐好的视频教程,虽然我已经听到不下5个人声称是靠阅读官方文档或者看源码学会编程的,而且认为观看视频教程见效太慢。但这个思想对初学者很危险,不得不承认阅读文档和源码能更准确找到自己想要的信息,这对深入技术原理非常有用,但视频能比文字传达出更丰富的内容,有更直观的演示和细致的讲解,我想没有比这个更适合初学者了。
除了上面提到的精品课程和慕课教程,国内有像网易云课堂,国外有lynda.com这种在线学习视频网站,甚至在优酷和土豆都能找到足够的教程资源。
如果选择了阅读技术类书籍,我们来聊聊怎么有效的阅读一本技术书籍。
读IT类书籍和读考试类书籍的方式不同,初学者需要选择更接地气、并且能告诉你最终能做出什么案例的书籍。你不需要通读整本书,而是需要搭建好和书中版本一致的环境,然后把书中的每行代码敲入电脑,观察这些代码怎样被运行,在遇到问题时去请教朋友或者到搜索引擎中寻找解决办法,直到示例程序能被正确运行。
可能一个月才能读完一本书,但慢点并没什么坏处,敲过一遍的代码才能算是你的,否则永远存在于纸上的代码清单中。对于关键的概念和知识点,可以在阅读的同时做一些笔记,去尝试使用思维导图来做你的笔记吧,这让你的笔记跟上你的思考,并形成一个知识网络。
自我激励
自学无疑是寂寞的。编程学习耗时较长,如何保证在这个阶段能坚持下去?
我们知道很多人都能对游戏产生强烈的兴趣、愿意为之投入时间,这其中的秘密就是游戏的奖励规则。*死一个怪物就能得到一些金币,通过完成任务获得满足感,通过关卡的设计产生持续吸引力,进而形成正向的反馈。
其实学习编程也一样,实现一小段程序并运行,足以让人感到成就感和满足,借鉴这个简单的心理学技巧,定期给自己设定一些有实际意义但是不太难的目标和任务。太难会让人失去耐心,太简单又很无聊,最好设定一个跳起来刚好摸得着的任务。每完成一个目标就给予自己奖励,可以是完成任务的成就感,也可以是其他的物质奖励。
这个时候一个代办记事的清单就可以帮上忙了,可以是一个to do list的软件,或者自己手写一张卡片贴到墙上,关键在于不要忘了在任务达成后给予自己适当的奖励。