《构建之法》——第一次作业

阅读与准备作业

这个作业属于哪个课程

<课程的链接>

这个作业要求在哪里

<作业要求的链接>

我在这个课程的目标是

深刻理解软件工程的本质;

找到自己未来想做的工作的方向;

熟练使用博客园这个“工具”;

这个作业在哪个具体方面帮助我实现目标

这个作业可以让我掌握博客园的使用方法,并且使我规划好学习计划,认识自己。

我的博客地址

<我的博客>

一、自我介绍

我是17级软件工程的一名学生李星晨。我是大一下转到软件工程的一名“插班生”。我的性格比较慢热,喜欢认识新朋友,但是总是由于内心一些不可抗力不愿主动认识新朋友,喜欢对方主动跟我打招呼(o(* ̄▽ ̄*)ブ)。

在学习方面,我是一个学东西非常慢的人,而且对理科方面不太在行,听起来好像不太适合软件工程专业的样子。在和朋友相处方面,我是个很在意别人的眼光的看法的人,这是优点也是缺点吧,优点在于很多人说过我的感情比较细腻,比较能感受到对方的情绪变化。不过我逐渐发现这样是特别不对的,因为对我来说弊大于利啊,经常会给自己增加很多烦恼,所以我决定这学期开始放飞自我!

二、阅读和思考

(1)回想一下你初入大学时对你所在专业的畅想
  • 当初你是如何做出选择你所在专业的决定的?

答:在博客园上看了很多人的报告都写的是在大学之前就接触了计算机行业了,很多人是真的非常热爱这个专业。感觉我好像有点不一样,作为女生,我之前从来没有想过以后会在计算机行业谋生,在进入大学之前我的理想专业是风景园林。甚至在大一上学期,我也不是计算机专业的,我是大一下转来软件工程的,讲实话当时有一点点被迫的感觉,形势所迫,当时是考虑以后工资会比较高。不过经过两年的学习,渐渐能发现这个专业真正的有趣之处了。

  • 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?

我认为大部分是符合期待的,但是其实和自己最初对软件工程的理解却又出入很大。最初对软件工程的概念非常模糊,认为就是做软件。最开始接触c语言的时候其实一开始真的处于一种不太明朗的状态,后来随着学习的深入,学习了数据结构与算法,c#等等语言之后,才能慢慢体验所学的东西与实际之间的关联

  • 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?

我觉得软件工程范围很大,常用的划分方式是前端和后端。个人比较喜欢前端领域,看的设计的很好看的界面会有很舒服的感觉。

擅长的话我觉得谈不上,我觉得我需要学习的部分还有很多很多。

  • 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

肯定会的。

城市:成都

公司:这个暂时没有特别考虑过,也还没有特别去关注过,不太了解。

岗位:Web前端工程师以及其他前端相关工作。

(2)对照前人们走过的路和描述未来发展,现在的你
  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。

如果对比人们走过的路的话,感觉自己需要学习的东西还有很多。在专业知识上,从编译器层面的话,能够熟练的运用很多语言,但对于底层设计掌握的很少,像汇编语言,计算机网络等知识还需要加强。技能的话在前端部分一直在自己学习,也能够很好地完成一些界面的制作。自己写过的代码量就不太清楚了,自己也没个概念,但是之前老师说过要达到十万代码量,估计还差很多,需要努力写代码。

做过最复杂的项目应该是一个主题是线上图书馆的开放性实验,在这个项目中我负责主页的设计,图书馆主页的功能非常的多,有很多小细节,在前期构思如何去设计我觉得是一个难点,既要把大众常用的功能放在醒目的位置,又要保证美观性。最后的成品我自己还是比较满意的。

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

在专业知识上,我们还未学习的操作系统,计算机网络是一个差距。还有就是之前学过的软件工程模式,计算机科学等等都需要我们反正咀嚼,消化才能达到毕业水准。在技能上,我认为我最大的不足就是在前后端交互这部分技能十分匮乏,即使有项目经验都未能达到很好地学习效果。在能力层面,我觉得能力分很多种,毕业生应该具备的能力我认为有三点:管理能力、交流能力、自主学习能力。我现阶段这三种能力我认为只能算中等,毕业的最低线应该是良好,当然要把优秀作为目标。

