但是在你这样做之后,你需要自己实际去写代码。
可以是任何东西。
可以是小的编码练习或业余项目,但确保你能将之付诸于实践,并用某种方式使用你学到的东西。
如果你不这样做,那么你会发现自己面对编辑器会无所适从无从下手。
这是相当痛苦的,但就应该这样。
编码遵循80/20规则。
花80%的时间在20%的代码或20%你所学的东西上。
习惯于这种不舒服的感觉并克服它是关键。
知识等待使用的时间越久,知识这把斧头就越钝。
等待学习新知识的时间越长,你就越难以将其融入到代码中。
上面有许多关于许多编程主题的文章。
另一个好的网站是HackerNews,但网站时常偏离话题。
请求帮忙
在被卡住时,我会花很多时间在一些愚蠢的东西或一些我根本上不明白的东西上。
有时候我需要花费好几天时间才能完成这些工作,而原本我可以用这些时间做更多的事情和学习更多的东西,如果我能找到更好的解决方法的话。
卡在一个东西上面超过一个小时基本上就是在浪费时间了。
第一是试着总是阅读更多关于你使用的技术,并总体掌握正在发生什么。
通常,当你陷入困境时,意味着你对需要澄清的事情做出了不正确的假设。
第二是咨询互联网。
这一点很显然,但依然值得一提。
在网上查找并询问有过这个问题的人是一个非常重要的技能。
Stackoverflow可以说是互联网上最好的网站。
不要害怕在那里问自己的问题。
通常,只要尽力正确地阐述你的问题就OK了。
我真的希望以前我能多问些问题,但总是因为害怕会显得愚蠢而止步。
我的第三个建议是向你认识的人请求帮助。
通常,你或许已经理解了技术,而且有了问题,但是你可能需要更高层次的上下文才能真正解开谜团。
不要胆怯,大着胆子上前去问吧。
我从根本上不明白docker缓存,并用20分钟时间来等待单个更改到Dockerfile通过。
我可能花了8个小时就用在等待构建上。
如果我读过更多关于Docker或问一个知道的人,那么可能我早就搞明白了,还可以在更短的时间内学到更多。
除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。
有了一个点子并试图实现这个点子是非常具有挑战性的。
它需要很强的自律心。
但是,通过尝试实际做一件事情,你可以学到如何分解问题并应用技术。
你面对的各种问题,以及你如何解决它们才真正是所谓的编程。
知道编程语言的每一个古怪细节的确是有帮助的,但它只会让你越来越落伍。
此外,想要完成项目的驱动力是继续学习的动力。
从业余项目获得的满足感远远超过你在抽象中学习东西的满足感。
能够在开始之前表达实现总是有助于保持我的动力。
在此旅途之中你一定会学到很多!
相应地选择。
有些人希望一切都是正确的,他们希望完美,他们希望遵循所有的最佳实践,并写出漂亮的优雅代码。
他们想要理解每一行代码。
有别于那些不管三七二十一,只要自己的代码能工作即可,即使对代码库有损害的人。
平衡这两种技能是非常重要的。
有时你应该深入钻研一个问题或项目,看看发生了什么。
有时你应该让它工作即可,即使你不知道发生了什么。
你想提供一个好的、坚实的解决方案,同时你可以自信地理解和修改,但没有耗费荒谬的时间。
随着你作为开发人员的成长,你会更好地明白什么时候就此离开就可以,以及什么时候需要以某些方式完成。
如果你的项目是绝对100%完美,没有一行代码让你觉得尴尬,那么很有可能你已经花了太多的时间。
不必谈论任何特定的内容。
可以是你正在学习的东西,可以是你认为很酷的东西,可以是你正在工作的东西,皆可。
你会发现很多程序员并不喜欢只是聊编程。
这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。
但是,最重要的是,你将了解到其他人是如何看待编程的。
你会发现,你认为理所当然或从来没有考虑的事情在人与人之间是非常不同的。
如果搞不懂的话,那就等6个月。
在用30分钟尝试新的东西后,我会停下来。
我想这在起步时是很正常的。
但是,我记得很多次,在6个月后(或3个月或9个月),我会回到同样的问题或技术上,弄清楚如何使用它。
这是因为我又掌握了一些我以前不具备的知识,或者因为它只是另一种方式的框架。
等待一段时间,然后回去,总是一种最有用的方法。
我记得很长一段时间我都害怕碰到终端,因为我不知道如何使用。
我花了一段时间并按照步骤定期地使用它和理解它。
当然,如果我认识可以向我解答的人,或者找到一个好的资源来学习,这样的事情就不会发生!
我知道我还有更多东西需要学习,并将继续学习如何永远地学习。
最重要的事情说三遍,请继续,不要放弃,不要放弃。
当然,说说容易,因为学习编程有时可能会令人非常沮丧!不要担心。
这是正常的。
每个人都经历过这样的心情。