概述
作为一名本科机械电子,研究生研究计算机视觉方向的211应届毕业生,如何才能从事C/C++软件开发类的工程师呢?如果能有机会进入大厂呢?跟大家一样,非科班出生的我一开始也很迷茫,经过大量查找资料,终于有了一条明确的方向,这里记录下来。
软件基础模块主要可以分成六个大的方向:C++基础、数据结构与算法、操作系统、计算机网络、数据库、设计模式等。跟大家一样,刚开始看到这些概念的时候,我也是懵比的,本科学的C语言,也顺利通过了江苏省计算机二级,但是C语言的学习一直停留在理论阶段,只能实现书本上的一些例程,完全不知道现在主流的一些软件,比如王者荣耀、抖音等游戏是怎么开发出来的。最多也就只能玩玩单片机,写写C51的一些程序,但是也就仅仅是玩玩而已。
后来去了NUAA读研究生,研究方向是视觉方向,要用opencv视觉库、QT等工具开发一些图像处理上位机软件,接触到了C++,对C++也有了一定的了解,比如面向对象的特性(封装、继承和多态)、STL标准模板库、泛型编程等概念。可以说具有一定的C/C++语言基础,原以为会语言就能做出一些东西,后来了解到语言只是一门工具,不管用Java、C++、go还是什么别的语言,开发大型项目主要还是看其他几个部分,即 ”基础五大件“ 。