(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
  • 对照以上你阅读的前人们的经历,你的选择是什么?

工作。

  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

劣势:我用了很多时间去思考工作还是考研,我本人是更偏向工作,但是身边朋友的压力常常让我想要考研,一直在这学期开始才正式决定下来,所以我浪费了很多时间,比别人慢了一拍。

优势:在工作层面,我不仅在学习技术,也在同时学习日语(虽然才刚刚开始^_^),同时在前端就业技术层面,我也一直在学习,并且在大一接触了ps、pr等绘图,剪辑工具,我认为这是我的优势。

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

在博客园的文章里,辜新星:时刻调整方向 找到人生的蓝海这篇文章使我感触很深。作者的心路历程让我觉得自己确实有很多不足。作者文中提到:

要把每天把要做的事情分成A、B、C、D四类: 
A——紧迫且重要;B——重要不紧迫;C——紧迫不重要;D——不重要不紧迫。

关键的是,一定要在专属时间内专心致志地做好当前的事情,不受其他任务的干扰,这样才能提高效率。

我觉得这个方法很棒,于是我将的大三规划为

A——认真学习专业课程,查漏补缺。

B——深入学习前端技术并能熟练掌握;

B——找好自己的定位,了解就业动向,不盲目。

D——加强自己的优势部分。

同时,在专属时间内专心致志地做好当前的事情这句话听起来非常简单,但是做起来难上加难,我发现我现在做一件事很难静下心来,所以在今后的的事情,我会时刻记住这句话,以提高自己专心程度。

  • 你对于实现自己的梦想已经做了或者计划做什么样的准备?

我觉得我最大的准备不是在技术上,而是很好的调整了自己的心态,未来实现愿望的路上一定是充满荆棘的,但是我会直面困难。

 

三、提出有质量的问题

  • 问题一

来源:《构建之法》中1.2.4——软件工程的目标——创建足够好的软件,中间有一段关于BUG的描写,软件行为和用户期望值不一样,就是BUG。

我的思考:在文章中还用到了这样一个例子:某聊天软件不支持视频聊天,用户期望这个聊天软件支持视频聊天,但是该软件开发人员说这个软件根本不支持视频聊天。按照上述对bug的解释来说,这就是bug。但是我觉得这并不是bug,我认为bug不应该只取决了客户。而且很多软件还没部署我们就常用运行不起来,因为有bug,那这样的话根本还没用户期望存在。所以对bug的描写到底应该怎么理解呢?

 

  • 问题二

来源:《构建之法》中3.2章中有一个过早优化问题,我想知道为什么过早优化是不对的?

我的思考:书中提到,一个工程师在写程序的时候,经常容易在某一个局部问题陷进去,花大量时间对其进行优化,无视这个模块对全局的重要性,甚至还不知道这个“全局”是怎么样的。这句话乍听没有错,可是细细想来,这句话和过早优化似乎没有太大关系,它侧重于讲的是舍本逐末,但是过早优化强调的应该是一个“早”字,我觉得早点优化,未雨绸缪似乎没有错,那过早优化真正缺点到底在哪呢?是利大于弊还是弊大于利呢?

 

 

  • 问题三

来源:《构建之法》中4.5.2为什么要结对编程。

我的思考:在书中提到了很多结对编程的优点,比如减少错误,提高初始质量,省下很多修改、测试的时间等等。我并不否认,我也认为结对编程的优势非常明显,但是我想知道一个项目,我们怎么区分它是更适合个人编程、结对编程或是团队编程呢?是否有什么判断的原则或是标准呢?

  • 问题四

来源:《构建之法》中9.4领导力——高效的团队讨论,有关要带着感情去讨论问题么?

我的思考:这一点感觉我很关注,应该确实在项目开会中,总是会有会议不欢而散的情况出现,搞得最后问题没解决,大家心情也不愉快。翻阅本书,我发现本书给出的解决方法是:在开会时,最好是在事实理清之后,拨出几分钟让大家充分表达情绪,且不用说明情绪的理由。看到这里,我感觉这句话非常不现实,首先,不说明情绪的理由如果表达自己的情绪呢?其次,拨出几分钟这种固定的时间,人们往往无法表达充分自己的情绪。所以我希望有没有更好的解决方法呢?

  • 问题五

来源:《构建之法》中16.1.4中迷思之四:创新者都是一马当先,对后发优势有些不理解。

我的思考:老师在上课时举过一个例子,如果有一个app被创建出来,用户使用习惯了,那么就算后面出现比这个app更好的类似产品,用户也不会去使用。我深以为然。但是这个观点和书上的观点相冲突,书上的意思即为,大部分的创新者都不是先行者。并举出了很多例子证明后起者具有后发优势,但是书中没有解释什么是后发优势。在我的观念中,互联网时代谁做第一个吃螃蟹的人谁就是找到了商机,可是为什么大部分的创新者都不是先行者呢?虽然是大数据显示的结果,我还是不能很好地理解。

 

四、了解和调查源程序版本管理工具

 

  • Git

 

  • 优点;
    (1)是开源的分布式开发。

    (2)使用起来比较灵活,而且速度快。

    (3)如果团队中有代码冲突,可以很好的得到解决。

    (4)离线也可以工作。

 

  • 缺点:
    (1)因为没有较多的中文教程,上手较难。
    (2)学习周期相对而言比较长。
    (3)不符合常规思维。
    (4)代码时公开的,不够保密。

 

  • GitHub

  • 优点:

(1)GitHub 提供在线编辑文件的功能,Git 的用户可以直接修改版本库里的文件;

(2)GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议;

(3)项目的 Fork 和 Pull Request 构成 GitHub 最独具一格的工作模式。

  • 缺点:

(1)国内反应有点慢了;

(2)因为基于Git,学习起来也比较困难。

 

 

  • Mercurial

  • 优点:

(1):轻量级分布式版本控制系统。

(2):易于学习和使用。
(3);扩展性强。

  • 缺点:

(1):只支持python2.7。

(2):也是资料和教程太少,学习起来难度很大

 

转载于:https://www.cnblogs.com/ForOnedayy/p/11504900.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值