我是如何学习编程的?
前不久,有位朋友问我是如何学习编程的,我入行五年,也走了很多的弯路,参加过培训机构的速成培训,也在自己不断持续学习中。我自认为并没有太大的天分,目前还是靠着自己的努力来应对工作。那关于学习编程这件事情,有没有学习套路呢?我认为还是有的。
如果上过大学的话,计算机基础课程基本上都学过。如果说现在一点儿都不记得,也没关系,至少有印象吧?如果说真一点基础都没有,推荐去极客时间买计算机基础课学习,然后再来讨论如何学习编程。
你的目标是什么?
在学习之前,一定要搞清楚你的目标是什么。我们在采取行动之前,一定要先问问自己‘我为什么要做这件事情’?并且写下来。
只有想清楚做一件事情的目的时,才能有的放矢,才能找到驱动力。学习的过程当中,驱动力>约束力。我觉得《小强升职记》中,关于驱动力的描述挺好的:“打开一扇从里面锁住的门时,用约束力从外面猛砸时也管用,但不如用驱动力从里面打开那样优雅、有效,力量来自于你的内心”。
另外,编程语言都有各自适用的场景。根据自己的需求,去选择性学习,而不要上来就学习 C 语言这样的编程语言。
先做
我的工作就是编程,参与开发企业级项目。刚开始入职时,先跟高手学,照猫画虎,实现交代给自己的功能。这时候,类似于用组件搭积木。
自己再花时间思考背后的原理,搞不懂的,先整理出问题列表,然后逐个击破,方法如下:
自己 Google,一般问题大概率都能得到解决
读书,从书中寻找线索。这样做效率不高
向高手请教。找身边或社区的高手,最好带着自己非常明确通过自己的努力无法解决的问题。如果能解决,就最好自己解决
先做项目或者通过 demo,对你所要学的编程领域有一个整体的感知。这个过程,你可能无法建立起一个有体系的知识框架
成体系学习
接下来,就可以去买课学习,跟着老师们的思路,系统学习,摸清楚你所学技术领域的发展趋势和核心知识主干。学习过程中,把之前积累的经验补充到枝干上。
Tips:前期,不要一上来就想着去学网络协议啊、算法啊、读框架底层核心源码这种东西,难度高,易劝退。
让做 - 学 - 输出分享的增长飞轮转起来
无论是从课程中还是从书本上学习到的知识,一定要动手去实践;比如,学 Spring 生态相关的知识,那你得动手搭建个框架试试,然后剖析其中的核心内容;剖析完了之后不算完,可以把学习心得总结出来分享给更多的人。通过建立输入输出的闭环系统,不断完善自己的技能树。
除了买课,此时可以去翻翻那些大部头的经典书籍,去浏览一下那些改变世界的程序员们的 blog 了,通过努力,一点点推开了新世界的大门。
无论你是工作需要、学术研究或者兴趣爱好选择了编程,先沉下心,思考一下编程能解决你的什么问题?然后尝试去做,做的过程中再去学,以此往复。
做的过程中,一般的软件都可以逐步迭代,先实现小功能,获得成就感,再追求完美。
Done is better than perfect。
最后,大家如果有不错的学习方法,可以在留言区分享,我们一起讨论,共同进步。
版权声明: 本文为 InfoQ 作者【熊斌】的原创文章。
原文链接:【http://xie.infoq.cn/article/17e1a60a68b67025a8f7d84fb】。未经作者许可,禁止转载。
评论