写给软件234,也给两年前的自己

前言

首先对大家在上次班会长达1小时的坚持表示感谢,因时间有限,准备仓促,部分内容可能没有准确完整的传达给大家,因此以这样的形式复盘一遍。

下面内容根据大家近期反馈的内容并结合我的自身经历,可能有部分我经常说,但是不同时期的你看,可能会有不同的理解。

在你看这篇文章之前,我会默认你是一个有上进心的人。因为你既然能点进来,那么你就是可以的。

注意,本篇内容均为我自己的理解和经验,我只会述说我切身的体会和认识,我写的不是指南,不是计划表,也不一定完全是对的,我写的只是一些话,一些可能帮助你的话

关于上学期班级整体情况

一句话,咱们最乖挂科最少,整体最棒,但平均成绩还有提升空间。

关于自己的生涯规划

很多大学生的四年可能是这么过的

大一:好不容易上大学了,好好休息休息吧,开摆开摆

大二:开始有点迷茫焦虑,不知道自己是该参加比赛还是卷绩点还是准备找工作,一边迷茫一边摆,通常情况是晚上下定决心明天一定要发奋图强,第二天醒来一切照旧

大三:周围的人怎么都开始忙起来了,要不我现在开始准备找工作/读研吧,但是还没意识到危机感

大四:棒子打在身上觉得痛了,开始考研/找工作

这是不是一份好的规划呢?我想大家心里有答案,没有人不想要更好的未来。

从后往前看,这四年里

大四下,准备毕业设计毕业论文;大四上,专业实训或者外出实习,选择考研的话同时要备考;

大三可以视为一个关键节点,因为要确定自己的方向,在一边学习课程的同时,准备迎接相应的考核。

那大一大二该做什么就很容易看出了,为大三的选择打下基础,为日后的厚积薄发做准备。具体而言,无非就是,想保研使劲卷绩点、考各种证书、寻找各种加分项,想考公或者走选调生就多在学生组织积累经验,想考研就打好英语数学专业课基础,想直接找工作就在技术方面多倾斜、积累实习经验······这些平时也经常跟你们说,这里就不再费口舌。

不要以迷茫为借口而无所事事,你有大把的事情可以去做。

最后,现阶段(大一)并不着急确定详细的规划,当然,越早的确定清晰的方向,就能越早的在对应方向积累。但也会因为前期的认知不足导致错误的选择。总之,至少需要知道,哪些是重要的哪些是不重要的,哪些对你有用,哪些你并不需要。例如,不管是打算考研还是毕业直接找工作,只要想在本专业发展的话,打好专业课基础就是必要的;有保研打算的话,绩点是重要的;想找工作的话,积累实习经验是重要的。个人建议,在还不明确要做什么的时候,也就是大一这一年,成绩尽可能的高、计算机相关的技术也尽量多的学、学生工作也积累着经验、竞赛也尽量参加,不要一开始就把路走窄了。

关于如何学习专业知识

计算机专业的知识可能多且复杂,技术的更新迭代快,短时间内了解全面是很困难的,那如何开始第一步呢?

在多数人看来,课堂上讲的知识可能枯燥无味不实用,跟你想象的开发手机app,做游戏相差甚远,如此一来,逐渐丧失了对计算机专业的兴趣。

既然这样,不如先不看底层,以自顶向下的方式去学习。先做出个小玩意,譬如一个属于自己的网站,就像你正在看我的网站一样,Github上面有不少项目对新手十分友好,有些甚至只需要一行命令就能傻瓜式部署,你只需要复制粘贴回车,看着黑窗口里的代码滚动完就能体会到满满的成就感。在此过程中,可能会发现自己的盲区,这时就会有相对更加充足的动力去学习相关方面内容,因为你的目的不是学完一整本书,而是解决一个小问题。

例如,如果你还不了解内网外网的概念,你会疑问为什么网站在你的电脑能访问,而别人看不到。

(非广告)阿里云高校学生权益,可领取300元代金券换取服务器

经过一通搜索,你拥有了一台自己的服务器,可是又发现了问题,别的网站地址都是 baidu.com这样,你的是一串类似192.168.1.11这样的数字,再去搜索引擎转一转,你会认识到域名、以及DNS解析的概念。慢慢的还会接触到HTTP、TCP、IP,再往后会遇到操作系统、编译原理等基础知识,这些随便拎出来一个足够让你昏昏欲睡的名词,在此刻慢慢的有了概念。直到某天你甚至可以推测出某些东西的存在,并且它具有什么样作用。例如,通过了解超文本传输协议(HTTP,HyperText Transfer Protocol),互联网上应用最为广泛的一种网络协议,你知道HTTP 协议是以明文方式发送信息的,不免思考,http报文以明文的方式在网络上传输,那传输的内容被中间人截获了怎么办?

想象一下,你向喜欢的人发送“我喜欢你,做我女朋友吧”

对方收到后,回复“好呀,我答应了”

不巧,一名黑客截获了回复,并更改成“你是个好人,我已经有喜欢的人了”并发送给你

从此,世界上少了一对真爱······

