首页 生活常识

如果你学编程感到吃力,赶紧去驾校找个陪练

100人浏览   2024-10-18 09:15:55

很多业余编程者,学编程的方式不对。

我本人是个业余编程爱好者,自学过Java、C#、VB,等等。

我虽然水平不高、学习程度不深,但正因为如此,我对编程技术的高深莫测,才有深刻的理解,对初学者的迷茫和无助,才有切身的体会。

我今天就谈一谈,究竟什么方法最适合上班族纯小白入门编程。

(当然,你学编程如果是为了找工作,那另当别论,不用看这篇文章。我分享的心得只针对学编程为了提升个人能力、解决当前工作问题的学习者。)

我先给出我的答案:

业余选手入门学习编程的正确方法,是端正态度,找对目标,把编程当成开车来学,千万别把编程当成修车和造车来学。

我们只要把学编程当成学开车,一切就都豁然开朗。

因为学编程和学开车,作为一项应用技能是高度类似的。

既然学编程和学开车高度类似,我们不妨先回忆一下,我们当年是怎么学开车的?

我讲讲我的学开车经历,权当抛砖引玉:

第一步,先熬18年,等年满18岁有资格考驾照。18岁生日那天,管家里要1600元钱去驾校报名。

报完名之后,老师会给你发张练习表,上面有很详细的学习步骤。我由于报的是“提高班”,还给我发了一本教材,教材名字忘记了。

正式学习前,驾校报名老师会给你讲解了一下大概的学习计划,签一份合同,并给你指定一名陪练。

下面是正式学习过程:

第一天,了解驾驶室构造,认油门和离合器,然后直接就进教练车,闭火拿教练车实操,练习手脚眼配合,

第二天,复习前一天的知识,熟练的话,就开始在院子里练习车辆启停。

然后开始慢慢的上路转圈练习,教练不停的提示你、纠正你。

然后上公路,再往后上高速路,总之就是不断的练习上路、练习入库,不断地磨炼驾驶员的技术和胆量。

最后等驾驶能力慢慢培养出来并且熟练之后,参加考试。

我学车比较早,我当时的学习路径就是这个,现在可能有更多的要求。

当然想要取得驾照,还需要通过理论考试,100道题会90道算及格。

我当年背交规背了好几天,但是说句实在话,除了红灯停绿灯行、礼让行人之外,其余的交通规则我基本都忘了,尤其是扣多少分那部分,我十几年驾龄了,也没搞清楚什么情况扣3分、什么时候扣2分。

最终,不出意外的,我也就这样波澜不惊的成为一名有驾照的合法司机。

这段经历乏善可陈,但我要强调的重点内容是:驾校培训驾驶员的体系非常的简单且高效~非常值得编程学习者思考借鉴~

你发现没有,去驾校学习开车,学会驾驶并通过考试拿到驾照的比例是90%以上。至少在我的朋友圈子里,同龄人不会开车的,我还真没遇见几个。

我可以负责任地讲,去驾校学习开车,是一件成功率极高、学习结果非常有保障的事情。

很多人一定要说:因为汽车驾驶简单嘛~

也许是吧,但是再简单,你也不可能生下来就会开车,没有教练跟着,几乎没有哪个正常人,第一天摸车就敢自己开车上路。

因此开车是一定需要学习和训练的,那么为什么学开车的效果这么好呢?这要从主流的汽车驾校培养体系说起。

我们回顾一下我们学习汽车驾驶的历史,我发现在驾校学开车的过程有3个特点:

首先,学开车高度重视动手能力

当然也包括动脚、动眼睛的能力,理论知识聊胜于无。

你理论学得再多再花,上不了路白搭。给我发的教材,除了考理论课前突击学了一下,里面说的什么,我早早就忘记了。

我没听说哪个人去驾校目的是混个什么学分、了解一下汽车构成之类的,背考题什么的。

你理论背的再滚瓜烂熟,坡道起步溜了车,教练也得骂你。

甭管你是博士还是本科,在驾校一视同仁,动手能力强者为王。一个清华博士不会因为自己是博士,就比别人学得快,或者自认为比别人学得快。

还有值得编程圈子思考的是:学汽车驾驶更没有一些奇奇怪怪的鄙视链,比如C2看不起C1,B2看不起C1什么的。

