从我决定学软件开始,这是我的第一个三年。2013年-2016年。
凭借着我对科技的兴趣,三年前我选择了软件工程这个专业,并立志做一名专家。
这三年,学校开设了又多又杂的课程,每个老师都各抒己见,给我们讲他对他所教课程的见解,但并没有哪个老师给我们讲解过这么多课程的统一思想在哪里。
下面我说一下,这三年都学习了那些跟专业相关的且我认为有点用的书。(杂七杂八的课一堆,我就不说了)
大一上,全是高数大物这种基础课。鉴于自己强烈的想学技术但又不知道该从哪开始学起的状态,自学了office,ps,会声会影等一些常用软件的使用。
大一下,
c语言。这本书很厚,但课时很短,老师只是很草率的讲了讲基础,我个人将此书看了三遍,代码全部都打过一遍,个人认为比较重要的指针,结构体,因为学校课时安排较短,都被老师略过了。。。。无语。。。。我个人认为c语言这门基础对于后来,学习面向对象的c++,java的理解都很有帮助。
大二上,
电工。这本书感觉学校选偏了,学的时候莫名其妙,老师是个资深的教电工的年长的老师,问他上的这个课跟计算机有什么关系,他也说不上,他只能告诉我们学好这个电工,以后能干嘛。。。。后来的学期学了coa计算机组成原理,才明白开这门电工课的用意,只可惜学校开反了,结果又是学的莫名其妙的,只能隐约感到,这俩有联系,但具体的忘了。。。
线性代数。这本书学校讲的时候感觉很简单,本以为这只是对考研同学开的应试课,但后来我在看图片压缩技术的时候,感到了线代很有用。
离散数学。这本书用的是英文教材,学的时候除了老师只讲一些概念,自己也没有对此做更深入的学习,只是单纯的记住了自反,闭包等等抽象的概念。
自己看了,计算机科学导论,个人认为这本书作为软件的启蒙书籍不错,不论是硬件还是软件方面,他都做了一个入门解释,让你从宏观上明白这都是些什么东西,要是自己感兴趣,就再自己去深入了解。
c primer plus,c语言的经典书籍,看完以后感觉对数组,指针,结构体,写程序时的函数声明,函数定义,都有了新的认识,推荐。我个人感觉我看的比较粗糙,这本书要是细看,挺耗时间的,不过经典的基础值得拜读,就算以后用不上,对于以后学习的理解工作也是很有帮助。
大二下,
c语言版的数据结构。同样课时很短,稍微复杂的算法,都被略过没讲,简单的也只讲思路,讲过几次代码,老师感觉效果不好,后来就只讲思路了,当时我把老师讲的算法都在电脑上实践过,但因为后来基本没怎么用,除了快排,冒泡,二分这种常见的算法,其他的都记不得了。
C语言版的课程设计。 课设内容:大整数的计算。方法:把大整数放进数组中当字符进行计算。记得当时自己算大家中学的不错的,所以很多同学都找我讲,我至少给同学讲了15份以上。因为怕老师说抄袭,所以大家都尽可能的不一样,所以我也从中学到很多不一样的想法。(例如:1、有的同学图省事,十几行就解决了,很多地方不规范但是目的达到了。2,、有同学考虑的比较规范,比如把函数声明和函数定义分开,分别放在头文件和源文件中。3、有的同学为了避免重复,专门把简单的搞得很复杂。这里面我学到的经验就是:规范简单易懂的最好)
概率统计。这会大数据,云计算,人工智能已将开始火了,感觉概率统计会不会跟这些有点啥关系就好好听了听,但直接关系,我还没感觉到。
数据库原理与应用。学习用的SQL Server,学习了如何建表,增删改查,事务,各种查询语句等等。经过后来的实践,也证明这些是最常用的。
汇编语言。学的是386以后的机型,用的masm32。学了一些dos命令。学完以后感觉对硬件与软件的衔接,对低级语言又有了进一步的认识。
日语。为什么要提日语呢,因为我们是大连的学校。大连对日的企业比较多,所以在大连这边学二外通常都学日语或韩语。当时怀着一腔热血去上这门选修课,最后只学会了50音。。真是希望越大,失望越大。。。。不该对一周一次的选修课抱这种幻想。。。。。
大家都说C++是基础,于是买了一本c++ primer 自学,学了一半学期结束。。。对类,对面向对象有了初步的感觉。
大三上,超级无敌闲的一个学期,自己跟着网上的视频用java做了些GUI小游戏。
coa计算机组成原理。学完后,对电脑硬件多了一点理解。学的时候老师频繁提到汇编语言和数字电路。。。。终于知道学电工的用意,可是当时电工老师却不知道,导致大家都以为电工没用。。。。也没很认真的学习。
java与面向对象程序设计。这是我这学期最认真学的一门课,每天闲的没事就看java,照着书照着网上的教程打代码。不能说学的多精但是基本理论都看过至少一遍。
软件测试技术。用junit学的网页的端口压力测试。大多理论。实践很少学到了一些@before @after 等标签。和黑盒白盒测试单元测试集成测试等等以及如何编写测试用例。
软件工程导论。纯理论的知识。比如:瀑布模型,建增模型等模型,uml都有哪些图,黑盒白盒测试等等等等,大而全的理论知识。课时期间写过一份需求分析报告,期末考默写概念,编写测试用例。
数据库课程设计。自定义题目用sql Server设计一个数据库。我设计的是一个物业管理数据库。用到了建表,增删改查,触发器,事务处理,这些主要功能。
实习经历,在学校里的一个培训机构,做了两个月的实习生,学习了网页制作,用到了html css js java sql语句 mysql 数据库 tomcat 服务器,做过增删该查的页面,明白了页面的业务流程,自己跟着网上学习了Struts2 框架,了解了一点hibernate框架。
参加比赛经历,这学期和另外两个同学,组了个三人小团队,参加了工信部组织的蓝桥杯大赛 做了个网页获了个省级二等奖 用到了 html css js servlet mysql 等技术。
大三上,课超级满的一个学期。
现代企业管理。 为什么我要先提这个与软件无关的课呢,是因为这学期虽然课满,但我也挤出了时间去大连的互联网创业公司做了实习,本来是想去打代码,但是打代码当时用不着我,但毕竟闲着也是闲着,就去做兼职了,我做过微信的公众号的运营,我感觉我还是有一些做营销的天赋的。还做过软件的线下推广工作,一个人挨家挨户的跑,给别人介绍软件。教他们使用。我感觉我是一个既有耐心又很认真的人,当时这家公司不是让我打代码但是我还是做了一阵就是感觉老板很认真,我很欣赏。绕远了,话说回来,做完实习,我感觉现代企业管理这门课给了我很大的启发,做一件事的时候,团队合作非常重要,而管理者作为一个领导,要统筹这一切,他要在人,钱,物这三者之间,巧妙地找到一个平衡点。这让我感到管理是一门艺术。一两句话也说不清,总之我感觉学习技术之余看看这种书,很有收获。
计算机网络。这门课用的英文教材,学完一遍以后 稍微明白了点 各种网络协议,http ftp 等等等等,因为用的英文教材所以不是很懂。但我感到这是门很重要的课,所以我又买了本中文教材,准备自己好好看几遍。感觉这门课很重要。
C++程序设计。c++基础知识,课时很短讲的很少,还没有我大二自学看的深。此时还在犹豫以后到底是走c++ 还是java。
windows程序设计。就是c++桌面应用程序,基于消息处理的程序,学完以后感觉从宏观上看就是winmain winproc 一个主函数,一个消息回调函数,所有的消息处理都放在switch case 语句中,剩下的逻辑由c++填充。
软件测试工具与实践。c++测试技术,用的parasoft。
UML统一建模语言。节节课上机画图。会一点但理解不深。
软件工程实践。与uml课一起最后用中间件技术做了一个飞机售票网页。
软件体系结构。基本上是纯理论,学完后对架构稍有理解。
中间件技术。servlet jsp ajax derby数据库 等等 ,打通了网页制作的脉络,但细枝末节还没有深入学习。
java课程设计。用Java做了一个GUI的超市管理系统,使用的是derby 数据库。
参加了老师组建的java软件小组,主要是做java嵌入式的 ,做了个GUI桌面考试系统。
这样看来三年也学了不少技术,我突然明白一件事,我学了这么多都是被学校带着跑, 没有找到自己想走的方向持续的研究,以后我想先走移动开发,从Android开始认真钻研下去,下一个三年我希望自己能变得更好。