课程属性
所属课程 | <课程的链接> |
---|---|
作业要求 | <要求的链接> |
课程目标 | 深入了解软件工程,多方面学习 |
作业目标 | 学习博客使用,培养自学能力 |
1.自我介绍
我是2018级计算机科学与技术专业的学生。之所以选择计算机是因为当时认为程序员很火爆,高薪收入。计算机行业也是当前时代的一种主流。随着大学的学习中,我逐渐对这个行业的知识和学习方向有了一定了解才真正爱上这个行业,我的梦想是当一个后端开发的资深高级工程师,我也正在为此付出努力,上学期自学了MySQL,jdbc,servlet等方面的知识让我获益良多,这学期我想加倍的努力,将框架学习完,并亲手实践一些项目。
至于爱好,我很喜欢体育运动,足球,羽毛球,健身都是我的热爱,我想当一个健康的程序员,身体是革命的本钱。我几乎每天都会有运动。运动也让我的学习更加乐观积极,我相信坚持就是胜利,成功的果实需要长期的努力去沉淀。
2.回答问题
(1)回想一下你初入大学时对你所在专业的畅想和渗透
- 当初你是如何做出选择你所在专业的决定的
- 答案:当时很迷茫,抱着尝试的心态,再加上计算机行业太火了。无可抗拒选了这个专业。
- 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
- 答案:还是比较符合的,我对专业的期待不是学什么,而是亲自动手做什么。个人来说非常喜欢那种上手实践的科目,计算机就很好啦,随时随地都可以敲代码。而且计算机方向特别多,硬件,软件,算法,web,逆向和渗透,我可以任意选择我喜欢的东西。
- 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
- 是我喜欢的,也是我擅长的
- 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
- 会,我想去深圳腾讯当一名后端工程师。
(2)对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
- 答案:我已经基本上掌握了java,web方面也基本学会,MVC设计模式也学过一些。能力嘛还是不错滴,代码量比起身边的人要大一些。自己写过一个网上商城,后端代码全是自己写的。这是我人生中的第一个项目,也只做了这个项目,更多的学习和实践还没开始。
- 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
- 答案:差距很大,专业知识很多的没学,尤其是java底层和框架实现原理,这些东西都还没学,面试求职却重点考察这些东西,所以我还要继续努力。
(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
- 答案:大三春招去找一个好的工作
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
- 优势:我加入了计科院的科技团队,获得了许多学习资源,我自己目标明确,也了解了许多就业方面的知识,团队的学长学姐也留下了丰富的面试求职经验。至于劣势嘛,作为一个去参加工作的本科生相比起那些读过研的学生来说有一定的不足。尤其是以后在管理层升职方面会弱上一些。
- 针对你的选择,你给自己的大三设定的规划安排是什么?
- 答案:努力学习知识,大三进度要拉完,留出3个月以上时间复习,大三上多上点课,大三下抓紧时间面试。尤其要多看一下底层方面的书,大三留充足的时
- 间回顾和梳理,以最优的姿态迎接春招。
- 你对于实现自己的梦想已经做了或者计划做什么样的准备?
我求教了一些我们学校去腾讯,阿里工作的大佬学长,让他们帮我规划了一下学习路线和方向以及需要看的书籍。我也积极参加了可以增加我面试分值的一些
竞赛。现在一切都清晰了,只差努力学习了。。。。。。
3.提有质量的问题:
Q1:p52-p53页介绍了全栈工程师的定义:大部分运维工作都由一个工程是完成,那么该工程师就是全栈工程师。我感觉只有那些在不同的方向都融会贯通了的资
深工程师才有全栈的能力。那么如果我们想成为全栈工程师该如何努力呢?
Q2:第六章,p108,敏捷开发的原则:敏捷流程欢迎需求的变化,并利用这种变化提高用户的竞争优势。我感到很困惑得是:软件制作要以什么样的模式和框架才
能使软件符合这种敏捷开发的原则呢。我们要怎么去学习呢?
Q3:p51第五章,团队和流程给我们介绍了许多团队的工作方式,也明确了交流的重要性。但这也产生了许多问题。像功能团队开发模式个人感觉在交流上会产生
障碍。大家都是平级关系,遇到问题和分歧会非常恼火。而官僚模式感觉这种层层递进的方式极度影响开发效率。在现实开发中该如何去安排这些呢。我们怎么才
能最大提高开发效率呢?
Q4:p69介绍了代码的设计规范,这里面很多东西让我不能理解。尤其是错误处理环节,代码的错误处理竟然会花费如此大量的时间,为什么呢。既然书中不提倡
我们在写完代码后再去处理错误。那我们该怎么做呢,一些断言和参数处理只能解决一些基本的问题。那异常抛出和处理又该怎么办呢。
Q5:第八章:软件需求分析,软件的需求包括很多方面。软件的利益相关者也很多,这有一个很重要的问题就是,利益是如何分配,该怎样满足他们以至于不出现分歧。
4.了解和调查源程序版本管理工具
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下Git、GitHub、Microsoft TFS、Bitbucket、Mercurial、Trac、Bugzilla、Rational,Apple XCode)
- pull request,issue都是杀手级的feature
- 强调个人,符合hacker更看重名誉/成就感的天性
- 国内访问速度太慢,经常出现connect time-out(非GFW所为)
- 不能很好的解决GB2312/GBK,对中文不够友好
- wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点
- 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用
- 集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM
- 能与 VS 无缝接合
- 整个系统是用 asp 实现的,用浏览器访问相当慢
- 从 IE 上访问、填写各种开发、测试记录,也是很慢,感觉不如 mantis BT 这样基于 php 的那么方便、迅速
- 用 XP 系统无法访问,还得是64位的? 所以把电脑的整体性能拖下来了
- 团队的邮件细节配置比较复杂,不关心的项目的变更集也会发邮件