本文正在参加力扣 有奖征文|2022 力扣春招季征文活动,欢迎大家点赞评论为我刷 666 🤩!
先自我介绍下,我是程序员耳东,985计算机毕业,先后在创业公司、大厂待过,目前在某大厂做研发,欢迎关注我,我会持续发布编程、程序员、职场相关的笔记或视频
自从我发了笔记,来找我提问的人挺多的,尤其是迷茫的大学生,所以在这里我想写一篇笔记总结一些我觉得比较重要的东西,希望对大家有帮助
⚠️本篇笔记只是以我在创业公司、大公司工作以及做面试官的经验来谈的,如果有异议欢迎在评论区讨论,别喷我就好
本篇笔记大概分为这么几部分:
首先作为计算机的学生,你们学校肯定会开很多计算机基础课程,大致是这些课程:
一般来说大一的时候会开设一门课程叫做《程序语言设计》,这门课的目的就是教会你们一门语言,这门语言可能是贯穿你们整个大学,不论你是做算法题、做项目等等,可能都是使用这门语言
大部分学校的第一门语言应该是C语言或者C++,其实怎么说呢,我一直觉得用C系语言作为新手入门不是很好,因为它里面概念太多,尤其是指针这个东西,可能很多人的兴趣就是在学习语言课的时候被磨灭的,学习计算机和编程,兴趣是最重要的
如果你学有余力,可以看看类似Python、Java、JavaScript这种语言,学起来简单应用也广泛
还有就是教材问题,很多学校会使用谭浩强的《C语言程序设计》,这本书也是饱受吐槽,如果学有余力,建议去网上找点课程学习,不必在一门书上死磕
学语言的话,重点是要多写多实践,别把工科学成了文科,只会背概念是没有用的
如何衡量语言课程学的怎么样呢?可以熟练的使用这门语言做编程题,可以熟练的使用这门语言做课程设计
先聊聊《数据结构与算法》,这门课程非常重要,不论是你写代码还是面试,都会直接或者间接的用到;程序员面试必不可少的就是手写或者白板写代码,曾经只是美国程序员面试爱问算法题,但是现在国内也有这种趋势了,尤其是大公司,面试算法题必考
怎么学这门课程?很简单,老老实实把书里面数据结构的代码敲完,什么链表、二叉树、排序查找等等,都自己完整的敲一遍,然后老师布置的课后练习题、上机操作的编程题,一定要自己亲自做,完整的代码敲出来
如果学有余力,可以去力扣网刷算法题,至少把高频100题刷完,这样子你的写代码能力就很扎实了,这门课程以后找工作的时候复习起来也很轻松
这门课程说实话比较偏理论,我自己学的时候也没找到太多可以实际操作的东西,只能凭借面试经验聊聊
首先,计算机网络的分层需要知道,一些重点的协议比如说TCP、IP、UDP、HTTP等等需要知道,三次握手四次挥手需要知道,还有一些关于网络的常考题可以自己去搜搜
如果你实在是想增强自己在网络方面的能力,可以考虑去自己做一个web server,GitHub上面有开源的,做完之后你对网络方面的印象应该会深很多,但是面试常问的问题还是得看
操作系统其实是一门很有用的课程,但是因为教学方式的问题,它也是很显枯燥
它里面的这些知识点需要学好:进程线程、中断和系统调用、内存管理、调度、IO等等
一般来说这门课程都会有一个大作业(课程设计),也就是实现一个简单的操作系统内核,有本书好像不错,好像叫《30天自制操作系统》,网络上应该也有开源的项目,感兴趣可以去看看
《计算机组成原理》相比于上面这些课程,会更偏向于硬件一些,比如编码格式、汇编等等,如果觉得比较晦涩抽象,可以先读读这本书《编码-隐匿在计算机软硬件背后的语言》,这本书比较通俗一些,可以形成你的兴趣
还有一本好书也值得推荐,它是《深入理解计算机系统》,这本书有配套的课程和大作业,不过都是英语版,现在应该有中译版,如果想成为大佬的话,这本书应该是必不可少的
这本书说实话我当时就学的挺烂的,在这里就不说了,具体的学习方法大家可以去知乎搜一搜,我看了看还挺多的
如果想从事编译、偏底层的开发,建议好好学习《编译原理》
大学里面好好学我上面说的课程,其实你就已经是学有所成了,如果还想为自己的简历上增加亮点,方便以后找到好的工作,那我觉得以下几件事情你应该好好做
不管你在这方面是否有天赋,我觉得你都应该去参与一下,毕竟对于学生来说,学习环境很重要,在一个acm团队,我相信你的编程能力会得到很大的提高,如果只是在宿舍和教室学习,我怕你的自控力会抵制不了手机和短视频的诱惑
不管最后会不会得acm奖,这段参与的过程肯定会受益匪浅
相信每个学校都会有一些编程社团,而且招人标准比较严格,这些社团一般是从学校或者外面接收一些项目,然后团员大家一起做
这样子就有很大的好处,第一,你可以在学校就获得项目经验,在社团做的项目都是可以写到简历上的;第二,社团里面的学长学姐可以带着你一起做项目,这种宝贵的学习经验很难得;第三,如果学长学姐拿到了大公司的offer,ta们可以给你们分享第一手找工作的经验,并且还可以优先内推你们
所以,如果有时间,别在宿舍睡大觉了,尽量去参与一些编程社团
当前找工作的情况是比较内卷的,校招的时候大家都希望你可以有一定的实践经验,但是在校期间我们去哪找真实的项目实践经验呢?
答案就是去实习,正常来说应该大三才实习,但是笨鸟先飞的话,我建议你可以大二就去投递一下公司的实习岗位,但是注意别去那些血汗小公司,尽量去有人可以带你的公司
而且就算你面试实习生没过,但是没关系啊,你还有大量的时间可以补齐短板,并且真实的面试经验也可以让你调整自己的心态,提前了解到学校里学的东西和面试要求之间的关系和区别,更有利于你大三找实习和正式的校招
其实我曾经以为大家都知道大学里面实习、找工作、签offer的时间节点,但是很多人咨询我过后,我发现很多人都不知道,所以我正式的说一下
以主流的中型大型公司为例,大规模招实习生的时间节点是:大三的第二学期中旬,也就是大概4月份左右,就开始招聘暑期的实习生了,这一阶段招实习生的规模也是最大最集中的
大规模校招的时间节点是:大三第二学期开始(秋招)和大四的第一学期(春招),秋招的时候是大量的招聘正式员工,也就是提前把正式员工的offer发给你,你毕业之后直接去上班就行了,或者你提前去实习也行,相当于提前把你锁定了
春招的时候相当于补录正式员工,也就是秋招没招满的话,春招会继续招,所以春招的规模和数量都不如秋招,所以一定要把握好秋招
总体看来,虽然说大学本科有4年,但其实从大三第二学期秋招就开始了,所以让你好好学习准备的时间只有两年半,这么一看时间还是很紧迫的