1、软件工程师的成长

  拜读了多位优秀前辈的文章后,感觉十分复杂,虽然说不上是醍醐灌顶的那种大彻大悟,但是确实的感觉到自己内心中某个部分被真切的感触到了。推荐的文章语言都比较平易近人,感觉就像是和多年未见的学长一起谈话一样,一边感叹着几年里变化之大,一边分享着自己的职业体悟,让人听完之后有感悟也有感动。

  总结了一下各个文章表达出的重点,大概为以下三部分:1、兴趣和热情。2、读书和自学。3、职业规划。

  这三者间相互关联,相互作用,就像三角形的三个顶点一样,既能相互支撑整体的完整性,也可能相互制约彼此的发展,我想依次说一下自己对这三部分的体悟。

 一、兴趣和热情

  兴趣能让人开始研究一门学问,而热情决定了是否能在这门学问上持续性的投入时间和精力,将这门学问研究下去,学精学深。

  文章中的前辈或者是从小便对计算机某个小的领域充满了兴趣,去开始学习研究,或者是阅读了某些专业领域名家的著作,由此产生了浓厚的好奇心与求知欲,开启了学习计算机知识的征途。在这方面,给我印象深刻的是徐宥的文章(他的那篇文章我特别喜欢,来来回回看了好几遍,平时觉得累了努力不下去了就拿出来看看),因为我觉得他的经历是我可以用来借鉴的,但又有一些不同。他在大学之前对计算机的知识了解的不多,在大一和大二没有培养起浓厚的兴趣,在大三阅读了一些计算机专业的名著后,开始了读书和实践之间循环,培养起了浓厚的兴趣。我觉得在兴趣这一方面,我确实不够热衷于计算机专业,在高考时因为自己没有特别强烈的专业意向,所以在家人和老师的推荐下,选择了计算机专业,当时感觉挺意外的,因为高中的自己对计算机不是很感兴趣,感觉就当是平平常常的学习知识了。上了大学以后,大一感觉学的知识中规中矩,以理论课和数理分析为主,感觉还是安安心心的学习知识就可以了。到了大二感觉自己对这个专业的态度发生了一定的变化,对我影响最大的是计算机组成这门课,这门课不仅教授了我关于计算机组成原理的知识,更让我觉得计算机真的有意思,在真正切身去实现CPU内部运算的过程中,能感受到代码像自己亲手培养的孩子一样一点一点强大健壮起来,这种成就感和欣喜感让我很喜欢。之后面向对象课程也让我的编程能力有所提升。

  但是从上学期期末开始,稍微对代码的兴趣不是那么高了,感觉有一点疲倦,这种状态持续到了这学期开学,我自知这种状态很不好,也想了很多办法但还是没能摆脱掉,再看了这些文章之后,也找来了其中提到的书《编程珠玑》等等来阅读,感觉自己有点找回之前的状态能够继续对所学知识保持好奇并且渴求的状态。我打算继续尝试文章中推荐的方法,其中最重要的一个方式就是去多读书。

二、读书和自学

  几乎每篇文章都提到了作者曾经有过一段按照自己的节奏自学的方式,自学的手段大多是读书,有些作者多次强调自己曾经拼命读书,也很重点的推荐读者多读一些好书,多读原版书。所谓见到篮子里的都是菜,多读书积累知识,扩展知识面终归是好的。

  读书上我做的真的不如高中,高中时期再怎么忙也能一周读一本书看,到了大学反而没能保持下来这个习惯,导致这两年看的书越来越少。看了这些文章之后,我觉得读书是自学一个重要的途径,应该重新拾起这个技能的。

  目前打算是先把文章中推荐的书目看一看,然后根据喜欢的领域去选择书去读。

三、职业规划

  说实话现在突然让我把未来职业的规划都定下来是说不出来的,文章中的人也是边摸索边决定下一步计划,我的短期内的计划是在北航读研,至于之后是否读博士,感觉可能要在读研的过程中决定这个问题了。

  在大三,短期的目标就是在保证学业的前提下,多阅读专业相关书目,开拓知识面,寻找自己真正感兴趣的领域,并对此进行一番研究。

