编程学习困境解析:从入门到放弃的原因及解决方案

2025-03-02
来源:网络整理

在以下书面之前写:

本文讨论了在学习编程的过程中遇到的一些困难以及这些问题背后的原因。

在本文的下半年,我将在我们的编程课堂中介绍即将举行的“研究小组”活动。这项活动适用于有偿学生,您也可以立即加入。

如果您对事件不感兴趣或被“付费”拒绝,则可以直接阅读上一篇或现在直接关闭文章。但是,如果您想参加,请务必仔细阅读活动说明。我不希望您因冲动而加入,我将稍后解释原因。

编程学习困境

请考虑一下您在学习节目期间是否有以下经验,或者面临类似情况:

“从开始到放弃”不仅是个玩笑,确实有太多问题使编程初学者在入门阶段。

为什么会发生这种情况?

除了编程自己的难度,思考风格,学习环境,学习者的动力等之外,我想谈谈人们经常忽略或故意避免这种情况的原因:

编程技能不是线性学习过程

我已经看到很多人问一门课程的轮廓是什么,或者您可以列出我的学习道路,以便我可以遵循。将其放在特定的技能点上,可能存在此大纲。但是从更宏观的角度来看,编程技能必须是网状结构,如下图所示:

语言是要点之一,前端网页的基础是另一个。数据分析,服务器部署,爬行者,数据结构……都是不同的点。这些点大小都很小,有些点被扩展,并由更多的小​​点组成。这些要点相互连接,有些是必要的前言,有些是彼此相关的。

程序员思想中的技能图是各种技能点以及点之间的关系。他将熟悉自己领域的一系列要点,在遇到新问题时,他将寻找必要的新技能点并将其吸收到他的技能图中。

但是对于许多新手来说,他们不了解这种网格结构的存在,因此会有一些问题:

缺乏整体认知,不了解完成任务需要多少相关知识。例如,如果您听到人们说您可以在零基金会学习三个月后进行人工智能开发。实际上,基础知识只是与人工智能相关的技能树中的一个非常底层的技能。完成这项技能后,我抬头看着人工智能,自然而然地感到困惑。

学习目标不是具体的,我认为我可以根据某个教程学习。问题在于,在学习了一段时间后,我不知道我正在阅读的内容是用来的,而我看的问题越多,我就越多看。由于技能树上的节点很复杂,如果您不是目标驱动的类型,而是想先根据某个标准“学习”,那么您可能会被困在信息的中。学习编程的本质是学习“解决问题”。您甚至没有问题,您应该如何学习?

我不知道哪些技能是必要的。即使目标很明确,例如,如果我想构建一个与连接的微信Mini程序,那么在没有任何经验的情况下仍然很难开始,而且我只能保持复制示例的水平。

以部署服务器为例,如果我编写一个教程来告诉您如何运行您在阿里巴巴云服务器上编写的网站,则长度不会太长,并且上有许多类似的教程。但这涉及技能点,包括Web框架,Web服务器,数据库,防火墙,域名,命令,权限管理,远程登录...即使保存VIM文件也可能会使您陷入困境2小时(这是不开玩笑的(这是如何从VIM中登录VIM的先前问题))。如果您没有在技能树上点燃这些相关技能并将它们关联,并且只要从头到尾就可以追求捷径,那么对于开发而言,这几乎是毫无意义的。即使您成功地遵循教程,如果下次有一点偏差,您也可能会无助。

编程学习不是一个简单的技能培训,而是在达到一定的培训时间后能够上班的问题。它要求学习者主动考虑如何使用代码解决问题。代码,框架和工具都是手段,解决问题是目标。每小时有一个非常流行的理论:做一件事,只要您在小时内坚持下去,您就会成为专家。但是,对于编程,如果您总是根据他人的代码复制而无需思考,即使学习了一个小时后,您也只会成为一名非常熟练的打字员。

爬取微信小程序源码_在微信小程序进行爬虫_微信小程序开发爬虫

为什么在大学专业的计算机科学专业时,您必须在四年内参加这么多专业课程?目的是为学生建立基础,以实现这一技能树。相反,即使对某个方向进行了短期训练,并且可以使用一些必要的技能点来完成一定任务,但这两个技能结构的强度显然是不同的。

