学习编码(免费)

2025-06-08

学习编码(免费)

在21世纪,编程能力是人们所能拥有的最有价值的技能之一。Burning Glass的一份报告指出,越来越多的职位空缺看重编程,编程技能为人们提供了通往高收入工作的道路,而且编程工作的增长速度超过了就业市场的增长速度。学习编程技能不仅改变了人们的生活,也为他们提供了一项不仅有价值而且充满乐趣的技能。

然而,许多人在学习编程时面临重重障碍,因为编程专业的大学学位既昂贵又耗时,编程训练营和在线课程价格不菲,教科书也往往花费不菲。但大学教育、编程训练营和昂贵的教科书并非仅有的资源,互联网上还有很多高质量的免费资源

通过本指南,您将了解一些高质量的编程资源,以及一些关于如何充分利用您的编程经验的技巧和建议。我不是这些资源的代言人,我之所以提到它们,是因为它们非常有价值,而且学习它们不会花费您任何费用。

这篇文章将分为以下内容:

  1. 编码基础
  2. Web 开发
  3. 文档和工具
  4. 援助地点
  5. 掌握面试技巧,获得工作

编码基础

Python 中的 Hello World
当你学习如何玩游戏时,在直接进入游戏之前了解游戏的运作方式非常重要——同样的标准也适用于学习编程。学习这些编程基础知识将使你成为一名更优秀的程序员。

可汗学院
本指南中,我最想重点介绍可汗学院的两个部分:算法和计算机的工作原理。通过学习算法部分,你将了解一些常见的基本算法。在后面提到的资源中,你将学习更高层次的算法,并且更容易理解之前学习过并重新引入的算法。除了学习算法之外,学习计算机的工作原理还能让你了解计算机在底层是如何运作的。当你稍后了解计算机某些部件的工作原理时,你将更容易理解计算机如何执行某些你以前可能不熟悉的任务。

Think Python 2e
Python 因其易读性和易用性而成为学习入门的绝佳语言。对于一些人来说,相比 Python,学习 C++、Java 或 JavaScript 可能会让他们望而却步,放弃学习编程。Think Python不仅会教你如何使用 Python 编程,还会教你典型编程语言的基础知识和基本的线性数据结构。完成Think Python后,你不仅能掌握 Python 的基础知识,而且学习其他编程语言也会更容易,因为你已经掌握了一门编程语言!

免责声明:本指南的接下来两部分可能会受到许多人的严厉批评,但我发现学习离散结构和数据结构和算法很重要,因为了解这些主题将使您成为一名更好的程序员,并且如果您想进入就业市场,您将了解许多面试测试您的主题。

离散结构 - 玛格丽特·弗莱克
注:本书要求读者具备大学代数知识。如果你不懂大学代数,我建议你回去可汗学院学习一下预科微积分部分。否则,你将很难学习离散结构。

这个资料可能有点偏颇,因为它是我所在大学(伊利诺伊大学香槟分校)的一位教授写的书,但它确实是学习离散结构的宝贵资源。通过阅读和做玛格丽特·弗莱克的《离散结构》中的练习,你将学习数据结构和算法的基石。你以后会感谢我的这个建议。

开放数据结构(伪代码版)
学习数据结构和算法不仅能帮助你提升程序质量和实用思维,还能帮助你通过大多数编程面试。我建议你先阅读伪代码版,并使用 Python 编写书中的示例和练习。完成本节后,你将准备好征服任何与编程相关的领域,并为自己打开通往成功的大门。

Web 开发

免费代码营课程
Web 开发是目前软件开发中最热门的领域之一,因为人们可以通过学习成为前端开发人员、后端开发人员,甚至是全栈开发人员。我们将重点介绍的 Web 开发学习资源是 Free Code Camp,因为它可以说是学习 Web 开发的最佳资源,并且能够让你与其他程序员(除了 DEV 社区)建立起一个充满热情的社区。

免费代码营
免费代码营是学习编码和 Web 开发的最佳免费资源,因为它包含高质量的课程、社区、有关编码主题的 Medium 文章、获得非营利组织编码经验的机会、1049 个编码挑战、30 个项目和 6 个备受推崇的认证,这些都可以促进您作为编码员的旅程。

我在编程基础课程中要求你学习的所有内容在这里都会有所帮助,因为你将学习另一种名为 JavaScript 的语言,而且由于你已经了解 Python,学习 JavaScript 会更容易。此外,你将在免费编程营中完成与数据结构和算法相关的挑战,这些都是你在开放数据结构课程中学到的内容。

如果本指南只能给你一种资源,我希望是这个。免费编程营改变了很多人的生活,有些人甚至在完成免费编程营的课程后找到了工作。

文档和工具

Mozilla 开发者网络

文档
文档非常有用。每当您遇到编码问题(例如在 JavaScript 中调用函数)时,文档都能为您提供帮助。阅读文档以帮助您解决问题的最佳起点是您所使用的产品的官方文档。如果您需要更多文档,以下是一些不错的选择:Mozilla Web DocsW3SchoolsGeeks for Geeks

还有其他资源也很好,如果有疑问,只需使用 Google/WhateverSearchEngineYouUse 即可找到问题的答案!

