关于大四以及未来的思考(马上就要大四了)(1)

刚上大学的时候,读的还不是计算机的相关专业。是在大二开始的时候,一次机缘巧合的情况下,开始进入了软件工程这个专业。

我本身在之前就对编程十分感兴趣,也自己自学过C语言和Java啥的。在加上学校的软件工程专业在大一的时候也没教啥专业课,就是一门C语言。所以听起可来也不是十分费劲。

不过那时觉得,软件工程就是敲代码。上课的时候,老师在上面讲,我就在下面默默的敲着代码。整个大二基本就是这么过来的。不过这样子倒是让我对各种编程语言都有过接触。咱是一个十分喜欢新东西的人,所以总是去学习各种编程语言,几乎所有主流的编程都学过:Java、C#、C、C 、Python、Php、Swift以及前端的那一套。学的很杂,除了Java和C 外其他的现在都很少回用了。不过这样子倒是锻炼了一个能力:可以在很短的时间内掌握一门新语言,并把用于实际开发。想咱现在每天都在推广的Kotlin从开始学到现在,也就不到一个月的时间。咱自己做的那个网站的后台也是完全用Kotlin写的。

这里得吐槽一下,需求分析和软件工程这两门课学起来真的挺烦人的,虽说这对以后工作的持续发展挺重要的,就是这些纯理论的东西感觉很虚。学的应该都知道,这两个的内容基本就是一个又一个文档。记得好像还有啥软件过程模型,什么瀑布模型、螺旋模型、敏捷开发等等。还有各种不易理解的名词:基线、里程碑、需求变更控制……

自己后来写些小程序的时候也尝试着去写文档,绘制Uml图。不过可能因为规模太小的缘故,做这些事感觉不到的对项目开发有什么特别的帮助,反而延长了开发周期。可能是没有接触过那种比较大规模的项目吧,对这两门课还是不能很好理解。

大三开始学的计算机专业的四件套:数据结构、操作系统、计算机网络、计算机组成原理。这四门课还是挺有意思的,虽然大部分知识还是偏向于理论,但还是有一部分知识能用于实践。首先是数据结构,有人可能会觉得纳闷,现在几乎所有语言的基本库中都对那些学过的数据结构进行了实现,那么我们花时间去学这一门课究竟有什么意义呢?在我目前的经验看来,数据结构对于现阶段的我来说,最大的用处就是能够帮助我更好的理解某些算法。像咱之前稍微接触过一下压缩算法,其中有一种就是基于哈夫曼树实现的。

对于操作系统和计算机组成,这两们比较偏向于计算机的运行机制和硬件知识。内容都太过底层了,学习的内容可能之后都不会接触到了。唯一有点用处的就是操作系统中的进程了,对咱理解和使用多线程有很大的帮助。

最后一门计算机网络可是一本大部头哦,那书又大又厚的。从物理层开始,一路经历了数据链路层、网络层、传输层以及最后的应用层。感触最深算是网络层中的IP路由和传输层的TCP协议了。使我对那些网络应用的通信机制能有一个比较粗略的理解。

上个学期的一门课,对我现在编程时设计那些对象的关系和结构有长足的帮助。想必大家应该都已经才出来这是一门什么课了。没错,就是设计模式。其实,我之前就已经零零散散的学过里面的内容,现在借助学校开这门课又可以系统的学一遍。

最开始学的时候,总是想往代码中硬套一些设计模式进去,一次提高代码的逼格。不过伴随着编程经验的积累,对于设计模式的理解也更加深刻。不会总想着这个段代码,我可以使用什么模式;而是在代码写完之后发现,咦我这里使用了这种设计模式啊。这种感觉真的特别的棒,把设计模式融入到平常写代码的过程中。不过要想做到这一点,你首先得对个总设计模式的特点和其适用场景有充分的理解才行。

大四了,在去学校的路上写下这一篇文章,就当是对过去几年的编程生活的一个总结了。大四没有课程了,该找工作的同学都准备去找工作了,该考研的同学也每天不断的刷题,为考研做准备。

,