🕵️♂️ 自学的艺术:如何自学任何编程概念🤓
自学入门
首先,我先给你描述一下当时的情景。你可能在新闻里或者朋友那里听说过“程序员的就业市场棒极了”。
你偶然发现了一些 YouTube 视频或奇怪的付费课程,它们能教你一些东西,然后你突然想到,啊哈!这就是我们缺少的东西!
只需几天(甚至几个小时)你就会很快意识到编程很难,而按照你在网上找到的一些随机课程大多只会让你擅长复制东西,所以当你以后试图自己思考时,你最终只是盯着那个巨大的空白屏幕。
首先,你怎样才能学到东西?
让我们听听著名程序员GeoHotz 的说法:
学习是一个复杂的过程,每个人的学习方式都不一样。对我来说,最简单的学习方法就是找到能激励你学习的东西。
由于学习是一个艰苦且有时乏味的过程,因此拥有明确的目标可以让你走得更远,并让你觉得自己完成了更伟大的事情,或者正如 GeoHotz 所说:
你永远不可能通过观看名为“学习编程”的视频来学习编程。
对于我和我认识的其他程序员来说,我们喜欢构建副项目,并且这种通过做项目来学习东西的方法(在学院中称为基于项目的学习)由于其有效性而变得越来越流行,作品集、想到的随机想法,甚至可以帮助我们实现爱好的东西都成为您学习灵感来源的绝佳例子。
那就继续吧!首先,选择你的学习灵感/项目。如果你是完全的初学者,可以从小事做起。比如,考虑一个可以在屏幕上显示你的名字以及所选短语的程序!
还在纠结如何对好的项目创意进行分类吗?这个问题对初学者来说尤其难,我们将在下文中帮你解答。
有哪些好主意?
以下是我目前用来检查这是否是一个好主意的事情:
- 实用性:这个想法应该能够解决实际问题或引起你的兴趣。这将激励你完成这个项目。
- 复杂性:创意的复杂性应与您当前的技能水平相匹配。如果您是初学者,请从简单的项目开始,随着技能的提高逐渐尝试更复杂的项目。
- 兴趣:选择一个你真正感兴趣的项目。这会让学习过程更愉快,而不是枯燥乏味。
对于初学者来说,一些好的想法可以是创建一个基本的计算器、一个简单的博客或一个交互式待办事项列表。对于更高级的学习者,可以考虑构建一个从 API 获取数据的天气应用、一个实时应用程序,甚至是像井字棋或贪吃蛇这样的简单游戏。
事实上,如果你对实时主题感兴趣,我们已经编写了一个完整的分步教程,向你展示如何使用 WebSockets 构建实时投票应用。它将教你如何与朋友实时就某个主题进行投票,同时构建一个完全基于 React + NodeJS 的全栈 Web 应用——一个很棒的作品集项目!
厌倦了千篇一律的想法,或者完全找不到灵感?快来看看这个很棒的代码库吧!里面有很多不同想法的链接,可以链接到其他想法列表!
为工作/学习主题选择合适的工具
第二步是为您的项目选择正确的语言/工具。
如果您是完全的初学者:一切正常,因为大多数编程语言的编程核心概念都相同。不必担心任何关于“更好的语言”、“更好的操作系统”之类的观点,记住,我们致力于创造一些东西。
还没想好?用JavaScript就行!它很简单,有大量教程,而且基本上什么都能做。:)
如果你已经具备一定的编程基础,可以使用 AI 和一些优秀的抽象/框架来更快地完成工作。例如,你无需从头开始创建所有内容(并且可能一路上会遇到一些小问题),而是可以使用Wasp来避免大量重复工作。Wasp 是一个很棒的 React/Node 全栈框架,可以帮你管理编程的样板部分。🤯
此外,他们的 CLI也能帮助你更快上手。运行wasp new
,你就能获得符合你需求的自定义模板。例如,如果你正在构建一个新的 SaaS,OpenSaaS很可能会很适合你;或者,如果你正在创建一个更具体的解决方案,如果没有其他合适的工具, AI 代码生成器可以帮助你快速上手。
顺便说一句,如果您还没有关注我们的代码库,那就点个赞吧!像Wasp这样的开源项目可以帮我们节省大量时间,让我们专注于构建 Web 应用的乐趣所在!
通过 在 GitHub 上为该 repo 加注星标, 您可以帮助我们继续为所有开发人员提供更快、更轻松的 Web 开发!
尝试去做(并犯一些错误)
现在,是时候让我们开始行动了!
作为一名程序员,你需要掌握的一项基本技能就是搜索。内容无处不在,我们只需要找到它。首先,将手头的任务分解成更小的问题:
让我们使用一个简单的应用程序的示例,该应用程序允许用户输入他们的名字,以便它出现在屏幕/客户端上:
- 如何在 Python 上显示我的名字?
- 如何在代码中存储文本?
你搜索并找到内容的每一个问题都会衍生出更多问题,希望这些问题能够更精准地解决问题。你可能会亲眼看到,像“在屏幕上显示用户名”这样简单的任务,其复杂程度可以无限延伸。
如何在应用程序上输入和保存数据?如何正确显示这些数据?这些问题你都需要尝试解答,但有时可能会失败。作为工程师,我们必须确定这些问题是否与我们正在开发的解决方案相关,并解决项目可能引发的任何不确定性。
在寻求答案和识别主题无关性之间找到平衡至关重要。这个过程有助于我们的职业发展。对了,别忘了我们的人工智能朋友,比如Chat-GPT,它可以为我们解释,甚至编写代码。
请记住,编程工作就像一般的工程一样,需要反复试验。我们每天都在尝试、调试和寻找解决方案。实验越多,我们就越接近理想的解决方案。对于每位工程师/程序员来说,快速适应这个过程都是朝着正确方向迈出的一大步。
但是,请注意,如果你是完全的初学者,请先尝试自己搜索。人工智能很棒,可以帮你很多,但它可能不够精确,只有自学才能让你发现其中的缺陷。
反思你的进步
定期反思迄今为止学到的知识非常重要。这可以很简单,比如每天结束时总结一下你学到的新概念,或者撰写一篇博客文章或教程,或者只是一条简单的推文。这不仅可以巩固你的理解,还可以作为未来使用的参考(你可以在这里了解更多关于公共建筑 的概念,这对公司和你的学习之旅都很有帮助!)。
反思自己的进步还能让你有机会评估自己的优势和劣势,从而专注于需要改进的领域。这就像一个个人反馈循环,让你更好地了解自己的学习方式,以及如何提高学习效率。
这也是自我推销并通过作品集向他人展示的好时机,例如,您创作了什么以及如何创作的!
自学编程的挑战
自学编程有其挑战性。它需要自律、耐心,以及排除故障和从错误中学习的能力。此外,如果没有结构化的课程,很容易感到不知所措或迷失。
然而,同样重要的是要记住,自学并不意味着孤立地学习。与其他学习者互动,分享你的代码,并寻求反馈(例如,你可以查看Wasp 的 Discord或其他社区来开始互动)。这可以极大地帮助你加深理解,提高你的编程技能。
至于课程设置,你也不必盲目地搜索所有内容。你可以使用开发者路线图来了解每一步应该学习的内容!
自学编程的好处

