第一次作业:阅读与准备

班程 班级链接
作业要求 作业链接
我在这个课程的目标是 从软件工程入门到想工程师一样思考
本次作业目标 学会使用博客园发表博客便于以后学习

个人简介

犯过很多错,撞过很多墙,疯狂过,迷失过
知道自己想要什么,知道自己该做什么

我叫刘德琦,一名普通的不能再普通的大学生,也是一名最近才进入编程世界的孩子。对于这个知之甚少的编程世界我对于一切事物都好奇,从最开始的被动学习开始主动学习,对于编程充满了激情。在自己学习的过程中会遇到很多问题,有些时候解决不了的问题就会请教别人,感谢那些不厌其烦帮我解决问题的人,在我看来虚心请教是学习最重要的组成部分。在未来我会在这个新的世界开始自己的航行。

阅读与思考

(读了很多篇就拿一篇感触较深的谈谈)
你真的热爱编程吗?别在简历上轻易写热爱编程感悟与思考
其实我在读这篇文章之前还读过里面提到的一个例子北大青鸟培训生:从月薪800到年薪40w这个从只有初中文化水平开始的奋斗人生印证了本篇文章里的一句话:这行业这20年,是中国最好的行业,不管你的出身,你的学历,你的背景,你的户口,只要你能干活,你肯学习,你总是可以找到不错的工作,甚至可以拥有傲人的薪水。引发了我对自己的思考:我在博客中的简介提到自己对于编程充满了激情,那我自己是否又能吃得下这份苦呢?曾经的我连数据结构都学不好,遇到困难就想溜,心浮气躁急于求成,以致于今天的我初生牛犊不怕虎,我庆幸我选择了这个专业,我庆幸我生在了这个时代。如果你想成为一名职业运动员,除了超出常人身1体天赋以外还有昂贵的培训成本,但是你想成为一名职业程序员的话,你只需要一台计算机和互联网!我知道这条路必然不好走,但是我很年轻,我得试试。我现在没有什么经验,我渴望哪些我感兴趣的知识来武装自己,我曾经对于篮球也曾疯狂过,我曾经很垃圾,每个周末我都是最后一个离开篮球场的人,渐渐地我的水平也超过了圈子里的其他人。我想进步就是花费比别人更多的时间,吃比别更多的苦。

回答问题
(1)回想一下你初入大学时对你所在专业的畅想:
答:当初在大学选择专业的时候其实自己的心里是对于这个专业是没有什么概念的,甚至是通过了一年的学习才渐渐了解我所学的专业的轮廓,我还在接触,在寻找自己所感兴趣的模块,遇到了很合胃口的方向或者语言就会去全力以赴的去学习,目前对于python很感兴趣,喜欢他的简介明了效率高。
目前我想我选择的这个专业从来没有后悔过,我很喜欢我的专业,未来也会投身于编程的工作当中去。
对于软件工程基础这门课,我个人很喜欢,陈老师自己开过软件公司,开发过很多软件,在他上课给我们讲的故事中都渗透着他想给我们传授的软件开发思想,他自己亲身经历过很有说服力,例子具体形象容易懂。上课的感觉其实挺好的,我感觉我和一群软件工程师们坐在一起,这门课开设的目的也就是培养软件工程师,我相信在我们这个教学班里未来有不少人会选择这个专业就业会成为软件工程师。
(2)对照前人们走过的路和描述未来发展,现在的你:
答:目前自己具备的专业知识,唉只有C语言说得过去,还能有C语言的思维去强行写一写Python代码。以前写过最长的程序也就是程序设计实践课做的贪吃蛇有600多行。我现在大二,我能感受到目前我的水平真的很LOW,好在我现在知道自己想干什么有事情干不会让自己闲着,离一个合格的本科生还差得远,我知道只跟着课堂学习课程内部的知识是远远不够的,校园里的教程远远落后了社会发展,就想文章里面说的刚刚毕业的本科生就很白纸一样什么都不知道,什么都不会,我想我需要在学好课内课程的基础上增加课外知识储备。一切会好起来的。
(3)
答:我其实自己现在还没有明确的方向,因为我经历的太少,见识的太少,我现在能做的就是更多的去学习,增加自己的见识丰富自己的经验是自己可以做出最好的选择,但这绝不是迷茫我现在至少知道自己已经在这条路上了。我目前的想法是趁自己还有精力就在本科时期多学点东西,本科毕业以后就去就业吧,在实践中去成长。我自己的方向,虽然我学的是计算机科学与技术专业,教学大纲和培养方案 希望培养一些研究硬件的毕业生,但是通过身边的朋友甚至一些老师都说 本科生搞不了硬件,门槛太高不如软件开发好,加之本身自己就对于软件啊,代码呀这些东西很感兴趣所以会选择软件方向。

