怎样自学软件工程 (怎样接近科班)

科班毕业水平参差不齐,有些难定义。
有的人入学不久就跟教授进实验室搞科研,有的人本科期间就开始创业盈利,还有的苦练ACM多年最终夺牌出头,更多的则是像我这样翻不起波澜的失败人士:)
校园招聘大部分侧重的是毕业生的可塑性,这就要求学生的基础功底牢固,当然也有企业求之不得天才型学生,但那是极少数。
不过就我经历的来说,学校并未明显区分软件工程和计算机学科,只是在计算机基础上增加少许理论课。
本校开设的主要语言类课程有:C/C++,Java(包含Advanced Java 8 、JSE, JEE),C#
学校把重心放在Java上。对于以上每一门语言,每周都会有相应的实验课/习题课来进行检测。期末除了考试以外,还有课程设计。除了C/C++开设较早只要求写cmd窗口的XX管理系统,数据存在内存中,其余语言的都要求有前端和后端的交互云云。
计算机基础课程有:数据结构与算法,计算机组成原理,操作系统,计算机网络。
这四门结合起来正是大名鼎鼎的408计算机学科专业基础综合。
其中数据结构和计算机网络每周也配备实验课。数据结构要求学生能脱离课本独立实现线性表,栈,树,图的创建和增删查改,算法部分要求学生会写常见的排序算法(冒泡,插入,选择,快排,堆排序,归并,希尔排序),最短路径算法(Dijkstra会过程,Floyd会写),理解最小生成树算法(Prim,Kruskal)的实现过程,理解图算法(深度优先搜索,广度优先搜索)的递归过程。
计算机网络要求学生重点掌握计算机网络的三个模型(OSI/TCP/经典5层),理解各种协议的具体实现,主要是TCP/UDP,CSMA/CD,CDMA之类。
比较坑的是操作系统和计算机组成原理,这两门是是由外教全英文授课,所以讲得特别浅(讲难了大家听不懂),书用的是机械工业出版社的经典原版系列(蓝白封面)。
总的来说拿408的题刷刷就知道这几门自己掌握得怎么样了。
其余课程还有:Linux,数据库,Web前端设计,软件测试,软件工程概论,电子商务
看到的都会感觉就行了,这些课没怎么认真学,就不多说。

如果认认真真学完了以上的东西,应付考试肯定是不成问题的。
想找工作,难。
题主所在学校对面就是鹅厂,有想法的话多关注一下鹅厂的校招要求和面经,就能更有针对性地了解自己需要具备什么了。

■网友
我是非科班出身,现在已成为科班硕士,你现在大二,有足够的时间规划学习,下面个人学习流程建议(仅供参考,适合自己的才是最好的)首先不要眼高手低,本科打好基础,编程语言学习,C语言(看网络教程就好,比如C语言中文网,C primer plus);C++语言学习(C++primer plus 可做参考);可以看看界面框架(MFC,QT,BCG),个人极力推荐python语言学习;其次数据结构要学好,我当时是看大话数据结构入门的,然后严蔚敏版数据结构,基础算法要用代码实现;然后像其他的一些基础课程,比如计算机系统,组成原理,计算机网络,TCP/IP协议,也要学好…这些是基础技术资料,视频学习网上很多等基础打好后,可以学习其他的web前端知识等,机器学习,数据挖掘算法,分析数据,最好有做做实际项目,或者找机会去公司实习下,感受下开发项目的乐趣,最后慢慢你就有了自己的学习方法和目标!希望能帮到你!
■网友
小透明首答,软件工程大一新生。我们专业课的学习顺序是,c,cpp,JAVA,web开发,然后分方向,有大数据,人工智能,安卓开发,网页开发(好像大概就这四个方向),然后学校安排三个月实习,学校安排实习完就可以自己找实习啦。另外数据库,数据结构,离散还有一些其它专业课也是要学的,但我也不是很清楚什么时候学。我以后想走算法岗,所以就提前学习数据结构,还有离散。大概就这些吧,以后想到再补充 ?。有什么问题的话可以私信我,我尽力回答。
■网友


推荐阅读