尽管挑战重重,自学编程也有很多好处。它提供了灵活性,培养了创造力,并且能带来意想不到的回报。但没有什么比那种无所不能的感觉更令人惊叹,或者换句话说,你会获得自信。
当你最终创造出自己喜欢的东西,并意识到自己在这个过程中学到了很多东西时,那种感觉很棒,但更棒的是,如果有足够的时间,你就可以学习和创造任何想到的想法。此外,你可以按照自己的节奏,专注于你最感兴趣的领域。构建让你兴奋的项目,并与他人分享你的进步。继续学习,继续编码,最重要的是,享受这个过程。
结论
总而言之,自学编程是一段充满力量的旅程,可以开启无数的机会。它有时会充满挑战,但你获得的可能性却是无限的。
哦,如果你还没给Wasp 的仓库点赞,我建议你点一下!对于任何想更快更轻松地完成项目的人来说,它都是一个很棒的全栈框架!
最后,成功的自学之旅的关键在于坚持、耐心和适度的好奇心。将挑战视为成长的机会,不要害怕寻求帮助。在这段旅程中,你并不孤单,每个程序员,无论经验如何,都是从你现在的处境开始的。
文章来源:https://dev.to/wasp/the-art-of-self-learning-how-to-teach-yourself-any-programming-concept-5de4