2、代码复审

复审对象:14061041 谷大鑫

测试:

  • Does the code work? Does it perform its intended function, the logic is correct etc.
  • 可以运行,测试了包括-b -c 和输入地铁名功能
  • -b测试数据如下:
  • 2号航站楼 苹果园
  • 苹果园 四惠
  • 苹果园 大望路
  • 知春路 北京西站
  • 2号航站楼 3号航站楼
  • 3号航站楼 2号航站楼
  • -c测试数据如下:
  • 2号航站楼 苹果园
  • 知春路 北京西站
  • 苹果园 知春路
  • 知春路 建国门
  • 输入地铁名测试数据如下:
  • 地铁一号线
  • 地体二号线

  -b 和 -c 功能上应该没什么问题,在输入地铁名,返回全线路径这个功能在输入地铁名字前,会输出“Input Parameter Error”的报错,而这条是不必要的。

  • Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.
  • 代码风格感觉挺好的,变量和函数的命名都很规范。
  • Is there any redundant or duplicate code?
  • 代码冗余几乎没有。
  • Is the code as modular as possible?
  • 方法和数据都被模块化处理了。
  • Can any global variables be replaced?
  • 几乎没有使用全局变量。
  • Is there any commented out code?
  • 有。
  • Do loops have a set length and correct termination conditions?
  • 是,有的。
  • Can any of the code be replaced with library functions?
  • 没有能被替代的代码。
  • Can any logging or debugging code be removed?
  • 没有调试代码。
  • Security
  • Are all data inputs checked (for the correct type, length, format, and range) and encoded?
  • 对输入项进行了检查。
  • Where third-party utilities are used, are returning errors being caught?
  • 没有使用第三方。
  • Are output values checked and encoded?
  • 没有。
  • Are invalid parameter values handled?
  • 有,对非法输入进行了处理,但是有误处理。

    Documentation

  • Do comments exist and describe the intent of the code?
  • 没有,没有包含文档。
  • Are all functions commented?
  • 不是,注释不多。
  • Is any unusual behavior or edge-case handling described?
  • 没有描述。
  • Is the use and function of third-party libraries documented?
  • 没有说明。
  • Are data structures and units of measurement explained?
  • 没有,但是可以读出来。
  • Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’?
  • -a部分的功能待定,其他部分代码完整。

    Testing

  • Is the code testable? i.e. don’t add too many or hide dependencies, unable to initialize objects, test frameworks can use methods etc.
  • 代码是可测试的
  • Do tests exist and are they comprehensive? i.e. has at least your agreed on code coverage.
  • 测试数据从博客看了,数据测试比较覆盖。
  • Do unit tests actually test that the code is performing the intended functionality?
  • 是。
  • Are arrays checked for ‘out-of-bound’ errors?
  • 没有。
  • Could any test code be replaced with the use of an existing API?
  • 不能。

