如何保持学习编程的动力

简介: 比如我弄了个叫 Unbokeh 的网站,这里有一堆模糊的背景图片,你可以用于设计和壁纸。我之所以这么做是因为我喜欢模糊的壁纸,它们看起来很酷,而且我想提供一个其他人可以使用的资源。这不是一个百万美元的想法,但我为此感到自豪。我学到了很多关于 Gatsby 和 GraphQL 的知识。 我把它发布在 Twitter 上,很多人都喜欢它。

有人问我,Reddit 是什么网站,我想了下说:美国贴吧


但话说回来,关注了一阵子我发现,Reddit 上的讨论真要比贴吧不知道高到哪里去了,甚至比不少知乎回答要有价值。而且感觉下面的讨论氛围也更好些。

我在上面关注了 learnprogramming 节点,有不少文章挺有价值,于是翻译过来分享给大家。上次翻过一篇:我是如何在自学编程9个月后找到工作的,是一个编程自学者的经验之谈。这两天我又看到篇不错的,主要讨论的是自学编程中的一个普遍问题:如何坚持

除了翻译,文中我还加了一些自己的看法(灰色字)。各位看后有什么想法也欢迎在留言里讨论。

英文原文地址见文末。


嗨,Reddit 的各位老铁,学编程真的很让人崩溃。

学编程现在看起来挺简单,因为网上有丰富的各种资源。然而当你实际去学的时候就发现,还是很难!

对我来说也一样。但从某天起,我决定认认真真学编程一年。后来又过了一年,又过了一年又一年……我好像有点感悟。

如果你曾致力于学习一些重要的东西,就会知道在漫长的艰难时刻保持自己的积极性是多么困难。你怎么做呢?我说下我的经验:

去开发点真东西

不要只一味地跟着教程学。它们有助于对新事物进行概述,但在此之后你必须开发点自己的东西。

你当然可以去开发另一个 To-Do-List(待办事项列表)的 App,但你想这么做吗?你不一定非要做那些别人口中的“入门必做项目”。

开发你自己想要的东西。相信你是一个富有创造力的人。设想一个可以真正帮助你的小项目或 App,或者至少看起来很酷的项目,开发出来,然后把它放在网上,从别人那里得到一些反馈,修复 bug。干就完事了。

你可以把它作为一个项目展示给潜在的未来雇主。没人关心你是否又制作了一个 To-Do_List 的 App,但他们会关心你是否有能力开发一个网站,把抽象而模糊的想法转变成实际的产品

跳出思维定式来考虑,你甚至都不用找工作。如果你做得更好些,完全可以自己开发一个 App 或网站,从中收取费用。或者做出一些酷炫的产品,在 Reddit 上传播。你会成为某方面的专家、找到客户,成为自由职业者。

比如我弄了个叫 Unbokeh 的网站,这里有一堆模糊的背景图片,你可以用于设计和壁纸。我之所以这么做是因为我喜欢模糊的壁纸,它们看起来很酷,而且我想提供一个其他人可以使用的资源。这不是一个百万美元的想法,但我为此感到自豪。我学到了很多关于 Gatsby 和 GraphQL 的知识。 我把它发布在 Twitter 上,很多人都喜欢它。

再说,在互联网上展示你努力做出来的东西,本身不就是很棒的一种体验吗?

