在QQ、网络上遇到不少自学编程的同学,绝大多数都放弃了,或者在迷茫中,从业余到专业的门槛我们到底要放弃多少次?学习编程从开始到掌握开发技能需要写完多少代码,做多少项目?也是我一直在思考的问题。从入门到放弃的症结在哪里,如何突破?
从入门到放弃的学习一般有以下几个特点:
一、纠结学习内容经常
学哪个好,是前端,还是Java、Python
很多这样的问题,学习哪一种编程语言比较好?还有一些同学过了一种语言一段时间后,进度慢,没有什么效果,产生自我怀疑。就换到另外一门语言来学习。
遇到很多同学,有学习的想法和愿意,大多人是为兴趣而学习。兴趣和决定只能带来一时的学习热情,良好习惯和执行计划才是自学的主要形式。不然都是浅尝辄止,只能完成hello world。
一种编程语言没有学通,达到应用的程度,没有做过实际项目的话。再学习另外一门语言,基本上还是入门程度。只有在生产环境中解决的问题,才会最大化提升你的“功力”和经验值。
昨天微信小程序推出了,会不会有同学马上转去学js, h5呢?
二、状态不稳定,不能持久
没有稳定的学习状态,不坚持,不能产生学习效果。
想要有学习效果,必须有一个稳定持续的学习过程。稳定的状态包括:
1、每天足够保证足够的学习时间
我跑步快3年,跑了5000多公里,参加的马拉松有20多个。跑步想要达到减重,有效果的话,每次要40分钟左右(或者10公里),配速可以慢慢提升。
想学习编程开发,基本上无法利用碎片化时间。你需要坐在电脑前,看文档看书,看视频,还要实践-coding,一次一个小时不够吧。
所以你计划学习一门编程语言,需要做好时间上的安排。
2、最好是固定的时间做固定的事情
固定的时间固定的事情,最大的好处,就是不纠结,效率高。很多人把这个叫“仪式感”,无论是固定时间点,还是固定的环境(书房、图书馆、教室),都可以让你快速进入到学习的状态。
3、良好的身体管理
很多人持续一两周都会碰到事情多,或身体不适而中断,中断之然又比较难调整过来。所以自学实际上也是对自己精力、注意力和身体的管理。
三、多线程,多任务
一段时间有很多改变的想法和计划
在一段时间把想改变的计划安排得很满,又是英语,又是书法,又是设计,还有弹琴...
编程的学习,我的建议,是集中火力猛攻,高举高打。从战略上藐视它,战术上一步一个脚印,快速击破式的学习。突破式的学习,最大的好处,就是学会一样东西,马上就能形成战斗力。
计算机的多任务进行,是时间片的轮换,需要加载上下文,需要占用更多的内存。“多线程,多任务”式的学习,也会耗费你大脑和注意力的资源。
PS:
关于要不要培训
在写我这篇文章时,李笑来老师的全栈工程培训第二期还在招募中,学费是六万。一般的IT培训费用是小两万元。(这些都是线下学习的费用)
培训的一个最大好处,把你需要学习掌握的内容做了系统的规划,线下课堂学习能更好的管理你的时间和注意力,效果自然也比自学要好得多。培训的另外一个作用就是给学习提供一个很好的评价和激励系统,当你迷茫,想放弃时,能快速引导到一个正确的方向和航向上。
关于如何学习编程开发,我在 《编程学习方法论》 中会持续讨论记录。