写给萌新:大学计算机专业学习内容以及进大厂的要求 |
|
旁观者
L21
• 2021-07-12 • 回复 4 • 只看楼主
• 举报
|
大家好,我是白云。
有个粉丝朋友私信问我:今年刚高考完,想报计算机专业,想暑假自学,应该怎么学?今天老白就针对这个问题好好聊聊,之前也聊过自学这块说的也很全,但今天针对学生这个全体好好聊聊。
大学计算机专业学的内容是什么?
主要学习以下五个方向:
1.C/C++语言
虽然你只有很小概率在工作之后用到它,但它依然无比重要。C Primer反复看,然后一行行在电脑上敲出来。
C语言最难懂的是指针,这个暑假掌握还是比较难的,内存是什么,指针的本质是什么,程序为什么会崩溃,这些问题弄懂了基本就通了。
推荐以下C+书籍:
《C++ primer》《Essential c++》 《C++编程思想》 《effective C++》《more effective C++ 》《Think in C++》《C++ primer plus》《C++ coding standard》。
2、算法
算法挺难,但无论是学习计算机专业还是未来找工作,它都无比重要。
推荐一本高中生都能看懂的算法书:《我的第一本算法书》
3.数据结构
数据结构的重要性相信不需要强调了,不仅是工作后必备的技能,如果未来要参加研究生考试也是必考科目和拉分项。入门的话推荐《大话数据结构》,这本书诙谐有趣,在不知不觉中让你掌握了数据结构,再推荐一本稍稍难一点的《数据结构和算法分析》。
4.操作系统
只要我们使用计算机,就会和操作系统打交道,接受它的审核与反馈。很多“热门”的技术话题,背后都离不开操作系统。比如:
- Nginx 的高并发性为什么能实现?
- MySQL 的 I/O 性能到底怎样提升?
- Redis 中经典的 Reactor 设计模式由什么技术支撑?
- Node.js 的 I/O 模型长什么样?
甚至,在一个数十万行代码的大项目中,仍然会遇到一些基础性的问题,比如内存为什么会泄漏,服务进程为什么会 dang 掉,文件为什么打不开等等。
5.计算机网络
如果你要入门 HTTP,首先最好书籍就是《图解 HTTP》了,作者真的做到完完全全的「图解」,书籍不厚,相信优秀的你,几天就可以看完了。
学习前的准备都有哪些?
下载和安装
- 尽量去官方网站下载你要的软件。(过时的软件如vc++6.0显然没办法去官网下载了)很多搜索引擎都会将你要搜索软件的官网标注出来。看到出来的搜索答案列表后面跟个“官网”准没错,后面跟个“广告”就基本可以跳过了。有的没收录官网的,就需要用经验判断了。
- 在网页上找软件时,注意你点的东西是不是一张图片,而且这张图片的角落还写着“广告”两个字。如果是,这个显然是不能下载你想要的东西的。
- 下载站里面,如果遇到什么高速下载器下载,通通无视掉,只管找普通下载的渠道。当然,现在很多下载站流行留百度网盘链接或者公众号扫码获取下载链接,这两者一般都是没啥问题的(不保证无毒),就是麻烦而已。
- 安装软件时,如果你看到是个啥下载器,建议直接关闭,重新找资源。
- 安装软件时不要一直点下一步,多注意安装界面每一步可以用鼠标打勾勾的东西,如果这些后面是些安装xxx的,去掉选中,就不会安装了。当然自启一般也都去掉比较合适,快速启动栏看需求。
安装系统
搞个虚拟机软件,试用几十天十几天都无所谓,反正安装系统要不了多久。
具体怎么找虚拟机软件,去各种论坛、博客、知乎之类的平台找资源就好。
后续在 windows 编程学习过程中,也可以用虚拟机来完成一些比较“危险”的操作。
学会装 windows 之后,也可以试着装 Linux 甚至是 Mac 。
有些劝新人用 Mac 或者 Linux ,这没什么不好,但是大多数人用 Windows 会更合理。如果你电脑用得很熟,上 Mac 或者 Linux 那肯定没问题。
然而很多课程上老师准备的课程资料只有 win 版本的,其他系统的可能要自己去找,而且还不一定契合课程,萌新会很痛苦的。
了解你的操作系统
很多时候,我们与其说用电脑做事,不如说我们在用操作系统做事。
事实上很多编程语言都会用到系统层面的接口,而操作系统本身的设计也是遵循许多有助于编程的原则的。
首先你要搞明白文件是个什么东西,文件和文件夹区别是什么,文件的后缀有什么用?
扩展一下,比如 MP3 和 m4a 都能播放音乐, MP4 和 avi 都可以播放视频, png 和 jpg 都可以显示图片……
你要明白剪贴复制之类的是什么意思,鼠标左键和右键有什么用,滚轮除了浏览网页还可以关闭浏览器标签页……
你要去接触你系统上尽可能多的功能,比如用 cmd 命令提示符来关机、用 Ctrl + R 来打开软件、使用 Win10 的搜索功能来查找文件和应用……
了解CPU、内存、显卡、硬盘等硬件有啥用。
不说精通,你至少要用电脑跟用纸笔一样熟练。
进大厂的要求
要想毕业就进大厂,本科拿到月薪15K以上,硕士拿到25K以上,做好以下这些很重要:
- 选定一门主攻的基础语言方向,比如Python、C、Java等,并真正攻克它;
- 算法和数据结构:数组、链表、二叉树、堆栈、排序算法、B+/B-树、DP(动态规划)等;
- 疯狂刷题,撒比算法题、Leetcode等等,都挺不错,刷起来
- 计算机网络:HTTP、DNS、ARP、TCP、IP、ICMP、UDP等;
- 操作系统:IO、存储器、多线程/多进程、同步机制、处理器调度及死锁、设备管理、通道等;
- 计算机组成原理:冯诺依曼计算机组成、计算机层次结构、计算机性能指标等;
- 多实践多上机,机房要常去
- 抓住一切可以实习的机会,是否有实习经历往往是大厂给不给offer的分水岭
以上其实是大厂面试官的考核范围,并且他们之间有前置知识点的相关性,简单点说:不会基础语言不会算法和数据结构,你肯定没法刷题,也没法看懂计算机网络和操作系统、组成原理等等。
重点强调下算法,非常重要,无论是读研读博深造还是通过大厂的面试,算法都是必须的。
来源:https://blog.csdn.net/lland5201314/article/details/118499023
声明:本文系转载文章,仅供学习交流使用,侵权请联系删除