个人作业——week3的更多相关文章

  1. 个人作业-Week3

    个人作业-Week3 1. 软件工程师的成长 同学们在上这门课的时候,还是大三,你的困难和迷茫,别人一定有过.请看看别人怎么学习的,有些是科班,有些是野路子,有些成功,有些失败. 请读完下面所有博客( ...

  2. 个人作业Week3

    个人作业week3 一.  调研,评测 1.我的使用体验 版本:IOS版   BUG_1: 点击单词本中的“同步”后,会提示登录Microsoft账户.登录成功立即开始同步单词本.在单词本同步过程中, ...

  3. [buaa-SE-2017]个人作业-week3

    个人作业-week3:案例分析 分析产品:Bing词典 Part1:调研&评测 1.软件评测和Bug汇报 这次我选择Bing词典的原因是在于,首先我使用过的词典软件较多,平台涵盖PC端.网站. ...

  4. 个人作业week3——代码复审

    1.     软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...

  5. 个人作业-Week3:代码复审

    软件工程师的成长 我在上大学之前,对于软件工程师之类并无概念,并且高初中的电脑课也从未提及过写代码之类的东西,更多的都是一些教一些办公软件的使用(笑,明明电脑课总是因为老师“有事”变成其他课,根本就没 ...

  6. 团队博客作业- Week3

    成员介绍 韩青长  测试 我是韩青长,技术小白,抱着对软工的好奇和对未来工作的憧憬选了这门课.暂时选择了测试的工作,也对开发和UI有一定兴趣.从前上帝创造了我们,现在轮到我们来创造自己的软件了~ 陈彦 ...

  7. 个人作业—Week3

    博客阅读体会 阅读了十几位软件工程师前辈的博文,了解了前辈们作为一名软件工程师的成长经历,我有一些感触. 这十几位前辈们的经历有着很大的差别,有的科班出身,有的则完全自学成才.不同的经历使得前辈们看问 ...

  8. 个人作业 - Week3 - 案例分析

    调研与评测 真实用户采访: 用户姓名: 刘斯盾 用户的背景和需求: 用户是一位计算机专业学生,需要浏览技术博客来扩充自己的学识. 用户使用博客园证明: 产品是否解决用户问题: 在码代码过程中遇到的很多 ...

  9. 个人作业week3案例分析

    调研产品:博客园 第一部分 调研和评测 1.bug 1.不同种类浏览器的支持存在差异 bug描述:在不同浏览器下,部分博客内容显示的格式有明显不同 可尝试用下面两种不同的浏览器打开这个博客网址:htt ...

随机推荐

  1. 关于React的父子组件通信等等

    //==================================================此处为父子组件通信 1.子组件调用父组件: 父组件将子组件需要调用方法存入props属性内,子组 ...

  2. ASP.NET MVC 5 05 - 视图

    PS: 唉,这篇随笔国庆(2015年)放假前几天开始的,放完假回来正好又赶上年底,公司各种破事儿. 这尼玛都写跨年了都,真服了.(=_=#) 好几次不想写了都. 可是又不想浪费这么多,狠不下心删除.没 ...

  3. [AlwaysOn Availability Groups]监控AG性能

    监控AG性能 AG的性能的性能方面,在关键任务数据库上进行语句级维护性能是很重要的.理解AG如何传输日志到secondary副本对评估RTO和RPO,表明AG是否性能不好. 1. 数据同步步骤 为了评 ...

  4. Quartz2.0以上版本的单机和集群

    (一)Quartz单机 1.Quartz简介 Quartz是一个完全由java编写的开源作业调度框架,能实现业务的定时调度.Quartz主要有三个核心调度器.任务和触发器: ①任务-JobDetail ...

  5. Linux操作系统主机名(hostname)简介

    http://www.jb51.net/LINUXjishu/10938.html 摘要:本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ...

  6. 【C++】继承(虚基类)

    类的继承与派生 面向对象技术强调软件的可重用性,这种重用性通过继承机制来实现.而在类的继承过程中,被重用的原有类称为基类,新创建的类称为派生类.派生类定义语法格式如下: class <派生类名& ...

  7. AD域撤销域用户管理员权限方案

    一.简介 公司大部分主机加入域已有一段时间了,由于某软件没管理员权限不能执行,所以管理员权限一直没撤销,不能完全实现域的管理效果.但起码实现了域用户脱离不了域的控制:http://www.cnblog ...

  8. vs2013 打开vs2010 找不到此项目类型所基于的应用程序 MVC2 升级 MVC5 不能加载Web项目

    Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3 Tools Update ASP.NET MVC 3 can be installed side ...

  9. Android,ios,WP三大手机系统对比

    从前,我以为.一个手机系统只是一个系统的UI风格,没什么不同的.然而,在我混合使用这三个手机系统之后,才明白,一个手机系统远不只一个UI那么简单,而真的是可以称之为一个“生态”. 首先祭出三台经典设备 ...

  10. BAS/BRAS/RADIUS简介

    标签: java radius协议   linux radius认证服务器   转自: http://blog.csdn.net/sun93732/article/details/5999274 由R ...