那如何保证客户端跟服务器之间的通信安全呢?

简单,加密就完了,约定一个密码,双方发送信息都加密后再发送,收到信息之后用约定的密码解密。

比如跟他/她约定好,“今天天气真不错!”代表“一会去一块去图书馆学习等着我!”,这样每次要出去学习时,发送“今天天气真好”,别人就看不懂你们在说什么。

跟你的crush当然可以这么做。

那你的客户端跟服务器怎么约定密码,密码本身不也得通过网络传输吗,除非你千里迢迢到服务器旁边把密码告诉他,回来你俩再进行通信。

听起来不太现实,那https是怎么解决传输的安全问题呢?

上述的加密方法其实是对称加密,即这把钥匙既能开锁又能解锁,有一种加密方式是非对称加密,密钥是成对的,公钥加密的内容只能由私钥解密。

“!那我知道了,https是用非对称加密实现的!”

不完全对,其实是用两种方式混合实现的。

欲知后事如何请看终于有人把 HTTPS 原理讲清楚了!

就这样一边玩一边学,等到后来系统学习计算机网络这本书时,你将会发现书里到处都有你认识的影子。

慢慢的,当对计算机整个体系有了整体的印象之后,你就能意识到自己需要系统学习哪些方面的知识。

当然,无论最后采取什么样的方式,答案只有三个字,先去学。

Q:我不知道该怎么下手该怎么办?

A:除了搜索引擎,还有一种更为简单的方式——人工智能,你可以问他任何问题,他不会嘲笑你的问题有多么简单、幼稚,虽然机器的回答有时比较呆,但对于开拓未知的领域还是很有帮助的。下面是百度文心一言的回答示例,你可以继续追问不理解的内容

image-20240315163318547

大学以后,从书上能学来的东西越来越少,尤其是计算机专业,大量最新资源依托于互联网,书的出版速度可能赶不上技术的迭代。搜索引擎,社区论坛,开源源码,官方文档或者询问人工智能,这才是你要学习的东西。

培养独立解决问题的能力

学习过程中不免会遇到各种各样的问题,反过来想,如果人人都能实现,那你的价值何在,解决问题的能力本身也是考核的一部分。

Debug,被誉为贯穿程序员一生的必备开发技能。有些同学非常害怕编译运行时大片的Error,其实这些正是最容易解决的错误,因为编译器已经告诉你哪里错了;业务逻辑、功能上的bug才是最难排查的,这时就需要调试程序一步步排查问题所在。每个同学都应该掌握自己调试程序的能力,而不是简单尝试后,拍照,将问题转发给别人。

IDEA中的debug断点调试技巧

其他问题,例如,为Java配置环境变量,这类问题就更简单了,题目即答案,搜索关键词Java配置环境变量,这么多教程,总有一个你能复现。

很多事情别人帮助了你,要说谢谢,因为没有人有义务帮助你。

在学校,有热心的老师学长学姐同学会给你解答问题,这终究是依赖自身之外的力量,具有一定的不可靠性。况且,自己解决问题,能够节省大量的沟通时间,提高效率,避免问题解决但是自己的热度已经褪去。

但这并不是说问别人问题是有罪的,我只是说类似配置环境变量这样的问题,并不是需要大动干戈的难事,如果这个都穷尽了你所有的方法,你可能很难追赶别人的步伐。换句话说,询问问题应该获取到如何渔而不仅仅是一时的鱼。

持之以恒

编程,需要有耐心,如果你想很快的有一个非常炫酷的软件,那么,我只能说你有点好高骛远了。

不必去羡慕别人的软件多么酷炫,画面多么好看,我们要看的是我们的进步,我们的基础,基础最重要,有一个好的基础,你可以不懂什么流行名词,可以不懂什么高级的算法技术,因为一个好的基础,可以让你很快,非常快的学习这些东西,这些东西无非就是我们所学习的基础搭建出来的。

所以,认真地踏实地去学习,不用太着急,只要有进步就行。

千万不要像背单词一样,今天特别激动,从头开始背了几十个,之后遇到瓶颈搁置了几天,一段时间后又心血来潮,继续从abandon开始背。

另外,万事开头难,允许自己先做出一个垃圾,之后再慢慢打磨优化,完美主义固然没错,但有时会产生过多的压力阻挡你迈出第一步。

如何打破信息茧房

你能意识到信息差的存在,就已经打破一半了。

上述的各种工具、方法,为什么有些你都没听过,反思一下自己是不是一直处于被动接收的状态,从未主动寻找,每天刷的短视频、各种信息流即是获取信息的主要来源,同样是刷视频,每个人刷到的也是不一样的,平台有严谨的算法推算你喜欢什么样的内容,久而久之,形成了信息闭塞。看一下你的搜索记录,是“某某女教师xxx大瓜”还是“java学习路线”?