【Crossin 注】这个观点我也说过无数遍:等你有了一定基础之后,一定要找项目去做,从你身边着眼,想想有没有能用编程解决的问题,然后在解决问题的过程中提升能力。如果你仅仅想找本教程看,你会发现越看问题越多,你不知道书上说这些到底有什么用。这其实是弄反了因果。我在编程教室里坚持发布有趣或实用的案例,也是从这个出发点考虑的。(公众号“Crossin的编程教室”对话栏回复关键字 项目

找点工作/项目

我学编程的最喜欢的方法之一就是让别人付钱给我学习。如果你愿意为此多投入一些努力,你可以在像 UpWork 这样的平台上获得一些小单子,在学习的同时就能赚到一些钱。

你不必是专家,只需要足够的相关知识就可以完成工作。如果你学会适当推销自己一下,别人并不会太在意你是否是初学者:你只需要证明你可以完成工作。所以,如果你像我前面告诉你的那样,做点自己的项目,你就已经有经验了。

我通过电子邮件联系本地商家,帮他们重新设计网站,从而学会了如何开发 WordPress 主题。我从为另一个小企业构建官网首页中学会了 JavaScript。我通过为一家初创公司制作一些页面的过程中提升了对 React 的理解。

你没法做完全超越你技能树之外的事。但适当地挑战自己能力的上限,并承担一个实实在在的项目,你会取得重大进展

这些项目不会让你发大财,但真实世界的项目可以给你带来很有价值的经验。

【Crossin 注】这一点是上一点的延续,选定个方向,先做自己的项目,熟悉了之后就去接点正儿八经的项目。国内也有一些平台,比如猪八戒网,V2EX 上有时也会有人发单,我这边偶尔也会有,我都会发布在 bbs 的接单区和几个学习群里。说实在话,一开始想成功接单并不容易,但你不妨可以尝试给亲戚朋友同事社团等做点义务劳动,帮他们做个网站啥的,机会都是慢慢积累出来的。我自己第一次用 Python 就是同学介绍的网站开发项目。这种有点压力的状态绝对比你自己无目的地看书效率高多了。

在 Twitter 上建立联系

上 Twitter 对我来说是很有帮助的一件事,所有的开发人员都在这儿。你可以关注大票的开发者,获取灵感、开发有趣的东西,关注业内大牛,了解新的工具和技术。一旦你的首页时间线充满了有趣的行业文章以及关于 JavaScript 的谈论,那你将会更有动力去坚持学习。转发一些对你有启发的文章、分享不错的代码片段,你也会成为开发社区的一员。

当然,不要浪费太多时间。 您可以在这里了解更多信息,成为社区一员,但不要分心。

对我来说,一个重要的动力是加入 #100DaysOfCode 的挑战。规则很简单:每天至少写一小时代码,并每天发布带有进度的推文。你会不想终止连续记录。#CodeNewbie 是另一个与其他 Twitter 同好者联系的好标签。

这感觉很好,因为你来到了一个社区,里面都是和你一样学习编程的人。发布你正在研究的有趣事情,和别人互相关注,询问他们正在做的事情,结交朋友。如果你加入了这样的社群,养成写代码的习惯就变得容易许多。很快这就会成为你个人的一部分:你现在就是一名开发者,这就是你每天做的事情。

【Crossin 注】国内不太能上这个网站……微博其实学习氛围很淡,但像 V2EX、SegmentFault、OSChina 等社区里也不乏大量开发者,多去逛逛有好处。在学习社区这件事上,我承认编程教室到目前为止做得并不算好,我们曾经建立了很多群,但因为无力管理,最后大多荒废了。接下来,我会在这点上做些尝试,可能也会组织类似 100DaysOfCode 的挑战,争取能给各位初学者提供一个氛围良好的社群。

干就完事了

最后,这完全取决于你。你只需要做出承诺并完成它。

要明白,这是个长期的过程。也许你会在 Twitter 上看到关于某人学了 3 个月就找到六位数的工作这种鸡汤故事,很励志吧?而且他还仅仅 18 岁(这种故事里总是 18 岁)。但这只是特例,不是常态。如果你想通过学习编程来改善你的生活,你不该总想着这些快速成功的案例。

如果你想找份工作或开发出杀手级产品,你将不得不努力工作。你看到的所有成功故事都只是结果,而不是那之前漫长而乏味的过程。当你艰难到要放弃的时候,它给你鼓励,但你不能沉迷于此。相信我,这种情况会不停出现。

不要半途而废。如果你真的对编程没兴趣,那没办法。但如果你愿意投入时间和精力,以及一点点血、汗和泪,你总能做出点东西。现在就回去继续学习吧。

【Crossin 注】少说多做,每个程序员都是一行行代码堆出来的。不要再纠结哪个语言好、哪个教程好、该用哪个版本。你花一个周末就可以走进大门了,没必要不停在门前纠结。这是个长期的过程,不要想着一蹴而就,也不用担心一个选择就走错路。学习没有弯路,每一步都算数。

作者:

ericnmurphy

原文地址:

https://www.reddit.com/r/learnprogramming/comments/9rjhm0/how_to_actually_stay_motivated_to_learn_how_to/

作者博客:

https://ericnmurphy.com/motivation/

文章下面有些评论也说得不错:

fckdUpLion:

纪律>动力。把事情给做了,别等待动力。

Metabyte2:

动机是一个神奇的东西。 每天留出一两个小时,并养成在那个时间编码的习惯。 几个星期后,它将成为常态。

blackiechan99:

虽然我有了动力,但动机很快就会因为其他事情而消失。

我减了100磅,动力在几周内就没了。 纪律才是而且是唯一持久有效的东西。 编码也是如此。

动力在一开始有用,然后过渡到纪律。 如果你真的想要,你就会实现:)

