风雨编程路2022

文章名灵感: 风雨哈佛路 -- https://movie.douban.com/subject/1433990/

在电影中贫困无法阻挡丽兹前进的决心,在她的人生里面,从不退缩的奋斗是永恒主题。

在现实中困难无法阻挡我前进的决心,在我的人生里面,我命由我不由天,人生有无限可能!

本文主要用于简短的介绍自己风雨编程路,虽无经验可言,但是足够快速了解我的在代码世界的技术进阶旅程,文章大概内容如下:

  • 大一:第一部分 Hello,World!
  • 大二:第二、三部分 横向生长、纵向深入
  • 大三:第四、五部分 选择最难的路,前进未知的旅程

一、Hello,World

2020年进入计算机科学与技术专业从打字都不会盲打开始,到熟练Word、PPT、Excel、PS等软件;

2021年初开始接触C语言,敲下第一行“Hello,World!”,花了很久才理解指针并完成第一个“学生管理系统”;

不过我并不满足与此,黑框的界面并不是我平常接触的界面,于是中国大学慕课学习了C语言进阶课程后,寻找资料编写了一个简单的贪吃蛇游戏;正当我沾沾自喜之时看见了14行代码实现贪吃蛇! 再次刷新记录! 【Cgame】,编程之路永无止境,要保持一颗敬畏的心啊!看看 97年世界编程大赛第一名作品 而这样的效果只有4k!!!

总结:

​ 其实技术方面的花费时间以及进步并不多,最初的一年,去附近有名的景点游玩,参加社团以及学生会,还有各种学校活动,见识了很多新鲜事物,除此之外,在各类比赛中像第四届全国大学生计算机技能应用竞赛等获得优秀奖,学年末荣获“三好学生标兵”、“乙等奖学金等”,这一年我认真的听了每一节课,并做了课后练习,做了一名好学生,呵呵。

二、流行Python,我的横向生长

2021年暑假期间边学车边开始接触数学建模,开学后受小默的影响开始学习Python框架Django,也正是这个时候Python莫名奇妙的就火了开始流行,之后加入学校计算机协会研发部,使用Python承担官网后端部分接口开发,现在回头看其实只是最简单的Curd工程罢了,但是对于当时才刚刚花着业余的时间学习了HTML、CSS、JS部分(得益于C语言不错上手其他语言很快)都还不熟练的情况下,这可真是愁坏了我,硬着头皮去网上照着教程cv代码,出了bug就去搜索,下面是我当时各种找教程搜索bug解决bug开发的部分截图:

不愧是咱cv工程师竟然硬生生的搞定了第一个版本,并在后来使用进阶框架DRF迭代了第二个版本;

在协会的日子中慢慢接触了Vue微信小程序Git的使用,还有就是Github等等,逐渐了解前端、后端、测试、运维等等互联网常见岗位以及企业开发模式;

后来的换届招募中,虽然我很菜但是我很勇,向研发部部长岗位发出了一份简历,人生有无限可能,经过一番演讲过后,我,成功了!

后面的课程中学习了C++面向对象数据结构等课程,学校的课程直接旷课不去,到C++课就打开黑马C++课程自主学习最终期末收获98分,学校的课程没有教STL、为了打算法竞赛自学了STL的使用........

总结:

​ 这半年接触了python并用之框架搭建后端接口以及从0到1搭建了个人博客

​ 这半年接触了HTML、CSS、JS、Vue、微信小程序等前端技术

​ 这半年接触了C++面向对象以及数据结构与算法和STL

​ 这半年陪跑了数据建模、编程竞赛、挑战杯等比赛

​ 这半年拿到了驾照以及基础的普通话等级证书二乙以及一堆无用的证书

​ 这半年有太多太多难以述说的回忆,但是唯一可以确定的是技术进阶的旅途永无止境!

也正是这半年我对代码开始有了兴趣,它能构建一切!!!

三、选择Java,我的纵向深入

2021年末回顾总结是一个很好的习惯,回顾过去我发现,接触了很多,但都是流于表面,根基不牢,地动山摇,我意识到我过去所接触到的太浮躁了,学到的都是很粗糙的使用以及CV,遇到问题只能搜索,必须在一个方向上往下深入同时打好基础!

什么是基础?

学校开设的数据库原理计算机组成原理数据结构及算法计算机网络Linux操作系统这些就是基础,此前的一年或多或少我都已经接触了这些课程的很多部分,但是缺少成体系化的学习,顺理成章的我开始强化了这些课程,网上搜到的清华的CS课程体系让我见识到顶尖名校的教学是怎样的,CSAPP让我了解到国外的顶尖计算机课程,当然国内的课程也丝毫不输国外名校,比如湖科大教书匠的计网课程MOOC陈越姥姥的数据结构与算法,同样和CSAPP一样让我坐牢的南京大学的操作系统实验等等等等,为什么我会去找到这些优质的课程去学习?是因为大一的计算机基础课我就是在MOOC看的国防科技大学的计算机基础,这个才是真正的计算机基础思维课,带你纵观CS学科基础的风景,从历史上的0101到现代的最新技术让你觉得学习真的是一种享受!而不是昏昏欲睡