文本编辑器和 IDE
在笔记应用程序中编写所有代码不会是一种愉快的体验。文本编辑器为编写代码和保存文件提供了增强的体验。我逐渐喜欢上的一个文本编辑器是Visual Studio Code,它是由 Microsoft 开发的开源文本编辑器。IDE 代表集成开发环境,它们在编码方面非常高效,因为 IDE 允许您拥有文本编辑器的所有功能以及调试(查找和修复错误)、编写单元测试并在代码上运行它们的能力,以及集成框架和库以增强您的编码项目的能力。我发现 IDE 的一个缺点是它们会使您的计算机运行速度变慢(偶尔会占用大量 RAM),但它们确实可以改善编程体验,具体取决于程序员正在构建的内容。在大多数情况下,许多 IDE 都基于某些编程语言,但我将包含一个到Visual Studio 的链接,因为有插件可以在 IDE 中集成其他语言。

Git 和 GitHub
学习编程是一个充满乐趣的过程,但有时也会令人沮丧。我应该将文件保存在哪里,以便随时随地访问、向任何人展示,并开放供协作?答案是:版本控制。Git 是一个版本控制系统,而 GitHub 是一个使用 Git 进行版本控制的托管服务。我建议学习 Git 和 GitHub,因为它们能让你更高效地编程;GitHub 允许你恢复项目的先前提交;GitHub 允许你轻松地进行项目协作;GitHub 为雇主提供了一个便捷的平台来查找你的作品;GitHub 还允许你为开源做出贡献!“Git 和 GitHub”链接提供了学习 Git 和 GitHub 基础知识的链接。

终端
学习如何使用终端可以非常高效,并有助于提升你的编程经验。如果你使用的是 macOS/Linux,你的机器上可能已经安装了一个 Shell,你可以学习使用它。这里有一个学习终端的好资源。Windows 有单独的 Shell,但可以安装虚拟 Bash 环境,这里有一个安装方法的链接。我相信上面那本书对学习 Windows 上的虚拟终端也会有所帮助。

通过免费代码营,您将学习如何使用许多其他工具,因此这就结束了文档和工具部分。

援助地点

Stacked Overflow 主页

Stack Overflow
如果你想快速找到代码实现的答案,Stack Overflow 就是你的不二之选!那里有海量已解答的问题,如果你的问题还没有得到解答,可以在那里提问!

Reddit:r/learnprogramming
r/learnprogramming subreddit 是另一个社区,您可以在其中找到编程问题的答案,或者如果您对与代码相关的某些内容感到好奇或需要帮助实现代码,可以提出问题!

掌握面试技巧,获得工作

如前所述,编程是一个非常有利可图且充满乐趣的领域。许多人对编程职业感兴趣,但面试过程可能很艰难!这些资源应该能帮助你顺利通过面试,最终找到理想的工作!

LinkedIn
LinkedIn 是一个面向专业人士的社交网络。确保你在那里拥有最新的个人资料!它是寻找入门级工作或实习机会的好地方。

HackerRank:
在这个领域,你的数据结构和算法知识将变得至关重要,因为 HackerRank 提供的编程挑战可能会在面试过程中出现!我可以告诉你,我曾经在 HackerRank 上完成过软件开发职位的编程挑战。这是一个非常受欢迎的编程挑战网站,很多雇主也在使用它!

作品集:
编程作品集对任何开发者都很重要,对自学成才的程序员来说尤其重要!作品集里包含你参与过且充满热情的个人编程项目!在面试过程中,你可以展示自己引以为豪的项目,最好在简历中列出你最好的/最有共鸣的两个项目!创建个人网站甚至可以成为你作品集的一部分!这里有一个作品集网站的示例。以下是来自一位 dev.to 用户的帖子,他教你如何编写一个优秀的作品集展示网站。

扎实的简历
一份扎实的简历能让你脱颖而出。想要了解更多技巧,我推荐你阅读其他用户的指南!这里有他们关于技术简历写作的帖子链接。

可选:Twitter 和 Slack。
加入 Twitter 并关注热门开发者和公司,可以帮助你入门并学习更多编程知识。此外,加入技术相关的 Slack 频道也能帮助你入门。我建议加入这两个平台并积极参与,但据我所知,社交媒体并不适合所有人。

最后说明

首先,感谢大家阅读这篇指南!我知道它很长,但我真心相信它对任何类型的程序员都能有所帮助!另外,我想说一下,这是我在 dev.to 上的第一篇文章,希望以后能写更多!

致编程新手:希望本指南能帮助你达到编程的预期目标!如果你不想学习 Web 开发,而更专注于其他领域,可以在网上搜索你感兴趣的内容,找到不同领域编程的教程。如果你在下方评论区提问如何学习(填写主题),我也可以提供帮助!记住,总有其他资源可以学习,还有很多工具我没有在这里讨论。如果你对某个东西感兴趣,就去学习吧!

致资深程序员:非常感谢你的阅读!感谢你抽出时间阅读!

致所有人:如果您有任何问题、评论或反馈,请随时留言!我会回复您的所有意见!您可以在 GitHub、LinkedIn 和 Twitter 上找到我:@DannyDDore!

鏂囩珷鏉ユ簮锛�https://dev.to/dannydore35/learn-to-code-for-free-581a
PREV
在 Typescript 中使用属性装饰器的真实示例
NEXT
100% 代码覆盖率的悲剧