WulfMarius:

说实话,我不喜欢“写代码”这个说法,这就像是“写书”和“打字”:一个人写书的过程是在打字,但你显然不可能通过打字课程突然成为一个作家。因为写书的实质不是打字,而是创建内容。

写代码是开发软件的表现,但实际上之前的活动更重要得多,比如理解你想要解决的问题,提出解决这个问题的方法,将这个解决方案分解成可以实际编码的部分,考虑的局限性和后果等。

有些人会忽略这些,而挣扎在代码之中,因为他们并不真正理解他们试图解决的问题和/或他们设计的解决方案。当我问为什么他们把某个语句放进去的时候,他们根本无法解释。我想说:难怪你们说没法保持学习的动力,你都不知道你在写什么,换作我也不想学了!

所以,只是跟着教程里写几行代码读取文件这种小技巧根本对编程没什么帮助。


题外话:

上周的送书活动已结束,感谢全球领先、国内最大的在线API接口管理平台 eoLinker 的支持。经主办方挑选出 10 名获奖者,恭喜 cJc、夢の続き、晨暮、钦鹏、Eroc 获得赠书和 eoLinker 专业版半年使用权,skolly、GS、望、不是枳是橘子、飞鱼 获得 eoLinker 专业版半年使用权。

请尚未领取奖品的中奖读者尽快联系我们,有效期一个月,逾期作废。


其他内容回复关键字:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,请号内回复 码上行动

代码相关问题可以在论坛上发帖提问 bbs.crossincode.com

推荐阅读:

爬抖音 | AI名画| 押韵工具 | 虎扑 | 如何debug | 苹果 | 查天气 | 我用Python | 知乎 | 排序 | 电影票 | 技术宅 | 单词表 | 新手建议 

