前段时间在知乎看到这个问题「想请教现在的在职程序员第一次编程入门的是怎样的?」,现在又到了大学新生入学的日子,这里把答案贴过来,希望对大家有所帮助。
按时间线来回忆下:
14 年进入大学接触编程,第一门编程语言 C++。
开始就是学基础语法,学循环、学递归,求绝对值、求阶乘、一元二次方程求解,到最后的学生管理系统。
txt 文件是类似下边的数据:
写出的程序就是命令行之间的交互,程序把 txt 读入,然后进行增删改查的操作。
最开始底层是用一个大数组保存的,当时正好在学链表,自己就想着干脆再用链表重写一下吧,然后花了几天时间将整个代码进行了重写,未来遇到链表的问题都变得轻轻松松了。
大一寒假回家闲来无事就在网上找了些课程,学了郝斌的数据构课程,但当时应该是懵懵懂懂,只了解了大概。
大一下学期接触了 GUI ,也就是有界面的应用,学校的课程是 MFC 。
课程末,把大一上写的黑框的学生管理系统改成了有界面的。
接着暑假开始的时候没有直接回家,学校当时有 ACM 集训第一个月留校了,但当时基础太差,如听天书,最终也没走 ACM 的道路。
但期间因为有了 MFC 的知识,自己又尝试做了一个双人版的贪吃蛇。完全从零自己开始写, 画蛇身,动起来,操控,一步一步最后完成的。
并且实现了局域网对战,对网络有了初步的了解。
用 c 语言可以实现多人在线游戏吗? 100 赞同 · 8 评论回答
大一期间还接触过其他事情:
期间接触到 @萧井陌的 Badger4us:编程入门指南 v2.0 ,陆陆续续开始看里边的 python 课(未来写过很多 python )、哈佛大学的 cs50 课(了解到很多概念,对 scratch 也印象深刻,未来也专门又用了一次)、SICP (神书,也学到了 lisp 语言)。这篇文章对自己帮助很大,每当迷茫的时候就会去读读。
期间联系了一位老师,从大一寒假开始陆陆续续看论文、学 MATLAB 、学算法,详细的故事可以看 有一些超级难的算法比如遗传算法,蚁群算法,看了数学建模国赛感觉好难写,那些人怎么写出来的?
学校课程多了数据结构,对链表、树、图有了更多的了解,期间有个小作业继续利用 MFC 进行可视化。
当时学校查成绩只能到教务网站自己去查,没有自己的官方 app ,于是就萌发了自己去写一个 app 的想法,开始一步步践行。
寒假的时候开始学习 java 语言:
学习 Java 之后才对面向过程编程和面向对象有了更多的理解。
继续学习 java ,开始写简单的安卓应用,之前学数据结构的时候做过无界面的计算器,这里结合安卓就做了一个有界面的计算器。
掌握基本安卓开发后,如果做查成绩的 app 肯定还需要数据,于是又捡起之前的 python ,学习爬虫,了解网络知识、html 解析,最终成功查出来。
这个之后,被学校的一个互联网社团看到了,于是有了联系,他们也有做学校 app 的想法,于是从独自作战变成了团队合作。
当时的学校网络需要连好之后进行手动登录,于是又写了一个 app
暑假第一个月继续留校学习,借了几本安卓的书开始学习
在团队里有了更多的事情,由于当时 python 比较熟,又写了一个接口用来在线充值饭卡,之前学校充值饭卡只能线下充。
学校课程里也陆陆续续接触一些底层的计算机知识,操作系统、计算机组成原理、汇编语言、数字逻辑这些。
比如电脑上模拟 8086 CPU 做的一个东西:
17 年生日的时候搭建了自己的第一个博客,https://windliang.wang ,了解了域名、服务器、git 各种概念,后边陆陆续续就开始总结文章了。
大三下一开学,app 正式上线,支持查课表、查成绩、充值饭卡:
经常需要上自习,但每天的空教室是在楼下黑板手写公布的,但其实到教务网站是可以查出来的。于是注册了公众号 windliang ,实现了一个查询空教室的功能。
再接着学习了前端 html 、css 、js ,写了一个棋类对战游戏(从这里开始和前端结缘),也作为了软件工程的结课作业。
由于毕业设计和深度学习有关,也开始总结深度学习的知识。零基础入门深度学习
开始陆陆续续刷题,并且总结题解,https://leetcode.wang
除了上边列的,陆陆续续还做过很多小东西,就是那种突然有个想法就去实现,不会就去一点点学。
之后毕业又读了研,但通过大学四年基本上拥有了基础的编程能力,无论学什么新语言,用什么新框架上手都会很快。
接着就是毕业后的故事,前段时间刚满三周年:windliang:工作三年后的胡思乱想
总结下来,入门编程最核心的就是去多写代码了,最好先定个目标,想要实现什么,然后基于此去学习相关知识,不断攻破。
但对于初学者,每当接触一个新知识点的时候还是很痛苦的,只能不停的拆解目标,一步一个脚印来攻克。
从不会到会,这个过程不断循环,每次有成果出来都会非常开心,随着这个过程不断扩充自己边界,到后来再学新知识就不会那么抗拒了,迁移学习的能力越来越强。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.