第二,学开车目的性特别强。

驾校必须得让你通过考试,你自己也得敢单独上路不用人陪,而且得具备足够的胆量和技术,才敢在北京这种城市上路驾驶。

去驾校的目的就是多快好省的拿到驾照,能够驾驶汽车上路。没有其余的目的。

你看这种学习的目的性多强、多接地气:我能自己开上路还能开回来,考驾照能通过。

目的性强、学习接地气还有一个好处,那就是学了之后不会忘。

我从来没听说身边哪个人,因为三年没摸过车,就不会开车了。

因为在驾校学的东西,你动手重复了很多次,已经深深扎根于你的小脑,形成了回路闭环,导致你忘不掉。

我不由得回想起报名时老师发的那本破教材,里面讲的东西我全忘记了,但是怎么启停挂档,我真是从来没忘记过。哪怕是十几年没开过手动档车,手动挡还是没忘记怎么开。

第三,驾校不玩虚的、循序渐进。

驾校学习,特别讲究流程和方法。

开车都是先闭火练习油门和离合,然后开火练习启停,然后慢慢上小路、上大路、最后上高速路。

然后再练习高速公路缴费不用下车。

开车的学习方法也是足够贴心,一环套一环,没有哪个教练第一天就让你上高速公路,都是慢慢来。

上一步不熟练,教练会让你反复练习,不会贸然让你进入下一步更难的训练。

你发现没有,驾校学习流程,简直就是教育培训的模板流程,有木有,真正体现了“没有笨学生、只有笨老师”的有教无类的教育终极理念。

你仔细想想,你学开车的过程,是不是一段值得回忆的美好时光。

很少有哪门学科像汽车驾驶一样,学习过程非常平和、瓜熟蒂落的感觉。

而且很多初学开车的人,还特别喜欢开车,因为很有乐趣。

这种乐趣想必很多人都有切身体会。学开车,除了教练有的凶一点,绝大多数人能够实实在在的感受到自己的进步,感受自己一点一滴的成长,每天每小时都在给你不断的正反馈。

说到这里,我们不妨总结一下驾校教学的成功经验,其实没有什么特殊的,无非是一些很基础的教育规律:

  1. 循序渐进、重视基础。
  2. 强调动手、弱化理论

3.实操为王、不断训练

讲完了学习开车的经历,我们现在切入正题:

业余选手怎么学习编程

跟学习开车相比,学习编程的过程就不那么美妙,至少对我来说是这样的。

很多人学编程目的性不强,导致学习路径有大问题,学习没有目的性,自然不能主动去思考、去试图掌握正确的学习方法。

于是越学越迷茫、越学越痛苦。

我不禁要问自己:学习编程怎么就变成一件这么痛苦、让人摸不到头脑的一件事情呢?

别跟我杠,如果你不以找工作为目的学习编程,请问有多少业余学习者能够独立完成力扣算法50道题?

别说独立完成力扣题了,恐怕很多人连用窗体自动生成HelloWorld都难以做到,就半途而废了。

别跟我杠,控制台写HelloWorld还真不算难,但窗体生成HelloWorld能妥妥卡住一大片人。

因为业余选手没有一个驾校似的教育体系让你去学习,如果完全靠个人摸索,成本很高、代价很大。

编程学习还非常的个人化,适合自己的学习路径,往往最终要靠自己摸索,还真不是钱能解决的事儿,可能你还没摸到门,耐心和兴趣就已经消磨殆尽。

很多人学了很久,恐怕连合适自己的IDE都找不到。

但我要强调一点:学习编程其实路径并不复杂,尤其是入门这一块,编程本身是一个入门容易学精难的技术,入门还真没多难。

那么为什么很多人编程学了一堆忘了一堆,我觉得最大的问题在于编程没有学以致用、没有尽早形成解决问题的习惯和能力。

拿前面讲的开车类比一下,就是你进了驾校学习,但是从来没能上过路。。只会背驾校老师发给你的那本破教程。

我们再回顾一下我们学习开车的成功经验,看看这些经验能不能套在编程上?

我学习编程的过程,这些成功经验一条都不沾:

  1. 循序渐进、重视基础。

多少人是从C语言C++开始学习编程的请举手?把手放下。

