文章目录

  • 大学四年软件工程专业的学习回顾
    • 说在前面
    • 缘定软工
    • 从C开始
    • 初见Web三剑客
    • 从面向过程到面向对象
    • 再遇面向对象
    • 一波三折
    • 再出发!C#
    • Unity,AR
    • 工作?读研?
    • 痛定思痛
    • 总结

大学四年软件工程专业的学习回顾

说在前面

四年前,对计算机一无所知,却下定决心填报软件工程专业;即便现在互联网的红利已经消失,寒冬却呼啸而至,也不曾后悔当初的选择;

回顾并总结这四年的学习轨迹,一方面是希望能够帮助到后来者;另一方面,也是总结得失,希望以后在学习路上自己能够吃一堑长一智

缘定软工

15年高考完毕,成绩虽然比预计的要低,但是也还可以接受;在填报志愿这一方面,父母给了我最大的自由和支持:所谓自由,是指学校、专业都以我的意见为主;所谓支持,是指我不用考虑经济因素。感恩父母的话,不适合写在这里,但是该有的态度还是要表明的~。最后,六所学校都以软件工程专业为第一志愿;

众所周知,软件工程专业的学费比同一所学校内其他专业的学费要多很多(嗯,我们专业注册费3500,但是有的专业注册费仅150左右,仅做数量上对比,不做质量上评论)。所以,学费问题,多少也对我当时的选择有一点点影响,不过,有了父母的支持,我还是决定选择软工这一专业;

实际上,我的成绩加上我所在高中在省内的一点点影响力,我可以去一个学校排名比母校更好看的大学(在我的心中,母校最棒!不接受反驳),但是那所学校在我们省没有软工的招生名额,也就是意味着,我需要报其他志愿,入学后再转专业;即便见过了负责招生的老师,也得到了所谓的“承诺”(当然是口头的啦),却最终还是选择了以专业为主、兼顾学校的策略,第一志愿选择了现在的母校~

结果有惊无险,所谓“有惊”,是因为母校公布招生结果是最晚的,那几天提心吊胆的,一度以为会滑档;所谓“无险”,是说最后顺利来到最美的母校,学习喜欢的专业~

从C开始

高考完的假期里,我最大的失误就是放松了对英语的学习,最正确的决定就是开始了C语言的学习;所谓学习,也谈不上多么深入,甚至连“Hello World”级别都算不上,为啥?因为假期里,我的C程序并没能跑起来,也没能看到令人激动的“Hello World”。

但是对于变量、语句、流程控制以及函数等基本概念的理解都是那个时候、从C开始的,而这些概念在任何一种语言中都是基础性质的,所以可以说我对编程的理解是从C开始的;从C开始,却再也没回去过。

我用的第一个IDE是Code Blocks。现在我知道,它是一个开源、跨平台C++、C集成开发环境;它的Download页面提供很多种下载链接。没错,我当时选择是第一个链接下载安装的,第一个嘛,总靠谱点吧,然而实际上并不。第一个链接是不包含GCC/G++ compiler 和 GDB debugger的。也就是说,我下载的只是一个。。。编辑器?而不是一个完整的IDE。于是暑假我只好“纸上谈C”了。

初见Web三剑客

入学后,报名了学校一个著名的校级技术社团。考核内容包括在codecademy网站上自学Web 三剑客、用Python写一个简单的成绩录入程序,提供增删改查功能,数据存储到文件;这些都顺利完成;

接下来的考核是模仿一个网站的首页,只能手写样式;结果就挂在这里了。。。。。。因为页面太丑。。。这是分方向考核之前的最后一道考核,我没有通过。我尽力了,达不到要求,我也很无奈,但是我努力过,我争取过,我就不后悔。

这次考核里,我初见Web三剑客,但是总觉得自己掌握的内容很“虚浮”,就是摸不透的感觉。特别是在浏览器兼容方面,不明白为什么一样的代码,效果就是不一样,也不明白为什么网上的解决方案有效,为啥无效。给人一种无法“控制”的无力感。

