之前《如何成为一个 19 岁的软件开发者》发布后,很多人问了我一个同样的问题:“我真的想学习编程,但是却根本无法迈出第一步。我不仅缺少系统化的学习,更缺少学习的动力。”确实,现在有无数的资源可以“教你如何编码”,但这都不是最重要的——重要的是,如何成功构建最适合自己的生活方式、处理好各种复杂的信息、持续保持动力、然后专注最核心的问题。
只要你愿意远离舒适区,想要自学编程从而更进一步,那么你一定会成为优秀的开发人员。
长久的执教经验告诉我,如果只专注于更大的目标,却忽视细小的改进,不仅会导致进步甚微,还会反之影响自己的学习动力。
学习新技能时我们很容易陷入一种思维误区:不断地把自己和有经验的人比较,来激励自己不断进步。但事实上一旦你陷入了这种误区,很容易就推翻了自己之前所做的所有努力。也许之前,我可以不用二次思考就能够创建出很漂亮的应用程序,但是如果我沉浸于和别人的对比中,我只会想到“这离我的目标还差的很远”——真的是非常令人沮丧的事情。
学习编程的过程是很痛苦的,每个人都在以自己的方式努力战斗。主观的资源搜索本文不做阐述了,我们来详细讨论下如何有效处理新信息,以及如何保持学习动力——这些才是核心。
我用自己学到的技术创造出了新的东西,虽然只是个很小的项目也感到非常地开心!
有效处理新的信息
在开始学习代码之前,你需要学习如何学习。
在线课程和语言文档,这两类是最为常见的资源。但是单单只看课程的话,只要你不是一个超级天才,你就不可能记住所有的新信息(不要自欺欺人了,可以说是非常的无聊)。在观看课程或阅读文档时感到困惑是完全正常的,每个人都会有这种感觉,毕竟对于没有太多知识的人来说,通过一些极客术语来理解代码是蛮难的。
但是不管你自我感觉有多良好,永远不要忽视基本知识的掌握,不要跳过任何东西。对于某些人来说这可能看起来有点浪费时间,但相信我:细节,是最重要的。
教学是最好的学习方式。即使周围没有人,也要每隔 10 分钟用自己的话来解释一下刚刚学过的东西,假装正在向别人解释。一旦发现自己对某个部分不太了解,马上研究并写下答案,这样会更好地加深记忆。
不要只听课程或者只是阅读文件,要积极参与一些个人项目。对于学到的新事物,要积极去实践它,不管大小。否则,即使知道自己已经掌握了,还是会觉得有些不踏实。而且经常这样做的话,还可以提高你的编程技能。
幸运的是我可以向 Mila 解释我做的东西!
保持学习的动力
经常会有人问我,日常生活中为什么会有动力去编写那么多的代码?
其实每个人都喜欢玩游戏,不管是什么类型的游戏,都可以从中得到即时的满足感——这就是动机成因,通过编码,我同样可以获取满足感。
设定一个小目标。做一个当天的待办事项列表:也许只是读 1 页,或者看 1 个课程,或者只写 10 行代码。通过这个清单可以很清晰地看到自己的努力,对自己的进步也会更加自信。毕竟“我已经做了我今天想做的一切”,比“我今天只完成了2%的课程”要有成就感得多。
不断提醒自己正在进步。很多人经常忽视自己的进步,但每天一点点的编码学习就会让自己变得越来越好,所以最好的方法是写日记,每天用一句话来记录自己的困惑,一个月后再回头看看,你可以看到自己正在变得更好。
研究自己真正感兴趣的项目。选择你真正想要完成的项目,不要只会想到自动驾驶汽车或机器人这些,还可以重新创建网站布局或小型游戏等,这种感兴趣的项目会让你更有动力去完成它。而且一旦项目完成,你会得到很大的成就感。
要相信自己可以比想象中做得更好。你可能觉得身边的每个人都会得很多,而且比你优秀得多,但事实并非如此。如果你有足够的学习动机、有足够努力地编码,相信你完全可以成为一名优秀的开发人员。
最后需要牢记的事
千万不要把自己和其他开发者做比较。虽然这是非常老套的建议,但是很重要。不要把你的第 1 章和别人的第 20 章做对比,你会比你想象得进步更快。
每一次学习或编码,都是在成长。也许每个人一开始都是很迷茫的,这只是学习过程的一部分,但你并不孤单,只要方式正确的话你就一定能成为一个成功的程序员。
最后如果可以,试着找一位导师。通过向其求教相信更有助于你克服问题并获得新的启发。