回忆在大学上培训班的经历

2024-08-04

由于喝了咖啡大脑过度兴奋,无意间想起这个话题。刚才提到关于 网页样式 的问题,包括 V2EX 的网页在 iPad mini 5 竖屏尺寸下显示非常糟糕,以及想起来我现在的公司有一个 blog,样式很简陋,我曾经直接提到其中非常明显的样式错误,但是一直没有被解决。因为我有博客,平时也很注重博客样式的优化,虽然整体是 copy 王垠的博客样式,但细节上做了一些改善,如果博客中出现明显的样式问题我是不能忍受、会迫不及待改正的。所以我猜测虽然某些样式错误在我看来是一两行代码就能解决的问题,但是对于没有相关经验的人,可能觉得有难度,所以迟迟没有去解决。

这个道理可能类似于,乔布斯曾经有从事印刷行业的经历,所以在苹果设备上非常注重字体显示的美观,苹果电脑自己设计了效果更好的字体,而不是使用微软的字体。其实从我们非专业用户的角度看,字体不一样甚至都看不出来他们不一样,但是在专业人士眼里,人家就非常在意。

那么回到网页样式的问题,我就想,我关于网页样式的经验是从哪里来的呢?我实实在在的掌握原生 HTML 标签和 CSS 样式,这些经历似乎已经非常久远,追溯到很久以前……再就是今天看到 V2EX 上有一偏帖子《学习困难户工作 9 年依然很菜。大家有木有什么建议》,从帖子中的描述来看有一种 “菜的熟悉” 的感觉,似曾相识,像是大学班上的妹子在问我问题,他们都有一些共性,听起来是靠死记硬背在学习编程,也由此想到我之前经过了漫长的学习和动手折腾代码的过程……

我一直觉得上过培训班是一种耻辱的经历,所以一直不想提。但是现在已经过了很多很多年,而且我的培训班是在大学在校期间参加的,和那种毕业之后找不到工作、为了找一份程序员的工作而目的性很强特训几个月的情况不太一样。毕业之后再培训的,一方面不是出于兴趣在学,技术一般都很差,另一方面培训班为了让他们能找到工作,会教他们面试和简历造假,给参加过培训班的整个群体都留下不好的印象。(实际上我参加的培训班,和我一个班的同学水平也都很差。

我参加的培训班属于学校认可的 3+1 模式,也就是前 3 年校内正常上课,第 4 年上校外的培训课,不需要上学校的课了,能正常拿学分毕业。当然要交培训班的培训费,每个人 1 万 8 千元人民币(校内领导肯定拿了回扣)。在培训班给我们上课的老师就是我们学校计算机系的正经老师,所以课程内容上问题不大,只是更加侧重动手敲代码而不是理论。我本身不是计算机专业,加上对编程很感兴趣,就选择了这种方式。

在确切的时间点上,我们从大三下半学期就开始,每周末坐一个多小时的公交车去校外上课,然后大四上半学期每天上课,相当于在培训班学习整整一年的时间。大四下半学期我就到北京实习开始工作了。培训班的课程主要涵盖 HTML、CSS、Javascript、Oracle、Java、Java Web 等基础技术,而这段学习过程中,最重要的不是课程的内容而是学习的经历。印象最深的一次是我下午在宿舍看视频敲代码,舍友准备去上课了,等他下课回来惊讶的说,你坐在这里一下午都没动吗?他说的时候我才意识到,已经不知不觉过了好几个小时。

我翻了一下仓库竟然保留了当时的一些学习的记录,在 Java1006Java1008 里。记得之前在学习 Vue.js 的时候跟着教程一步一步做出了一个像样的电商 APP,学习 React.js 的时候也做出了一个聊天 APP,可惜不知道当时怎么想的,觉得也没什么技术含量,不应该留在我的仓库上,当时认为我以后一定会写出更有价值的、自己开发的代码……所以就删掉了,后来想找也找不回来。 现在来看其实是一种有价值的学习记录,这件事情也给我个教训,不能轻易删除自己在网络上的内容,即使现在不想要,也许日后有一天需要。所以我的博客内容只要写了就不会删掉。

培训班的内容也不是什么都好,比如很扯淡的事情是,一进去的时候就让我们练打字,用金山打字通,还比谁打字快,而且每天都要来一遍。当然我的打字速度每次都是第一名,虽然现在看来这种事情很可笑。

培训班的课程其实也简单,关于 HTML、CSS、Javascript 的部分,我在上课之前就会了。我早就自学过 PHP 和 MySQL,还跟着教程实现过 HTML 版本的 音乐可视化。培训班方面,上完课后有一个 仿站 的作业,就是老师找几个网站,学生手敲 HTML 和 CSS 模仿个一模一样的网站出来,我当时模仿出来的两个网页还有保留 网页1网页2

其实培训班对我来说最有帮助的是 Java 部分,我们专业是没有 Java 这门课的(有微机、电路啥的),但是培训班的经历让我实实在在把 Java 学了一遍,给我们上课的就是计算机系的老师。每天上完课都需要做一些 练习作业,我还写了简单的 学习笔记。虽然我已经很久不写 Java 了,但是面向对象的思想算是正经学过,Java 这个语言也实际学过,也在工作中用过一年左右。相反虽然我后来用 Go 语言作为工作语言,但其实没有正经学过。

除了在培训班的学习经历,还有一部分重要的就是自学的经历,主要用 慕课网 看网课、跟着视频里敲代码,具体内容就比较杂了,想学什么学什么。有一个数字是,在慕课网的学习时间是 650 个小时,也就是视频播放时长是 650 个小时,我现在回头来看觉得这是一个挺大的数字。当然这是好多年前的记录,我工作之后就不需要慕课网这种教程了。

总的来看,在培训班的学习加上自学,是有不少代码经验的,所以在实际写代码方面我不太担心自己达不到 “合格的程序员” 的水平,不过在计算机理论和算法方面其实有很多欠缺,比如我至今分不清堆和栈,面试中被问到变量被具体分配到哪里这种问题,我都是直接说不会,然后面试官看一眼专业,哦,不是计算机,明白了。主要是我在工作中还从来没遇到过,有什么工作是需要了解这些才能够完成的。也许我将来会出于感兴趣补一补课,但肯定不会是为了面试。

算法方面,我很久之前也试着刷一刷 Leedcode,但我的刷法其实没有用,刷了一大堆简单题。一方面是避免一开始有太多挫败感,找找感觉,另一方面是在上班也不太有大量时间去想着做有难度的题。这方面也是个不小的欠缺吧。

天亮了,去睡觉了。