这个做业属于哪一个课程 | <课程的连接> |
---|---|
这个做业要求在哪里 | <做业要求的连接> |
我在这个课程的目标是 | 学会现代软件开发的总体流程,深刻理解软件工程学并与实践相结合 |
这个做业在哪一个具体方面帮助我实现目标 | 书中理论,做业明确目标,写博客总结,造成输出,重点掌握 |
而后学着学着,就各类向斜,背斜,断层什么的,各类背,各类概念。我就思考,这不是我要走的路,那我要走什么路呢,或许在我高考后填的第一志愿适合我——软件工程。来,请看:
html
对嘛,这才是咱们嘛,我就喜欢这样,坐着动动手指是吧。俗话说得好:“咱们的指尖拥有改变世界的力量”。不开玩笑,的确如此,近十年来,多少万程序员奉献了他们的头发,来使咱们的生活变得更加智能。写着东西就停不下来,上面吹了这么多了,大家确定也看累了,下面说说实际的,既然做为一个科班出生的程序员,那必须得要有掌握的一两门技术嘛。git
当初我为何会选这个专业呢,前面也提到了,我是转专业学生,其实在高考毕业就填了这个专业,只不过被调剂了。至于为何,我以为首先是我表哥对个人影响吧,让我在高中就接触到过软件,当时他用C语言编写了一个贪吃蛇游戏,我就以为挺好的,而后就产生了兴趣,想着本身可否也作一个出来。还有就是后面网页的流行,不少地方都会用到浏览器,我就想着若是本身也能作一个网站那该多好,应该是一个自豪的事情(当时人工智能和大数据尚未这么火)。
后来就是在原来专业中感受到一天到晚摸索石头没啥意思,还有就是对本身之后发展的疑问。我之后就像这样每天玩玩儿石头了吗,或者是常常到大山里面去找石头,而后常年常常出差,工做几个月回家几个月的生活?照看不了家人,不,这不是我想要的,因而考虑转专业,正好对软件有些兴趣,而后社会上也比较火,就业什么的,工资及之后的发展都还不错,因而就选择了这个专业。程序员
在过去的两年大学生活中,这些课程在我学的时候,我以为是不太符合的。就拿大一的数据结构来讲,在我当时的想法中,别人已经实现了的东西,咱们只须要拿来用就能够了,没有必要深刻去研究它。再来到大一暑假所学的英语及概念实习(也就是C#),我决定那个英语据说没什么意思,为何不直接给咱们上专业英语呢,这或许对咱们之后的发展更好。概念实习,当时跟着老师作了一个红色天空游戏,也就是小时候玩儿的飞机大战,当时颇有兴趣,可是回过头来,不过只是跟着老师将老师的代码本身手动的敲了出来而已,仍是同样没学到什么,反正第一学年就在抱怨中度过了。到了第二学年,我开始了给本身选定了一个方向,无论学校学什么,本身先学好那一个方向,先掌握熟练运用一门语言再说,因而我就奋力学习Java,在落后了众多团队大佬一年的时间,我只有花更多的时间努力学习。就在学了Java以后,我对计算机软件又有了新的认识,也能够说是对大一没有认真学专业的一种后悔吧,后面才意识到数据结构及算法是至关重要的。因此说按如今的我来讲,我接触到的课程是彻底符合我对专业的期待,包括如今这门课,我相信在学完整个课程后,我会收获到不少东西。github
前面也已经提到过,目前我比较喜欢Java后端方向还有大数据领域。软件专业,所涵盖的领域实在是太广,我感兴趣的领域天然也就是软件范畴的领域。同时,大学注重基础,万丈高楼平地起就是这个道理。相信你们都听过厚积薄发这个词,我坚信大学里所学的东西会为我之后的发展打下坚实的基础。web
之后必然是会选择从事软件行业工做的,主要是想去深圳或者就在成都吧,想去的公司确定是bat了,可是目前实力确定不够,只能再努力了,岗位就是后端工程师。算法
我以为具有的专业知识其实挺少的,主要是集中在编码上面,学过C/C#/Java,数据结构,而后还了解了Python,matlab等。对总体的软件开发流程,以及软件整个过程还不够了解,实际代码量也没多少,估计可能也就一千多行吧。最复杂的项目,说出来可能都不太好意思。就是在今年参加互联网+比赛作的一个跨境电商比赛项目。
引入全球化与智能化商品交易平台模式,设计知足厂商和B2C销售者实施跨境商品借卖销售的系统。对多种用户分配不一样权限来实现对订单的操做,还有对于生厂商的海外仓的管理,以及对各类经销商之间的关系。对不一样用户的调货系统的注册审核、登陆、信息分析、信息派送、汇总发布、交易成功等。还有就是实现了企业之间的分单模式,能够分单企业,分单供应商,分单产商。最后还作了一个小论坛,主要是为了让全球用户在论坛上实现交流沟通。后端
首先,我以为应该是找出咱们和培训机构,或者职业院校出来的学生的区别。他们出来编码能力通常比咱们强,那咱们的优点是什么,咱们能够找到本科所学的东西是他们没有的,我以为这是首要的。那如何提高这些知识呢,那就是要把理论专业课学好,就比如这门课现代软件构建之法,以及计算机系统基础,计算机网络基础,操做系统,软件需求分析,软件体系结构,软件项目管理等,这是做为一个科班出生的程序员的基本知识。其次,在编码能力上还有很大的差距,我认为在毕业前要有1万行代码才算合格。浏览器
在阅读了前人们的经历,再加上本身的思考,大一浪费了一年的时间,还有想去的bat,我以为考研多是目前最好的选择。服务器
考研的话,我以为优点多是本身数学和专业课学得还比较好。劣势就是本身一直偏科英语,还有就是还须要比其余同窗多花几年在学校里读书,本身的工做经验确定比不过工做了的同窗。网络
在近几年的考研热中,特别是计算机,复试刷下去了不少人,我以为大三在上学期的时候我就多敲代码,多作项目,把代码量给弄上去,而后大三下开始准备考研以及算法数据结构基础之类的学习,避免在复试的时候被刷。
加入了新开的一个实验室,能够和研究生学长们一块儿交流技术,而且在作项目中增长本身的代码量,向1万行看齐。各类技术书籍,高级及底层实现以及准备好,计划着9610的工做状态度过大三。
第三章(53页)做者谈到职业发展之考级之路。
做者谈到了些许什么国家认证,机构认证之类的专业技术资格证书。
疑问:因为我在网上,知乎,CSDN等各大平台上了解到,前人说的大可能是计算机类的专业考证没有用。通常有经验的不用证书,有证书的大多没经验,拿证书还不如多花点时间锻炼下技术。然而网上的各类考证官网又极力说考证考级的各类好处,书中也是双面的简单的介绍了一下,那么这些证对咱们职业发展是真的有好处吗?仍是只是浪费时间考取无用的证书呢?
第三章(52页)专与精的关系
做者谈到街头卖艺的单人乐队,一我的能够会多种乐器,而与之对立的是只研究一种乐器的乐手。很明显表达前专后精,比如全栈工程师与运维工程师运维不一样的模块。
疑问:如今互联网公司成两种形式,先后端分离或者就是前面提到的全栈工程师。据我了解Python和PHP作全栈工程师仍是比较不错的,那为何就成了街头卖艺了呢? 的确术业有专攻,可是为何如今社会上都须要会多项技能的人呢?就好比你技术强而后管理上又有建树,又或技术+英语,技术+文档撰写能力,公司岂不是更应该喜欢花更少的钱来请人作相同的事情吗?
第八章(151)软件需求之用户需求
文中提到人们为了解决现实社会和生活中的各类问题,要求助于软件,须要替用户想到他们的需求。
疑问:在开发软件时,咱们如何去正确的找准市场定位与分析客户的需求?这类问题书中提到的软件寻找需求,但是用户是多变的,如何能保证精准呢,是不是用到当下流行的大数据技术,还有当用户信息量不够时,是否是就作不到精准定位?在没有这一技术时,是否是没法定位到用户的需求,产品就只能不断的修改?
第十三章(277)各类测试方法
书中提到单元测试,构建验证测试,验收测试,搜索式的测试,回归测试,伙伴测试等等。那么问题来了
疑问:咱们如何更好地进行软件的测试,而且要下降测试成本,即可以对各类可能会发生的状况进行测试,虽然上述各类测试方法,那怎么找到一些潜在的难以发现的bug,而且提升测试效率?常常听老师说,没有完美的软件,只有更好的软件,合格的软件,那么软件须要经过什么样的测试才能算合格?
第十六章(370)创新和做坊
做坊很容易被新技术抛下,落后的绝技也就没有多大用处了,想开做坊的人,有些有能力的做坊,每每能找到合适的渠道和空间,实现本身的价值。
疑问:在当下这个时代,人们不谈“做坊”了,如今的“云”,“大数据”,“人工智能”,和“创新”才是讨论的热点。如今国家响应着新技术的发展,开设了大数据专业,人工智能等专业,那是否软件工程就变成了前面提到人们不谈了的“做坊”?如今的软件工程面临着什么样的难题,软件工程在新兴专业以及新兴技术下将如何继续发展?又或者说软件工程的下一个变革的方向将会在那一部分?
俗话说,三分手艺,七分家伙,手艺好还要家伙妙,拳头再硬也比不上锤子。孔夫子也说 “ 工欲善其事,必先利其器。”可见,利器之重要性,那么咱们就来看看目前流行的源程序版本管理软件和项目管理软件。
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与经常使用的版本控制工具 CVS, Subversion 等不一样,它采用了分布式版本库的方式,没必要服务器端软件支持。
Git是目前世界上最早进的分布式版本控制系统。
Github是一个代码托管平台和开发者社区,开发者能够在Github上建立本身的开源项目并与其余开发者协做编码。创业公司能够用它来托管软件项目,开源项目能够免费托管,私有项目需付费。GitHub能够托管各类git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不一样,GitHub的独特卖点在于从另一个项目进行分支的简易性。为一个项目贡献代码很是简单:首先点击项目站点的“fork”的按钮,而后将代码检出并将修改加入到刚才分出的代码库中,最后经过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。在这里我又要打个广告了,本人github:https://github.com/ordinaryload 欢迎前来打扰。
TFS是一个应用软件生命周期管理(ALM)软件,是一个软件研发平台产品,其功能覆盖了软件研发过程当中的全部环节(包括源代码管理)和全部角色。
Mercurial与通常传统的版本控制系统的最大区别在于分布式的概念。所谓分布式,就是指没有一个所谓的集中的中心(central)库,这个库通常由svn server(svn),vss administrator(vss)控制,而Mercurial就没有这样的一个库,因此使用版本控制的时候甚至都不须要一个administrator和server,本地直接建库,直接就使用,任何一个库均可以做为中心库,每一个库在Mercurial看来都是平等的。
----------------------------------------------------------纸上得来终觉浅,绝知此事要躬行---------------------------------------------------------