Dreamer2q Blog
见到,不如不见
Dreamer2q

Code is cheap, talk is expensive

64日志

🏫 学习经历 - 大一到大二下

创建于 2021-08-24 共 2524 字,阅读约 10 分钟 更新于 31 天前
浏览 36评论 0

想着给社团拉人呢,结果无意间给自己挖了一个大坑,没办法自己挖的赶紧填上吧。

前言

简单的介绍一下自己的学习经历,给想学习的同学做一个参考。

报名社团

当初我们这届没有限制社团参与数量,本着开阔视野的想法稀里糊涂的加了三个社团。

  • 杭电助手
  • 红色家园
  • 杭电极客

准备面试


  • 杭电助手

助手的学长很友好、也很厉害,我把自己用C语言写的“2048”发过去后,和学长聊了一会,发现学长还在“Vidar”社团担任要职,果然大佬在哪里都是大佬。结果聊的还不错,就免面试录取了。

  • 红色家园

这是一个名字又红又专的社团,当年也是非常红火的社团,负责维护学习的“BBS”。我报的是“安卓”,但是我根本没有学过安卓开发,因此国庆一周的时间,自己抱着《安卓第一行代码》度过整个国庆,后面顺利提交了面试作品,就是一个随机 9 格数字按键秘密输入,正确后跳到欢迎页面里,难度不大。之后顺利进去了。

  • 杭电极客

加入这个社团过程好曲折,有三面,后面两个面试都要写代码。其中二面是做“ACM”的题目,考察了 BFS、DFS、最短路径、SG函数等,这些是后面上了“ACM”课程才会的,当时菜的不敢说话。不过好在最后还是进去了,因为大部分人在中途放弃了,结果检查到最后的反而就进去了呢。

社团学习

  • 杭电助手:学习 Go 语言,做后端开发,每周有一次例会(布置任务)非常棒,可惜第二学期因为疫情没有了。

  • 红色家园:滑水,我也不知道在干嘛。就这样划了一个学期后,被迫接手了家园的“HduIn”项目,后面我用“Flutter”重构了,不过是后面的事情了。

  • 杭电极客:放假的时候选择自己的方向,我选了“嵌入式”,然后买了百元的设备,准备学习,学到“驱动屏幕”后就没有然后了,果断放弃,现在这些设备还在吃灰呢。后面学长将“极客NAS”相关的东西交给我维护了。


自我学习

幌子骗人的,美名曰“self-driven”,但是我发现根本没有几个人能真正做到自我驱动的,有时还是需要借助一些外力因素啊。


学习 Go

为了学习 Go,让舍友买了本《Go程序设计语言》,我知道舍友不会看的,所以买来后一直归我保管,大一放假期间看了一遍,书写的实在是太好了,算是入门了 Go语言了吧,但是 Go语言的发展一直很快的,特性也加了不少,因此书上的内容可能有点过时,需要一直学习才能紧跟步伐。

大一上期间,使用 Go基于酷Q开发了一个机器人,专门爬助手的服务,虽然后面被叫停了但是对 API 的开发有了一定的了解,也懂得了一些基本的爬虫知识。后面又写了一个“上课啦自动签到”功能,只需要给机器人发送数字签到码,即可完成自动签到。后来酷Q被封锁,之后上课啦又取消了“验证码”,换成了“recaptcha”,这个东西也就停止维护了。

学习 Flutter

大一下的暑假,接手了家园的“HduIn”,我仔细研究了一下代码,发现其中充斥着大量的无用的代码,还有许多视图文件。我尝试删除几个看起来没有用的视图文件后,项目直接跑不起来了。我错了,再也不敢乱动了,好揪心哎。和学长讨论,其实就是吐槽,然后我说为何不重构?嗯,学长给我推荐 Flutter,我想着什么时候可以了解一下。于是忘记啥时候去了解的了,就突然像发现了新大陆一样,我靠居然这么香,学的好爽。当时立马整个一个“hduhelp”练手,这次又是爬助手的服务了,还被学长发现了。记得当时写到了凌晨2点多才去睡觉,还意犹未尽呢。当时 Flutter 对外来说确实是一个很新鲜的事情,人们对新鲜事物感到好奇也是挺正常的。


