自学编程的 6 个技巧总结

有一天,我的一个在学编程的朋友问我:“我想快速学习编程,你有什么好的推荐吗?我曾在上大学的时候自学过编程,这么多年过去了,我意识到我或许是在用最困难的方式去学习和了解编程。本来我完全可以用更快的速度学习。因此,在回顾了过去之后,我写下了这些年来我渐渐掌握到的关于如何学习编程的一些事情。

“快速”

对于“如何快速学习编程”这个问题,其实我真的不知道何谓“快速”。我觉得,通过遵循以下建议,你将很快地学习编程(至少你的成长/进步会快)。但你真的不应该眼中只有“快速”。只追求速度反而会拖你的后腿,让你自食其果。“快速”学习的唯一可持续方法或许是采用浸泡式教学法。找到一种方法让自己沉浸在编程中很长一段时间(几个月?)。为了让它奏效,你需要不断推动自己去学习新的东西,并迅速抽身离开。这是编码训练营的一个优点。当你出来时,尽管你还不是专家,但你会学得更快。这也可以通过专门的导师教导或与专门的初学者一起学习来实现。

1.读>写代码>读>写代码(日复一日)

关于如何高效学习编程我要给出的第一条建议是在阅读代码和编写代码之间循环往复。阅读代码(书籍,博客文章,开源代码)将帮助你查看解决方案,了解最佳做法,并大致了解语言或系统。但是在你这样做之后,你需要自己实际去写代码。可以是任何东西。可以是小的编码练习或业余项目,但确保你能将之付诸于实践,并用某种方式使用你学到的东西。如果你不这样做,那么你会发现自己面对编辑器会无所适从无从下手。

这方面的诀窍是让自己感到不舒服。这是相当痛苦的,但就应该这样。编码遵循80/20规则。花80%的时间在20%的代码或20%你所学的东西上。习惯于这种不舒服的感觉并克服它是关键。

这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。

我推荐阅读关于通用编程主题的网站是lobste.rs。上面有许多关于许多编程主题的文章。另一个好的网站是Hacker News,但网站时常偏离话题。

2.不要陷入僵局。请求帮忙

我最大的错误是在学习编程陷入僵局的时候用了太长时间。在被卡住时,我会花很多时间在一些愚蠢的东西或一些我根本上不明白的东西上。有时候我需要花费好几天时间才能完成这些工作,而原本我可以用这些时间做更多的事情和学习更多的东西,如果我能找到更好的解决方法的话。卡在一个东西上面超过一个小时基本上就是在浪费时间了。

我推荐三件事情以避免僵局。第一是试着总是阅读更多关于你使用的技术,并总体掌握正在发生什么。通常,当你陷入困境时,意味着你对需要澄清的事情做出了不正确的假设。第二是咨询互联网。这一点很显然,但依然值得一提。在网上查找并询问有过这个问题的人是一个非常重要的技能。Stackoverflow可以说是互联网上最好的网站。不要害怕在那里问自己的问题。通常,只要尽力正确地阐述你的问题就OK了。我真的希望以前我能多问些问题,但总是因为害怕会显得愚蠢而止步。我的第三个建议是向你认识的人请求帮助。通常,你或许已经理解了技术,而且有了问题,但是你可能需要更高层次的上下文才能真正解开谜团。不要胆怯,大着胆子上前去问吧。

例如,当学习Docker时,我花费了大量的时间从头开始重新构建图像。我从根本上不明白docker缓存,并用20分钟时间来等待单个更改到Dockerfile通过。我可能花了8个小时就用在等待构建上。如果我读过更多关于Docker或问一个知道的人,那么可能我早就搞明白了,还可以在更短的时间内学到更多。

3.为项目而工作

在我的经验中,没有什么可以与工作于自己的项目以学习编程更有用的了。除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。有了一个点子并试图实现这个点子是非常具有挑战性的。它需要很强的自律心。但是,通过尝试实际做一件事情,你可以学到如何分解问题并应用技术。你面对的各种问题,以及你如何解决它们才真正是所谓的编程。知道编程语言的每一个古怪细节的确是有帮助的,但它只会让你越来越落伍。此外,想要完成项目的驱动力是继续学习的动力。从业余项目获得的满足感远远超过你在抽象中学习东西的满足感。

我对于选择业余项目的建议是,选择你感兴趣同时你也有想法如何实现的东西。去楼上论坛www.whlwang.com能够在开始之前表达实现总是有助于保持我的动力。在此旅途之中你一定会学到很多!

