大学想报计算机专业,暑假想要自学,有哪些建议?

 你们好,我是白云。c++

有个粉丝朋友私信问我:今年刚高考完,想报计算机专业,想暑假自学,应该怎么学?今天老白就针对这个问题好好聊聊,以前也聊过自学这块说的也很全,但今天针对学生这个全体好好聊聊。程序员

目录面试

 大学计算机专业学的内容是什么?算法

1.C/C++语言编程

二、算法windows

3.数据结构 设计模式

4.操做系统数组

5.计算机网络浏览器

学习前的准备都有哪些?markdown

下载和安装

安装系统

了解你的操做系统

进大厂的要求


  大学计算机专业学的内容是什么?

主要学习如下五个方向:

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》。

二、算法

算法挺难,但不管是学习计算机专业仍是将来找工做,它都无比重要。

推荐一本高中生都能看懂的算法书:《个人第一本算法书》

3.数据结构 

数据结构的重要性相信不须要强调了,不只是工做后必备的技能,若是将来要参加研究生考试也是必考科目和拉分项。入门的话推荐《大话数据结构》,这本书诙谐有趣,在不知不觉中让你掌握了数据结构,再推荐一本稍稍难一点的《数据结构和算法分析》。

4.操做系统

只要咱们使用计算机,就会和操做系统打交道,接受它的审核与反馈。不少“热门”的技术话题,背后都离不开操做系统。好比:

  • Nginx 的高并发性为何能实现?
  • MySQL 的 I/O 性能到底怎样提高?
  • Redis 中经典的 Reactor 设计模式由什么技术支撑?
  • Node.js 的 I/O 模型长什么样?

甚至,在一个数十万行代码的大项目中,仍然会遇到一些基础性的问题,好比内存为何会泄漏,服务进程为何会 dang 掉,文件为何打不开等等。

5.计算机网络

若是你要入门 HTTP,首先最好书籍就是《图解 HTTP》了,做者真的作到完彻底全的「图解」,书籍不厚,相信优秀的你,几天就能够看完了。

学习前的准备都有哪些?

下载和安装

  1. 尽可能去官方网站下载你要的软件。(过期的软件如vc++6.0显然没办法去官网下载了)不少搜索引擎都会将你要搜索软件的官网标注出来。看到出来的搜索答案列表后面跟个“官网”准没错,后面跟个“广告”就基本能够跳过了。有的没收录官网的,就须要用经验判断了。
  2. 在网页上找软件时,注意你点的东西是否是一张图片,并且这张图片的角落还写着“广告”两个字。若是是,这个显然是不能下载你想要的东西的。
  3. 下载站里面,若是遇到什么高速下载器下载,统统无视掉,只管找普通下载的渠道。固然,如今不少下载站流行留百度网盘连接或者公众号扫码获取下载连接,这二者通常都是没啥问题的(不保证无毒),就是麻烦而已。
  4. 安装软件时,若是你看到是个啥下载器,建议直接关闭,从新找资源。
  5. 安装软件时不要一直点下一步,多注意安装界面每一步能够用鼠标打勾勾的东西,若是这些后面是些安装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的分水岭

以上实际上是大厂面试官的考核范围,而且他们之间有前置知识点的相关性,简单点说:不会基础语言不会算法和数据结构,你确定无法刷题,也无法看懂计算机网络和操做系统、组成原理等等。

重点强调下算法,很是重要,不管是读研读博深造仍是经过大厂的面试,算法都是必须的。

我是白云,一名喜欢分享知识的程序员,感兴趣的就赶忙来点击关注我把,哪里有不明白或有不一样观点的地方欢迎留言!  

相关文章
相关标签/搜索