那该怎么办?

对于学习者,我的建议是:

首先,澄清目标。目标越具体,越好(例如,编写一个程序来发送电子邮件以提醒自己每天向女友发送消息)

然后将此目标用作终点,并学习您需要相反学习的技能(例如,需要了解发送电子邮件,计时任务和基础知识)

最后,将这些技能点一一点亮到目标

返回步骤1,确定下一个目标,连续重复过程,然后迭代学习。

但是,这里有一个矛盾。作为初学者,我什至还没有掌握基础知识。我怎么知道实现目标需要什么技能?

因此,我只能去找一个有经验的人寻求帮助,或者在线搜索相关的指南。

研究小组

自从我在编程课堂工作以来的过去六年中,我已经很多次回答了类似的问题。我认为有一些条件可以为类似学习者提供更完整的解决方案。

我以前曾进行过问卷调查。根据学生的需求,我们将专注于在语言基础,爬网,数据分析,网站开发和其他方向上开展一系列“研究小组”活动。一个小组等同于技能点,该技能点将设定任务,以及完成这些任务所需的知识点和想法。每个小组的学习周期不会太长,与敏捷开发中的()相似,后者集中于在短期内完成目标。通过以这种方式将整体分成几块,我们可以帮助您将技能树分为许多组,然后一一将其点亮。

我们提供什么?

给你一个静脉。凭借我在该领域的熟悉经验,我将为您提供整体理解,并让您了解应学到的目标以实现某个目标。

帮助您点亮每个技能点。为您提供学习建议,告诉您如何学习并回答问题并在此过程中回答问题

任务驱动的学习。不断向您提出问题并行使解决问题的能力。设置规则,指导和监督任务的完成。

为学习者提供联合学习组织

目前,该小组仍处于早期阶段,预计将在今年下半年进行7组:

基本类别:①示例研究 - ②提问小组

数据类:③基础知识-DATA可视化/学习

网页:⑥初学者 - 网站部署

微信小程序开发爬虫_爬取微信小程序源码_在微信小程序进行爬虫

(特定组可能有微调,请参阅后续通知)

小组学习模型

注意!如果您有兴趣参加研究小组,请确保首先确认并了解我们的学习模型!

如前所述,小组是任务驱动的学习。有两种类型:一种是我们设置了您需要在指定时间内完成的开发任务。我们将提供参考材料和解决问题的想法,以完成任务,并提供相关的讨论,问答和参考答案代码。另一个是在团队中工作以练习问题/书籍/教程。我们将在研究期间选择高质量的学习材料并一起研究,并提供集中的讨论和问答。

无论上面提到哪种模型,学习者都需要积极参与而不是被动地聆听演讲。我们不是培训课。如果任务未按时完成,则将其从组中删除。

考虑到许多学习者在业余时间学习,小组的进度设置并不是特别紧张,但是您仍然需要确保一段时间的足够学习时间。

参加一两个小组将不允许您实现定性的飞跃。编程学习是一个长期过程。

因此,如果您没有积极学习的认识,没有足够的学习时间,并且没有长期学习的心态,请不要参加我们的学习小组,它可能不适合您。我不想刺激任何学习者通过夸张或虚假的诺言冲动付款。当我们参加时,我们就是想在学习之路的同龄人。我们需要相互信任。您走得更远,我们去编程教室的时间越长。因此,这就是为什么我一开始说我不希望您因冲动而加入。

爬行者团队简介

在第一期中,我们启动了一个21天的爬行者实践团队。

此外,让我们提供一个预览,即零基础示例学习组也将很快启动。

适合人群

对网络爬网感兴趣,或者想参与爬行者/反爬行者/数据分析和其他相关职位

必需的基础知识

已经掌握了某个基础,并且已经了解了基本语法,常用类型,字符串处理,功能,模块等。您可以通过添加输出和读取错误消息()来调试代码中的问题()

适用的方案

从网络收集数据

监视在线信息中的更改

分析或预测公共数据

分享