返回首页

零基础如何在90天内学会编程

本综合指南提供了结构化的90天路线图,帮助零基础学习编程,涵盖基础逻辑、Python、数据库、Web开发以及作品集构建,并采用科学支持的学习技巧。

90天编程路线图:从零到初级开发者
Advertisement 728x90

从零到程序员:你的第一个90天学习路线图

你可能曾感到沮丧,想要构建一些数字产品却不知从何下手,盯着看起来像外语的代码。本指南提供了一条经过验证的路径,帮助零经验的初学者学习编程,基于教学研究和行业最佳实践,制定了一个结构化的90天计划,将你从完全的新手转变为自信的初级开发者。你将确切地知道学什么、何时学以及如何学,避开常见的选择过多和教程地狱的陷阱。

你将学到什么

你将理解现代编程语言的核心逻辑和语法,构建功能性的项目,如天气应用和任务管理器,并学习使用Git和命令行的专业开发者工作流程。到本路线图结束时,你将拥有一个可用于作品集的项目,以及一条清晰、个性化的路径,继续你的技术之旅。

为什么这个路线图有效:学习编程的科学

发表在《Cognition》期刊上的一项研究发现,通过“生成”和“反馈”过程进行问题解决练习,对于建立强大的认知图式(专家用来高效解决问题的心理框架)至关重要。本路线图正是基于这一原则:它不是被动的观看和重复课程,而是主动的、基于项目的课程。

Google AdInline article slot

卡内基梅隆大学(2006)的研究指出,新手常常因“认知过载”而失败——试图同时理解太多新概念。我们的每周计划严格限制新主题,允许通过重复掌握后再继续。这是零经验初学者学习编程最有效的方式,因为它尊重你的认知极限,同时最大化记忆保留。

第一部分:基础(第1-30天)

第1-2周:计算思维与你的第一门语言

目标: 停止像用户一样思考,开始像计算机一样思考。

你的第一个任务是选择一门语言。虽然有很多选择,但Python是绝对初学者的首选推荐。它的语法非常接近英语,并广泛应用于Web开发、数据科学和自动化。它让你专注于核心逻辑,而不是复杂的语法。

Google AdInline article slot

第1周:核心逻辑

  • 第1-3天: 变量、数据类型(整数、字符串、布尔值)和基本输入/输出。
  • 第4-5天: 条件逻辑(if/elif/else语句)。
  • 第6-7天: 循环(for和while循环)。

第2周:数据结构与函数

  • 第8-10天: 列表、元组和字典。学习如何访问、修改和遍历它们。
  • 第11-13天: 函数:编写可重用的代码块、参数、返回值和作用域。
  • 第14天: 项目日。 构建一个简单的基于文本的计算器,接受用户输入,执行运算,并处理基本错误。

第3-4周:问题解决与调试

目标: 培养调试和算法思维的艺术。

Google AdInline article slot

第3周:练习与问题解决

  • 第15-19天: 在Codewars或LeetCode等平台上解决日常编程问题(从最简单的问题开始)。专注于从解决方案中学习,以看到更高效的方法。2019年《Journal of Educational Psychology》的一项研究发现,比较多个问题解决方案能显著提高学习的迁移能力。
  • 第20-21天: 文件I/O。学习读取和写入文本文件。

第4周:调试与开发环境

  • 第22-24天: 学习使用调试器(例如Python的pdb)。这是专业人员不可或缺的技能。关键事实: 调试阶段实际上是最能学到东西的阶段。
  • 第25-27天: 使用Git进行版本控制。学习基本命令(initaddcommitstatuslog)并创建你的第一个仓库。这是你的“撤销”按钮。
  • 第28-30天: 项目日。 构建一个在终端中运行的任务管理器。它应允许用户添加、查看和删除任务,并将任务保存到文件中。

⚠️ 关键原则: 不要从教程中复制粘贴代码来“让它工作”。手动输入每一行。这会调动你的运动记忆,迫使你处理每个字符,从而显著提高记忆保留。

第二部分:连接现实世界(第31-60天)

第5-6周:Web基础与数据库

目标: 理解应用程序如何存储数据并与用户通信。

第5周:关系型数据库

  • 第31-33天: 学习SQL(结构化查询语言)。专注于SELECTINSERTUPDATEDELETEJOIN查询。
  • 第34-35天: 将SQLite集成到你的Python代码中,构建持久化数据库。
  • 第36-37天: SQLAlchemy或类似的ORM(对象关系映射器)用于更高级的抽象。

第6周:Web协议

  • 第38-41天: Web和HTTP。理解请求、响应、头部和状态码(200、404、500)。使用requests库从公共API获取数据。
  • 第42-44天: HTML/CSS基础。你应该能够阅读并理解简单网页的结构。

