想着给社团拉人呢,结果无意间给自己挖了一个大坑,没办法自己挖的赶紧填上吧。
简单的介绍一下自己的学习经历,给想学习的同学做一个参考。
当初我们这届没有限制社团参与数量,本着开阔视野的想法稀里糊涂的加了三个社团。
助手的学长很友好、也很厉害,我把自己用C语言写的“2048”发过去后,和学长聊了一会,发现学长还在“Vidar”社团担任要职,果然大佬在哪里都是大佬。结果聊的还不错,就免面试录取了。
这是一个名字又红又专的社团,当年也是非常红火的社团,负责维护学习的“BBS”。我报的是“安卓”,但是我根本没有学过安卓开发,因此国庆一周的时间,自己抱着《安卓第一行代码》度过整个国庆,后面顺利提交了面试作品,就是一个随机 9 格数字按键秘密输入,正确后跳到欢迎页面里,难度不大。之后顺利进去了。
加入这个社团过程好曲折,有三面,后面两个面试都要写代码。其中二面是做“ACM”的题目,考察了 BFS、DFS、最短路径、SG函数等,这些是后面上了“ACM”课程才会的,当时菜的不敢说话。不过好在最后还是进去了,因为大部分人在中途放弃了,结果检查到最后的反而就进去了呢。
幌子骗人的,美名曰“self-driven”,但是我发现根本没有几个人能真正做到自我驱动的,有时还是需要借助一些外力因素啊。
为了学习 Go,让舍友买了本《Go程序设计语言》,我知道舍友不会看的,所以买来后一直归我保管,大一放假期间看了一遍,书写的实在是太好了,算是入门了 Go语言了吧,但是 Go语言的发展一直很快的,特性也加了不少,因此书上的内容可能有点过时,需要一直学习才能紧跟步伐。
大一上期间,使用 Go基于酷Q开发了一个机器人,专门爬助手的服务,虽然后面被叫停了但是对 API 的开发有了一定的了解,也懂得了一些基本的爬虫知识。后面又写了一个“上课啦自动签到”功能,只需要给机器人发送数字签到码,即可完成自动签到。后来酷Q被封锁,之后上课啦又取消了“验证码”,换成了“recaptcha”,这个东西也就停止维护了。
大一下的暑假,接手了家园的“HduIn”,我仔细研究了一下代码,发现其中充斥着大量的无用的代码,还有许多视图文件。我尝试删除几个看起来没有用的视图文件后,项目直接跑不起来了。我错了,再也不敢乱动了,好揪心哎。和学长讨论,其实就是吐槽,然后我说为何不重构?嗯,学长给我推荐 Flutter,我想着什么时候可以了解一下。于是忘记啥时候去了解的了,就突然像发现了新大陆一样,我靠居然这么香,学的好爽。当时立马整个一个“hduhelp”练手,这次又是爬助手的服务了,还被学长发现了。记得当时写到了凌晨2点多才去睡觉,还意犹未尽呢。当时 Flutter 对外来说确实是一个很新鲜的事情,人们对新鲜事物感到好奇也是挺正常的。
学着学着就开学了,当时是疫情记得是5月多才开学的。后面来到学校,就准备重构的工作,但是学长对重构表示担心,不太愿意重构。我不管这些,于是就自己一个人搞。只是老人们留下来的东西,似乎都没有什么文档,然后 API 接口还比较乱。没办法,为了继续我的工作,我只能去研究这些遗留代码。哎,家园的技术栈也太杂了,什么都有,PHP、ruby、nodejs(koa、express),然后 PHP 和 ruby 这块基本上没人会了,也不敢碰,自然是没人维护了。后面我整理了一份接口文档,这样才算勉勉强强重构大部分东西。
记得学长给我了一个秘密本,里面有许多“192”网段的服务器,我就很好奇,这些内网的东西要怎么连上去?后面才了解到这些是我们家园在学校的服务器,后来我就开始研究这些服务去了。到这里才知道家园的服务都是跑着 Docker 上的,后面就又去学习 Docker 了。哇,学了 Docker 后才知道 Docker 太香了,每个服务都跑在一个“容器”里面,这样就根本不用担心这些服务的依赖、管理什么的,这样还可以多个容器跑同一个服务在不同的服务器上,不用担心环境的差异性。真的是太爽了,看看自己小破站,还是用非常原始的建站模式呢。
后面就给自己的小站点,全部都迁移到“Docker”里面了,还将几台破服务器通过 Docker Swarm 组成了一个集群呢。
使用 SSR 开发了简单的博客,https://blog.dreamer2q.wang/,算是初步了解了 nodejs 的技术栈。
有些项目不太好说出口,就当做不存在吧。
语雀的第三方App,但是最近我咕咕的太厉害,加上语雀更新了许多新特性,进度落后太多了,太难了。
我希望杭电指北能帮助更多像我这样的新生,少走许多弯路。
这里是结合我的经验给出的一个路线参考。
基础内容学的越多越好。
了解控制台的基本操作,以及简单的使用 vim 即可。
大一上会开课,到时会有理论和实践两部分。
需要好好学习,最好提前学习,同时可以配合杭电OJ一起学习,练习基础题目。
可以尝试基于控制台编写一个小游戏,例如贪吃蛇、俄罗斯方块、2048、推箱子等,锻炼代码组织能力,美名曰“工程”。
大一下会开课,二选一即可(最好提前学习),核心要了解 OOP 的思想:封装、继承与多态。
配合杭电OJ学习,或者配合项目学习。
建议使用 C语言自己实现一个 GET 请求,涉及到 Socket 编程建议在 Linux 上实现,更友好。
在社团可以遇到志同道合的一些人,也可以遇到许多厉害的大佬,在这里可以学习的很多东西,同时也可以获取到更多的资源。
不同的社团技术栈可能不尽相同,先确定自己的大致方向,例如“前端”、“后端”、“全栈”、“运维”等。
选择社团时,需要详细了解社团的技术栈,例如助手后台是以 Go 语言为主。
社团一般会有例会之类的学习活动,尽快熟悉参与进来,最好能参与到实际的项目中,体验上线发布过程。
可以写自己的技术博客之类的,做一下内容输出,可以锻炼自己的语言组织能力。
这部分就看你自己的选择了,选择自己感兴趣的方向走下去,参与开源项目之类的。