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