对于HTML和CSS,我现在的感觉仍然是一潭深不可测的水,捉摸不透;对于JavaScript,还算有感觉吧,虽然C有明显的区别,但是因为有前面python的简单铺垫,对于其弱类型特点也还可以理解;

没能加入技术社团,对我来说既是一件好事,也是一件坏事。

好事是因为我一直是一个自主性比较强的同志,所以可以自主选择学习的内容,至于学习资料也不用发愁,图书馆、网上都可以找到,所以幸福感还是蛮强的;坏事就是,学习路上少了专注的方向,没有一个明确的职业规划。

自己的定位是全栈开发人员,可是学的知识的确是够“广”,但是都不够“深”,没有什么可以拿出手的技术。这显然是一条不那么正确的发展道路,而这种情况也影响到了我的毕业选择;真正合理的全栈发展道路一定是“一专多长”,先一后多,而我的情况恰恰是先多无一。有一句话说的很好:“虽然当前的路,可能完全没有必要走,但是走路的能力也是在这一步步中锻炼出来的”;在学习过程中养成的思维习惯是终身受用的,也谈不上吃亏,只是这样选择就少了一些;

从面向过程到面向对象

结束了技术社团考核,也询问了学长学姐,学院关于编程课程的安排,知道了我们并不学C,必修C++,然后是Java,另外还有C#、OC等选修课。

于是开始了C++自学之旅;印象中所学书籍是《C++ Primer Plus 5》吧,知道了C++属于面向对象的语言、C是属于面向过程的语言;关于类和对象的最早概念是来自考核中关于Python任务的,虽然绕了一点,但是还是有个大概的理解。这对于C++的学习倒也是有帮助的;

C++的学习基本上是自己完成的;此时对面向对象的理解还非常浅,一是因为没有系统的学习相关内容,二是因为代码量少,对于面向过程的缺点没有体会,只是理解。以为面向对象就是把数据和操作数据的方法放到了一块,并没有什么特别的地方,更没有意识到其对系统设计、系统维护等方面的贡献;当老师教授C++的时候,我。。。。。。在自学Java。(现在看来,这样很不好的)

使用C++完成的第一个“程序”,是一个日历程序,提供输入年月日,输出第几周、星期几这一功能;

不管怎么说,也是从C的面向过程,过渡到了C++的面向对象;

再遇面向对象

一本好书,对于学习,特别是自学来说,真的很重要!因为学习实际上也是一种投资:至少要付出时间,而有些教材客气点说是不敢恭维,不客气地说就是误人子弟。

如果说通过C++学习面向对象是主动的,那么这次学习面向对象则是被动的。起因是这本书:《整洁代码之道》。不论是学习C还是C++,书中的示例代码都是以讲解知识点为主,也就是代码谈不上什么规范性,像int a=12;这样的变量命名随处可见;虽然它只是想表达一种声明变量并赋予初值这一语法知识,但是变量a的确毫无意义。

以前看书是在学语法,而《整洁代码之道》则是在讲写代码的规则;一段时间里,我没能从两者之间的区别中醒悟过来,那段时间也不敢或者不愿写代码,因为命名变量时,我只能想到a,我知道它不好,却无能为力;因为对于好代码没有任何储备,也不知道该怎么写;于是,就转向了理论学习:面向对象和设计模式;不搞定这个概念,Java也学不下去。

好在,这次遇到了一本很棒的书,这篇文章里也有提到;这次,算是对面向对象和设计模式有了自己的一些理解;继续学习Java的障碍被扫除,对烂代码的恐惧也渐渐消失,终于又能开心地写代码啦;

一波三折

Java学习结束后(基本内容),我开始了Android之旅——申请了一个创新创业项目,想自己写一个实用的APP——旧书交易;

从0开始,安装Android Studio、选择相关书籍;照着示例代码练习;

