大学想报计算机专业,暑假想要自学,有哪些建议?
itomcoil 2024-12-31 12:21 24 浏览
大家好,我是白云。
?
有个粉丝朋友私信问我:今年刚高考完,想报计算机专业,想暑假自学,应该怎么学?今天老白就针对这个问题好好聊聊,之前也聊过自学这块说的也很全,但今天针对学生这个全体好好聊聊。
?
大学计算机专业学的内容是什么?
?
主要学习以下五个方向:
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的分水岭
以上其实是大厂面试官的考核范围,并且他们之间有前置知识点的相关性,简单点说:不会基础语言不会算法和数据结构,你肯定没法刷题,也没法看懂计算机网络和操作系统、组成原理等等。
重点强调下算法,非常重要,无论是读研读博深造还是通过大厂的面试,算法都是必须的。
?
我是白云,一名喜欢分享知识的程序员,感兴趣的就赶紧来点击关注我把,哪里有不明白或有不同观点的地方欢迎留言!
- 上一篇:Django 入门介绍
- 下一篇:整蛊大法传授于你,不要说是我告诉你的
相关推荐
- selenium(WEB自动化工具)
-
定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...
- 开发利器丨如何使用ELK设计微服务中的日志收集方案?
-
【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...
- 高并发系统设计:应对每秒数万QPS的架构策略
-
当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...
- 2025 年每个 JavaScript 开发者都应该了解的功能
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...
- JavaScript Array 对象
-
Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...
- Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战
-
刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...
- 动力节点最新JavaScript教程(高级篇),深入学习JavaScript
-
JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...
- 一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code
-
当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...
- 「晚安·好梦」努力只能及格,拼命才能优秀
-
欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...
- JavaScript 中 some 与 every 方法的区别是什么?
-
大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...
- 10个高效的Python爬虫框架,你用过几个?
-
小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...
- 12个高效的Python爬虫框架,你用过几个?
-
实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...
- pip3 install pyspider报错问题解决
-
运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...
- PySpider框架的使用
-
PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...
- 「机器学习」神经网络的激活函数、并通过python实现激活函数
-
神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)