软件工程第一次做业:写一篇本身的博客

这个做业属于哪一个课程 18级软件工程基础
这个做业要求在哪里 第一次我的做业:阅读与准备
我在这个课程的目标是 学会建立本身的博客以及Markdown的语法
其余参考文献 git优势缺点
其余参考文献 Github的利弊分析
其余参考文献 GitHub、Bitbucket、Google Code 各有哪些优缺点?

我的介绍

“衣带渐宽终不悔,为伊消得人憔悴”html

我是来自计科一班的陈攀文,我是一个开朗热情,大胆敢于尝试的人。热爱编程,喜欢敲代码的感受。加入了嵌入式团队,目前正在进行后端方面的学习,主要学习的是Java后端。我以为学习后端能让我真正体会到一名程序员是什么样的,让我可以有更多的机会去编写代码。能用代码实现本身想作的东西能让我得到成就感。但是拘于学习的东西还不够,对于不少原理方面,底层方面的东西还不够了解,但愿在之后的学习中可以学到更多这方面的知识。有本身的域名,虽然东西还没怎么作,如今只有前端界面(前端仍是我女友给写的,我就只买了个服务器配了个环境)可是欢迎你们来看看 点这里
爱编程,可是我不太喜欢算法,虽然打心底我知道数据结构啊,算法啊是十分重要的,但是我还不太喜欢偏算法方面的东西。可是重要嘛,确定是要下功夫的,题仍是要刷的。前端

问题回答

(1)回想一下你初入大学时对你所在专业的畅想

当初你是如何作出选择你所在专业的决定的?

小时候喜欢玩儿游戏,对电脑接触的比较多,因此对电脑有比较强烈的好奇心,想去更多的了解它的原理。计算机科学与技术这个专业也更可能是偏向计算机原理方面的,算是计科院里面教授计算机原理比较多的一门专业,因此便选择了这门专业。git

你认为过去一(两)年中接触到的课程是否符合你对你本身所在专业的期待,为何?

比较知足本身的期待。在专业课中学习了C语言和数据结构。先学习一门语言能有助于后面其余语言的学习;数据结构也是基础中的基础。代表学校对计科专业学生的基础是十分重视的。包括从此将会学到的汇编语言,操做系统原理等等也证实了这一点。程序员

你以为你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?

专业领域的话,我以为计科专业更偏向硬件方面,由于后面会学嵌入式开发,其实我并非很喜欢偏硬件的东西,就像介绍中说到的,我更喜欢后端。由于还没学嵌入式开发等等的东西,因此如今也还谈不上擅长与否,可是我相信如今积累一些敲代码的经验,之后确定仍是会学的比较顺利吧。github

未来你会选择从事和你专业相关的工做吗?是的话给出你想去的城市、公司和岗位,否的话给出缘由

会从事,毕竟如今学计算机仍是比较好找工做吧,并且本身这些年又在这方面花了这么多时间。我仍是想留在成都,公司的话还没想好,岗位就后端工程师。web

(2)对照前人们走过的路和描述将来发展,如今的你

自我感受你已经具有的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你作的最复杂的项目/做业。

能力的话确实太少了,除了所开的专业课,学了些Java,Java Web方面正在学,
目前可以用SSM框架作些简单的后台,但里面的原理这些还不太清楚,打算去学习一下。 代码量,若是写的全部代码都算的话,5000行应该是有,可是真正算是作东西的话,应该2000行左右吧。 最复杂的项目:C语言链表写学生管理系统,写的比较复杂(如今看来有的能够简化),并且由于当时初学链表,链表的各个操做也分开进行了不少测试和改进,最后写了接近700行。 而后的话就是用JAVA Web的一些基础操做去给一个前端界面接了后端,这个代码量不是不少,主要涉及各个层,例如表现层业务层数据层之间数据的传输,因此对于初学者的我来讲,仍是比较复杂。面试

离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?

那差的可就多了,汇编、数字逻辑、操做系统等等重要的课还没开,本身也还没开始学。Web方面像并发啊,各个框架的原理啊这些东西都还没学,任重而道远啊。算法

