格式描述:html
问题 | 连接 |
---|---|
这个做业属于哪一个课程 | 课程连接 |
这个做业要求在哪里 | 做业要求 |
我在这个课程的目标是 | 课程目标 |
这个做业在哪一个具体方面帮助我实现目标 | 具体实现 |
做业正文 | 做业正文 |
参考文献 | 参考文献 |
我在这门课里的目标以下:git
了解并体验软件开发流程,体验在软件开发的各个阶段的内容程序员
决定本身之后的方向github
web
此次做业可以帮助我实现的目标是:数据库
决定本身的方向小程序
了解各类源代码托管软件windows
借鉴他人经验,少走弯路
学会如何书写文档
关于我:
我是一名技术菜的出奇的程序员,喜欢阅读和美食。本身怀着积极的态度,可是却每每坚持不下去。间断式的努力让我时常亢奋,亢奋期一过就会陷入低谷。在困难面前徘徊,在徘徊中失去方向。不过本身却很乐观,毕竟没到最后发生的全部事都是好事。本身还特别喜欢看书,薄弱的记忆力让我很快的忘掉本身读过的书,有些时候还会所以陷入回环,读了又忘,忘了又读,直至放弃。
1. 回想一下你初入大学时对你所在专业的畅想
当初你是如何作出选择你所在专业的决定的?
提及这个,那但是说不尽的辛酸啊!当时选软件工程方向是由于在高中的时候和信息老师的儿子的关系比较好,常常和他聊天,每天听见他说一些关于计算机方面的知识,当时我说这个颇有趣的时候,他告诉我他爸是软件工程的,你之后大学能够选择这个专业,专门研究这些,你应该很是感兴趣。因而乎,我就填了这个,真的坑啊,我忘了他爸的光头啊!!!
你认为过去一(两)年中接触到的课程是否符合你对你本身所在专业的期待,为何?
说实话,我仍是有点小失望的,大一来了每天在吐槽之中,什么鬼啊?为何还要学物理啊?咱们不是学计算机的么?怎么再学这些啊,看着少得可怜的专业课,我陷入了沉思,后面也可能就麻木了嘛,毕竟学着快过期的技术,了解着计算机的历史变迁,仍是挺有趣的。
你以为你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
不是,也不是擅长的领域。虽然说和当初的期待有所差距,但总的来讲能够接受,生活不就是这样的么,咱们老是得不到本身喜欢的东西。做为一名码农,就准备好好学习,我也不知道将来会怎样,可是奋斗老是没错的。
未来你会选择从事和你专业相关的工做吗?是的话给出你想去的城市、公司和岗位,否的话给出缘由
会呀,毕竟本身只有计算机这一技之长。若是能够的话,我想呆在成都成为一名独立开发者,比起金钱,我更崇尚自由。
2. 对照前人们走过的路和描述将来发展,如今的你
自我感受你已经具有的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你作的最复杂的项目/做业。
emmmm,这个我也不太肯定有哪些吧,有着前端开发,也会web后端开发,会写微信小程序,也会开发C++,作过机器学习,也玩过图形学。但这些依旧不是我所热爱的,我还在寻找着本身的方向。代码量我也不知道有多少,反正应该很多了吧!最复杂的话应该是最近的主动学习算法了吧,大量的数学知识和全英语的论文与文档耗费了我大量精力。奇异值和SVN,PCA,TSNE的概念使人眼花缭乱。
离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
差的有点多,操做系统,编译原理,数据结构,数据库等这些都至关晦涩难懂。答辩能力也差得不少。
3. 目前是一我的生选择的十字路口,考研、工做、考公、出国,不一样的选择在大三就有不一样的努力方向。而不管考研仍是工做的每条路径,也有许多不一样的分支。
对照以上你阅读的前人们的经历,你的选择是什么?
我呀,应该是考研加工做吧,46分,很正常,我更倾向于工做的。
在这种选择下,你认为你相比其余同窗来讲有何优点,有何劣势?
感受没有优点,每一个同窗都很努力,我只有和他们同样学习才能勉强跟上他们,劣势就稍微有点多了,个人知识储备和他们根本不在同一个量级上了,毕竟个人记忆力那么差。
针对你的选择,你给本身的大三设定的规划安排是什么?
努力啃书,努力补充数学知识,多看看英语文档,多学学之后就业能用的前沿技术。
你对于实现本身的梦想已经作了或者计划作什么样的准备?
差太多了,若是将本身的梦想比做高楼的话,我如今应该还在运建筑材料,作的准备应该是地基打了几根柱子吧,让本身可以看得更远。
我在第三章55页看了职业发展—考级之路这一段,有个问题“这些证书真的有企业承认么?行业承认度怎么样?”,我查了一些招聘要求,发现行业对这些证书不太承认的样子,个人困惑是“如今去考这些证真的有必要么?他们的承认度不过高的样子。”
我在第四章64页看了这一段文字"代码风格的原则是:简明,易读,无二义性",有这个问题“怎样才能算是简明易读?每一个人的知识面不同,对代码认知也不同。”。我查了资料,有这些说法"咱们不必为了别人而修改本身的代码,本身的代码整洁和注释良好就能够了。",根据个人实践,我获得这些经验“ 我的以为代码也不是写的易懂越好。团队开发时,由于每一个人的代码风格都不同,因此别人的代码写的再易懂也只是相对他本身来讲比较容易看懂。因此这时候就有一些代码规范须要你们去遵照,可是代码规范又不是具体到某一点的东西,只能从大致上让代码变得整洁。总之,写代码的时候,要遵照一些常规的代码书写规范,不要有什么反人类的操做。最重要的是关键代码加注释!关键代码加注释!否则几个月之后,再简单地代码,本身也会看不懂的,怎么下降沟通成本呢? ”。 可是我仍是不太懂,个人困惑是“是否是咱们之后工做时写代码时只须要写上彻底的注释,而不用向上兼容代码的使用者呢?”。
我在第六章了解到了敏捷开发,了解到他有不少优势,在网上查询的时候发现咱们国家绝大多数的互联网公司都在使用着敏捷开发,可是,我发现网上的大部分的文章都对敏捷开发持有不友好的态度,甚至scrum.org的创始人Ken Schwaber,也是Scrum的创造者之一,他在他的博客上提到了在中国推行敏捷思想的文化障碍。个人困惑是“既然敏捷开发在国内受到文化差别的影响,甚至已经丢弃了敏捷开发所带来的优势,为何这么多互联网公司仍是在乐此不疲的采用敏捷开发呢?”
我在第九章总体这一章发现软件公司彷佛并无对项目经理进行强硬的技术要求,也就是说,项目经理多是一个既不懂技术,又不懂测试的人,那么,身为程序员如何明白的表达这个需求作不了之类的观点?项目经理又如何让一堆技术人员明白他的要求呢?又何以服众呢?
我在第十三章这一章发现书中提供了不少有效的测试方法,在这里我有一个问题,是测试基本都是软件工做人员写的,他们不可能了解完全部BUG,什么样的测试才是有效的测试和全面的测试呢?毕竟人的考虑是有限的。我经过一篇博客了解到对于一个大型的,拥有足够多用户的软件产品来讲,这个软件可能遇到的状况,也是”荒诞“的。由于一个软件开发者(团队),永远没法在测试中穷尽他们设计的软件会被怎样的使用,和遇到什么样的情况。,可是,我仍是想问,是否存在一种标准去量化这些测试的有效度呢?
1. Git
优势:
一、适合分布式开发,强调个体。
二、公共服务器压力和数据量都不会太大。
三、速度快、灵活。
四、任意两个开发者之间能够很容易的解决冲突。
五、离线工做。
缺点:
一、学习周期相对而言比较长。
二、不符合常规思惟。
三、代码保密性差,一旦开发者把整个库克隆下来就能够彻底公开全部代码和版本信息。
2. SVN
优势:
一、 管理方便,逻辑明确,符合通常人思惟习惯。
二、 易于管理,集中式服务器更能保证安全性。
三、 代码一致性很是高。
四、 适合开发人数很少的项目开发。
缺点:
一、 服务器压力太大,数据库容量暴增。
二、 若是不能链接到服务器上,基本上不能够工做,看上面第二步,若是服务器不能链接上,就不能提交,还原,对比等等。
三、 不适合开源开发。可是通常集中式管理的有很是明确的权限管理机制,能够实现分层管理,从而很好的解决开发人数众多的问题。
3. VSS(VisualSourceSafe)
优势:
能够锁定核心代码,由于他的工做方式是一个文件只能由一个用户修改
缺点:
工做效率低下,只适合小团队开发
4. CVS(ConcurrentVersionSystem)
优势:
可使多个用户并行工做。这样对于正在编写软件的项目团体有利。
缺点:
版本控制某个项目下的一些核心文件比较困难,假如团队中的每一个人都写文件的权限。这样每每会不当心的让核心代码被修改。
5. Microsoft TFS
优势:
能够在VS中的任务版上看见需求和项目进展。能够和VS无缝对接。
缺点:
维护和搭建比较困难。
6. Trac
优势:
良好的扩展性,很是灵活的定制各类要求
缺点:
中文化太少,核心功能太少,需求和缺陷没有分离
7. Apple XCode
优势:
能够自动建立分类图表。自动提供撤消、重作和保存功能,无需编写任何编码。
缺点:
更新版本后,某个插件可能会失效。
8. BitKeeper
优势:
简单: 很是易用的命令行接口
可伸缩: 嵌套的源码库,相似子模块
精确: 可跟踪文件的各类操做
安全: 全部文件访问都会通过统一校验
可辨识: 源码注解即时生效
快速: 高性能可伸缩,支持超大规模项目
免费: 使用 Apache 许可证
缺点:
不是很灵活
9. Darcs
优势:
没有中央服务器. 任何一个本地repository均可以既是客户端也是服务器, 节点之间能够任意同步.
本地epository也能够看做是个完整的branch
缺点:
不易管理
windows版有不少bug
10. Mercurial
优势:
1. 跨平台
2. 封装好
缺点:
1. 分支管理不灵活。
2. 支持社区略差。