码,码,码不停!

本文翻译自Roy Greenfeld的博文,文末已上原文链接。

我看到这篇博文的时候还是有些触动的,因而翻译整理在这里,时不时回来看看,提醒一下自己不要松懈。

Roy Greenfeld是《Two Scoops of Django》的作者,他的博客里面很多关于Python的技巧方法,另外在Django方面作者贡献了非常多的内容和开源项目。

我常常会被被新手程序员问到,他们如何才能够“专业地"使用他们的编码技能。或者他们如何才能在编写软件方面做得更好。

如何提高你的编码技巧

接下来我所阐述的是我的方法,但它可能不是你最适合的方法。这一系列方法也没有任何特定顺序,所有这些方法都适用于你开始采用这些方法的那一刻。

  1. 我写代码,并且写了很多。为了工作和娱乐,我从起初码一些愚蠢的小脚本到自动化任务,再到尝试完整的项目。期间我也曾失败了很多次,但一路上学到了很多。

  2. 我没有从一门语言跳到另一门语言。相反,我多年来一直呆在一些地方,专注于学习这些语言工具。我二十多年的职业生涯可以概括为FoxPro,然后是Java,然后是Python。在这期间我也拾起了JavaScript的一些知识。当然,我已经完成了一些事情(Lisp,Haskell,Lua,Perl,ColdFusion,Go)。但是得利于专注于特定的领域(原博主是著名Django源码贡献者),使我摆脱了平庸。

  3. 我写了很多代码。是的,这是#1的重复。

  4. 一旦掌握了语言的基础知识,我就会为每个语言查找最佳实践。然后我虔诚地坚持了他们,甚至对此也是教条主义者。通常,这意味着我的代码更容易阅读。更容易调试。最重要的是,更容易分享。

  5. 我已经提到过了写代码的重要性了吧?因为除非你进行大量练习,否则你永远不会擅长任何事情。 因此这一条是对于#1的另一个重复强调。

  6. 我克服了提问的恐惧/骄傲。好吧,大多数情况下,我仍然时不时害怕/骄傲。老实说,通过提问并不会让人觉得无知,相反恰当的提问表明你愿意学习。此外,弄清楚如何提出问题这样简单的行为,可以确保你有一个正确的心态来获得自己想要的答案。

  7. 当我问一个问题时,无论我是否得到答案,我都会编写更多内容。代码,代码,代码!又是#1的重复强调

  8. 一旦我掌握了语言,我就会在上面查找操作手册(cookbooks)或口袋性的指南书(pocket references)。我更喜欢纸质版的科技类书籍(我读的其他类别的书籍都是电子版)。操作指南书中的所提及的高级知识成为我工具包的基础。口袋参考中简洁易懂的提醒意味着更少的认知获取。

  9. 我掌握了那些从指南书和参考文献中的技巧与方法,并利用它们编写代码。我一次又一次编码。在工作时间或游戏时间。实践变得完美!为什么我要继续重复#1?

  10. 多年来,我一直在使用最容易上手且稳定IDE 或是文本编辑器。诚然,我知道存在很多强大的工具,可以使用一些出神入化的命令(如Vim,EMACS等)。但我不想停止我正在做的工作来学习一些新的工具。我想编码,而不是修补桌面IDE或神秘的文本编辑器。(对于我来说,VScode+Pycharm已经可以满足日常的开发需求了,因此我也赞同原博主的不要浪费时间在钻研一些古怪的工具上)

  11. 再次,回到#1,我使用的是文本编辑器编写代码。码,码,码不停!直到我的肩膀受到损伤,直到我不得不学习如何处理手腕的各种病症。代码,代码,代码!这就像学习武术,吉他或任何东西一样,重复简单的动作可以让你有信心将这些动作组合成更大的东西或者学习更复杂的东西。

 

我希望自己完成的任务

  • 学习计算机科学。如果我能重新的选择,这将是我学术研究的重点。它不会替换我列表中的任何内容,我定义的方法保持不变。码,码,码不停!

  • 不得不说,我应该寻找更多的个性化指导。没有什么可以像教练那样,可以引导你走上正确的道路(注:这里尤为关键,我没有听说过一个职业运动员不需要教练,在我们学习一项技能的时候如果能有一个职业的教练,这会使我们快速的变得更加专业化)。然后在教练的指导下,你可以开始,码,码,码不停!

实践是检验真理的唯一标准,这样看起来实践才是学习的完美方法,对吧?

 

英文原文出处:

https://www.pydanny.com/code-code-code.html

posted @ 2018-10-05 17:29  YanceDev  阅读(532)  评论(0编辑  收藏  举报