(3)目前是一我的生选择的十字路口,考研、工做、考公、出国,不一样的选择在大三就有不一样的努力方向。而不管考研仍是工做的每条路径,也有许多不一样的分支。

对照以上你阅读的前人们的经历,你的选择是什么?

我选择工做。大多数人考研是为了什么,仍是为了以后找工做。既然如今有机会有能力去作好,为何非要考研去作呢,在本科就努力学好技术,毕业就业,我以为更好。并且我以为之后在工做中学到的经验,可能会比读研学到的更多吧。编程

在这种选择下,你认为你相比其余同窗来讲有何优点,有何劣势?

优点: 有比较明确的方向,而且能付出行动。行动的话,团队给了一个很好的环境,通常没课的时候就在团队自习,而后一些比赛,会积极参加,并尽可能去争取名次,好比盛特杯。
劣势:成绩上,可能仍是不是特别好吧,绩点和排名就能很好的反映出来。只算得上中上水平,这方面还要加油后端

针对你的选择,你给本身的大三设定的规划安排是什么?

继续好好学习专业知识和后端知识,而后多看看别人的面试经验,准备春招秋招。

你对于实现本身的梦想已经作了或者计划作什么样的准备?

加入了团队里面有不少优秀的学长学姐和同窗,资源十分丰富,是一个很好的平台。我以为这算是我作的一个比较好准备和选择吧。

提出问题

问题一

软件工程师的思惟误区

我看了书上P48-51的内容,对3.2软件工程师的思惟误区有问题。这里主要讲了三个思惟误区:不分主次、过早优化、过早扩大化。其实我以为虽然“软件是‘软’的”,但在实际的开发过程当中,适当的提早优化和扩大化仍是有必要的。主次这个暂且不谈,由于项目在开发中,各类问题确定会层出不穷,解决问题确定是须要分主次的。可是优化、扩大,我以为能够在来发中适当的进行,由于在实际开发以前的构想阶段,可能有些问题确实是想不到的,只有在开发中,代码的编写中,而后在编写过程当中的测试中(此测试并不是指最终测试,指的是调试或者前期的简单的测试)发现了问题,能够就作出必定的优化,同时须要扩大化时也能够经行适当的扩大,以适应需求或改进前期没有想到的问题。因此我以为早期的优化和扩大化仍是有必定比较的。

问题二

小强地狱

此问题出如今书本的P241-242上,主要问题是开发任务与测试需求之间存在的矛盾。我以为过于追求开发新功能上,而不去管开发中遇到的某些bug会让开发有一些失衡。开发和测试的关系应该是相辅相成的。去完成客户需求须要开发人员和测试人员同时进行。由于某些bug没有及时修改而却是测试人员没法进行测试,这确定会影响工期,即便提早完成了开发,可是bug没有修复,仍是无法知足客户的需求。因此我以为“小强地狱”并不算一种很好的方法。更好的可让测试与项目开发的人员多沟通,沟通出目前急需修改的一些bug(不修改就几乎没办法进行更多的测试),而后让一部分人去修改这些bug,让测试人员和开发人员尽可能可以保持步调统一,这样多是一种更好的方法。

问题三

招数:设计变动

此问题出自于书本的P326-328,主要问题是在项目的最后阶段,经用户的反馈以后,发现原设计有须要改进的地方,怎样权衡利弊,作出修改,交出成品期间会出现的问题。在此讨论期间,可能会出现这种状况:有bug须要及时修复,可是须要消耗较大的精力甚至成本。此时又有某些新功能须要添加,这些功能并不在以前客户的需求之中,可是获得了用户的反馈,由于在开发中,添加此功能并不须要改动太多原来已经作好的东西,可是须要更好的构建这个功能。虽然是可使用DCR来进行管理,可是在开发中真正会怎么处理呢?

问题四

迷思之六:技术的创新是关键

