V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
windliang
V2EX  ›  分享创造

程序员从 0 基础小白到编程入门全过程分享

  •  1
     
  •   windliang · 2023-09-01 07:49:58 +08:00 · 1627 次点击
    这是一个创建于 452 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前段时间在知乎看到这个问题「想请教现在的在职程序员第一次编程入门的是怎样的?」,现在又到了大学新生入学的日子,这里把答案贴过来,希望对大家有所帮助。

    按时间线来回忆下:

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

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

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

    img

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

    img

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

    img

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

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

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

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

    img

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

    img

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

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

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

    img

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

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

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

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

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

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

    img

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

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

    img

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

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

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

    img

    img

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

    img

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

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

    img

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

    img

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

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

    img

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

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

    img

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

    img

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

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

    img

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

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

    img

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

    windliang:WebSocket: 从狼吃羊说起

    img

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

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

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

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

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

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

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

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

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

    5 条回复    2023-09-02 11:00:54 +08:00
    anjingdexiaocai
        1
    anjingdexiaocai  
       2023-09-01 08:06:02 +08:00 via Android
    牛的,感谢分享
    klo424
        2
    klo424  
       2023-09-01 08:23:42 +08:00
    挺好的,加油!
    pirlo21
        3
    pirlo21  
       2023-09-01 14:48:48 +08:00
    厉害
    archxm
        4
    archxm  
       2023-09-01 15:08:18 +08:00
    到哪个阶段,才能随心所欲不逾矩?
    windliang
        5
    windliang  
    OP
       2023-09-02 11:00:54 +08:00
    @archxm 这个应该得看自己了,我到大三的时候用一天时间把从来没接触过的博客搭建出来就有这种感觉了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:48 · PVG 02:48 · LAX 10:48 · JFK 13:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.