A038我的编程学习经历及收获

今天和一位老师聊起自己的编程学习经历,趁此机会记录一下,分享给对此感兴趣但畏难的同学

一切源于兴趣(大一-大三)

已经不记得什么时候开始对编程起了兴趣,但毫无疑问我的学习基于兴趣

自己做一个可以运行在所有人手机、电脑上的软件,可以实现XXX功能,这是我最初的梦想

但梦想太远了,不知道从何入手,那从上课开始吧!

我也不懂实现这个梦想需要上什么课,那就知道什么学什么,通过慕课、b站以及各种杂七杂八的途径(比如廖雪峰网站),学了Java、C++、Python、HTML、CSS、Linux、Git等等,有些课学完了,有些课太枯燥了没学完

然后呢?

学了个寂寞:joy:,宛如原地踏步,离自己能够做一个软件差了十万八千里,所以中间学一会儿放弃一会儿,学一会儿放弃一会儿

因为那个时候学习还保持着高中生的习惯,老师上面讲课,我在下面记笔记。比如我为数不多保留到现在的学习笔记——Linux操作系统

这样学习下来,确实做了很多笔记,看起来很厉害,但实际上打开Linux系统,两眼一黑,还是啥都不会

(服务器Linux打开长这样,连个桌面都没有:arrow_up:

以往学完还有考试,以成绩为目的学习,至少学了能考个八九十分,感觉没白学。现在以能够自己写软件为目的,这学了跟没学一样,于是很想放弃,所以大三之前我一直反复横跳

啊编程好有意思,学一下
啊学起来好没劲,不学了
学一下
不学了
。。。。。。

就拖拖拉拉到了大三,我基本还是啥也不会

我说你在健身房练死劲,不好用
——马保国

进步源于实践(大三-大四)

大三的时候接触到了开源软件,有很多软件有教程,跟着教程走一遍,就能在自己电脑上运行一些新鲜东西

(比如这种教程:arrow_up:

那个时候我还处于工具至上主义,碰到什么新玩意儿不管有用没用,先鼓捣一番,以为找到一把屠龙宝刀就可以打遍天下无敌手(现在看来这种思想很幼稚)

在这个过程中先是在自己电脑上安装了大量的开源软件,后来开始折腾Linux,在服务器上部署各种服务,有一个可以随时上网操作的服务器实在是
![[Pasted image 20231010092325.png]]

在这个过程中我慢慢把Linux课上学到的东西(也就是上面的笔记)用起来,从最开始复制黏贴文件都不利索,到后来各种操作手到拈来。最开始遇到很多问题翻翻笔记就解决了,后面更多问题是靠搜索引擎、GitHub、开源软件自己的论坛,等等

疫情刚来的寒假大家没法回校,没有实体课本可以看,只能四处找电子版,于是我组织了一个资料共享的活动,但是微信、QQ群、网盘等终究是不太方便,经过辗转,找到一个文件管理的开源项目dzzoffice可以满足大部分需求,开始部署运行,后来又部署了论坛(先用discuzQ,后用discourse),这些活动和项目让我收获了一定的声望,成为一个校内红人

这些工具部署和编程基本没有关系,顶多涉及到一些Linux操作,但在这个过程中慢慢体会到了一种快感——本来实现XX功能需要付一大笔钱,现在自己部署一下就好了!

以及一种“自己动手,丰衣足食”的成就感

如此循环(大五-研一)

在上述过程中,我收获了自信,也慢慢对最开始的梦想有了更清晰的认识——这是一件很困难的事,想要实现它需要具有很多基础,正儿八经科班出身的程序员,能全栈开发的也是人中龙凤,我没那么多时间干这个,放弃吧

有舍才有得

放弃啥都学以后,我慢慢把精力转移到人工智能的实践上(用人工智能解决具体问题),原因嘛,还是兴趣,这时候的梦想就比较宽泛了:通过人工智能将人解放出来

再后来我还是跟最开始学习一样

先上课,左耳朵进右耳朵出

再实操,有问题就搜索解决,这时候就涉及到具体的代码了,是真的开始凭借自己的能力让程序实现一些新的功能,期间我也干了点别的事情,比如做了一个爬虫、一个播客后期辅助工具,虽然有很多功能还没有实现,算是为开源社区做出了一点贡献

今天和那位老师聊完后,开始加入具体的人工智能项目,我想,它的意义大概等同于大三大四那时自己第一次部署Linux项目吧。

感想

随着时间的推移和精力的投入,我们对事物的认知是螺旋上升的。从浑然不知,到管中窥豹,到大概了解,到了然于心,这个过程没办法跳过,编程是这样,中医也是这样,各行各业都这样。我对中医的认识,是在大五毕业假期开始开窍的,在此之前五年的积累,也经历了这样的过程,最开始啥也不懂,再到略有心得,再到恍然大悟,再到泯然一笑。

希望对编程感兴趣的同学们,想学就学下去,学不进去就休息休息,没有方向就和别人聊聊。付出总有收获,再不济,付出的过程能体验到充实嘛,总比玩了一天无比空虚好

:speaking_head:闲聊:loudspeaker:官方小喇叭