回顾2016,展望2017--一个软件工程师的年终总结

来源:互联网 发布:阿里云香港主机 编辑:程序博客网 时间:2024/05/16 00:53

前言

在构思年终总结时,苦于寻找一种能够清楚定义自己技术水平等级(初级、中级、高级以及资深)的方式。终于找到了一种最为切合心中所想的等级划分方式。大胆一点采用教授评定级别及标准来定义自己的技术水平和要求。初级水平对应的是博士水平,中级水平对应的是助理教授,高级水平对应的是副教授,资深水平对应的是教授。 清楚了自己水平等级的定义,清楚评估自己技术处于什么阶段,更重要的是指导自己技术水平的发展,易于寻找相应的发展路线以及切实可行的方案。
经历一年,感觉自己仅仅由入门进入初级水平,对自己工作和学习有了明确的认识,知道自己要做什么,解决什么样的问题。下面详细地谈谈一下,自己在2016年学习中的收获和不足之处以及2017年计划。
想以博客形成发表出来,目的不断督促自己不断学习,提高自己的技术水平。或许最终虎头蛇尾,感觉自己有必要展示一下,至少收获一个“虎头”。

回顾2016

2016年学习的收获

2016年共购买了39本专业类书籍,主要包含了以下几个方面:编程语言(C++和Haskell)、设计模式、编译原理、软件工程、大数据和机器学习。主要学习了以下内容:
1. 学习了C++编程,对象模型,模板元编程以及设计方法;了解一种纯粹函数式编程haskell,了解基本概念functor,appilcative functor,monad,以及范畴论的基本概念;
2. 主要学习了Head First 设计模式以及C++设计模式,同时学习了重构(重构,改善既有代码的设计);
3. 主要学习了linux汇编,自制编译器和自制编程语言等。
4. 学习了人月神话,敏捷开发,测试驱动开发以及从小工到专家等。
5. 大数据和机器学习方面,主要了解神经网络以及深度学习,分布式基础概念(分布存储、分布一致性)。

个人学习方面,最大的收获认识到设计模式的重要性。
1. 在软件开发方面,认识到单元测试和重构的作用,如何高效进行软件开发和快速定位问题,改善原来的代码。
2. 通过学习编译原理相关的知识,感觉对工作语言有新的认识。不同编程方式编程语言的了解,感觉它影响我如何思考问题和解决问题,仿佛打开不同的世界。
3. 学习机器学习,尤其深度学习,只是有了初步认识,我觉得它们将在生物信息方面,会有可为的空间,同时为自己未来的投资。

我的2016年最佳年度书籍是《Head First设计模式》

2016年的学习不足

2016年,认清了自己的学习的不足之处,深度剖析。能够在新的一年,一步一步改善不足之处,获取更大的进步。

学习上的不足:

  1. 软件开发方面: 模块设计以及架构设计能力需要进一步提高; 虽然有了设计模块初步了解,如何运用到项目中还是一个问题; 如何有效进行单元测试和日志系统,进行高效开发、快速重构和定位问题存在不足。
  2. 并行开发能力:对于多线程开发有所了解,设计以及开发经验不足; 对于指令级加速,以及OpenCL开发了解很少。
  3. 函数编程:初步了解了函数编程的思想,对Functor、manod等有了初步认识,有待于深入学习和了解。并将其思想引入设计和开发中。
  4. 深度学习:仅仅对神经网络和深度学习有了一丢丢了解,需要加强学习。

学习改进计划:

  1. 编程语言,深入理解C++,灵活使用C++进行编程; 进一步熟悉Haskell编程语言,扩展自己思维
  2. 并行开发,加强多线程编程学习,OpenCL以及SIMD指令编程的学习。重要的是多线程和OpenCl的学习。
  3. 软件设计,设计模式、重构以及测试驱动开发设计。
  4. 加强深度学习的学习,尤其是检测变异算法的学习。
  5. 其他的方面:加强数学方面的学习,以及生物信息方面论文的学习。

展望2017年

2017年个人学习计划

“取其上者得其中,取其中者得其下”。对于个人学习项目和学习计划,不妨定的高一些。

个人项目:

Husky项目
预期目标:使用C++重构MEM算法。
目的:
1. 深入学习MEM算法,了解其中详细过程。
2. 提高自己架构能力、设计模式以及重构能力。
3. 提高自己多线程设计能力、指令级以及OpenCL设计能力

二 Labrador项目
预期目标:
学会TensorFlow,CNN算法,能够处理一些常见问题。
目的:
1. 深入学习CNN算法,学习TensorFlow的使用;
2. 研究深度学习算法, 尝试提出自己的算法。

个人读书计划:

减少读书量以及购书,增大论文阅读量。按照重要性进行排序
一 并行计算的程序设计:
主要关注多线程编程,OpenCL编程
二 深度学习方面
学习常见基础算法以及一些实例。
三 编程语言
主要学习Haskell和C++编程语言
四 软件工程方面:
设计模式、测试驱动开发、敏捷开发和重构
五 编译原理:
主要关注内存管理和垃圾回收机制
六 其他:
1 集异壁之大成、范畴论、大数据方向以及生物信息。
2 文学类书籍

论文阅读

阅读以下四个方面:生物信息类(比对和变异检测算法)、数据压缩类、基于FPGA算法优化以及深度学习论文,将检测变异算法作为重点学习,并完成相应的综述。

0 0