学着学着就开学了,当时是疫情记得是5月多才开学的。后面来到学校,就准备重构的工作,但是学长对重构表示担心,不太愿意重构。我不管这些,于是就自己一个人搞。只是老人们留下来的东西,似乎都没有什么文档,然后 API 接口还比较乱。没办法,为了继续我的工作,我只能去研究这些遗留代码。哎,家园的技术栈也太杂了,什么都有,PHP、ruby、nodejs(koa、express),然后 PHP 和 ruby 这块基本上没人会了,也不敢碰,自然是没人维护了。后面我整理了一份接口文档,这样才算勉勉强强重构大部分东西。


学习乱折腾

记得学长给我了一个秘密本,里面有许多“192”网段的服务器,我就很好奇,这些内网的东西要怎么连上去?后面才了解到这些是我们家园在学校的服务器,后来我就开始研究这些服务去了。到这里才知道家园的服务都是跑着 Docker 上的,后面就又去学习 Docker 了。哇,学了 Docker 后才知道 Docker 太香了,每个服务都跑在一个“容器”里面,这样就根本不用担心这些服务的依赖、管理什么的,这样还可以多个容器跑同一个服务在不同的服务器上,不用担心环境的差异性。真的是太爽了,看看自己小破站,还是用非常原始的建站模式呢。

后面就给自己的小站点,全部都迁移到“Docker”里面了,还将几台破服务器通过 Docker Swarm 组成了一个集群呢。


学习 Midway+Vue3

使用 SSR 开发了简单的博客,https://blog.dreamer2q.wang/,算是初步了解了 nodejs 的技术栈。

项目

有些项目不太好说出口,就当做不存在吧。

  • 语燕App

语雀的第三方App,但是最近我咕咕的太厉害,加上语雀更新了许多新特性,进度落后太多了,太难了。

  • 杭电指北

我希望杭电指北能帮助更多像我这样的新生,少走许多弯路。

学习路线

这里是结合我的经验给出的一个路线参考。

基础

基础内容学的越多越好。


  • 学习计算机基础知识(以 Linux 为主)

了解控制台的基本操作,以及简单的使用 vim 即可。

  • 学习 C 语言

大一上会开课,到时会有理论和实践两部分。

需要好好学习,最好提前学习,同时可以配合杭电OJ一起学习,练习基础题目。

可以尝试基于控制台编写一个小游戏,例如贪吃蛇、俄罗斯方块、2048、推箱子等,锻炼代码组织能力,美名曰“工程”。

  • 学习 C++ / Java

大一下会开课,二选一即可(最好提前学习),核心要了解 OOP 的思想:封装、继承与多态。

配合杭电OJ学习,或者配合项目学习。

  • 学习 HTTP 网络知识

建议使用 C语言自己实现一个 GET 请求,涉及到 Socket 编程建议在 Linux 上实现,更友好。


进阶:加入社团

在社团可以遇到志同道合的一些人,也可以遇到许多厉害的大佬,在这里可以学习的很多东西,同时也可以获取到更多的资源。

  • 选择方向

不同的社团技术栈可能不尽相同,先确定自己的大致方向,例如“前端”、“后端”、“全栈”、“运维”等。

选择社团时,需要详细了解社团的技术栈,例如助手后台是以 Go 语言为主。


  • 参与项目

社团一般会有例会之类的学习活动,尽快熟悉参与进来,最好能参与到实际的项目中,体验上线发布过程。

  • 总结与输出

可以写自己的技术博客之类的,做一下内容输出,可以锻炼自己的语言组织能力。

发展

这部分就看你自己的选择了,选择自己感兴趣的方向走下去,参与开源项目之类的。