那为什么我能学习这些优质的课程?答案是network,是互联网的产生加速了信息的传递!互联网的背后是什么?是代码构建的世界!!!从回顾开始,到发现问题,到解决问题,再到进一步思考,这些驱动着我向着更多的未知不断前行;

如何纵向深入?

就我当时所知而言无论是前端、后端、测试、运维那个领域都是广阔无比,那为什么选择Java后端

  1. 知识体系清楚一条龙,资料易获得(找工作学Java,月薪过万就来xxx)
  2. 几乎是后端邻域的不二之选,国内生态好(事实确实如此,不管遇到的什么问题总有人遇到过)
  3. 市场占据份额高,不用担心找不到工作(仅当时个人了解而言,现已今非昔比)

当时其实也是经过了蛮久的迷茫才下定决心开始学Java,之后学习Java都是抽出来的小部分业余时间,并没有影响正常课程,因为要夯实计算机基础,从JavaSEJavaWeb,再到Java框架SSM整合Springboot,从单体服务前后端分离,再到SpringCloud微服务框架,个中艰难困苦不足以为人道也,简单的一句话,却是不知多少个小时的看视频,敲代码,然而即使是这样也还有不足之处;

总结:

​ 过了一遍计算机基础,向一门语言深入了解;

​ 建模比赛拿了国三、蓝桥杯拿了省三;

​ 优秀学生干部、丙等奖学金、三好学生、优秀共青团员、优秀志愿者

四、转投C++,我的最终选择

从最简单的python,到Java,最后为什么选择这门最难的语言?学习Java最初的目的是为了纵向深入计算机后同时能够找到一份不错的工作。

先说目的一,学习Java的过程中我感觉更多的是在学习它的生态的过程,注重的是业务,Java的话以我目前的认知来看(之前看的深入jvm虚拟机狂神的课)接触到底层一些的话的是jvm,最多也就是使用命令和工具进行jvm调优,可移植性高不用程序员管内存本来就是它优势,而学习C++在Linux我能够直接调用它的库函数进而深入操作系统,似乎C++更合我的胃口。再就是刷算法题C++确实很快

再说目的二,目前的大环境并不好很正常,毕竟封了那么久大家都不好过,互联网还算好的,封禁期间靠游戏老马的财富值直接飙到了首位,更不用说带动的直播的兴起,什么远程教育、远程医疗、直播带货、无人物流等等,然而事实远比想象的更加残酷,没有经过社会的毒打永远不会长大,大二下的我自信满满的揣着锋迷商城包装的项目(仅完成了前后端分离,微服务部分当时还在看)前往深圳开始网上海投,却很少得到回复,不是漏了馅儿表示不要大二的,就是岗位不匹配的,或者问要不要转前端或者测试的,再要不然就是碰到被吊打的等等,最后那个暑假在深圳找不到工作的我只好进了厂,并经历了2个月昼夜不时颠倒的生活,最终连着3个月没有碰过电脑的我回到学校时仿佛过去的一切如梦一般,令我失望的不是进厂了,赚钱并不寒碜,而是没找到工作,也就是我学Java的目的二没有达到。

回顾一下没有找到工作的原因如下

  • 计算机基础依旧不行,八股文没背好
  • 项目的掌握不够好,真正上线的项目不是玩具一样的学习项目!
  • 对Java的知识点掌握不够牢靠,犯了和之前同样的错误,流于表面没有深挖到底层!
  • 不想招你的公司可以有一万个理由拒绝你,但是我们不能因为有一家的拒绝,多家的拒绝就放弃寻找!

总结:

​ 这一年里我所以为的横向生长,其实很片面,我所以为的纵向深入其实也还是流于表面;

​ 所学甚杂,偏向了Java体系的学习,计算机基础的很多课程没有完成学习;

​ 专注于当下,不要给自己设限,语言只是工具,后端之路还有无限可以进步的地方!

五、前进!向未知的旅途

工具反复用才能熟练,连着3月没敲代码手都生疏了,知识点都忘干净了,不过没关系,正好大三开始上这四大件的课程,不就是推倒重来么?杀不死我的都只会让我更加强大!继续在学习学校课程的同时,推进优质课程的学习,除此之外,开始向着最难的路进发!

首先是语言的学习,快速过了基础语法,接着面向对象,封装,继承,多态,C11新特性,stl的使用,stl源码剖析(未看完)、内存管理(未看完),C++最经典的工具书(学习中);

接着是基础的学习,数据结构与算法、Linux操作系统、计算机网络、深入Mysql网络编程

然后是项目的学习,Webserver项目构建Redis,Qt音乐播放器,嵌入式电子钢琴、嵌入式智能安防;

最后以一位互联网10年经验大佬的话结尾同时自勉:

不给自己人生设限,认真的做手头当下的事情,同时又不纠结于结果。
如此,生活必定精致、有趣。
人生有无限可能,年轻可以尽情去探索。
不设限,不纠结,专注当下,精彩就在每天、每时……