相关文章
|
2月前
|
设计模式 程序员 开发者
探索编程世界的奥秘:我的技术感悟
在编程的宇宙中,我是一位探险家。从最初的迷茫到现在的自信,每一步都充满了挑战与发现。这篇文章将分享我在编程旅途中的一些心得体会,包括如何面对问题、学习新技术以及编写高效代码的经验。如果你也是一位热爱技术的探险家,那么让我们一起在这段旅程中发现更多未知的宝藏吧!
从代码到哲学:编程之路上的思考与感悟
【9月更文挑战第32天】在编程的世界里,每一行代码都承载着逻辑的严谨与创新的灵魂。本文将通过一段简单的代码示例,探讨编程背后的深层次意义,以及它如何影响我们的思考方式和生活哲学。从初学者的迷茫到高手的洞察,编程不仅是技术的实践,更是智慧的体现。让我们一起走进代码的世界,探索那些看似晦涩难懂,实则蕴含哲理的编程之旅。
|
7月前
|
并行计算 Java API
探索Java多线程编程的奥秘与实践
【4月更文挑战第2天】Java多线程提升程序性能,通过Thread类和Runnable接口实现。线程生命周期包括新建、就绪、运行、阻塞和死亡。同步关键机制有synchronized、Lock,防止竞态条件。线程通信使用wait/notify,避免死锁策略包括有序加锁。Java并发API如Executor服务简化线程管理,JMM确保共享数据一致性。多线程应用广泛,如Web服务器并发处理和并行计算。理解和实践多线程,能编写高效应用。
47 3
探索Java多线程编程的奥秘与实践
|
2月前
|
自然语言处理 算法 语音技术
探索编程世界的奇妙之旅:从初学者到实践者的蜕变
【10月更文挑战第14天】探索编程世界的奇妙之旅:从初学者到实践者的蜕变
25 0
|
3月前
|
算法
探索代码的奥秘:从新手到高手的技术感悟
在技术的海洋中,每一行代码都如同一颗璀璨的星辰,引领着我们探索未知的宇宙。本文将分享一段从编程新手逐步成长为技术高手的旅程,以及在这个过程中积累的一些心得与感悟。
21 4
|
3月前
|
前端开发 算法 JavaScript
探索编程之海:我的技术感悟之旅
【9月更文挑战第14天】在编程的浩瀚海洋中,我是一位勇敢的探险者。每一次代码的编写,都是对未知领域的挑战。本文将分享我在技术探索中的心得体会,从初识编程的迷茫到逐渐找到自己的航线,再到不断精进技艺的过程。通过这段旅程,我深刻理解了“你必须成为你希望在世界上看到的改变”这句话的内涵,并将它融入到我的学习和实践中。让我们一起跟随这篇文章,揭开编程世界的神秘面纱,找到属于自己的航道。
45 9
|
4月前
|
搜索推荐 程序员
探索代码之美:一段编程旅程的启发与感悟
【8月更文挑战第30天】编程,这个听起来有些高冷的技能,实际上就像绘画或音乐一样,是一种创造性的表达。它不仅仅是冷冰冰的代码和逻辑,更是情感和智慧的结晶。本文将通过一次个人的编程经历,探讨如何通过代码来解决问题、创造美,以及这一过程中的思考与成长,从而揭示编程背后的艺术性和哲学意义。
|
4月前
|
程序员 Python
探索代码之美:我的编程感悟之旅
【8月更文挑战第31天】编程,一门艺术与科学的结合体。本文将带你走进编程世界,分享个人在代码编写过程中的心得体会。从最初的迷茫到逐步掌握,再到深入理解,每一步都充满挑战与惊喜。让我们一起领略代码的魅力,感受编程带来的成就感与乐趣。
|
4月前
|
算法 JavaScript 前端开发
探索代码之美——从小白到大牛的编程旅程
【8月更文挑战第26天】在编程的世界里,每一行代码都是构建梦想的基石。本文将带你领略编程的魅力,从最初的迷茫到技术的熟练,一起见证一个编程爱好者如何通过不断学习和实践,解锁新技能,最终成为领域内的专家。让我们跟随这段旅程,发现那些看似晦涩难懂的代码背后的艺术与哲理。
|
3月前
|
程序员 项目管理 数据库
探索代码之美:从小白到大牛的编程旅程
【9月更文挑战第9天】在编程的世界里,每个人都是从零开始,但每一步的成长都能让我们更接近技术的深渊。本文将通过个人的技术感悟,带你领略编程的魅力和挑战,从基础语法的学习到复杂项目的管理,一起见证一个程序员如何在实践中不断进步,最终达到技术的新高度。
43 0