自学编程是一个艰苦的过程,同时也是一个励志的过程。搜索一下简书上关于自学编程经验和经历的文章,基本上都是“高分作文”,吸引了大量的关注和点赞,如
-
一个32岁入门的70后程序员给我的启示
阅读量 21,550 ,点赞 142 ,评论 112 -
如何在一年半时间自学掌握两种职业技能
阅读量 16,951 ,点赞 649 ,评论 164 -
26岁学编程会不会已经晚了?
阅读量 13,242 ,点赞 688 ,评论 329
编程自学究竟要跨过多少坑,才能走上平坦大道,才能看到星辰大海。一般来说,在自学的过程中都会哪些坑?下面帮你一一分析下。
一、语言方向
编程开发的学习大的方向,可分为移动端开发、后端开发、前端开发、嵌入式物联网开发,又可分不同的语言方向:C/C++, Java, C#, Object-C, Swift, Python, Ruby, Go ... ...
要进到这个行业,究竟选择哪个语言和平台会比较好?
十三、四年前仅掌握HTML的薪资都算得上金领一簇,四五年前,一个刚刚培训完Android, iOS的同学都能拿到8-10K。现在如果你只掌握这些内容,工作肯定难找到。
选择什么方向来学习就非常重要。Java开发需求一直比较靠前,C/C++ 自学起来难度偏高,这两年前端开发都很不错,机器学习今年很火…… 要综合市场和自身各因素来定。如果单纯为兴趣来学的,不在讨论之列。
这个阶段千万别纠结学哪个好,学哪个快,学哪个简单容易,千万别过一段时间再换一个方向。
二、内容体系
内容体系指的是,你一开始学习时,拿到一本书或者一个教程(包括视频)都会有一个系统内容,如何选择,甚至是先学哪后学哪,哪些内容是递进关系,哪些内容是平行关系,也可以说是 study map。
举个例子来说。都说学习 Python 廖雪峰的教程不错。
如果你要入门Python爬虫学习,按照这个体系来学习就不太好,整个这个体系是奔着Python Web开发实战的。所以即使是选到要一个好教程,也要做内容上的取舍和先后的安排,而这些对于一个刚刚自学的童鞋来说,基本是没有能力来做的。
再比较这段时间在『爬虫小分队』学习群里,有好几个同学都卡在 正则表达式 这里,花了好几天时间。实际上这部分内容先做一个了解,接下来一段时间爬虫里用bs4, xpath的时候,用到正则的时候不多,如果后面需要,你对程序的理解力上升后,代码量有了积累,再来查正则都行。所以这样一纠结、徘徊,学习的进度和信心都会有些影响。这是从知识体系、内容安排上的经验。
这个时候千万别一条道走到黑。要不断调整内容,多听取专业人士的建议。
三、调试(排错)
在自学习过程,你如何解决学习中的错误和调试,非常重要。这基本决定了你的学习模式和学习效果。
外语类的学习,我们可能通过反复听,反复读来模仿发音,甚至现有软件,能对比你的发音和标准发音在波形的差别,给出改进提示。最不济,你的英语学习是带了一定口音,是chingish。而编程语言的学习,遇到一个问题和错误 ,是无法通过重复来解决的,只有能做和不能做,只有0和1,没有差不多。这一步的问题不解决,是无法进行到下一步的代码或学习中的。
所以你需要提前想好,遇到程序需要调试和排错时,你如何去解决,一开始肯定不能光靠 BAIDU, Google。能靠搜索解决你所有的问题,实际上是你的自学能力已经相当不错了。当然最好的方式,是有一个随时给你思路和方法的老师。就是《刻意练习》中讲到 需要好的导师或教练。
当然调试(排错)的能力,随着自学习的过程会提高很多。
找到一个好老师,加上一个好的学习氛围在入门学习中不但会省力,坚持也不那么困难、还保持了学习信心。
四、如何坚持
要把坚持做到落地和分解就是:
- 每天花多长时间来学习?半小时,1小时,还是2小时
编程的自学,不适合碎片化学习,5分钟、10分钟、15分钟可以记单词,学习编程的时间要用“块时间”。 - 自学编程整个时间准备多长?3个月,5个月,还是半年?
一般全日制培训是4个月时间,心理上有准备,学到一定的效果肯定至少要半年。
把学习的时间记录下来,就是一种有效监督自己的方式。手机上APP也特别多,如iHour, Atimelogger。
能坚持,还要在学习的过程中找到信心和成就业,不然苦哈哈的坚持,很难持续下去。
学习当然要打卡,要记录,要总结,要分享。
五、获取信心
知乎上有 『如何增加一个人的自信?』回答:
你做成了一件事。
你又做成了一件事。
这时候,你会突然意识到自己继续做这个事情很大可能还会成,这种感觉,就叫自信。
等你连续做成了十次、二十次、一百次以后,无论有人再怎么质疑你打击你,你都会一笑置之了。
... ...
自信心的增长只能建立在从一个胜利迈向又一个胜利的基础之上。除此之外的所有心法都是自欺欺人的催眠而已。
编程学习中的信心,就是你解决一个又一个的错误,你会独立解决问题了,你能写一段代码、程序提高工作的效率 ... ...
这个信心开始可能来自己盲目的状态,需要他人给你,到后面就是你独立建立。
六、项目实战
自学中你做什么样的项目来打怪升级,找到应用场景很重要,所以你学习过程一定不要只想到完成书后的练习和作业。
一般一套完善的教程都会在过程中和后面有实战项目,这些只是你的基本任务。如果你有根据所学的内容,找到练习和应用的场景,解决实际的问题,奔着达到应用的目标,学习的效果会大大提升。
另外多看看开源代码,多看看别人的项目描述和分享。
如果能比较顺利的填好这6个坑,实际你就完成自学的初级阶段,顺利进阶了,这时候回望来时的路,你应该是站在半山腰上,会别有一番滋味在心头。
本周六 (2017.5.6)『爬虫小分队』学习群就邀请到一位趟过了这些坑的Python工程师,来分享 《编程学习中的坑与路》
LEON 一个文科生,6个月自学,成功从银行职员转身为Python开发工程师。
“ 半路出家,自学编程,想要活成神话,我的征途是星辰和大海。”