4.认识到深入钻研和搬运工之间的区别。相应地选择。

有两种类型的程序员:完美主义者和搬运工。有些人希望一切都是正确的,他们希望完美,他们希望遵循所有的最佳实践,并写出漂亮的优雅代码。他们想要理解每一行代码。有别于那些不管三七二十一,只要自己的代码能工作即可,即使对代码库有损害的人。平衡这两种技能是非常重要的。有时你应该深入钻研一个问题或项目,看看发生了什么。有时你应该让它工作即可,即使你不知道发生了什么。

每当你花费太多时间在某个东西上时,那就问问自己:我应该采取哪种方法?在大多数情况下,你会想取中间值。你想提供一个好的、坚实的解决方案,同时你可以自信地理解和修改,但没有耗费荒谬的时间。随着你作为开发人员的成长,你会更好地明白什么时候就此离开就可以,以及什么时候需要以某些方式完成。

就个人而言,我喜欢我的项目80%完美。如果你的项目是绝对100%完美,没有一行代码让你觉得尴尬,那么很有可能你已经花了太多的时间。

5.与其他程序员交谈

学习编程的一个很好的方法就是和其他的程序员交谈。去楼上论坛不必谈论任何特定的内容。可以是你正在学习的东西,可以是你认为很酷的东西,可以是你正在工作的东西,皆可。你会发现很多程序员并不喜欢只是聊编程。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你将了解到其他人是如何看待编程的。你会发现,你认为理所当然或从来没有考虑的事情在人与人之间是非常不同的。

如果你没有什么可谈的,那就回到编辑器战争或tab vs space的话题。

6.尝试一切。如果搞不懂的话,那就等6个月。

最后,我要说的是,一直以来在我身上发生着这样的事,我尝试过很多东西,但我就是不理解。在用30分钟尝试新的东西后,我会停下来。我想这在起步时是很正常的。但是,我记得很多次,在6个月后(或3个月或9个月),我会回到同样的问题或技术上,弄清楚如何使用它。这是因为我又掌握了一些我以前不具备的知识,或者因为它只是另一种方式的框架。等待一段时间,然后回去,总是一种最有用的方法。

这方面的一个例子是学习如何使用终端。我记得很长一段时间我都害怕碰到终端,因为我不知道如何使用。我花了一段时间并按照步骤定期地使用它和理解它。当然,如果我认识可以向我解答的人,或者找到一个好的资源来学习,这样的事情就不会发生!

结论

这些事情可以帮助新手在他们漫长的旅程中学习编程。我知道我还有更多东西需要学习,并将继续学习如何永远地学习。最重要的事情说三遍,请继续,不要放弃,不要放弃,不要放弃。当然,说说容易,因为学习编程有时可能会令人非常沮丧!不要担心。这是正常的。每个人都经历过这样的心情。

时间: 2024-10-06 07:34:15

自学编程的 6 个技巧总结的相关文章

分享:自学编程的方法

严重声明:本文内容仅代表个人观点,以供参考. 不管是在某些论坛上,或者在微博上,都看到过很多人提问如何自学编程.心声共鸣啊,我就是从完全自学开启编程之路的. 要说到自学的过程.要多长时间才算学会.有什么具体方法等问题真不好回答.每个人对新鲜事物的接受能力不同,也决定了学习方法各异,难道说出一个标准的答案来.更何况这世界上本来就不存在标准答案,只不过是某些过于激进的文明,非要强调标准罢了. 不管怎么谈,我想啊,希望通过自学走上编程之路的朋友,都必须先认清自学的优点与缺点,尤其是缺点,你必须先有所了

自学编程的方法

严重声明:本文内容仅代表个人观点,以供参考. 不管是在某些论坛上,或者在微博上,都看到过很多人提问如何自学编程.心声共鸣啊,我就是从完全自学开启编程之路的. 要说到自学的过程.要多长时间才算学会.有什么具体方法等问题真不好回答.每个人对新鲜事物的接受能力不同,也决定了学习方法各异,难道说出一个标准的答案来.更何况这世界上本来就不存在标准答案,只不过是某些过于激进的文明,非要强调标准罢了. 不管怎么谈,我想啊,希望通过自学走上编程之路的朋友,都必须先认清自学的优点与缺点,尤其是缺点,你必须先有所了

转 自学编程这几点非常重要