提出问题

一.第十二章 用户体验:光吃狗食也不够
阅读了这一段文字我很好奇“吃狗食”是什么,于是百度了这个词条提到了微软员工吃狗食的词条也浏览了网页,在网页里面的词条解释是微软在软体开发阶段就优先让员工使用的传统称为「吃自家的狗食」,这种测试方法可以让开发人员立即获得使用者回报问题,有助于避免开发盲点。还是对于这个名词有点陌生,为何要把员工自己在日常生活中使用自己开发的软件叫做吃狗食呢?
二.第十七章 猪,鸡,鹦鹉的故事
读完了这篇文章我感觉有些疑惑,那到底是当文章里提到的猪好:
全身心的投入到一件事情当中去,付出极高的代价也收获对应的回报,容错率低
还是当文章中提到的鸡好:
相对于猪来说鸡更游刃有余,而不是埋头苦干,灵活,投入少风险少容错率低,我更喜欢鸡这一类人
文章中的鹦鹉:
能说会道,光说不做什么也不付出,自然没有什么风险可谈。
到底如何去选择成为怎么样的人?
三.17章 萝卜与白菜:
读了这个文章我提出的问题是在参加工作之后如何来如何处理这一类问题,赶时间就不能做的很细致,创造BUG并且修复BUG好,还是多花一些时间在编写程序的时候规避BUG好,最后结局都是没有BUG,对于思维快的人来说他们的创造力往往会造成一些BUG但是最后可以修复那是不是也对于开发的用户体验会好一点,毕竟这样的员工对于编程对于工作充满了热情,也不会畏惧BUG。对于白菜型的员工来说 他的工作量确实没有前者大但是他做到了各司其职,在我看来过于保守,至少我现在的思维是在写一个模块的时候应该敢于尝试没有程序是没有BUG的。
四.实战中的软件工程 P13重视商业价值,提供渐进价值:
对于开源有更高的商业价值其实我还没有理解,我知道LINUX系统是开源的,JAVA也是开源的。JAVA被开发者广泛使用,LINUX系统也用很多相关软件比如说Ubuntu。。。但是到底是什么让开源的软件语言系统生命力如此强大,我还是有些困惑。
五.第六章 敏捷流程简介:
读完这个简介我个人是没有读懂即使有图文呼应,这些和传统方式不同的方法是如何带来更多的价值,我想我通过学习这门课程老师会解开我的疑惑。

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

GIT:
为帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。第一次作业:阅读与准备_第1张图片
特点:分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。

优点:

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

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

速度快、灵活。

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

离线工作。

缺点:

资料少(起码中文资料很少)。

学习周期相对而言比较长。

不符合常规思维。

代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
(以上均来自360百科词条)

GitHub:
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。

gitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。
推荐阅读点开看更多github(此链接来自CSDN)
BitBucket:
BitBucket 是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户。
特点:
无限制的私有仓库个数
无限制的磁盘空间
同时支持https/ssh
Bug 跟踪
项目Wiki
API 支持
灵活的权限控制
可自定义域名
RSS 修改记录输出
自定义下载
点开借鉴一篇CSDN一篇文章查看更多

你可能感兴趣的:(第一次作业:阅读与准备)