———————————————————————————
这个作业属于哪个课程| <课程的链接>
---- | ----
这个作业要求在哪里| <作业的要求>
我在这个课程的目标是| <加深对软件与开发的理解,训练逻辑思维能力>
这个作业在哪个具体方面帮助我实现目标|<通过读别人的故事,扩大自己的眼界>
1.介绍自己
(1)独立生活
2012年前我和绝大多数人一样是一名普普通通的小学生,而且还是那种平凡到骨子里的毫无特点的学生。上课偷看漫画,英语课堂上睡觉不听讲,期末考试混个三好学生。就这样浑浑噩噩的度过了小学六年的生活。可是在2012年的夏天,父母决定送我去市里读初中,我从一个较为封闭落后的环境中突然跃迁到开阔的城市中,短时间内难以接受,无形的压力像大山一样压倒在我弱小的心灵上。一周回一次家并且借宿在班主任家里(班主任开办学屋),每周我期盼的无非就是周末与家人团聚,让我能够重拾一些心灵上的慰藉。
(2)靡不有初
英语是我当时最为头疼的学科之一,因为底子差基础不好所以难以跟上课堂上老师的脚步。但人的意志是无限的,在心理压力的推动以及班主任的鼓舞下,我还是坚持了下来。从此一发不可收拾,英语一度从入学时期的不及格到最终中考95分(100分制)高考133分,以及现在大一学期结束我就过了英语四级和六级。还是非常感谢我的初中班主任,他真的无论是在生活还是在学习上都给予了无限多的鼓励,让我真正能在压力下勇敢前行。
(3)鲜克有终
渐渐的我习惯了飞离父母温暖的怀抱,习惯着一个人去生活,初中以优异的成绩远超乎父母的期望考上了临沂第一中学,也许这就是宿命的安排,我在这所名校并没有贯彻校训“厚积薄发 智圆行方”的真正理念,从而我高中三年的学习生涯都是不完美的是失败的。最终我在18年的高考中以577分的成绩考入了SWPU计算机系,这也许又是命运的某种安排,让我来到了天府之国—成都,我热爱这座城市并且希望能在SWPU留下四年珍贵的回忆。
(4)热爱体育
田径是我的第二人生,虽然在很多人看来田径场上的比赛仅仅是几项运动而已,但对我而言,绝非如此。竞技体育的魅力就在于我们难以预测比赛的结果,不到比赛的最后一秒,任何事情都有可能发生,就像生活一样。我热衷于短跑,短距离冲刺的极致体验,能让我忘乎所以,能让我感受到竞技体育的魅力所在,能让我投入其中。18年新生运动会,19年计科院运动会和19年校运会必将成为大学四年我难忘的事情。而时间还在继续,训练也为停止,我也将继续努力训练,争取更高的荣耀
2.阅读与思考
(1)回想一下初入大学时对所在专业的畅想
选报专业时我着重挑选了与数学和英语有关的专业,因为我比较擅长数学并且对数学方面的东西比较感兴趣,而且英语水平勉强过关也不算很差,所以我就选报了既需要英语词汇量与一定的英语素养又需要数学的逻辑思维与计算能力的计算机类专业。刚查到我被SWPU的计算机系录取的时的我是不知所措的,突然要和从小玩到大的“电脑”打交道,一时间我还是有点不适应。当时我的脑海里一直回荡着“啥是计算机科学与技术”“这个专业是不是毕业了就是程序员啊,是不是每天就敲代码啊"“我们上课的时候是不是每天都要带着电脑?”一系列的问题围绕着我。我印象最为深刻的随着录取通知书一起发来的那张明信片,也正是这张明信片,打通了我与计算机的第一条路。一个字母一个字符的在键盘上勉强的敲完了所有的字符,用百度的在线编译器编译,却没有通过,错误一大堆。从那时我才知道原来代码中的字母字符大小写是有区别的。就这样我与计算机真正的故事就开始了,从小时候仅仅停留在玩游戏和聊天的层次上升到要努力学习以后以此为生的专业技能。
开学前,我一直以我是一名程序员为荣,我认为“计算机科学与技术”的专业名称高端大气上档次而且一听就很有技术含量。我对计算机充满了好奇心,不仅因为计算机包含种类的,要求技术含量高,而且毕业后工资方面也不差,所以当时的我以为我在SWPU的四年必定是每天与代码打交道,沉浸在数字与逻辑的海洋中。在过去的一年中我多多稍稍接触了程序设计基础、数据结构和面向对象设计等一系列课程,基本上算是入了计算机的门,也一定程度上满足了我对这门学科的好奇心。在这几门课程中我有了解到数据类型的多样性与组合的灵活性,也有了解到算法的巧妙设计,最重要的是我动手完成了一个个简单的c语言cpp文件,程序虽小但像我这样刚入门的程序员来说还是挺有成就感觉的。但我知道这离我的目标还远远不够,我的编程之路才敢刚刚开始。我对计算机的兴趣也愈发浓厚,我发现想要学好计算机这门学科,亲自动手实践的能力与解决问题的数学逻辑思想是必不可少的,所以自己一定要加强这方面的练习,以此提升专业能力。未来,我肯定是要从事与专业相关的工作的,最好当然是能够近一些企业公司去发展,所以现在应该多练习专业技能,积累专业经验。
(2)对照前人走过的路和描述未来发展,现在的你
博客(B)的作者谈到他的本科四年定调“迷迷糊糊、庸庸碌碌的拿着奖学金”。从他的经历中我了解到他的本科成绩优异,但是他的思维模式也是沿着老师固定的模式,或者寻找类似的解答方案,规规矩矩地跟着老师的脚步走,这样一步一个脚印过来的。导致的结果是“缺乏动手实践能力,自己亲手编辑代码能大大提高编程素养和思维能力但却没有付诸实践.”我感慨到这简直就是我以及许许多多本科在读的计算机专业的学生的缩影啊!其中我印象最为深刻的一句话“我的老师没有个我必要的关键性指导,但,不可否认有一些同学,他们总是先知先觉,他们总是会问为什么这门课程要这么上,他们是会思考自己是不是走在正确的道路上,于是他们大量丰富自己的实践,从而也优雅的完成了本科学业。但遗憾的是,大部分同学,就这样,因为缺乏必要的指导,迷迷糊糊、庸庸碌碌地过完了本科。”我非常的震惊,因为作者讲的完完全全就是我的心里想法,我开始举得我所具备的所谓的专业知识、专业技能和专业能力有多么的局限。到目前为止,我所做过的最复杂的项目也无非就是程序设计实践课上写的小游戏,例如扫雷、贪吃蛇和俄罗斯方块之类的东西。所以我觉得我们的视野我们的专业领域还太浅了,远远达不到一个程序员应有的十分之一,而且我们缺乏项目经验,除了完成课后必须完成的基本项目之外,应多找机会拓宽自己的视野,锻炼自己的能力。
(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也许有许多不同的分支。
参照博客[L]的经历,结合自身情况综合考虑,考研是我不得不面对的人生的又一大分岔路口。可能从高考填报志愿出来的那一天,我的考研路程也就确定了。在SWPU计算机系读书,川内很多名校可以作为我的考研目标,例如电子科技大学、西南交通大学、西南财经大学以及四川大学都是很好的选择。但随着每年考研人数的飞速增长,本科生考研的压力也越来越大,所以对自己而言,不仅要有心理准备,还应提前制定考研的计划,早了解各大院校的招生简章,同时学习方面也应该着重加强。尤其是英语和数学以及专业课的学习,由浅入深逐渐达到考研的笔试要求。所以在即将到来的大三一年,首先心理上应该摆正自己的目标,明确不达到考研的目的决不罢休的决心,同时指定明确的计划,每天规律系统的复习以及作息,也应该加强身体锻炼保持身体的健康。一个大的目标不是一蹴而就的,所以从现在开始,就应该有计划的尝试实现自己的一个个小目标,比如大二学期的加强专业课程的学习,提高自己的专业课素养等。最重要的,靡不有初,鲜可有终。
3.提有质量的问题
(1)关于“创新的迷思”,在人们多看重利益的时代,真正的创新还有意义吗?还能保存原有的全部价值吗?
在《构建之法》第十六章 IT行业的创新一节中的“16.1.3迷思之三:好的想法会赢”中提到了:“那怎么样才能让别人喜欢(至少不痛恨)你的创新呢?提出一个创新的想法时,我们应该考虑这么几点:①对利益相关的人要讲清楚,他能从中获得什么东西。②创新的想法和目前流行的做法相比,有什么相对优势,能让别人清楚地看到这个区别,并能够尝试。③创新和目前的大众习惯、已有系统是否兼容④避免过度描述复杂的技术。”我的疑惑在于:如果我们在现在的条件下谈论“创新”都需要考虑这些例如之前的发明者会不会因为我的创新导致他的利益受损而反对我的创新发明,还需要考虑我的创新是不是有利于目前市场主流人员的利益这一系列问题。那创新的意义何在,如果要考虑这些东西,那为什么不把创新叫做“商业互助的更新换代”。固然考虑大众潮流非常重要,但我认为,创新的本质就在于创新者灵光一闪的思想,这是无价的,是多少利润也换不来的,这珍贵的思想不应该因为金钱这种物质的东西而减少甚至丧失本身应有的价值。所以,创新应该是无所顾虑的,应该是天马行空的,是敢做敢想的勇敢者的行为。
(2)为何会有“创新的时机”这种说法,创新不应是巧妙灵感的付诸实践吗,为什么会存在“时机”一说,创新是可以控制的吗?
在《构建之法》第十六章 IT行业的创新一节中的16.2“创新的时机”一节中以“黄金点的游戏”为例展开分析创新的最佳时机,文中提到“大众对新技术接受的曲线”分析到大众的平均值再往前一步就是“早期采用者(Early Adopter)”那个区间,有时一个崭新的技术,推出的时间太早(它的值比G-number小一点),它就跨不到那道沟(Chasm)。”固然,创新产品上市推行的时间和市场以及消费者心理各方面有密不可分的关系,但这和创新的时机又有何关联呢,“创新的时机”顾名思义是创新发生的最佳时刻,难道这不应该是取决于创新者的思想积累程度嘛?
(3)怎样切实提高估计能力
在《构建之法》第八章 需求分析的8.6.3的一节中作者用西班牙探险者到美洲科罗拉多河大峡谷的经历以及分析具体软件学院毕业的学生果冻做项目的经历来阐述了“提高估计能力”“分析项目关键因素”等一些列论点,但由于内容实例化,我对如何落实到实际行动上,应该如何去做还存有疑惑,到底应该怎么样提高对项目的很多关键因素的估计能力呢?
(4)到底何为“领导力”,如何提高个人的“领导力”
在《构建之法》第十七章 人,绩效和职业道德一章中有多个小章节提到了“领导力”的作用还有含义以及如何培养领导力。例如书中写到“在软件团队的语境中,领导力有几个要素:①设定目标②知人善任③带领团队成长④绩效管理”以及“领导力可以带领团队成长。领导力可以奠定团队基础的五个原则问题比如目的、原则、优先级、计划和人员。”总而言之,书中叙述了领导力的重要意义,也提出了很多培养领导力的客观方法。但我想了解,如何从个人做起,从内心观念的改变开始做起,树立正确的观念,真正培养一个人的领导力。
(5)什么是用户体验,什么时候开始考虑用户体验,怎样做到最好的满足用户的产品使用体验
在《构建之法》第十二章 用户体验一节中主要讲到了用户体验的重要性,其中12.1.6用户体验和质量中就以GE公司的总裁杰克·韦尔奇分享的因核磁共振机检查问题而引起的商业竞争的例子为由讲述了厂家在产品生产过程中考虑用户体验的重要意义。我的疑问是,既然用户体验和用户界面对一个项目这么重要,但是负责这类工作的设计师并不是软件工程师,设计师们什么时候加人紧来为好呢?应该如何根据项目和用户的类型来决定设计师与工程师的交互方式呢?
4.了解和调查源程序版本管理工具
(1)Git
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。一般从开发者的角度来说,git不仅能从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。而且能在自己的机器上根据不同的开发目的,创建分支,修改代码等等一些列主干和分支的合并拆分工程的完成。从主开发者的角度来说,Git能够查看邮件或者通过其他方式查看一般开发者的提交状态,打上补丁,解决冲突,以及向公共服务器提交结果,然后通知所有开发人员。总的来说,Git适合分布式开发,强调个体,而且Git的公共服务器压力和数据量都不会太大,速度快而且灵活。并且任意两个开发者之间可以很容易的解决冲突。但Git的资料很少,起码中文资料很少。而且学习周期相对而言比较长,不符合常规思维,代码保密性差,一旦开发者把整个库克克隆下来就可以完全公开所有代码和版本信息。
(2)GitHub
GitHub是一个面向开源及私有软件项目的托管平台,只支持git作为唯一的版本库格式进行托管。GitHub可以托管各种gif库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。GitHub是一个非常万能的工具。对于任何大小的项目,它都是理想的工具;它也是伟大的web工作流工具。首先,它可以作为一个版本控制系统和协作工具,用它来发布工作。利用GitHub,我们可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于,支持多人共同完成一个项目,因此我们可以在同一页面对话交流,而且可以跟踪错误,bugs也可以公开,通过Github评论,提交错误。然而一些人也发现GUI有点混乱,选择CLI代替。一些些开发人员主要使用Git命令,这样可以解释为什么不太喜欢GUI的原因了。稍加练习,命令的学习是不太困难的。但是,我们不习惯每天写指令。总结,GitHub是一个很棒的版本控制系统。绝对值得我们花时间去投资,对于任何项目,它可以给我们平和的心态和很高的灵活性。
(3)Bugzilla
Bugzilla是一个开源的缺陷跟踪系统,它可以管理软件开发中缺陷的提交,修复,关闭等整个生命周期。Bugzilla是一开源Bug Tracking System,是专门为Unix定制开发的。其功能特点突出,例如强大的检索功能,通过跟踪和描述处理Bug以及完备的产品分类方案和细致的安全策略都是Bugzilla的突出优势。但是鼎鼎大名的开源软件Bugzilla的界面几乎可以说是惨不忍睹,在这方面而言Mantis的界面则要友善的多了,操作也相对更加人性化一点。但总体而言Bugzilla是免费开放的软件而且响应速度较快。Bug处理流程固定但总体来说还是很流畅便利的,在分配界面也可以修改bug信息,总体还是一款很好的debug的系统
(4)Apple XCode
Xcode是运行在操作系统Mac OS X上的集成开发工具,主要用于开发macOS和ios应用程序的一款应用软件.Xcode具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。对于Xcode而言,其主要有文件转移、辅助开发、协作运行、海量内存、自由撤销几类突出特点。其中海量内存尤为突出,Xcode将赋予你诸如计算和渲染隐形应用程序的能力,这些应用程序使用64位内存定址。这非常适合数据集中的应用程序,其通过访问内存中的数据运行速度更快,远胜于磁盘访问。而对于自由撤销而言,Xcode4的虚拟模型和设计功能能提供更为轻松的开发环境和维护应用程序的方法。只需选择应用程序中想要编写的部分,然后模型和设计系统将自动创建分类图像,不仅可以显示编码,还可以让你进行浏览.MacOS X CoreData API帮你的应用程序创建数据结构,更棒的是他还自动提供撤销、重做和保存功能,无需编写任何编码。总的来时,Apple XCode是集多功能及特点于一身的一款很适合ios系统编程开发环境的集成开发工具,能很高效的处理文件等数据以及给出一系列数据分析结果,是一款性能较为优秀的开发工具
个人总结
这是我的第一篇博客,通过完成这次作业,我真真切切的体会到了“他山之石,可以攻玉”的重要含义。通过阅读一篇篇精美的文章,感受作者分享的独特经历,对自身的发展无疑是一种很好的促进,但更多的是我思想上的改变,我不在把思想固定在“跟着老师的脚步走”上,而是觉得个人独立前行也是很重要的一部分。如果我们在年轻的时候干着老了都能干的事情,那我们要青春干什么呢?无畏造英雄,敢拼,敢想,敢做。