编者按:不管是中途放弃,还是抽不出时间,最终都要把学到的东西落实到应用中去。本文作者XiangZhou,原文标题Themostdifficultthingsaboutlearningtocodebyyourself—andhowtotacklethem。
近年来,许多人对学习编程产生了兴趣。
他们要么通过在线课程开启了学习,要么通过面对面授课,当然还有一些人浅尝辄止。
像code.org、codecademy和freeCodeCamp之类的网站越来越受欢迎——毕竟网上有海量的编程资源。
但是学习编程并不容易。以下就是一些我们在学习中会面临的挑战
1.每天都找不到合适和足够的时间
如果你正在自学编程,很可能你还有其他的事情要做。
你可能有一份兼职或者一份全职工作,或者要居家照看孩子。关键是很难抽出空来。那么,你如何每天拨出时间来学习编程呢?
有些人可能会说:“如果你肯下功夫,总能找到时间。”说实话,我同意。
所以问题就变成了:“你每天应该花多少时间学习编程?”如果每天只能抽出半个小时,那还能学到东西吗?
这个问题只有你自己才能回答。每天应该学多久的编程,这个很难有确切的答案。有些人建议时间不要太长——15分钟就够了。
另一方面,我也听说过有些人在一年左右的时间每天学习9到10个小时的编程,取得了惊人的进步。所以如果你想找到点动力,可以参考一下这个。
底线在于:只有你自己知道你每天可以抽多少时间出来学习编程,并养成习惯。freeCodeCamp的创始人QuincyLarson曾在twitter上说:
不在于某一天突飞猛进,而是每天都循序渐进。
你可以自己去找找资源,看看那些在技术领域工作了十几年的资深开发人员是怎么做的,尽管这个不一定是绝对标准,但会让你知道如何为自己设定一个现实的、可持续的学习计划。
2.在“没有取得长足进步”和“精疲力竭”之间找到平衡点
就我个人而言,我在这方面挣扎了很久。
当时有几天,我就是没法理解书中的一个代码片段。我非常疲惫,以至于不得不强行让自己冷静下来,去阳台深呼吸。
从那时起,我就一直提醒自己不要用力过猛,以免物极必反。
学习编程并不容易。你需要集中注意力——尤其是当你学习新东西的时候。这是一种精神上的负担,有时候你无法弄清楚——为什么你写的代码没法奏效,或者为什么它就奏效了。
我发现,每当我真正专注于正在解决的问题时,我的效率非常高,同时也非常放松——当我发现一个需要解决的问题的时候,当我在网上找到了解决办法的时候,当我试了各种各样的办法想看看哪个能奏效的时候,以及当我解决了所有问题的时候,我很享受整个过程。
在算法学习中,我们遇到的很多东西都是非常复杂的(数据结构和算法等等),每当我学习编码时,我都会应用“50/50规则”。
我用50%的时间来做困难的任务,学习概念和算法等等。另外50%的时间我就干自己最有兴趣的活儿。所以我在日程学习中保持了一种平衡。
所以,坦率地说,你需要热爱自己的工作。我们来看看下一点。
3.热爱自己的工作
虽然听起来很老套,但这是事实。如果你热爱自己正从事的工作和方向……你就不需要从外界的认可获得动力。
这种满足感是无法伪造的。
4.记得在完成了别的工作后,继续坚持学习编程
事实是,当涉及到自学时,你永远都没法心无旁骛地学习。
我们在生活中都扮演了各种各样的角色——可能是丈夫,或者妻子,或者父母。你需要照顾家庭,或者工作,或者完成学业。
当我们还有其他角色,哪儿有时间去学习编程呢?
有时候你的确做不到一直坚持学习。我最长的不学编程的时间是两个月。
但在那之后,我立即又捡起了编程的学习。我发现自己忘记了很多学过的东西。当你拿起同一本书,却不知道如何继续读下去时,你可能会感到沮丧。“天啊,难道我真的要重头来过,再学一次吗?”
这就是你必须坚持到底的时候了。
你需要告诉自己:“好吧,第一个小时的学习可能很慢,效率也不高。不过没关系,我明天再多学点就可以补上了。”
但粉饰也没用,只能继续前进。你可以发泄,但是只要发泄完了,就赶紧继续学习。
5.无论如何,保持动力
自学是很不一样的。当你自学编程的时候,身边没有人跟你一道。没有同学,没有社交,成功了也没有喝彩。大多数时候,你都是一个人。大多数时候,你都是孤独的。
所以你需要找到某种动力来保持前进。
我一直在看这个网站——r/macsetups,因为那里有很多开发人员。他们用强大的硬件来创建自己想要创建的软件。没有比这更值得的了。
要奖励自己,让它成为一种习惯。
奖励可小可大。可以是一天结束后洗个热水澡,也可以是喝杯冷饮。告诉自己你做得很好。
6.不要“为了学习而学习”,要去面试,去实践,去参加工作
在学习编程时,我们有时会偏离正道。我觉得有时候你只是想偷懒——一种希望通过整天坐在电脑前就不必面对真正的挑战的偷懒。
别偷懒,别忘了,你要成为一个开发人员。
不要陷入“我正在学习,这已经足够好了,等我准备好了,我再去找工作”的误区。
坦率地说,找活儿干是我们最应该做的事情。你可以联系潜在客户,哪怕是为家人和朋友免费建立网站也行。
下次你去面试的时候,你就能展示自己都做了哪些工作,这会给你的简历增光添彩。第一步总是最难的,但无论如何你都必须迈出这一步。
所有这些都是你在成为一名开发者的路上将要面对的挑战。承认它们,以正确的态度面对它们——所有的挑战只会让你变得更强、更好。
最后,要享受学习编程的过程,享受你正在构建的东西,无论是你的项目还是你自己的未来。
编译组出品,编辑:郝鹏程