菜单

软件工程学生需要掌握哪些技能?

duckflew
发布于 2021-05-13 / 221 阅读
0
0

软件工程学生需要掌握哪些技能?

软件工程学生需要掌握哪些技能?

面向对象程序设计(OOP),并会通过具体的编程语言(建议Java和C#二选一)实现。如果要入门,推荐网易云课堂北京大学唐大仕老师的《C#程序设计(上)》。《C#程序设计(下)》10月12日开始。不过这个课程比较基础,需要进阶的,可以学习北京理工大学 @金旭亮 老师的《面向对象软件开发实践之基本技能训练》和《面向对象软件开发实践之专业技能训练》。不过真的有难度。Java的话可以考虑浙江大学 @翁恺 老师的《程序设计入门—Java语言》与《Java语言程序设计进阶》。当然,顺带掌握语言相对应的 IDE,如 Visual Studio 或者 MyEclipse。

基本的数据结构与算法。可以看网易云课堂上浙江大学 陈越 老师 和 何钦铭 老师的《数据结构》。也可以看 学堂在线 上清华大学邓俊辉老师的《数据结构》。

数据库,至少掌握SQL以及一个主流的DBMS(MySQL,SQL Server,Oracle等)的使用,具体种类取决于你打算主要发展的技术路线,如你选择C#,那么可以考虑SQL Server。如果需要更进一步的提高,如如何设计较好的数据库,可以学习王珊《数据库系统概论(第5版)》中关于数据库设计规范(主要是范式)方面的章节。当然需要大量的范例做补充。可以多看看 http://toutiao.io 或者 博客园 上的文章。

设计模式。学了这个你才能很大程度上加深对于OOP的理解。可以从《Head First设计模式》或者中南大学刘伟老师的几本设计模式书入门。具体请看我在另外一个问题下的回答:初学软件设计模式应该读哪本书? - 知乎用户的回答

软件工程。推荐 @邹欣 老师的《构建之法(第2版)》。也可以关注他的微博。还可以看 爱课程 上清华大学软件学院 @刘强 老师的《软件工程》课程。

软件测试技术。基本概念可以看同济大学软件学院 朱少民老师的《软件测试方法和技术(第3版)》,他在网易云课堂也有相应的课程。也可以上 Coursera 学习南京大学软件学院 陈振宇 老师的课程《软件测试》,不过有难度。现在也有不少公司开始注重单元测试,各种单元测试框架(如xUnit)学习起来都很简单,难点在于用例的设计,而用例的设计是建立在各种软件测试方法(等价类、边界值、判定表等)基础之上的。

一些软件工程方面的辅助工具,如版本管理工具 Git (经常和 GitHub 一起出现),推荐廖雪峰的教程,如果英语水平好也可以看这个:http://campus.codeschool.com/courses/mastering-github,JIRA 等缺陷追踪系统等。

最好掌握 UML。可以学习 Coursera 上北京大学的《面向对象技术高级课程》,非常好。

最好掌握一门Web编程语言(http://ASP.NET/PHP),JavaScript和一个前端框架。这个资料就很多了。也可以看 金旭亮 老师的课。

Office三件套——Word、Excel和PowerPoint。看过不少准毕业生甚至工作了几年的毕业生做的文档和幻灯片,无论从低劣的审美上还是粗糙的格式上简直都让人无法直视。

作者:刘慰
链接:https://www.zhihu.com/question/20084235/answer/65561647
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


评论