小师妹一直觉得一个人会各种各样的软件是一件不得了的事情,可是软件那么多,对于新手菜鸟来说那就不是一般的迷茫了。于是小师妹很贴心的为大家翻阅各种帖子,各位大神们的方法都不一样,小师妹挑挑拣拣终于也是找到了!
1、数据结构与算法
这个不用多说,刷算法题是很关键的一项。
2、一门编程语言
例如Java,C++.掌握一门编程语言就像有一个趁手的工具。
3、操作系统
不论是CS还是SE,操作系统都是十分十分重要的基础课程。Deadlock,Semaphore等概念也是面试中常问的点。
4、数据库
数据库也是计算机领域的一个重要组成部分,很难有哪个程序员可以保证职业生涯中一定不会接触到数据库。所以我个人认为了解数据库的工作原理,存储方式,索引种类,关系型及非关系型数据库的区别,以及如何写SQL是十分重要的~
5、网络
了解网络通讯的过程,了解一些常用的协议构成(如TCP/IP,HTTP),有助于了解server端及client端的工作原理。
6、编译原理
这个我个人认为也是计算机非常非常重要的一门课程,不过可能很多人认为实际工作中可能会用不到,或者已就业为目的的话,短期内收益可能不大,所以优先级稍微低了一些。
7、计算机及网络安全
我觉得作为一名软件工程师,开发中的安全意识是十分重要的。最简单的例子:防止SQL注入。
以及密码的存储及传输方式,了解Hash的工作原理,以及加盐(salt)存储的hash的好处。此外还可以掌握下如何验证、如何进行权限的管理(例如RBAC模型等)。
8、软件工程及软件测试
这类课程可能会比较枯燥,很多概念,很像文科课程(反正我本科是这样,在美帝没有选这类课程,不知道授课方式及内容是否有大的差别)。不过总体来说了解敏捷开发,Scrum等概念,能够熟悉JIRA等项目管理软件的使用,对于工作中上手项目是十分有帮助的。
9、人工智能AI/机器学习ML/数据挖掘DataMining/机器视觉CV/大数据BigData
这类课程属于比较火的领域,个人的建议是可以作为兴趣了解一下,拓展一下视野,但是作为就业目标则可能会比较困难。
10、一门高级开发课程
例如云计算(CloudComputing)、移动端开发(Android,IOS)、网页开发等。可以增长一些项目实战经验,写在简历上。同时了解一些比较火的技术,比如Amazon的AWS等。
所以说,学霸们,这些内容你们也知道吗?
反正我是不知道,你们负责写程序,我只负责美就行了
学IT首选北大青鸟
北大青鸟中博学院()