随着Android的学习,我意识到用户之间交换数据的问题只靠Android并不能解决;

嗯,需要一个数据库来存储数据;于是开始学习MySQL的相关知识,SQL语法等;

可是仅有存数据的地方还不够,还需要通过程序实现读取、存放啊;于是我开始学习PHP。。。。为啥选择PHP呢?因为感觉PHP可以实现操作MySQL的功能,而我也正好需要完成这一功能;于是就开始学PHP;

通过PHP是能操作MySQL数据库了,可是Android怎么把数据交给PHP程序呢?到这里,我才有了前端、后端的概念。。。围绕这个问题,也了解到了HTTP请求、MVC架构、JSON等知识点;可是代价似乎有点大。。。。真是顺藤摸瓜,那种解决了一个问题又冒出另一个问题的感觉让人既激动又头大。。。

好在,经过那段时间的折腾,道路越来越清晰、知识点也开始相互连接,可是剩下的路并没有变的好走;

也许是方法不对吧,对PHP突然失去了继续学习的念头,特别是在对Java、设计模式等的了解逐渐深入的情况下,觉得PHP不是很规范,很多地方看不透,理解不了,那种感觉就像是“初见Web三剑客”;看不透的,就不再去看。。。。

我把PHP实现的后台功能,用Servlet重写了一遍。。。。。。其实主要是操作数据库嘛,就是CURD,但是我不知道用框架,还是在用最原始的JDBC。。。。。。现在回想起来,正是超级蠢。。。。这算是没有人带路的一个后果吧:只想着如何实现功能,却从未想过如何更快、更好地完成任务;

从PHP迁移到Servlet(为啥不用Spring MVC?为啥就那么蠢?我现在还是搞不懂当初自己的愚蠢,只能说,自己眼界太窄吧,又没人带路;摸爬滚打,走弯路都是必然)后,终于可以回到Android了。。。

可是问题又来了:页面如何组织?页面需要哪些数据?简而言之,UI如何设计?那个时候的我,算是真的无力回天了。。。如果UI可以做的很好,技术社团最后的那个页面考核我能过不了?

绕了一个圈,学了很多内容,可是最初的心愿还是无法实现。。。。。。

项目最后也到期了,只好把已经完成的内容包装包装,水一水文档。。。。。。就这么结束了。很不舍,很无奈,但是UI我是真的做不来啊,我这次。。。没能解决遇到的问题。

花了很多时间和精力,最后所获无几,回到原地。。。。。。甚至怀疑当初为啥要折腾?安安稳稳地按部就班不好吗?为了学习这些内容,要知道,牺牲的不止是时间,还有机会成本。比如,课业成绩也受到影响(嗯,高数下差点挂)、社团活动等等,不禁问自己值不值?

那段时间真的是大学四年的低谷——心中的光和前进的渴望都消失了。。。。。甚至想,甘于平凡,或许是最好的选择,起起落落,真是记忆犹新,让人难忘

再出发!C#

在选修课方面,我选择了Windows编程和C#,而不是OC。这个时候,我意识到了自己的问题所在:杂而不精。我不想再学新的语言了,Java、C++、PHP、JavaScript、HTML、Android,从数量上来看,ok啦,现在应该提质量啦;OC的话,大概率要做IOS开发才会用到,没有开发条件,也没有开发兴趣;Windows编程使用MFC,属于C++系的;C#和Java接近;

在C#方面,基本上就没有什么额外的折腾了,只是完成了老师的基本要求,当时大作业是自选开发题目的,我选择了蜘蛛纸牌,那个时候,好像又对游戏产生了兴趣,而Unity开发也可以用到C#,这也是选择了C#的原因;

Unity,AR

因为辅修专业以及心系游戏的缘故,后面还折腾了一段时间Unity。在那段时间,我开始阅读英文文档,解决了AssetBundle的加载问题;用Unity开发了一个AR项目~最后也算是落地吧,不过因为当时第三方库对Android8架构的不支持和IOS APP的缺失,项目没有持续运营,说是昙花一现也不为过吧;

