101.为什么我们要学习理论课程?为什么要学习软件工程?(建议在校生必读)
文章目录
- 1.前言
- 2.以我自身的经历聊一聊为什么要学习软件工程?为什么要学习相关理论课程?
- (1)我的经历
- (2)我的感受
- 3.专栏专业回答为什么要学习理论课程和软件工程等知识?
- (1)没有学习软件工程,没有从系统层面整体去思考,会遇到的问题是什么?
- (2)学习软件工程能学到什么?
- (3)除了软件工程之外,我们还需要学习那些理论知识?
1.前言
- 正所谓万事开头难啊!文章开篇也是如此啊!学习亦是如此。话不多说咱们直接进入正题叭!
- 首先聊聊我是谁叭?我是一名软件工程专业的大学在校生,现在是2020年三月份,这学期学校开设了软件工程这门专业课,说实话这门课老师给我的感觉就是很枯燥,很理论,上课的风格我不太喜欢,我相信很多在校大学生都会有这种感觉吧。
- 我自己是知道的,这门课程之重要性,·至于重要性我会结合我在校的经历·,在下面
为什么学习软件工程
标题内容中提及。 - 所以我不能放弃,于是我另辟蹊径找了别的材料来学习这门课程,我觉得这门课程是理论与实践相结合的。
- 无意间我发现了极客时间这个平台,这里我没有打广告的意思啊,我只是聊聊我的心路历程。极客时间里面有很多课程,刚好有软件工程之美这门专栏,由宝玉老师教学,我看了宝玉老师的简介和开篇词,让我感觉到选择这门软件工程之美专栏,我想我肯定能学到有用的东西,至少讲课的方式和描述我很喜欢,我相信我的选择没错。
- 从今天开始了,我会将我在专栏中的学到的知识,整理成笔记,里面也会有我自己的一些思考与心得,希望可以在自己学习的同时,也能将自己学到的知识与见解分享给互联网的大家,还请各位前辈多多指教。晚辈这厢有礼了!
2.以我自身的经历聊一聊为什么要学习软件工程?为什么要学习相关理论课程?
- 首先我先聊一聊我在校学习软件开发的一些小经历叭。希望在校的大学生,处在迷茫的大学生,感觉学校的理论课程无用的大学生能够早日找到自己的方向,重视理论课程的学习,同时应用层技术齐头并进。不要浪费大学美好的时光,真的,当我们走向社会,就再也没有这么多空闲的时间和舒适的环境来学习这些理论课程,钻研技术了,没有生活的柴米油盐,安安静静学习就好。
这些理论课程究其主要。至于如何重要,且看下文。
- 接下来正式开始叭。虽然我现在大二,阅历尚且不够,但是我还是经历了一些软件网站的流程和开发的。
(1)我的经历
我先说一下我现在都学了些啥叭,HTML+CSSS+JavaScript、PHP、thinkphp5、SQL、MYSQL、云服务器宝塔部署项目、WordPress、C、C++、Java、Git、phpstudy、postman、Navicat、简单的原型交互设计软件。这些技术说实在的我自己感觉我学的并不精,因为任何一门技术深入进去就是汪洋大海,我也只是会用而已,用其开发出我想要的简单的东西。
接下来说说我运用这些技术做了些啥叭。
第一个经历,也是学校的一个小比赛,WEB前端设计大赛,没有后台,只有数据库,没什么很大的技术含量,我和我的小伙伴一起做的,虽然难度不是很大,但是也累得够呛,还有一些小bug。我把它搞到服务器了,附上链接:小demo静态界面
第二个经历也是大一期间,应该是大一下学期,工作室接了一个项目,开发一个小孩子学习英语的APP,那应该是最开始的时候叭,老师让我和另一个小伙伴做原型设计,就是简单的页面交互,只有前端显示,没有后端数据,刚开始的时候应该是要尽快出效果,然后确认是否继续接下来的研发,能否得到甲方的确认签订合同吧叭。这个项目到现在已经完工了,从整体原型设计、开发、测试、到上线,我都还是比较清楚的,我虽然没有参与过开发,但是在原型设计和测试上面我都有参与,当然当时的原型设计和测试,现在在我看来,由于没有系统学习过软件工程的相关知识。我的操作一点都不专业,但是还是学到了许多,现在这个项目由我来维护了,学长去考研了,现在维护也就是改改数据库,没啥重大变化,还比较轻松。
第三个经历就是在学java的时候,老师让我们做一个学生管理系统,当时用了一个星期叭,三天都在思考怎么设计,说实话设计真的很重要,要不然开发会没有头绪,或者代码很乱,没有层次和架构,当然这个小demo我自己我感觉技术含量不高,设计和架构肯定有问题,没办法呀,毕竟软件工程的思想和设计模式等架构知识我没学啊,现在暂时还达不到这个高度。当然,这些思想,理论技术后期我都会好好学的。附上链接:学生管理系统小demo
第四个经历是在大一暑假期间在校学习了一个月之后,在大二上学期十月份左右叭,为了巩固所学,找了一个教程跟着做,基于thinkphp5开发了一个小博客网站,网站入口:1001.bithachi.cn。不得不说这个项目我学到了很多东西,从开发到部署到云服务器。
第五个经历就是最近啦,寒假期间,开发了一个现在来说我比较满意的博客网站:www.bithachi.cn,平时写写博客笔记,记录记录生活。
(2)我的感受
- 虽然自己开发了一些小玩意,但是也都很浅,只是会用,不清楚这些技术背后的·
"道"
,即这些技术背后的软件开发思想,现在我回头想想,其实这些项目都离不开软件工程的思想,从原型设计到真正开发再到测试,就比如我上面提到的每一个小demo,每一个都有软件开发的思想,从原型设计到开发到测试到上线,都有一个流程的,还有一系列方法。如何让自己写的代码运行效率更快、让维护人员能够看懂,如何才能使代码在后期维护中更加和谐,不会影响之前的功能,如何设计软件的整个架构,每个模块如何做,开发成本等等,这些都是软件工程需要思考的。当然现在我的理解都还比较浅。希望通过软件工程这门学科能够让我解开疑惑,对软件开发有一个宏观的角度去思考,从本质去看问题和设计架构。
以上是我个人的经历和理解,为什么我们要学习理论课程?为什么要学习软件工程?下面我们来看看我在软件工程之美中学习到的更加专业的回答
3.专栏专业回答为什么要学习理论课程和软件工程等知识?
- 以下内容是我在专栏中截取的部分内容,作为自己的笔记叭。
(1)没有学习软件工程,没有从系统层面整体去思考,会遇到的问题是什么?
- 开发时没有分析没有设计,上手就写,后期难维护,加班熬夜去填“坑”;
- 缺少理论指导,遇到新项目不能举一反三,工作很平庸;
- 遇到需求变更这种事,除了抱怨两句客户,只能闷头做,无力反抗;
- 做项目没计划性,想到哪做到哪,总是延期,比其他同事做的慢;
- 不知道如何与团队协作,职业发展遇到瓶颈,无法得到晋升。
(2)学习软件工程能学到什么?
- 软件项目的开发其实是一个工程,整个开发过程是可以有效组织起来的;·
对于开发过程的各个阶段,已经有很多解决问题的最佳实践,有很多方法来帮助我们高效完成任务;我们还可以借助工具来协助管理,提升开发效率。
(3)除了软件工程之外,我们还需要学习那些理论知识?
有人说程序员是吃青春饭的,因为计算机技术更新太快,年纪大了学习能力下降,就很难跟得上了。于是就有人很焦虑,会关心未来技术发展趋势如何?我怎么才能跟得上这些技术变化?
亚马逊的创始人杰夫·贝索斯(Jeff Bezos)曾经在一次演讲中说:“人们经常问我,未来 10 年什么会被改变?我觉得这个问题很有意思,但也很普通。从来没有人问我,·
未来 10 年,什么不会变?
”这个回答同样适用于软件开发领域。在软件开发领域,有哪些知识十年前很重要,现在仍然重要,未来可能同样重要?
其实仔细分析,这些知识不外乎:·
数据结构、算法、面向对象思想、设计模式、软件工程等等。如果范围不局限于程序开发,还要算上测试、产品设计、项目管理、运维这些岗位等等。
你会发现,无论你是什么岗位,只要你从事软件开发相关领域,都绕不开“软件工程”,因为现代软件项目开发,多多少少都离不开软件工程知识的应用。
想象下在日常工作中,不管你用什么开发语言,不管是前端和后端:
你接到一个开发任务,如果想开发出客户想要的功能,你是不是先要做需求分析;
你接手一个复杂的、大的功能模块,是不是先要做设计,才能把复杂的拆成简单的,才能让大家一起分工去开发;你完成一个功能模块,如果要保证质量,是不是需要写一些测试代码,还要做一些功能测试;
还有日常用的那些工具,像源代码管理、Bug 跟踪。而这些内容,都是软件工程相关的知识,和你用什么语言无关。十几年前我开始工作时就在用这些知识,现在还是在用这些知识,未来这些知识还不会过时。
换言之,这就是经典的价值,
为什么说我们要学经典,因为经典就是这个行业最为本质的东西。你顺着这个逻辑想,就知道为什么大学的计算机专业要设计数据结构、算法、操作系统、软件工程这样的课程了。
·
技术更新迭代速度确实很快,难以把握,更难以预测,但是软件开发背后的逻辑却万变不离其宗。
你只有掌握了这些逻辑,才能步步为营,不被快速发展的软件开发行业所淘汰。因为你脑袋里装有软件开发的战略,相对于赤手空拳、盲打莽撞的人来说,你更能在未来获得先机。
101.为什么我们要学习理论课程?为什么要学习软件工程?(建议在校生必读)相关推荐
- 汽车动力性仿真matlab程序,汽车理论课程设计:基于Matlab的汽车动力性的仿真
汽车理论课程设计:基于Matlab的汽车动力性的仿真 2009 届届 汽车工程系汽车工程系 汽汽 车车 理理 论论 课课 程程 设设 计计 题题 目目 汽车动力性的仿真 学学 院院 机 电 工 程 学 ...
- 观杨宁之《文学理论课程》
杨宁. 文学理论课程. URL: https://www.bilibili.com/video/BV1LE411e7NE 杨宁的这个视频课程是我目前在 Bilibili 看的最不像盗版的一个视频课程, ...
- 华中科技大学电路理论课程PPT分析
华中科技大学电路理论课程PPT分享 链接:https://pan.baidu.com/s/1svn7QzBVTIpWnSjwUHx8oA 提取码:jnhd
- 学校计算机基础做慢了扣分,中职学校《计算机应用基础》课程改革的一点建议...
中职学校<计算机应用基础>课程改革的一点建议 论文关键词:课程改革 任务驱动 模式化教学 过程性评价 教育技术 论文摘要:本文针对目前中职学校中学生的现状,以及计算机应用基拙教学中存在的问 ...
- 中职学校计算机应用基础学什么,浅谈中职学校《计算机应用基础》课程改革的一点建议...
<浅谈中职学校<计算机应用基础>课程改革的一点建议>由会员分享,可在线阅读,更多相关<浅谈中职学校<计算机应用基础>课程改革的一点建议(3页珍藏版)>请 ...
- 课程设计是计算机科学与技术专业的一门,信息系:对“计算机科学与技术”专业课程设计的改善建议(已回复).doc...
信息系:对"计算机科学与技术"专业课程设计的改善建议(已回复).doc 写在前面的话: 我们信息系接到学工办信息组辅导员转来的学生意见和建议,高度重视,组织计算机专业骨干教师对于同 ...
- c语言背单词系统刘小飞,C语言背单词课程设计报告(软件工程).doc
C语言背单词课程设计报告(软件工程) 三亚学院 <C语言程序设计>课程设计 题 目 背单词 专 业 软件工程 班 级 1101 学 生 龚方盛 周艺冠 学 号 1110750064 111 ...
- 音乐的计算机理论难不难学,【如何学习音乐理论?这几个建议对你也许很有效】- 环球网校...
[摘要]无论是哪种音乐,你都需要有旋律感和每一个动作的起伏感,许多朋友没有机会系统地学习音乐理论,今天跟大家讲讲如何学习音乐理论?这几个建议对你也许很有效,其实不管什么乐器,方法很重要,所以今天小编就 ...
- 学习Python要学习哪些课程?
通过学习 Python数据分析与应用课程,可以掌握Python进行科学计算.可视化绘图.数据处理,分析与建模.构建聚类.回归.分类模型的主要方法和技能,并为后续相关课程学习及将来从事数据分析挖掘研究. ...
最新文章
- 15Proxy(代理)模式
- Android 有些机型hint不显示
- anaconda python降级_anaconda 使用的一些体验与困惑
- [BZOJ] 2064: 分裂
- 类型的设计--类型和成员基础(二)
- python线性链表_线性表 (单链表、循环链表-python实现)
- 如何提取HTML代码中img的src地址?
- Winsock—I/O模型之事件选择模型(一)
- linux的for循环乘积,最大乘积连续子串 - Triangle23 - OSCHINA - 中文开源技术交流社区...
- IDEA配置svn无法使用的问题
- MyBatis事务管理
- k8s集群外部域名dns解析问题
- 一个计算机网络的物理组成,1.1.2.1 计算机网络物理组成
- c++面试常见问题2019-10-03
- 听说这个深度学习工具包,可以拯救Java开发者?
- linux乌班图图形化设置ip,在Ubuntu 18.04 Desktop图形中配置静态和动态IP地址的方法...
- 如何保证同一个账号同时只能在一个设备登录,账号自动登录
- 作为荣耀脱离华为后的第二代旗舰,荣耀Magic4 Pro是否值得选购?
- OPPO 后端开发 一、二、HR 面面经 (已 OC)
- 上传文件500 -内部服务器错误,怎样上传文件
热门文章
- 解决提交到github报错Please tell me who you are.和为不同的项目设置不同的名称
- CPU缓存L1,L2和L3是什么?如何工作?
- 如何实现“轻高精地图”的城市NOH?毫末自动驾驶的8大亮点
- Python爬取QQ音乐内地专辑
- Pandas使用技巧-apply,条件筛选
- 身家过亿的帝都王子来到1024盛宴-小码农献上linux进阶知识点一篇
- 一年股票翻3倍的SaaS公司是做什么的?
- 含LOB的表实际容量计算方法
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
- 关注博主的博文汇总(孙志刚、贺利坚……)