那些编程水平很高的人,是怎么训练出来的?

前段时间,有个初学者说,自己学起来很费劲,感觉自己不是写程序的料,不适合做这个行业。

 

从他描述中,我看到了他对天赋的渴望。

 

可惜,真正的天赋型选手,真的非常少,我不是,你可能也不是。

 

刚开始,我学编程的动力,来自于对hacker的兴趣,觉得很酷,不学编程,似乎成不了真正的hacker…

 

后面,为了一日三餐,路子越走越歪了,从java开始,没想到最后特么和单片机搞到一起了。

 

漫长的学习过程,我都忘记骂过自己多少回蠢货了。

 

但…这不重要,重要的是,你发现身边有些聪明的同学,混得还没有蠢货好。

 

聪明的人,花里胡哨想法多,总是想走捷径,结局比蠢货还惨。

 

傻傻干,傻傻坚持的,才是狠人。

 

如果只是找个工作混口饭吃,根本都用不到天赋上场

 

对于做嵌入式而言,哪怕编程水平一般,其实也能完成大部分产品了,像我一样..

 

我做了开发10年,真正能”惊艳”到我的编程水平,一只手都数得过来。

 

接手的大多数代码,都凌乱到让人咬牙切齿,想骂娘。

 

我见过最夸张的,变量全是什么aa,bb,kk,aaa,bbb,….注释都TM没有。

 

我在想,研发经理是不是刨了人家的祖坟?

 

第一个惊艳到我的,大概是工作第3-5年的时候,很多年,记不清了。

 

当时唯一的想法就是:单片机的程序,竟然还能这样写!

 

可惜..我入职的时候,大佬已经离职了,不然非得看下,到底什么形状的大脑,才能写出这么牛逼的程序。

 

以前,我有个误区,以为年纪越大的人,越厉害

 

现在被90后,00后全方位吊打后,我悟了。

 

明明自己比他们老,却还比他们还菜….

 

能力,其实和时间无关,和经历有关。

 

就是同一时间单位下,谁经历的越多,谁就能学到越多,谁就越厉害。

 

想要提升编程思维和水平,底层逻辑是一样的,拼同一时间单位下,做的项目数量和质量

 

为了方便对编程水平的理解,继续衍生一些话题。

 

对于编程来说,所有的需求,其实都是一道数学题。

 

工程师的任务,就是把道数学题,找一个正确的公式,用编程语言,把题解出来。

 

不同的人,公式可能不太一样,这取决于算法

 

或许,这就是编程思维的其中一种吧。

 

这时,不难理解编程语言,或者单片机,其实都是器

 

编程思维才是道,道具备通用性,换一种编程语言或者芯片,照样能把搬过去用。

 

就像<雪中悍刀行>的剑神李淳罡,一把木剑,照样横扫千军万马。

 

所以我说,道在,c语言照样也能写出面向对象的代码风格

 

道是创造行为,如果你只是了了草草抄过几百行代码,就想实现编程思维自由,那不是天赋异禀,那是神!

 

前期都是靠大量模仿,模仿别人的思路,算法,代码。

 

这是初学期,没有办法当中的办法,学东西嘛,不寒碜..

 

当经历的多了,记得要把知识活用,多举一反三,靠死记硬背,换道数学题,又懵逼了。

 

回到算法的话题,有些铁子可能会问,初中生水平的数学功底,是不是没资格干编程?

 

我觉得有。

 

因为c语言只支持6种算数运算符,加、减、乘、除、取余和自增、自减。

 

初中生的数学可比这个复杂。

 

难的是怎么把复杂的算法,换算成只能有这些运算符的公式,这可能是初中水平搞不懂的。

 

但没关系,不是还有万能的某宝吗?

 

花点钱,找个数学厉害的人,给他需求,让他把这个换算成加减乘除的公式,你再用编程语言去实现,不就完了?

 

还有,就是要学会拆解需求,把大问题拆成小问题,逐个解决。

 

这样,面对复杂的项目,你才能稳如老狗,有条不紊。

 

比如我们无际单片机特训营的项目3和项目6,在实现功能之前,都会用思维导图,把整体功能理清楚。

 

 

还有离谱的一点是…

 

工程师,经常要跨学科学知识,比如数学,英语、物理、化学、人体学….

 

具体哪个学科,取决于你做哪个行业的产品,不过也不用担心,不用学得太深入,一般只需了解即可。

 

工程师啊,真是我心目中的神,就像百科全书一样,啥都要知道一点,这样解决问题时才能游刃有余。

 

唯一寒碜的,可能就是工资了,资不配位,哈哈。

 

给TA买糖
共{{data.count}}人
人已赞赏
单片机自学指南

奉劝那些想学单片机的人

2024-1-5 19:40:27

单片机自学指南

为什么单片机上的程序不建议使用malloc()?

2024-2-21 20:20:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