工作?读研?

时间定格到大三下,同学们准备出国的都在准备材料;准备工作的也都开始找实习;能够保研的同学,也在准备夏令营;我刚开始选择了找实习,准备工作;然后自己“杂而不精”的缺点就凸显出来了,对于offer不太满意,也意识到自己需要再往深里多学习学习,于是投入考研大军,不再准备实习和找工作;

个人成绩前27%吧,保研的话,以往大概是前20%,所以基本上就没啥希望啦;于是暑假就开始准备考研;然而,今年保研比例略微提高,有幸拿到一张门票,就这样确定了下来;

痛定思痛

在编程技术方面,我是属于多而不精的一类,接下来就为自己确定了**“后端为主,前端为辅”,以Java为中心的开发路线**;力图成为“一专多长”的全栈开发人员~ , 然后大四阶段开始深入学习Spring、Spring Boot等经典框架,以及入手微服务等架构知识;力争形成自己的核心竞争力~

总结

到这里基本上,回顾了四年时间里关于技术学习的点点滴滴;从结果来看,基本上是过得去的,当然会有遗憾,但是如果时光倒流,我也不一定能做的更好~ 笃前行而勿顾后,背黑暗而向光明

虽然走过弯路,走过回路,但是好在一直在走。当然,多而不精的情况仍旧存在,这也是我接下来要着力解决的问题;

最后,希望各位朋友在编程的学习道路上,能避开我踩过的这些坑,不要犯同样的错误;

点赞-关注走一波呀,后面的时间,我将重点学习思考Spring,关注后就不会迷路啦~ 小墨来自一个神奇的地方,叫落花流水存心阁;CSDN现在对微信公众号很不友好,就不放二维码啦;CSDN一直是我分享技术心得的地方,而落花流水存心阁里,则是关于思维、学习方法、认知的一些小体会,个人号,不贩卖焦虑,也不贩卖茶叶,只是希望自己的总结可以帮到大家和以后的自己~ 小墨在落花流水存心阁等你~
PS:学习回顾,故事性较强,特直接总结四年软工专业学习经验,请指正

