从小白到入门编程的成长之路

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 lxchuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外:目前建有江西|湖南|湖北|河南籍前端群,可加我微信进群。公众号回复【相亲】关键词可以获取男生、女生的菜单~

前段时间在知乎看到这个问题「想请教现在的在职程序员第一次编程入门的是怎样的?」,现在又到了大学新生入学的日子,这里把答案贴过来(会有很多外链,可以拖到文章末尾点击阅读原文进文章),希望对大家有所帮助。

dd4a362e81a7a8f6af6df3e13fd62408.png

按时间线来回忆下:

14 年 9 月 - 15 年 3 月大一上

14 年进入大学接触编程,第一门编程语言 C++。

开始就是学基础语法,学循环、学递归,求绝对值、求阶乘、一元二次方程求解,到最后的学生管理系统。

c069e4f15ad892e2ab69779920f75a2b.png
img

txt 文件是类似下边的数据:

23f2c7c32dd59dfc0523d5422350a93e.png
img

写出的程序就是命令行之间的交互,程序把 txt 读入,然后进行增删改查的操作。

82586181ed015dc00a33445a6e6a8712.png
img

最开始底层是用一个大数组保存的,当时正好在学链表,自己就想着干脆再用链表重写一下吧,然后花了几天时间将整个代码进行了重写,未来遇到链表的问题都变得轻轻松松了。

大一寒假回家闲来无事就在网上找了些课程,学了郝斌的数据构课程,但当时应该是懵懵懂懂,只了解了大概。

15 年 3 月 - 15 年 9 月大一下

大一下学期接触了 GUI,也就是有界面的应用,学校的课程是 MFC。

1c9d4391d676e5f83d07d25cdfbb2b07.png
img

课程末,把大一上写的黑框的学生管理系统改成了有界面的。

060aec595760618b15a51b267ee80a7a.png
img

接着暑假开始的时候没有直接回家,学校当时有 ACM 集训第一个月留校了,但当时基础太差,如听天书,最终也没走 ACM 的道路。

但期间因为有了 MFC 的知识,自己又尝试做了一个双人版的贪吃蛇。完全从零自己开始写, 画蛇身,动起来,操控,一步一步最后完成的。

并且实现了局域网对战,对网络有了初步的了解。

22dfea807d06032bd83f1f559e2e0a1d.png
img

用c语言可以实现多人在线游戏吗?100 赞同 · 8 评论回答7979ea7884beb44494af74736bb76ad8.jpeg

大一期间还接触过其他事情:

期间接触到 @萧井陌的 Badger4us:编程入门指南 v2.0 ,陆陆续续开始看里边的 python 课(未来写过很多 python)、哈佛大学的 cs50 课(了解到很多概念,对 scratch 也印象深刻,未来也专门又用了一次)、SICP(神书,也学到了 lisp 语言)。这篇文章对自己帮助很大,每当迷茫的时候就会去读读。

期间联系了一位老师,从大一寒假开始陆陆续续看论文、学 MATLAB、学算法,详细的故事可以看 有一些超级难的算法比如遗传算法,蚁群算法,看了数学建模国赛感觉好难写,那些人怎么写出来的?

15 年 9 月 - 16 年 3 月大二上

学校课程多了数据结构,对链表、树、图有了更多的了解,期间有个小作业继续利用 MFC 进行可视化。

10234fce888a510654e864cefaf1edd8.png
img

当时学校查成绩只能到教务网站自己去查,没有自己的官方 app,于是就萌发了自己去写一个 app 的想法,开始一步步践行。

寒假的时候开始学习 java 语言:

82b455bf2587f01a3316d22b2e1aef89.png
img

学习 Java 之后才对面向过程编程和面向对象有了更多的理解。

16 年 3 月 - 16 年 9 月大二下

继续学习 java,开始写简单的安卓应用,之前学数据结构的时候做过无界面的计算器,这里结合安卓就做了一个有界面的计算器。

4a34dcca7b8b49cbf53ac26cddd514ae.png
img
7342eee0666a78e929d7de1da959596b.png
img

掌握基本安卓开发后,如果做查成绩的 app 肯定还需要数据,于是又捡起之前的 python,学习爬虫,了解网络知识、html 解析,最终成功查出来。

0623eb81dd8cf8d77d6992ccbcae63d8.png
img

这个之后,被学校的一个互联网社团看到了,于是有了联系,他们也有做学校 app 的想法,于是从独自作战变成了团队合作。

当时的学校网络需要连好之后进行手动登录,于是又写了一个 app

c4f50f18bf5cb1d65d7cd7a3571c5bd5.png
img

暑假第一个月继续留校学习,借了几本安卓的书开始学习

e8f61b14361b358593f784c6692cdc27.png
img

16 年 9 月 - 1 7 年 3 月 大三上

在团队里有了更多的事情,由于当时 python 比较熟,又写了一个接口用来在线充值饭卡,之前学校充值饭卡只能线下充。

97051d34bf4d4d86d169c5e5df58d34f.png
img

学校课程里也陆陆续续接触一些底层的计算机知识,操作系统、计算机组成原理、汇编语言、数字逻辑这些。

比如电脑上模拟 8086 CPU 做的一个东西:

1e9f04c72974124684a41be14b1d7179.png
img

d3e76f2fef9bc9bbc6331c32de71dbb5.gif

17 年生日的时候搭建了自己的第一个博客,https://windliang.wang ,了解了域名、服务器、git 各种概念,后边陆陆续续就开始总结文章了。

d8a3f200e3898e52503cc79fe98fd4d2.png
img

17 年 3 月 - 17 年 9 月 大三下

大三下一开学,app 正式上线,支持查课表、查成绩、充值饭卡:

ad20e498982464baef8c712b1e946b73.png
img

17 年 9 月 - 17 年 3 月大四上

经常需要上自习,但每天的空教室是在楼下黑板手写公布的,但其实到教务网站是可以查出来的。于是注册了公众号 windliang,实现了一个查询空教室的功能。

eea885a74905349603c1e9df5229055f.png
img

再接着学习了前端 html、css、js,写了一个棋类对战游戏(从这里开始和前端结缘),也作为了软件工程的结课作业。

windliang:WebSocket: 从狼吃羊说起

54ef22157ab487b4cd7a89bb1e07ba11.png
img

由于毕业设计和深度学习有关,也开始总结深度学习的知识。零基础入门深度学习

18 年 3 月 - 18 年 6 月大四下

开始陆陆续续刷题,并且总结题解,https://leetcode.wang

除了上边列的,陆陆续续还做过很多小东西,就是那种突然有个想法就去实现,不会就去一点点学。

之后毕业又读了研,但通过大学四年基本上拥有了基础的编程能力,无论学什么新语言,用什么新框架上手都会很快。

接着就是毕业后的故事,前段时间刚满三周年:windliang:工作三年后的胡思乱想

总结下来,入门编程最核心的就是去多写代码了,最好先定个目标,想要实现什么,然后基于此去学习相关知识,不断攻破。

但对于初学者,每当接触一个新知识点的时候还是很痛苦的,只能不停的拆解目标,一步一个脚印来攻克。

从不会到会,这个过程不断循环,每次有成果出来都会非常开心,随着这个过程不断扩充自己边界,到后来再学新知识就不会那么抗拒了,迁移学习的能力越来越强。

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 lxchuan12 参与,每周大家一起学习200行左右的源码,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值