工程软件:过来人的真实分享

一句话概括:开发工程领域专业软件的

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 专业的核心能力

工程软件培养的核心能力包括:

  1. 编程开发能力:精通C++,能开发复杂的软件系统
  2. 图形学能力:理解三维建模和渲染的原理
  3. 工程理解能力:理解一个具体工程领域的知识
  4. 算法设计能力:设计和实现高效的算法

二、大学四年怎么过

大一:打基础,编程入门

上学期核心任务

刚进大学的第一个学期,核心任务就是学会编程。

必修课程: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 关于专业选择

选工程软件之前,先问自己三个问题:

  1. 你喜欢编程吗? 这是核心能力,不喜欢编程的别来。
  2. 你能接受高强度学习吗? 这行学习曲线陡峭。
  3. 你对工程和软件的交叉感兴趣吗? 需要同时懂两个领域。

6.2 关于行业前景

这行是真的有前途,但也是真的需要真本事。

有几个特点:

  1. 技术壁垒高,不是随便培训几个月就能转行的
  2. 越老越吃香,经验积累很重要
  3. 可以接私活,做插件、开发工具

但也有挑战:

  1. 学习曲线陡,需要长期投入
  2. 纯土木背景转行难,编程能力是关键

本人某985工程软件方向毕业,现在在CAD软件公司做研发,以上都是个人经验,供你参考。不同学校情况可能不一样,建议找自己学校的学长学姐问问具体情况。