话说回来,只是被动的接收我给你们传递的信息,也是一种信息茧房,本文既能打破你得信息茧房,亦能成为你得信息茧房。我的一些言行大概率会一定程度上影响你们的走向,所以,认识更多的学长学姐,了解更多不同的看法,多跟指导老师交流,拓宽自己的眼界。从大学的第一天开始,你就必须从被动转向主动,你必须成为自己未来的主人,你必须积极地管理自己的学业和将来的事业,理由很简单:因为没有人比你更在乎你自己的工作与生活。“让大学生活对自己有价值”是你的责任。

从被动接收信息转变为主动搜集信息,信息茧房不攻自破。

IMG_20220709_193030

提前了解行业形势

此部分内容可能比较适合对软件感兴趣想在本专业就业的同学。

最然才大一,可以适当了解一下行业形势,下载一个招聘App,看一下自己心仪岗位的要求,思考一下以后想在哪个城市发展等等。

准备一部分简历,好的简历不是一次写出来的,而是慢慢优化,随着自己经历的增加,会有越来越多的荣誉、经历可以写在上面。反之,若是你的简历一篇空白,没有什么可以写,那就明白应该做点什么事情了。

双非的我们如何能进大厂?

相信学计算机的大家,一定早就对百度、字节跳动、阿里巴巴、腾讯这之类的大厂有所耳闻,其实,咱们中的人进入大厂,也并不是一个不切实际的梦想。但是对于咱们来说,想进大厂需要有过硬的实力,才能弥补学历的差距。大厂重视考察基础、算法,可从以下方面着手准备:

  • 算法:尽早养成刷题的习惯。(LeetCode)可以顺道参加个蓝桥杯等比赛。
  • 实习:充分利用假期时间,积累多段实习经验,快一点的话大二暑假就可以去实习。
  • 计算机基础:计算机网络,数据结构,计算机组成原理,操作系统。
  • 项目:有两个自己拿的出手的项目写在简历上,而不是常见的增删改查类。
  • 开源项目贡献:成为一个Star数相当多的开源项目活跃贡献者还是很加分的。
  • 竞赛:反正是要学习的知识,顺道拿个奖,也不用花过多时间准备。
  • 个人博客:你的文章是你最好的自我介绍。

上述这些并不是到了要找工作才开始准备,现在这个时间点,就必须着手开始了。

这里,我并没有准确全面的信息告诉大家,因为我也没在大厂待过,我只能在你们那里种下一颗种子,剩下的靠你们自己去探索。我就等着有朝一日,你们中有人进了大厂把我内推过去(狗头)。

挖坑

一鼓作气,再而衰,三而竭。今天是第三天,写不下去了,目前先这样吧,大家可以按下ctrl+D收藏一下,时不时回来看看,后期可能还会补充新的内容。

过一段时间之后再来看,可能会有不同的收获。

写在最后

稍微了解一点搜索技巧,能用谷歌就用谷歌(可以找到镜像网站),其次是Bing加ADGUARD插件,尽量避免使用百度,用对方法往往能缩短数倍的时间。

如何高效检索信息:搜索引擎使用小技巧

经常看看github,掘金这类技术社区,没准有你感兴趣的。

保持谦虚。

计划可能赶不上变化,比如这篇文章为什么这个点发给你(狗头)。

不要太老实,一直跟着老师教的走完很有可能毕业即失业。

自己主动寻找一下哪些比赛可以参加,并不是所有的比赛都有人通知组织建群。(赛氪APP)

图书馆对面的外文楼有个小食堂,在图书馆一直待着学习的话,可以去那吃饭,能节省大量时间。

不要让自己太闲了,哪怕是出去玩一圈,也比在宿舍躺一整天好,抓住有限的时间,让自己的学习、生活更加精彩。

保持天真,在小孩眼里,我们是大人;在大人眼里,我们是小孩;带着稚气,带着困惑,带着自信,带着理想上路吧!

好记性不如烂笔头,灵感往往都是瞬间浮现,不妨记一下。

好好利用在公共场合说话的机会,展示或者锻炼。别怕丢人,那是一种成功的尝试,不要笑话那些上台丢人的人。

并不是每个人都像你一样热爱学习,并不是每个人都像你一样心底里拥有不甘心的勇气。当感觉周围环境阻碍你的进步时,踏出舒适的小环境,去和更加优秀的人接触。

找到自己的兴趣,最轻松的事情就是做自己喜欢的事情,并不是听音乐、画画之类的才是爱好,刷题也有可能上瘾,计算机专业毕业之后不只有写代码做程序员一条路。前端、后端、测试、运维、网络空间安全(最接近黑客)都可以选择,前期可以广泛涉猎寻找自己感兴趣的方向。实在不行,大一把成绩搞好,还可以转专业呢。

写在最最后

日落


我的大学即将迎来日落,而你、你们的太阳才刚刚升起。


日出


祝你,前程似锦,一帆风顺。 ——软件234学生导员

附录

一些关键词,可能能够拓宽你的视野:软著、软考、暑期实习、日常实习、markdown、Github、选调生、leetcode、洛谷、ACwing、数学建模、爬虫、教师资格证、抓包、代码随想录、动态规划、贪心算法、

一些可能对你有用的资源

致谢:

本文部分内容参考自以下文章

上次编辑于2024.3.17 00:51

本次编辑于2024.4.11 19:00