大学四年软件工程专业的学习回顾相关推荐

  1. 解读大学里的软件工程专业以及其他专业,给高考完的学弟妹一点参考

    我是二本本科,软件工程专业毕业,技术方面一般般,社交方面一般般,目前工资一般般,想给那些马上要进入大学校园的学弟学妹一点点参考性的建议. 先说本专业-软件工程 与之类似的有"计算机科学与技术 ...

  2. 计算机科学软件工程专业大学排名,2020软件工程专业大学排名及录取分数汇总(2021理科生参考)...

    选择科目 测一测我能上哪些大学 选择科目 领取你的专属报告 > 选择省份 关闭 请选择科目 确定 v> 计算机科学与技术和软件工程专业都是国内比较热门的大学专业,那么2020年软件工程专业 ...

  3. 计算机大学四年该如何努力学习?

    大学期间只要拿出在高中时期一半的努力,即可学的很好,主要从以下几个方面. 1.学好基础课程 计算机专业有几门基础课程一定要学好,有计算机组成原理.计算机网络.数据结构.操作系统 计算机组成原理 该书主 ...

  4. 大学四年,我是如何学习编程的?

    大学四年,我专业是计算机专业, 但大家也知道,学校的课程和专业不是那么互相连贯,并且无法形成体系. 大学里有基础的Java, 计算机原理,互联网技术,JSP, C语言等课程. 但知识点完全不够成一种进 ...

  5. 【大学四年自学Java的学习路线】写了一个月,这是一份最适合普通大众、非科班的路线,祝你零基础快速找到一份满意的工作

    零基础自学 Java,大概多久可以找到工作? 最近又有一个读者"在你的世界各地"向我提了上面这个问题.但说实话,这个问题并不太好问答.因为 Java 是一门"历史悠久&q ...

  6. 【大学四年自学Java的学习路线】观语如临情中景,无限感激言岂尽。 自知无兄难过河,谢言不叙恩情记!

    零基础自学 Java,大概多久可以找到工作? 最近又有一个读者"在你的世界各地"向我提了上面这个问题.但说实话,这个问题并不太好问答.因为 Java 是一门"历史悠久&q ...

  7. 陕西二本计算机软件工程,高考分数不理想,仍然想报考软件工程专业,这四所二本大学不错...

    原标题:高考分数不理想,仍然想报考软件工程专业,这四所二本大学不错 学习再好的考生,也有发挥失常的情况,尤其是在高考中发挥失常,大部分人都会选择复读,但是第二年能够考上理想大学的几率也是很差;相信大家 ...

  8. 【转载】大学四年我是如何学习程序设计的

    2019独角兽企业重金招聘Python工程师标准>>> [推荐:Android开发-android开发-安卓开发-android开发论坛 http://www.eoeandroid. ...

  9. 中山大学计算机专业比南航好吗,南航软件工程专业大一新生,想回湖北复读,父母怒斥退学就别回家...

    怪事年年有,今年特别多,大学开学时间已经过半,许多大学也已经发布了寒假放假时间安排表,大概在元月15号左右放假,令学生开心啊,可有位南京航空航天大学大一新生却想退学复读,令家长生气. 前两天,有位南京 ...

  10. 南京大学比中科大计算机与科学专业,教育部直属:16所“软件工程”专业强校,浙大、南大、中科大上榜...

    教育品质专文:"在教育部直属的顶尖高校中,有16所高校获评软件工程专业第四轮学科评估的A类高等成绩,浙江大学.南京大学.中国科学技术大学上榜".值此发布之际,林瑜伽老师携手教育团队 ...

最新文章

  1. 将DBF,XLS,XML,MDB文件导入C#DataGrid的方法
  2. planahead 动态重构_部分动态可重构
  3. scp 安全复制(远程文件复制工具)
  4. 算法导论 第三部分——基本数据结构——第14章:数据结构的扩张
  5. 硒等待:内隐,外显,流利和睡眠
  6. Java 中把声明变量的语句如果写在循环体内,每次执行时栈内存中的变量和数据是如何变化的?
  7. 吴恩达 神经网络和深度学习 第一课 第三周 (代码)planar data classify
  8. 服务器上build.xml文件乱码解决(亲测有效)
  9. Android系统(237)---OTA升级基本信息介绍
  10. 《ASP.NET 本质论》源码下载
  11. 多线程实战(二)线程同步
  12. 21天Jenkins打卡Day12发布到测试服务器
  13. mysql语句解析_MYSQL中SQL执行分析
  14. LitePal使用详解
  15. How To Solve It!怎样解题
  16. 第四周:基于图像相似度比较的分镜头
  17. 借助gdb调试glibc代码学习House of Orange
  18. git stash、git branch使用方法
  19. Python练手小项目(11)用户名密码验证的初步探索
  20. windows10安装oracle数据库

热门文章

  1. 绘制抽样函数Sa(x)matlab代码
  2. 尚硅谷SpringCloud2020简单学习记录(个人用)65-73集
  3. 小程序中switch case如何优化
  4. 爬取b站最火up主及其粉丝信息
  5. 知道了我服务器的公网ip,是否可以入侵我的服务器?
  6. 腰围2尺1,2,3,4,5,6,7,8寸分别等于是多少厘米/英寸(对照表)
  7. DD 虚拟键盘驱动无法卸载问题
  8. 源地址转换、目的地址装换
  9. 从事软件测试工作五年,30岁还感觉很迷茫,目前环境不好,适合转行做什么?
  10. 一文帮你理解 Google SRE 体系