---恢复内容开始---
第一次阅读和准备作业
请大家在作业开头添加格式描述:
这个作业属于哪个课程 |
|
这个作业要求在哪里 |
|
我在这个课程的目标是 |
1.明白自己以后的工作方向 2.更加了解软件工程的本质 3.为以后就业或者研究打好基础 4.最后拿到一个满意的成绩 |
这个作业在哪个具体方面帮助我实现目标 |
1.文字叙述能力的培养 2.自主思考能力的培养 |
作业正文 .... |
注意代码要按格式上传 |
其他参考文献 ... |
我的博客地址:https://www.cnblogs.com/catwhishaw/
一.建立博客并介绍自己
- 在cnblogs.com上注册开设博客。(并在作业中附上自己的博客地址)
- 同学在介绍自己的时候,可以隐藏一些信息,但是可以花时间说说自己的闪光点。很多人觉得,“我有什么闪光点...”,其实,同学们都有很多本事,超过周围大多数人。这个本事可以在课本学习之外,例如音乐,体育,娱乐,读书,演讲,记忆力,等等方面。请描述你的优势技能,并告诉我们,你通过了何种努力、花了多久获得这样的成就(参考娄老师的心得)
自我介绍
老师好,大家好!我是西南石油大学成都校区2017级软件工程三班的一名学生。我这人大多数情况下都比较懒,所以在大学我的学习成绩不太好,但是我非常喜欢这个专业和以后将要从事的工作。
我的爱好:听歌,看电影(有时候一天一部或一天多部)偶尔写写影评,滑板(目前才滑两年半),小提琴(三年级开始学了五年多),自己拍摄剪辑一些视频。
二.阅读与思考
(以下内容参考和转载于 北航助教 陈彦吉的 博客 http://www.cnblogs.com/ChildishChange/p/7363123.html )
同学们在上这门课的时候已经大二下期了,你现在面临的困难与迷茫,前人也一定有过。请看看别人怎么学习的,有些是科班,有些是野路子;有些成功,也有失败。请读完下面所有博客 (读这些博客你不吃亏,你也不上当!它们都是血泪经验或教训铸成的文字!)
主题 |
索引号 |
阅读前提问 |
链接 |
科班出身 |
A |
把每天把要做的事情分成ABCD四类:A-紧迫且重要;B-重要不紧迫;C-紧迫不重要;D-不重要不紧迫。你如何保证你的效率? |
|
B |
你是否也觉得自己是科班,但没学懂计算机? |
||
C |
把每天胡思乱想的东西记在一个笔记本上,作为思维快照,并常常翻回去自省,看看过去和现在的变化。这样的习惯呢? |
||
注 |
以上三篇来自《IT小小鸟的故事》 |
||
D |
偏科生自学摸索的道路。实习经验对应届生重要吗? |
||
E |
速成的培训班和打基础的大学教育有区别么,你是否对大学的基础学科存在的必要性有疑问? |
||
非科班出身 |
F |
很多同学看不起大学老师按部就班地教课,他们心想,我看视频也能学会的,为何要来听课? |
|
G |
半路出家,认真学习,对自己狠心,不断在实践中进步 |
||
H |
文科生转编程与他对大学教育的批判 |
||
大佬的博客 |
I |
技术栈和大佬的爆栈之旅 |
|
J |
大佬在职场中的摸爬滚打 |
||
K |
大佬给出的职业规划建议 |
||
L |
热情、能力、选择 |
||
M |
大佬的成长史与如何进入微软亚研院,他的知乎 |
||
一流的大学 |
N |
第一流的本科教学课堂该是什么样? |
|
O |
美国研究生的一些计算机课程和你上过的专业课有什么不同? |
||
P |
你在大学中体验到了哪种师生关系?你希望在这门课中采用哪种师生关系? |
||
Q |
世界一流大学怎么教软件工程?这种方式是你喜欢的吗? |
||
补充阅读 |
R |
不要轻易在简历上写我热爱编程,我热爱学习。你对计算机的热情是怎样的? |
|
编程人生 |
S |
文章较长,可以暂时不看 |
|
T |
文章较长,可以暂时不看 |
阅读以上材料,并回答下面几个问题:
(1)回想一下你初入大学时对软件工程专业的畅想
- 当初你是如何做出选择软件工程专业的决定的?
- 在刚上高中的时候就一直喜欢计算机这方面的专业知识,后来高中毕业有机会选择自己喜欢的专业就没有犹豫地选择了软件工程。
- 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
- 都比较符合,因为作为软件工程专业的一名学生,数学,物理这些看似不太和计算机沾边的东西其实都和计算机软件的开发密不可分。至于数据结构之类的专业课那当然不必说了,这些课程对于我来说都非常重要。
- 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
- 当然是我喜欢的领域,目前来说还不算擅长,因为很多知识还没有学习,还需要很多的实战经验和知识的积累。
- 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
- 当然会的,想去的城市有成都,武汉,南京,杭州,公司可以是一些初创的互联网公司或者游戏软件公司,岗位是想从程序员做起。
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
- 专业知识有数据结构(对一些基本算法的理解),C,C#语言编程,SQL server数据库语言的简单运用。技能有能用C,C#编写一些经典的算法程序,对一些程序的调试纠错。已写过的代码量大概有8000-9000行。
- 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
- 还有些一些程序语言没有学习,软件思维,算法构建上的能力还太薄弱。
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
- 工作是主要考虑的,考研是其次的,也有考公的想法。
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
- 本科先出来工作的话会积累较多的工作经验,劣势是起点也许会比研究生以上的毕业生低。
- 针对你的选择,你给自己的大三设定的规划安排是什么?
- 加强专业知识的同时多去了解一下现在软件行业的工作招聘就业情况,更好的当然是能找一个单位实习工作。
一个优秀的回答模板如下
博客D[1]的作者认为“企业要的应届毕业生就是一张白纸,这些白纸吸墨能力的高低决定你能否找到好的工作,而吸墨能力高则主要是基本功扎实、自学能力强的体现,并非我一直以为的丰富的‘实习经验’。”,我对此有一个问题:实习经验对本科生是否重要?
对于这个问题:首先,我同意作者强调的“基本功扎实、自学能力强”。同时,我也经过学长了解到部分公司,如依图科技的CEO也认为:“我不需要你有什么项目经验,本科生的经验是相当有限的”。但是,大多数企业招聘时都会强调“有过xx开发经历者优先”。另外,从本科生个人发展的角度考虑:博客K[2]的作者认为“在大学的时候尽量多地进入公司参与实际工作,一方面积累工作经验,另一方面,提前认识工作和自己,以便毕业时更准确地把握自己的方向。”
所以,实习经验确实是很有用的,不管是对于应聘还是个人的发展。但是企业招聘看重的真的是“实习经验”吗?
博客M[3]的作者就在博客中提到了他曾经完成的大小项目,并打趣地说他能进微软是因为他把这些经历写进了简历。所以综合上述观点,我认为,企业在面试时看重的并不是全实习经验,而是实践能力,实践能力自然也就包括了一开始提到的“自学能力强”等。
但是我还是有疑问:“完成一个类C文法的编译器”这样的作业的含金量有多少呢?
[1] https://www.cnblogs.com/xiaozhi_5638/p/4485805.html
[2] http://blog.csdn.net/haoel/article/details/1688104
[3] https://www.cnblogs.com/geniusvczh/archive/2011/12/16/2290808.html
三.提有质量的问题
- 快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。注明是哪一章哪一节。要有观点、有证据或分析。字数不是直接的考核标准,但是要求篇幅长到能把观点表述清楚。
(如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html,以及在互联网时代如何提问题。 还有这些要点:- 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。
- 列出一些事例或资料,支持你的提问 。
- 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
一个模板可以是这样:
我看了这一段文字(引用文字),有这个问题(提出问题)。我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。
【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。
d. 大学生应该能写出自己的思考, 而不是摘抄书本内容。
e. 提示:编程经验不多的同学,建议看16章 “创新”, 提出自己的问题。)
1.为什么要结对编程,结对编程是什么?P79
看了书上对结对编程的解释,我对结对编程这项工作依然不了解,于是网上搜集了一些相关资料。
时序图是一个模型,用于描述对象组如何随着时间在某些行为方面交互。”------源自CSDN博客
四.了解和调查源程序版本管理工具
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下Microsoft TFS、Git、Mercurial、GitHub、Bitbucket、Trac、Bugzilla、Rational,Apple XCode)
*1.GITHUB
优点:
1、GitHub 只支持 Git 格式的版本库托管,而不像其他开源项目托管平台还对CVS、SVN、Hg 等格式的版本库进行托管。GitHub 的哲学很简单,既然 Git 是最好的版本控制系统之一(对于很多喜欢 Git 和 GitHub 的人没有之一),没有必要为兼顾其他版本控制系统而牺牲 Git 某些独有特性。因此没有支持其他版本控制系统的历史负担,是 GitHub 成功的要素之一。
2、GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议。
3、GitHub 提供在线编辑文件的功能,不熟悉 Git 的用户也可以直接通过浏览器修改版本库里的文件。(源自W3cschool)
缺点:
1、资料少,学习成本比较大,学习周期比较长,要求人员素质比较高;
2、不符合常规思维;
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
4、不支持中文,图形界面支持差,使用难度大。不易推广。(源自CSDN博客)
*2.SVN
优点:
1、采用集中式,易于管理,保证安全性;
2、管理方便,逻辑明确,理念符合常规思维;
3、代码的一致性高;
4、适合人数不多的项目开发;
5、允许一个文件有任意多的可命名属性,会关注所有的文件类型;
6、支持二进制文件,更容易处理大文件;
7、支持空目录。
8、对中文支持好,操作简单,使用没有难度,美工人员,产品人员,测试人员,实施人员都可轻松上手。使用界面统一,功能完善,操作方便。
缺点:
1、服务器压力太大,数据库容量暴增;
2、必须连接在服务器上,否则基本不能工作、提交、对比、还原等;
3、不适合开源开发。
(源自CSDN博客)
*3.Microsoft TFS:
优点:任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM,能与 VS 无缝接合。
缺点:搭建、维护tfs比较复杂,硬件要求也比较高。
(源自博客园博客)