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. 豆芽儿 - 高端IT人才成长社区 上线啦!

      豆芽儿 - 高端IT人才成长社区 这是我们新打造的网站,全新设计了用户体验,给你更爽快的学习体验.为你分享敏捷开发.项目管理.需求分析.软件设计.UML.中层领导力.CMMI.IT职场等“高大上” ...

  2. React Native之坑总结(持续更新)

    React Native之坑总结(持续更新) Genymotion安装与启动 之前我用的是蓝叠(BlueStack)模拟器,跑RN程序也遇到了一些问题,都通过搜索引擎解决了,不过没有记录. 但是Blu ...

  3. 解决ie6下li左浮动文字换行的问题

    问题: 使用li左浮动来自动换行,当父标签剩下宽度不够一个li的宽度时,在ie6中最后一个li中的文字出现换行 解决办法: ul{ white-space:nowrap;} /*强制文字不换行*/

  4. [问题]apparmor 问题导致mysql切换datadir目录失败

    问题: 在mysql切换datadir后,mysql服务无法启动.出现错误说plugin表无法读取,需要用mysql_upgrade创建.但是其实不是这个问题. 原因: apparmor 会限制程序对 ...

  5. pscp工具上传或取回文件、文件夹

    1.把服务器上的/root/dir目录取回本地"C:\My Documents\data\"目录 C:\>pscp.exe -r root@IP:/root/dir &quo ...

  6. Django模板的继承

    一.extend 1.extend继承模板 2.一个文件中只能继承一个模板 3.extend继承模板中的所有内容,模板的内容包括:html的head和body ,eg:

  7. APUE学习之三个特殊位 设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky

    设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky   set-user-ID: SUID      当文件的该位有设置时,表示当该文件被执行时,程序具有文件 ...

  8. Git各大平台(win/Linux/Mac)图形化界面客户端大汇总

    摘要: 介绍各平台下的图形化界面git客户端(本人并没有全部使用过),欢迎大家补充新的软件或者使用感受~  一.TortoiseGit - The coolest Interface to Git V ...

  9. Winform进程、线程

    进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程要使用的类是:Process它在命名空间:System.Diagnostics; 1.静态方法Start(); 2 ...

  10. Java泛型及实践

    代码及说明: package com.zsm.crazyjava; import java.util.ArrayList; import java.util.Collection; import ja ...