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. iOS项目iCloud及CloudKit Dashboard运用

    CloudKit是苹果推出的基于iCloud的一个云端数据存储服务.其 主要由下面两部分组成: 一个仪表web页面,用于管理公开数据的记录类型. 一组API接口,用于iCloud和设备之间的数据传递. ...

  2. Android开发案例 - 欢迎界面

    本文详细描述了如何实现如下图中的微信启动界面. 该类启动界面的特点是在整个Application的生命周期里, 它只会出现在第一次进入应用时, 即便按回退键到桌面之后. 使用该类启动界面的应用还有: ...

  3. 多War项目中静态文件的共享方案

    [原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源] 在互联网产品中,一般会有多个项目(Jar.WAR)组成一个产品线.这些WAR项目,因为使用相同的前端架构(jQuery.easyui等) ...

  4. Spring、hibernate以及struts2三大框架的整合

    1.首先导入整合框架所需要的43个jar包: 2.配置xml文件: <?xml version="1.0" encoding="UTF-8"?> & ...

  5. redis持久化RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  6. 理解Docker(8):Docker 存储之卷(Volume)

    (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...

  7. html基础起航

    废话不多说,直接上例子! 工欲善其事,必先利其器 浏览器要有吧~                       比如:IE.Chrome.Firefox…… 纯文本编辑软件不可少~          比 ...

  8. Unity UGUI知识点

    1.Canvas 属性:Screen Space Overlay -画布随屏幕大小改变而改变,面板不会被其他控件挡住 Screen Space camera 面板能被其他控件挡住 world spac ...

  9. LAMP环境配置 linux+apache+mysql+php

    虚拟机安装Linux系统: 新建虚拟机过程中选择Linux,下面选择centos或者是Ubuntu Linux切换图像命令:注意只有装了图像界面才可以切换 查看安装环境的版本: rpm -qa 查看安 ...

  10. [LeetCode] Best Time to Buy and Sell Stock IV 买卖股票的最佳时间之四

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...