宇哥这种编程烂人,特别佩服能用C语言入门编程的神人。你们的起点太高了,高到宇哥都自愧不如的程度。

我再强调一遍,循序渐进、循序渐进,什么叫循序?就是简单的先做、难的后做,顺序不能乱,什么叫渐进?就是简单的先做、难的后做,一步一步来。

C语言的地位,不是本文讨论的重点,本文重点是讨论编程二傻子怎么开始学习编程还不弃坑。

我强调一下,C语言是门修车和造车的技能,很重要,但一定要放在入门之后学习。

新手学习C语言,无异于进了驾校开始学习汽车组成原理,汽车组成原理重不重要?重要,学习有错吗?没错。

但是汽车组成原理这门课,它就是不适合在驾校学习,同意吗?

你恐怕很难不同意。

初学编程找一个新手友好的框架,一定要自带窗体界面的,C#、VB.net都可以,Java没有窗体界面,其实不太适合小白入门编程。QT这种框架,真心也不适合小白。

2.强调动手、弱化理论

编程的目的是解决实际问题,学开车就为了把车开走。

学编程也是一样的,你一定要找寻出一个学习编程的目的来,当然这个目的千奇百怪,但就算你的目的再奇怪,你也要找出一个来。

我学习编程的目的是做自媒体,给我的课程引流。

很多人学习编程的目的奇奇怪怪,我见过大量为了做外贸学Python前端的人,也见过纯为了装逼学习编程的人(我之前也是这个目的)

只有有一个明确的目标,你学习编程才会又快又好。有目标的学习,才会倒逼你不停的寻找解决问题的方法,而不是死磕科目一的理论。

我学习编程的目标很单纯,现在是把200道力扣算法题用VB做出来录成讲课视频,再免费教会2000个人。

请问你学习编程的目的是什么?

3.实操为王、不断训练

为什么大家学完开车就不会忘记?因为开车被教练分解成了无数的步骤,我们经过了很多次的练习,大脑形成了记忆,并且这些分解练习会不断的成功,给我们大脑足够的奖励,会将这种成功的练习方法深深的刻入我们的大脑。

学编程我是经常忘记代码怎么写的,哪怕一些很入门的代码,要用的时候,我是经常大脑一片空白的。

原因无外乎我的基础不扎实,为什么不扎实?

再对比一下学开车,我学习编写代码,没有经过不停的分解训练,也没有哪本教程像驾校一样,把一段代码拆解成简单重复动作让我去深入练习。

更没有一个陪练在我旁边不停的絮絮叨叨、不停地纠正我的错误动作。

我翻阅了绝大多数的编程教材,代码练习都是把一堆代码扔给你让你自己去练,有几个注释都算是良心的了。

这就好比你学开车,副驾驶没坐陪练老师,而是放了一本书。。哪里不会,你停下车自己去翻阅答案。

这种学习方法,有效率才见了鬼。

总而言之,写代码的本质和学开车一样,只要你遵循了自然规律和客观规律,你的效果就会很好,你不遵守规律,效果自然不好。

当然学习编程和学习开车,毕竟还有区别。

区别在于,编程还需要修车和造车,在编程领域,而编程的修车和造车,跟开车的界限往往很模糊。

因为编程这辆破车,是要经常出问题的,你得时不时下来检查一下,哪里又出了Bug报错了~

但这并不妨碍编程入门的目的是要把车开走,哪怕这辆车是你刚造的,你不能把他放那里,你需要上车,测试它的性能。

但是我仍然要强调一点,编程的第一天就要去练习,像学开车一样,不停的练习,不停的试错,把基础代码练明白。做一个闭环的,能看得见摸得着的,属于你的桌面程序。

哪怕你上路磕磕绊绊,但是方法是对的,熟能生巧只是时间问题。

千万不要把科目一当成编程的重点,你的重点永远都是上路。

你回忆一下,你家里囤了多少科目一的教材?而你花在上路练习的时间又有多少?

是不是本末倒置了很久了?兄弟?

对于绝大多数代码从业者来说,开车和修车才是常态,真正的造车,属于一小撮很厉害的人。

可是上来就搞C语言,掌握计算机底层原理,这对于入门小白来说,是不是相当于去驾校学习汽车组成原理?

你仔细琢磨琢磨,是不是这个道理?