1目标 自学的路很艰难,一个人忍受寂寞去学习那些枯燥的知识,是个正常人都会感到痛苦.所以有个目标很重要,以我来讲,我当初自学编程就是了解到做开发挣钱蛮多的,加上当时日子很苦,迫切的需要挣钱,所以我下定了决心,自学 Android 就是为了挣更多的钱,之后都是这一个目标支撑我一路走下去! 我也相信,大部分人自学编程基本跟我一样,是为了找到一份高薪工作.IT 行业月薪过万是非常普遍的事,2-3年工作经验拿到1w5很正常,能力出众的甚至能达到2w甚至更高,但是在其他行业,尤其传统行业月薪过万都是特别难

巧用“搜索”解决自学编程遇到的难题

引言:相信每个自学编程的人,入门之路都经历了许多坎坷.不过我们身边藏着很多“良师”,多以利用总是能够带来惊喜.善用“搜索”就是其中一位. 本文选自<一路编程>,如何通过搜索解决自学编程中遇到的问题. 假如你在做一个 JavaScript项目,其中你得到了一个字符串格式的日期(比如, ’2014-10-08’),你想要计算下一天的日期是什么.我们可以用 parseInt将字符串转换成文字,所以你就用了这个函数. function nextDay(str) { var num = parseInt

我是如何自学编程的——“3遍读书法”

我大学本科念的是电子工程专业,所以到那个时候为止,我唯一使用过的编程语言就是C/C++.Assembly.以及 Matlab.后来一个偶然的机会我参加了一个"周末创业"的活动,并且开始渐渐对软件开发和计算机科学感兴趣,然后我发誓我要不择手段地进入这个洋溢着 无限魅力的领域.但是,我需要学习其他的编程语言,以便于和大家协作一起搞项目. 在过去的一年半时间里,我已经学了Java(用于Android开发).Python和JavaScript(&HTML / CSS)(用于Web开发)

如何自学编程?

HI!我是Myb.很多人看到IT职业的高薪都想去自学编程,可是又不知道通过什么途径去学.关于如何自学编程这个问题,我会从程序的实质,编程的应用,还有学习资料参考去解答. 一:编程的实质 编程的实质无非是编写一些有逻辑性的英文.数字字符的过程.这些字符会通过一个计算机的一个翻译器自动转化为计算机能看懂的机器指令,然后计算机通过这些指令调动CPU.内存.IO设备等硬件工作. 二:编程的应用及语言 比较流行的编程对应的职业分类有: 网页开发:制作移动手机网页和电脑网页的 常用语言:HTML+CSS+J

自学编程的人,都是怎么找到自己的第一份工作的

每年毕业这么多大学生,很多被培训机构弄去培训了,但是更多的还是选择在大学期间,自力更生去自学,自学的人很多都觉得没有方向太难了,自学怎么坚持下去,自学完了怎么去找到自己的第一份工作. 带着这么多的问题,小编就尝试着解答一番,如何才能直接一步到位拿到自己工作的第一份offer. “ 没有毅力,成功只是虚仰虎头蛇尾的奋斗也只是徒劳 ” 首先建立起自力更生的信心, 换句话说就是拿出学习的勇气和毅力. 很多正在自学的人, 都是觉得我能不能行啊, 周围的都去参加培训了,最后能不能比的过参加培训 的啊,内心

如何系统、科学地自学编程知识?

虽然不是码农,但是一直都有一颗码农的心.所以一直想学好怎么编程. 先说下自己的背景吧:已经毕业若干年工科男,所以基础知识也就是大学里谭浩强的那本绿壳的 C 语言.但是除了基本的变量.数组.选择.循环,到了指针那就记不清了. 然后因为工作需要,自己学了下 Linux 的 Shell 编程(Linux 系统的基础知识很一般),以及 W3School 里面 HTML, CSS 及 PHP 的部分内容.数据库的知识仅限于基础的 selecet, insert, update 操作.最后抄抄改改做了个功能

我是如何自学编程的“3遍读书法”

我大学本科念的是电子工程专业,所以到那个时候为止,我唯一使用过的编程语言就是C/C++.Assembly.以及 Matlab.后来一个偶然的机会我参加了一个“周末创业”的活动,并且开始渐渐对软件开发和计算机科学感兴趣,然后我发誓我要不择手段地进入这个洋溢着无限魅力的领域.但是,我需要学习其他的编程语言,以便于和大家协作一起搞项目. 在过去的一年半时间里,我已经学了Java(用于Android开发).Python和JavaScript(&HTML / CSS)(用于Web开发).在这“路漫漫其修远