此问题出自于书本的P348-349,主要是想告诉读者不要拘泥于“技术创新是‘关键’”的观念中,而且举出了“铱星计划”来佐证观点。我以为做者所举得例子不能很好的做证观点。由于做者举出了一个“技术的创新”的实例,可这个创新在最后却没有收获到用户的承认和成功。我以为这个例子做证的观点是“并非全部创新都是能被大众所承认的”或者“创新以前要充分分析市场需求”。由于这个手机的出现,确实是技术的创新,但是最终却失败了,缘由是由于它的想法有许多不靠谱的地方,或者说过度注重技术方面的实现却丢掉了商业模式等各个方面的分析,但这并不能和“关键”画上等号。这和“技术的创新是关键”的观念貌似没有太大的关系。我认为技术创新是关键,但同时也须要其余方面创新的支持。

问题五

迷思之八:创新者就是冒险家

此问题出自于书本的P354-355,主要是为了否认一些人认为创新者就是冒险家的观点。其实我以为“创新者就是冒险家”这个观点的提出就不是颇有必要,“就是”二字过于确定。我以为通常人而言,对创新的理解,能够是创业,去开辟事业,这确实须要承担风险。但创新也能够是更新,对现有的东西进行改进,进而获得新的东西。对于一些创新来讲,根本就配不上冒险二字,好比去改进板凳所存在的不方便的地方,这种改变算是创新,可是并不须要承担风险。固然还有更多其余的例子。因此我以为这个论点的提出其实不是颇有必要。

源程序版本管理工具

Git

优势

适合分布式开发,强调个体。

公共服务器压力和数据量都不会太大。

速度快、灵活。

任意两个开发者之间能够很容易的解决冲突。

离线工做。

缺点

模式上比SVN更加复杂。

不符合常规思惟。

代码保密性差,一旦开发者把整个库克隆下来就能够彻底公开全部代码和版本信息。

GitHub

优势:

GitHub是一个很是万能的工具。对于任何大小的项目,他都是理想的工具;他也是伟大的web工做流工具。首先,他能够做为一个版本控制系统和协做工具,用它来发布工做。

利用GitHub,你能够将项目存档,与其余人分享交流,并让其余开发者帮助你一块儿完成这个项目。优势在于,他支持多人共同完成一个项目,所以大家能够在同一页面对话交流。

建立本身的项目,并备份,代码不须要保存在本地或者服务器,GitHub作得很是理想。

学习Git也有不少好处。他被视为一个预先维护过程,你能够按本身的须要恢复、提交出现问题,或者您须要恢复任何形式的代码,能够避免不少麻烦。Git最好的特性之一是可以跟踪错误,这让使用Github变得更加简单。Bugs能够公开,你能够经过Github评论,提交错误。

在GitHub页面,你能够直接开始,而不须要设置主机或者DNS。

缺点:

若是,你是Github使用新手,首先的挑战就是摆正心态——须要不断实践和时间。

他可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟能够选择LayerVault 或其余类似工具。以前,咱们已经强调过Github很是适用代码跟踪,可是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。

这是由设计者决定的,然而,一些人发现 GUI 有点混乱,选择CLI代替。一些开发人员学习主要使用Git命令,这样能够解释为何他们不太喜欢GUI的缘由了。稍加练习,命令的学习是不太困难的。然而,你喜欢每天写命令吗?特别是跟踪项目历史或解决冲突的时候。因此就有了另一群喜欢GUI的人们。将提交、修改、移动文件等操做可视化,会有一个更好的体验。而这些,就如以前提到的,须要时间来适应。

若是,你专门在GIthub上工做,版本控制存储库就值得你拥有,也须要你长期付出。

Bitbucket

优势

支持Hg,最易学易用(但不是最强大的)的分布式版本管理工具。同时也支持Git。他的网页端的git仓库不如github好用,可是做为远端仓库足够了。

彻底免费的闭源项目,还支持5人之内的合做开发。

提交大文件速度很快且不限容量

缺点

和GitHub相比,开源项目只有较少部分在Bitbucket中(大部分在Github里,是由于Bitbucket用户没有GitHub多?)

相关文章
相关标签/搜索