给计算机专业学生的几点建议

收到不少学弟学妹的私信,问计算机专业该怎么学、该怎么规划。今天统一回复一下,都是我走过的弯路和的经验。


一、打好基础很重要

1.1 数据结构与算法

这是计算机专业的根基,也是面试必考。

应该掌握的内容

# 时间复杂度分析
O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(2ⁿ)

# 基础数据结构
- 数组、链表
- 栈、队列
- 哈希表
- 树(二叉树、平衡树、B+树)
- 图(遍历、最短路径)

# 基础算法
- 排序(快排、归并、堆排)
- 二分查找
- 递归与回溯
- 动态规划(重点也是难点)

学习资源

  • 《算法图解》入门
  • 《算法导论》进阶
  • LeetCode 刷题(每天1-2道)

1.2 计算机网络

常见问题:

  • TCP三次握手四次挥手
  • HTTP/HTTPS区别
  • TCP和UDP的区别
  • 输入URL到页面显示的过程

1.3 操作系统

重点知识:

  • 进程与线程
  • 内存管理
  • 死锁
  • 调度算法

二、选一门主语言

不要什么都学,选一门深入:

语言 方向 特点
Java 后端/企业级 生态好,工作多
Python AI/数据分析/爬虫 上手快,应用广
C/C++ 游戏/嵌入式/底层 难但深入
Go 云原生/中间件 简洁高效
JavaScript 前端/全栈 统治浏览器

建议:至少精通一门,再了解其他。


三、多动手敲代码

3.1 不要只看不练

看教程觉得简单,一动手就抓瞎,这是正常现象。

正确姿势

  • 看完教程自己复现一遍
  • 理解了再写,不要边写边看
  • 遇到bug自己解决,查文档

3.2 做一些小项目

学以致用才是真的会:

  • 命令行小工具
  • 个人博客
  • Todo待办应用
  • 爬虫程序
  • 小游戏(2048、扫雷)

3.3 学会用搜索引擎

遇到问题先自己搜:

  • Google > 百度
  • Stack Overflow
  • 官方文档
  • GitHub Issues

四、Git和GitHub

必须学会

# 基础操作
git init
git add .
git commit -m "提交信息"
git push

# 分支操作
git branch
git checkout -b feature
git merge

# 协作操作
git clone
git pull
git fetch

GitHub

  • 注册账号
  • 把代码传上去
  • 参与开源项目
  • 学会读别人的代码

五、面试准备

5.1 校招时间线

时间 内容
大三下学期 找暑期实习
大三暑假 实习积累经验
大四上学期 秋招(最重要)
大四下学期 春招(补录)

5.2 简历怎么写

加分项

  • 实习经历
  • 竞赛获奖
  • GitHub活跃度
  • 技术博客

STAR法则写项目经验:

  • Situation:项目背景
  • Task:你的职责
  • Action:你做了什么
  • Result:取得什么成果

六、学习资源推荐

网站

  • MDN:Web开发权威文档
  • 菜鸟教程:快速入门
  • LeetCode:算法刷题
  • GitHub:代码托管

视频

  • B站:很全,什么都能搜到
  • 极客时间:付费但质量高
  • Coursera:国外名校课程

博客

  • 阮一峰的网络日志
  • 廖雪峰的官方网站
  • 美团技术团队博客

七、一些忠告

  1. 别只跟着学校走:学校教的是基础,市场要的是技能
  2. 多动手:看100遍不如敲一遍
  3. 学英语:看文档、查资料、读论文都要用
  4. 别闭门造车:多看别人的代码,多交流
  5. 保持好奇心:技术更新很快,持续学习是常态

有其他问题欢迎留言,学长知无不言。