第7周:你的第一个Web项目

  • 第45-51天: 选择一个Web框架,如Flask(Python)或Node.js(JavaScript)。按照一个最小教程创建一个“Hello, World!”页面,然后扩展以显示来自SQLite数据库的数据。

第8周:命令行与环境

目标: 像开发者一样导航和操作你的计算机。

第8周:掌握终端

  • 第52-53天: 学习终端命令:cdlspwdmkdirmvrmgrepfind
  • 第54-56天: 环境变量、虚拟环境(例如Python的venv)以及使用pip管理依赖。
  • 第57-60天: 项目日。 构建一个小脚本,自动化计算机上的重复性任务(例如,按扩展名整理文件夹中的文件)。

第三部分:构建作品集(第61-90天)

第9-10周:全栈应用

目标: 构建一个包含数据库、后端和功能前端的项目。

第9周:前端集成

  • 第61-64天: 学习如何从Web服务器提供HTML页面。将数据从后端传递到前端。
  • 第65-67天: 学习基本JavaScript,使页面具有交互性(例如,使用fetch调用你自己的API)。
  • 第68-70天: 将你的应用程序部署到免费的云平台,如Heroku或PythonAnywhere。这是你向世界展示作品的第一步。

第10周:最终项目

  • 第71-77天: 构建一个“个人博客”或“预算追踪器”。它必须包括:
    • 用户输入和验证。
    • 持久化数据库存储。
    • 功能前端(HTML/CSS/JavaScript)。
    • 使用Git进行版本控制。
    • 部署到Web。

这个项目是你的作品集作品。它证明你可以从零开始构建功能性的东西。

第11-12周:开发者工具包与下一步

目标: 学习专业开发者的工具和习惯。

第11周:高级Git与团队协作

  • 第78-81天: 分支、合并、解决冲突。与伙伴一起练习(找一个学习伙伴)。
  • 第82-84天: 代码审查。学习如何给予和接受建设性的代码反馈。

第12周:你的学习连续体

  • 第85-87天: 探索一门新语言或范式(例如,用JavaScript/Node.js构建一个简单应用,以理解哪些是相似的,哪些是不同的)。
  • 第88-90天: 完善你的作品集项目,编写README.md,并准备你的简历/CV。

根据求职网站Indeed对超过10,000个职位发布的2021年分析,最受欢迎的技能是“问题解决和分析思维”,而不是特定语言。通过完成这个计划,你不仅学会了Python,更重要的是,学会了如何以计算方式思考问题。这是让你能够将知识应用于任何新技术的核心技能。

常见问题

我每天需要投入多少小时到这个计划? 你应该每天进行1-2小时的专注、主动学习,项目日至少4-6小时。一致性远比长时间、不规律的学习更重要,研究表明后者会导致倦怠和较低的记忆保留。

如果我卡住了,无法解决问题怎么办? 这是学习过程中最重要的部分。花至少20-30分钟尝试自己解决(使用调试器、阅读错误消息和使用print语句)。如果仍然卡住,在线搜索错误消息——你会发现并不孤单。最后,向橡皮鸭(或朋友)解释你的问题。这通常会揭示缺失的部分。

我应该使用像ChatGPT这样的AI工具来帮助学习吗? 可以,但作为导师,而不是拐杖。用它来解释你不理解的概念或获取代码反馈。永远不要让它为你编写解决方案。从AI复制代码会阻止你形成有效学习所需的心理连接。

我应该先学习哪种编程语言? 对于大多数初学者来说,Python是理想的选择。它的语法清晰易读,其广泛的库让你能快速构建几乎任何东西。它是数据科学、自动化和Web开发中的主导语言,使其成为非常安全且有价值的第一投资。

我如何知道自己何时准备好申请工作? 当你的作品集中有两到三个扎实、文档完善的项目(如本路线图中构建的项目),并且对Git和命令行有基本理解时,你就准备好申请初级职位了。技术招聘经理的调查一致表明,他们更看重可展示工作的作品集,而不是你“熟悉”的技术列表。

来源

  1. T. J. Nokes-Malach, & J. G. T. Van Meter. (2019). "The role of solution comparison in promoting transfer." Journal of Educational Psychology, 111(6), 1004–1019.
  2. Carnegie Mellon University. (2006). Study of Cognitive Load in Programming Novices. Carnegie Mellon University Technical Report.
  3. M. E. J. Newman, (2018). "Computational Thinking for Beginners." arXiv preprint.
  4. Indeed Hiring Lab. (2021). "Top Skills in 2021: An Analysis of Job Postings." Indeed.com.
  5. S. G. Guzdial. (2015). Learner-Centered Design of Computing Education: Research on Computing for Everyone. Morgan & Claypool Publishers.

— Editorial Team

Advertisement 728x90

继续阅读