工程软件:过来人的真实分享
一句话概括:开发工程领域专业软件的。
CAD、CAE、BIM、EDA,但凡跟工程沾边的软件,都属于工程软件的范畴。这个专业学得很杂,计算机要学,力学要学,数学要学,还得懂一个具体的工程领域。
我们学校这个方向,毕业生有去软件公司的,有去互联网的,也有继续读研深造的。整体来看,这行缺人,但缺的是真正能写代码的人。
我是某985高校工程软件方向2020届毕业生,现在在某CAD软件公司做研发工程师。这篇帖子把我四年踩的坑、走过的弯路、所有干货都分享给你。
一、工程软件到底学什么
1.1 专业核心课程列表
工程软件是计算机与工程领域的交叉学科,课程设置兼顾编程能力和工程知识。
| 课程类型 | 主要课程 | 难度系数 | 重要性 |
|---|---|---|---|
| 编程基础 | C/C++程序设计、数据结构与算法 | ★★★★★ | ★★★★★ |
| 计算机核心 | 操作系统、计算机网络、数据库 | ★★★★ | ★★★★ |
| 图形学 | 计算机图形学、OpenGL、GPU编程 | ★★★★★ | ★★★★ |
| 工程基础 | 理论力学、材料力学、有限元原理 | ★★★★ | ★★★ |
| 软件工程 | 软件工程、UML、设计模式 | ★★★ | ★★★ |
| 工具技能 | Qt/MFC、CUDA、VTK | ★★★★★ | ★★★★ |
1.2 哪些课最重要
根据我四年的血泪教训,以下几门课必须学透:
C/C++程序设计——这是工程软件开发的核心语言。指针、内存管理、STL……这些概念必须烂熟于心。
数据结构与算法——面试必考,也是写出高效代码的基础。链表、树、图、各种排序和搜索算法必须掌握。
计算机图形学——CAD/CAE软件的核心基础。三维建模、渲染、几何变换都依赖图形学知识。
有限元原理——不懂力学做不了工程软件。CAE求解器的开发需要扎实的有限元理论。
1.3 专业的核心能力
工程软件培养的核心能力包括:
- 编程开发能力:精通C++,能开发复杂的软件系统
- 图形学能力:理解三维建模和渲染的原理
- 工程理解能力:理解一个具体工程领域的知识
- 算法设计能力:设计和实现高效的算法
二、大学四年怎么过
大一:打基础,编程入门
上学期核心任务
刚进大学的第一个学期,核心任务就是学会编程。
必修课程:C语言程序设计、高等数学(上)、线性代数、计算机导论。
C语言是编程的入门语言。指针、数组、函数、结构体……这些概念必须学透。
下学期核心任务
必修课程:C++程序设计、高等数学(下)、数据结构与算法。
C++是工程软件开发的核心语言。面向对象、STL、智能指针……这些概念必须掌握。
大二:深入编程,核心课程
上学期核心任务
必修课程:数据结构与算法(下)、操作系统、计算机组成原理。
数据结构与算法是面试必考,也是写出高效代码的基础。
下学期核心任务
必修课程:计算机网络、数据库原理、理论力学。
理论力学是有限元的基础。
大三:专业方向确定
上学期核心任务
必修课程:计算机图形学、有限元原理、软件工程。
计算机图形学学习OpenGL渲染、三维建模的原理。
有限元原理学习有限元方法的数学基础。
最重要的事:做项目+刷算法题。
下学期核心任务
必修课程:GPU编程、Qt/MFC开发、毕业设计选题。
GPU编程学习CUDA编程,做CAE加速。
大四:决定方向
上学期核心任务
全力冲刺个人目标——读研就备战考研/保研,工作就刷LeetCode+做项目。
秋招:
工程软件秋招的对口岗位包括:
- CAD/CAE软件公司:研发工程师
- 互联网公司:后端开发
- 大厂:技术研发岗
下学期核心任务
完成毕业设计,签约就业协议或等待录取通知。
三、考研还是就业?
3.1 强烈建议读研
说实话,我强烈建议读研。
本科阶段学的东西太杂了,编程会一点,力学懂一点,软件用过一点,但没有一样特别精。而工程软件公司的核心岗位,比如CAE求解器开发、图形学算法岗,都是要研究生起步的。
3.2 读研适合的人
- 想进达索、西门子、ANSYS这些国际大厂
- 想搞CAD/CAE内核开发
- 想进华为2012实验室或者其他大厂的核心研发岗
3.3 直接工作适合的人
- 做软件测试、产品经理、技术支持
- 去互联网公司卷
- 能力特别强,本科就能独立做项目
3.4 过来人的忠告
读研的话,建议去计算机强校,软件工程、计算机科学与技术都行。别去纯土木院校的工程软件方向,学不到东西。
四、必须学会的东西
4.1 核心技能
C++必须精通:这行主要用C++。指针、内存管理、STL、智能指针必须掌握。
数据结构与算法:面试必考。LeetCode刷起来。
计算机图形学:OpenGL或者DirectX。三维建模和渲染的原理必须理解。
有限元原理:不懂力学做不了工程软件。
4.2 加分项
CUDA编程:做GPU加速,很加分。
Qt或者MFC:做桌面端开发。
机器学习:往智能CAE方向走。
有一个能拿出手的开源项目:这是简历上的亮点。
五、行业前景分析
5.1 行业现状
非常好。
国家战略需求: 工业软件是”卡脖子”技术,国家现在大力扶持。达索、西门子这些软件,动辄几十上百万,国产替代空间巨大。
5.2 就业方向
| 方向 | 单位类型 | 薪资范围 |
|---|---|---|
| CAD/CAE软件公司 | 广联达、品茗、达索、西门子 | 硕士15-30k |
| 互联网公司 | 字节、腾讯、阿里 | 本科20-40k,硕士30-60k |
| 华为等大厂 | 2012实验室、终端云 | 硕士30-60k |
| 芯片/EDA公司 | 华大九天、Synopsys | 硕士20-40k |
5.3 证书建议
这行不看证书,看能力和成果。有LeetCode刷题量,有GitHub项目,比任何证书都有说服力。
六、过来人的忠告
6.1 关于专业选择
选工程软件之前,先问自己三个问题:
- 你喜欢编程吗? 这是核心能力,不喜欢编程的别来。
- 你能接受高强度学习吗? 这行学习曲线陡峭。
- 你对工程和软件的交叉感兴趣吗? 需要同时懂两个领域。
6.2 关于行业前景
这行是真的有前途,但也是真的需要真本事。
有几个特点:
- 技术壁垒高,不是随便培训几个月就能转行的
- 越老越吃香,经验积累很重要
- 可以接私活,做插件、开发工具
但也有挑战:
- 学习曲线陡,需要长期投入
- 纯土木背景转行难,编程能力是关键
本人某985工程软件方向毕业,现在在CAD软件公司做研发,以上都是个人经验,供你参考。不同学校情况可能不一样,建议找自己学校的学长学姐问问具体情况。