说在前面
小伙伴们大家好,又是全新的一天。
关于“自学编程的一些常见误区”这个话题其实很早之前就在视频里聊过了。时间过去了大半年,也还是有很多小伙伴会提及各种自学过程中的常见疑惑,所以还是用文字总结一下这几点想法,和大家共勉。
误区1:忽略基础,盲目莽进
基础知识和基础路线真的非常重要,就以Java领域举例,现在的应用框架实在是太多了,五花八门,层出不穷,迭代的速度太快了。但是假如Java SE的基础不牢、网络协议和操作系统不熟,基本的设计模式不了解,那一味地追求学习新框架反而会让自己陷入迷茫与困顿。
基础牢固,应用框架的学习自然就不用惧怕了,很快就能切入核心,掌握原理。而且越时髦的东西淘汰也越快,毕竟迭代太快了。
对于编程开发来说,这里一直在强调的基础主要就包括:编程语言本身、数据结构和算法、计算机网络协议、操作系统知识、数据库、常见的设计模式等等,无非也就这些了!
误区2:学到怀疑自己能力,编程真得靠天分?
有时候学习受挫,难免会怀疑自己的能力、怀疑自己的人生与理想,偶尔的心情低落属实太常见了。
在我个人看来,这东西主要跟你的经历、眼界,以及知识的丰富度有关。因为初学者很难看到问题背后的一些东西,眼界也没有那么开阔。从我个人感受来说,我以前练书时所心心念念的一些困扰和迷茫,随着知识学习的增加,所见所闻的丰富,也自然解惑了。
所以某个程度上来说,这东西也急不得,我们只能靠努力、积累、时间去完成,学到一定时候你就会不自觉地发现,原来之前的一些疑惑与困顿都豁然开朗了。
我还是坚信一句话:编程开发目前绝对还没有到拼天分的地步,不要日常怀疑自己,不要妄自菲薄。
误区3:孤军奋战,封闭学习
脱离交流,往往会让学习问题越积越多,最终导致失去兴趣,从而被劝退,所以我觉得还是应该 “走出去” 学习。
关于这件事,我觉得我们能做的其实有很多,最最简单的方式那就是敢于总结、敢于分享,敢于把所学所做的东西亮出去和大家一起交流,即使收到的是批评,换一个角度来想,反映的就是自己的缺陷与不足,改进后就是成长。
误区4:必须学习最好的语言
或者说,担心学习到的不是最好的语言。
这也是一年多来和小伙伴们交流的过程中,几乎提及最多的一个问题。语言其实不分好坏,而只有适合的应用场景。想学什么也结合自己的兴趣领域和目标岗位来定。我觉得后者才是应该首先花时间探寻和澄清的东西。
误区5:代码总记不住咋整?
代码真的不是靠记忆的,而是不停的写、不停的思考,在反复的练习中熟练掌握的。即使要记,最终熟记的也应该是设计和编码上的一些模式和套路,而不是具体的代码。
千万不要尝试用记忆力去替代自己的理解力!
误区6:到处搜集资料却从来不看
好像大家都有一个毛病,那就是到处搜集资源,网盘里很多东西,但是基本从来不看,也不好检索。
我觉得收集资料没有问题,但是墙裂建议在入库的那一刻做好归类与标记,方便后续检索与学习。另外也建议尽快规划好学习路线和时间节点,把所获资料和学习路线关联起来,扎实执行,把资料利用起来才是关键!
误区7:学了就忘,是不是不适合学编程?
学了就忘,是绝大多数人都有的通病。忘得快主要的原因还是因为没有用上,缺少实践和练习。
所以为了克服这个问题,我们能做的最起码有:一是多记录、多总结、多回顾。对于一个知识或者技能,可以画成脑图、或写成技术博客,这些都是不错的形式,后续复习也方便了;另外一点则是需求驱动,尝试寻思用所学的技能去做点小东西,练手非常重要,即使目前没有好的创意,那也可以多学习研究一些优秀的开源项目,从中找寻想法和灵感。
误区8:非科班以后工作可以做编程吗?
一年多来,遇到的另外一个很常见的问题就是:我读XXX专业,有意愿以后从事编程开发,请问可以转过去,或者找相关的工作吗?
从个人的经历和所见来看,不管是自己同学,校招认识的小伙伴,还是工作后遇到的同事,专业背景真的是五花八门,暂且不说像通信、电子、自动化这些专业背景出身的人来搞编程,甚至连学地理科学、机密器械专业的我也见过,所以从某一程度上来说,这也不算什么。
读大学的一个重要作用还是培养独立学习、独立解决问题的能力,所以编程开发这一块,自学出来的有很多。
后记
好啦,聊了这么多,希望和小伙伴们一起共勉吧,加油就完事儿了!
来源 | 五分钟学算法
作者 | 程序员小吴