总是会遇到同学问:想入行互联网,做一名程序员,但你编程太难了,该如何自学编程呢?那么今天就给大家分享一下吧!
1. 自学编程的过程
大多数学习编程的新人,其实都不具备学习编程的天分,对大多数人来说学习一门新的编程语言,是很艰难的,但是要对自己有信心!自学编程从入门到掌握的过程,我总结分为了四个阶段:枯燥、混沌、开悟、解惑。
新人拿到的第一本编程入门书往往是从最基础的类型、语法结构、函数方法、类对象等等开始的,但是当你根本就不了解你所学的内容到底是想干什么的时候,就如同沙漠里吃干饼,学习内容又硬、又干、又无味,我估计一半以上的学习者就在这个阶段从入门到放弃了!
这里没有捷径,厉害的程序员之所以学习一门新的编程语言很快,就是因为这个阶段是相通的。而作为新人是不行的,这是不仅基础,也是最耗时间精力的阶段,要苦熬,尽管你可以投机取巧,找一些速成班,但是这样绝对是走不远的。
当你对基础掌握的七七八八,记住不是百分百,就需要开始系统的理解一个真实的开发工程,往往这个过程会发生在培训班的高级阶段或者进入公司的头半年,这个阶段,难的不是语法问题,而是面对工程框架和大量的程序库,都能干什么,你会一脸懵逼!这个阶段要做强行军,花上十分的努力去面对,这个过程就是在重塑你的系统化思维!
突然有一天 Leader 给你安排的任务运行起来,你也看明白道理了;或者 Leader 听了你糊里糊涂的逻辑,轻轻的指点迷津;又或者你进入到了源代码作者的思路当中,理解了他们的用意,这个时候你开悟了,如同在干渴的日子饮下沁人心脾的泉水,每天求知若饥,虚心若愚,这其实是程序人生第一次美妙的时光。
但事情还没完,对于你只是领悟了编程系统化的思维,距离灵活运用和掌握还需要一段很长的时间,但是这个阶段来了一个曾经和你一样的小白,记好,一定要多教教他。的确你也是个半瓶子,但那不重要,将你所知的内容都分享给他,一起解惑他所遇到的问题,一定要以教促学,因为这是学习编程最与众不同的地方,慢慢很多人就会发现你很乐于助人,总会有人请教你困惑的问题,每一次问题的发现、解决,本质上都是对解决问题者从多维角度的一次经验积累的正反馈,而愈发增益你其所不能。
如果看到这里,发现自己已经走完了这些过程,那么恭喜你,在程序人生的技术发展上,你的前景无限光明。
2. 自学编程的技巧
不少同学在学习编程的过程都会诉苦,“编程好难学啊,自己没有一点方向”。“网上一大堆资料视频,人都看麻木啦!”自学编程不仅仅靠的是毅力,还有方法和技巧,记好:编程学习不是死啃书,要去做!
编程的技巧这次我总结了五点:别问去做、保持正确、剥洋葱、多用日志,善用搜索。
很多同学从十几年的应试教育中走出来,特别容易陷入一种追求大而全的系统化思维体系后,然后才动手去做的惯性,这是编程入门的毒药,此毒必除!
编程特别注重逆向思维方法,先照猫画虎,不要先问为什么,例如:Java 程序必须使用 Jdbc 驱动包才能连接数据库,你作为初学者对此刨根问底,解决问题吗?要在边做边学的过程中,逐渐领悟系统的运行机制。
开发的第一原则是什么?让代码始终保持正确,这是永远要铭记在心的准则,当代码的复杂度让你理解起来很迷茫的时候,你一定先要让它们编译不要报错,让编译好的程序运行不要报错。只有正确可运行的代码,才能给与你解决问题的定力!任何错误都可能会干扰你对问题的正确判断。
那么我们怎么才能做到始终保持代码是正确呢?那就是学会剥洋葱方法,例如:你从网上扒拉下来一大堆代码,但是在你的 IDE 里面都是红色,你都懵了,怎么办?记好,精简是保持正确的不二法则,不断剔除错误代码,直到,哪怕就剩下一段代码,再一点点恢复,就会非常容易发现哪里是错误的根源。
还有很多初学者,一上来就是 IDE,运行程序出错就是调试工具排查错误,久而久之离不开调试工具了!真正复杂的生产环境,没有 IDE 你怎么办?你根本就驾驭不了,因此必须一开始就要习惯使用日志来调试,你能相信吗,我编程二十年,调试工具至今都不熟。
最后要说的就是出现了自己无法解决的 bug,怎么办?要善用搜索引擎,很多初学者遇到问题就慌,到处求人,而我这么多年的开发经验,大部分的 bug,Baidu 都能搜到,只有少量需要 Google 搜索,而真正需要 Google 和 Stackoverflow 解决的问题,大部分初学者还碰不到,这样效率高还不求人!
那么如何善用搜索呢?就是抓住关键词组合,别上去就是一个句子,搜索不是 Siri,这会给出歧义。异常中最能代表问题的关键字加上领域词,例如你操作 MySQL,终端抛出了 ClassNotFoundException 异常,这两个英文单词的组合就是搜索的重点,搜索引擎一定会搜出来很多 Jdbc 驱动包缺失相关踩过坑的大佬文章。因此善用搜索是编程学习最好的老师。
3. 即将找工作,下一步怎么办
如果是研究生,一毕业不存在找不到工作,而且还一个比一个找的好。但是面对大多数的学校一般的本科生、专科生来讲,找信息技术尤其是软件开发工作实际上是人生一大难题。
可问题来了,你可以去埋怨大学没教好,同样也可以懊恼自己的虚度时光。可这都是过去时,现在你该怎么办呢?扎扎实实的技术从而何来。自学,就从现在开始自学,做一个终身的学习者。
我一直认为,学习编程,学习操作系统,具有开发能力,是大多数寒门最好的敲门砖。当你进了科技公司以后,你会发现,其实大多数人只是掌握了一部分比较普通的技术,实际上 40%的时间做技术,60%的时间各种团队事务,甚至一部分人又从技术转向了管理、销售、产品等岗位,找到自己的真正所长。但是难就难在进门前的过程是极为困难的。
这一切都来自于你们现在这个时间,这并不是学习的结束,而是真正学习的开始,你现在最需要打下坚实的基础,给自己做一双好靴子,在社会前行之路不那么艰难痛苦,这对你的未来发展很重要。
自学第一选项是什么?
那就是一定要掌握一门主流的编程技术,耐心掌握一门编程技术并开发实践,参与培训机构的项目或者直接参与开源项目,为自己的简历上色。
再聊一个技巧:掌握哪种技术有一个隐藏的参考,那就是你身边的氛围是什么?例如你有个大哥是 Java 方面的高手,或者你有个舍友是个 C++方面的热爱者,当然人家也愿意指导你的问题。若有贵人相助,可作为技术学习的第一选择!若没有贵人相助,可以来慕课网,满满全是干货!