大三了,不知不觉就大三了,两年的“软件”之路,摸爬滚打,终于让我渐渐的走进了计算机的世界。期间的心酸.......只有经历了才知道。

在软件工程之路上,曾有多少次想放弃编程学习。和很多人一样,当初,我读软件工程这个专业,纯属是为了就业,为了以后能有份比较高薪的工作,其实,我中学最好的科目是数学,也不是一般好那种,而是特别突出的那种,填志愿的时候,曾经想过大学去读数学,但是碍于当时考的分实在太低了,读数学的好,感觉在一般的大学读出来,也不咋地,所以就选了一个据说是很有钱途的专业(从小到大都没怎么碰过计算机)。大一的时候,我还是很有激情的,基本上所有课都提早学,大一就把大二的部分课给学了,理论课方面的话确实学的比较快,但是,当时所学的编程(第一次所接触的是html)却让我吃尽了苦头,因为,高中的一些学习特点,我那时,在学Html的时候,总是想知道为什么这么写,以及从本质去思考它的由来。此后学的很多语言都是如此,总想知其所以然,而缺少对这些语言的一个练习,等学到大二的时候,已经完全对这个专业产生了厌恶,对当初的选择已经后悔的不要不要的了。大二的那段时间,不知道有多少次,在梦中怀疑自己的选择到底是正确还是错误,怀疑自己在编程上的天赋,梦想着去学数学..........特别是,每当参加acm比赛的时候,就在想为啥现在的比赛都被别人虐的不要不要的,而当初的自己基本上是虐别人的节奏。

然后,大二的一整年,都是八点起来敲代码,半夜两三点睡。

---------------------------------------------------------------------------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------

软件工程,到底是什么呢?我们到底怎么学,才能在软件工程上学的更好?数学和算法到底对软工有帮助吗?都说算法好,那算法又应该怎么学?

软件工程,顾名思义,是一门用工程化的思想去开发软件的学科。它实际上是一个工程,并不是大多数人所以为的,软件工程就是开发软件这么简单,写写语言代码这么幼稚。我本科所处的是一所非常一般大学,我刚来这个大学,以前的学长学姐给我们灌输的关于怎么学好软件工程的建议大多都是,你要多去网上一些慕课看视频,多学技术,一旦你会做一个什么什么项目(比如中型网站呀,app呀),你就算在这个领域学的差不多了,算是大神了。我觉得不仅仅是我们学校吧,很多大学藐视都是这样子的情况。其实,在计算机这个领域,学的东西真的有很多,一些技术固然是有必要掌握的,但是完完全全的以这些技术为重点,认为学好这些技术,就算是学好这个领域,那真的是对这个领域的一个蔑视。软件工程,一个计算机领域最偏编程的东西,其实它最为本质的东西和计算机科学一样,那就是它相应的基础课(操作系统、网络、计算机组成原理,数据结构等),以及数学和算法。其中数学和算法,直接决定着你将来走的有多远。

数学和算法以及基础课,在计算机领域中极其的重要,是我们最需要学好的!前段时间,曾经看到有篇文章,大致讲的是,现在的开发都是基于新技术、基于框架、基于封装进行开发,花时间去学数学呀,算法呀,基础课的话,真的没什么必要,因为,开发的时候,根本就用不到!说实话,从完成软件产品的角度来说的话,还真是,因为我大二做了一年的项目,所以做项目的流程也非常清晰,做的过程中,基本上所有的组件,网上都有,我们只需要在其上修修改改就能完成一个“秀色可餐”的作品。你想要什么技术,在开源的世界,总能找到你想要的。但是,你想过没有,你自己能不能做出一份属于你想法的作品,如果,没有这些资料,你还能做的出吗?而我相信所有的有梦想的程序员,都想通过自己的知识去创造一个属于自己想法的代码,而要做到这样的追求,就必须懂计算机基础课中的知识以及数学和算法。不仅如此,如果你在这些知识学的好的话,你在开发软件的时候,会特别的有感觉,真正的做到了知其然知其所以然的境界。举个简单的例子吧,操作系统,这门看似与硬件打交道的学问,其实,如果你善于学习的话,会从它的一些机理上学到很多的启发性的思想,比如,批处理思想,你想过没有,一些管理系统,现在很多是人工的吧,但是,我们其实可以写一个批处理文件去解决这些人为操作(不是写在后台逻辑那么简单,而是直接给客户,让客户去启动它解决)。还有其它的一些算法,也特别的值得在做软件解决问题时思考,比如信号量机制。数学和算法就更加了,现在的机器学习,说实话,你如果数学没学好,那机器学习基本上已经不是你的菜了。这种本源的知识,看似用不到,但是只要你花心思琢磨琢磨,就会发现,它的博大精深,对你对一些技术的理解,学习,创造,非常非常有帮助。

当然,在软件工程中,你的编程功底也要学的好,而学编程的方法,就是多敲代码,多练习一些项目。对于一门编程语言,如果你要去知其所以然,说实话,这非常难,它不是数学,它根本无从证明及推理,很多东西,特别是面向对象的语言,都是封装好的。学一门编程语言,学的最快的方法,就是一个礼拜的时间记住相应的语法后以及使用场景后(就是单纯的知其然),就开始大量的敲代码,直接敲,不要去探究为什么。

总而言之,在软件工程的理论学习上,就是要重基础,技术学习上,切记不要知其所以然,只需知其然就可。

最后,来讲讲算法的学习,算法,这个东西,说实话,和数学真的不一样,虽然两个都是产生于现实世界,但是数学,它的理念就是,用数学去描绘这个世界,对于内容,它是用函数去表示事物的联系和自身特征,用抽象去开拓每一个领域的研究。但是,算法,它说实话真的不是在描述研究什么,而是一个决策,是解题的步骤。所以,我们在学习其时,真正着手是:

一、对解题步骤要清清楚楚,十分清晰-----------可以通过记忆,最好方法是通过题目不断的练,练的时候多想。

二、变量

三、明白,此算法的解题场景。

四、可以去研究算法的推导。

大三,在软件工程学习上的感悟相关推荐

  1. 准大三学生暑期社会实践真实感悟

    准大三学生暑期社会实践真实感悟 一.公司及人员介绍 我是在杭州始途科技有限公司实践的,这是一个刚起步不久的创业研发型小公司,是由原来在吉利公司工作的老员工自主创业的公司,主要研发智能停车单元,就是PS ...

  2. 转行做python现在怎么样_本人现在大三之前是学习网络的,现在想转行做python程序员,该如何学习?...

    作为一名计算机专业的教育工作者,我来回答一下这个问题. 首先,对于网络专业的同学来说,如果要想在大三开始重点学习Python编程,并计划未来从事专业的Python开发,在学习上需要从三个方面做好准备, ...

  3. (三)集成学习上——偏差与方差

    参考:DataWhale教程链接 集成学习(上)所有Task: (一)集成学习上--机器学习三大任务 (二)集成学习上--回归模型 (三)集成学习上--偏差与方差 (四)集成学习上--回归模型评估与超 ...

  4. 大三学生——要不要上研究生?

    [学生来信--往上混,文凭真的很重要吗?] 老师你好: 我今年大三,不太想考研究生,但是身边的人都说在中国文凭很重要,没有研究生的文凭,以后很难往上混! 所以我有点犹豫了...... 我希望老师能给点 ...

  5. 大三学生——要不要上研究生

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! [学生来 ...

  6. 一个大三学生的学习生活之感

    在这篇文章里,我会把这大学两年的乱七八糟的经历,分享一些给大家,题材可能比较宽泛,更多的是关于我所学的专业知识的理解.它具体也不知道这篇文章会以什么样子的形式展示,其实我也不知道.但这里所做的一些胡说 ...

  7. [转]大三下,我们该做什么?一篇被转万次的日志,你值得一看

    大三下,我们该做什么?一篇被转万次的日志,你值得一看 还有几个月,你就不得不参加考研.就业大军了,你做好准备了么?你知道211学校.985学校和非211.985的主要区别么?找工作机会一定是不均等的. ...

  8. [转] 大三下,我们该做什么?

    还有几个月,你就不得不参加考研.就业大军了,你做好准备了么?你知道211学校.985学校和非211.985的主要区别么?找工作机会一定是不均等的.那么你,做了什么?你是否想好了考研还是就业? (一)关 ...

  9. 大三下,我们该做什么?一篇被转万次的日志,你值得一看

    大三下,我们该做什么?一篇被转万次的日志,你值得一看 还有几个月,你就不得不参加考研.就业大军了,你做好准备了么?你知道211学校.985学校和非211.985的主要区别么?找工作机会一定是不均等的. ...

  10. 【自我感悟致学弟学妹】大三上的感悟,何为真正优秀的人

    突然发现半年前写的小博客,不知道为什么被设置为私密了..还是放出来吧.. 我是计算机专业的,但是这篇文章不针对某个专业的同学,而是针对所有人. 明天就要考计算机三级和四级了,然而几乎没有复习的我已经放 ...

最新文章

  1. Deformable ConvNets--Part2: Spatial Transfomer Networks(STN)
  2. 中国最懂自动驾驶量产公司秀肌肉:自动驾驶算力怪兽、百亿参数云端超大模型、百万公里路测里程...
  3. App icon和启动图的尺寸需求(没有iPad)
  4. python单行箭头_python – 如何在matplotlib的曲线末端放置一个箭头?
  5. opencv的基本数据结构(一)(转)
  6. 秒懂 QPS、TPS、PV、UV、GMV、IP、RPS!
  7. C#LeetCode刷题-拒绝采样
  8. 变更数据推送java_idea 团队成员修改工程后push推送
  9. Asp.net2.0动态加载用户控件的三种方法
  10. 为小程序添加底部导航
  11. 计算机职业素养论文1500字,【职业素养论文】职业素养论文范文(共40篇)
  12. Python 如何随机生成姓名?
  13. 快速学习探索性测试,什么是探索性测试?
  14. 新知实验室 TRTC实时音视频通讯方案在业内的QoS水平
  15. 计算机无法从usb启动不了,主板不能从u盘启动怎么办
  16. 原生方式android 商城,WooCommerce商城原生android完整客户端源码(CiyaShop)
  17. 小姜的毕设_Software
  18. 观张国荣的电影《霸王别姬》有感
  19. tensorflow学习笔记(二十七):leaky relu
  20. Jersey框架的使用---使用环境的搭建和基础使用

热门文章

  1. 如何成为一名优秀的数据工匠?
  2. 计算机培训通知,关于开展上海师范大学2018年计算机办公自动化免费培训的通知...
  3. Android 平台下的即时通讯
  4. Thingsboard 本地编译 com.google.protobuf:protoc:exe:osx-x86_64:3.11.4 无法下载
  5. 毕业季怎么做答辩PPT?
  6. 教程:利用艾斯PM3GUI软件助手,帮你查IC卡漏洞
  7. freemarker ftl java_FreeMarker学习1(Ftl)
  8. java 根据ftl文件生成word
  9. 度分秒地理位置转wgs84坐标和2000坐标,2000坐标转wgs84坐标
  10. 轻松实现微信、QQ防撤回