ITEEDU

软件开发人员培养体系

如何一步步成为合格的软件开发人员?助理工程师、工程师、高级工程师、架构师、资深架构师要掌握哪些技能?这里会介绍基础能力、扩展能力,最终形成知识地图形式的知识体系。

由于本人能力有限,介绍可能有偏颇之处。但他山之石可以攻玉,希望我的经验可以对你有用。

软件开发常用工具介绍

工欲善其事,必先利其器。这里介绍的工具是我认为比较好的,经常会用到的。

主要介绍集成开发环境(IDE)、代码编辑器、版本控制、FTP工具、数据库管理工具、提高开发效率的工具,还有其它专项开发时用的工具。

VIM | EMACS | MAVEN

现在开始学习开发工具

计算机科学技术基础知识

基础知识在软件开发人员成长过程中是非常重要的,随着能力的提高,基础知识将决定后续的成长速度。这在达到高级工程师后会非常明显。

为什么企业招生时会看成绩单?为什么研究生比本科生好找工作?开始两年,成绩和学历的差异可能体现不到工作中,差异会在渡过码农期后体现之来。

你可能很难想像高级工程师会看大学数学、数据结构、编译原理、计算机体系结构这些书。

字符集 | 排序算法 | 常用树结构和其算法

现在开始学习基础知识

助理软件工程师

助理软件工程师主要是计算机专业刚毕业的菜鸟,主要特点是:

  • 基本开发工具不会用。
  • 基本开发技能不熟练。
  • 基本开发规范不知道。
  • 不懂得团队合作。

现在开始学习助理软件工程师技术

软件工程师

软件工程师是一个很难跨过的阶段,这可能要两到三年时间参加大量的开发工作,不是通过自学就可以达到高级软件工程师的。总结一下要完成以下成长:

  • 熟练使用一种集成开发环境。
  • 熟练使用工作所需开发语言。
  • 锤炼出良好的编码习惯,代码清楚可读、可维护、易扩展。
  • 掌握常用专题技术,学习更多专题技术。
  • 掌握基本的软件设计能力,发展专业的软件设计能力。

找到编码的感觉,让编码成为一种习惯,扩展专题技术,发展设计能力。

JAVA 学习笔记 | JAVA IO笔记 | JAVA 泛型机制 |

JAVA 反射机制 | JAVA 注释机制

现在开始学习软件工程师技术

高级软件工程师

高级软件工程师绝不是升级的软件工程师,这个名称可能容易让人误解。高级软件工程师主要从事软件设计工作,大量繁重的重复性工作已经不是这个阶段的工作了。如果还要编码也是做公共组件或一些有特殊要求的功能模块。

我觉得高级软件工程师叫做软件设计师更合适些,要不然名字太容易让人误解了。能力要求如下:

  • 成熟的数据库设计能力
  • 熟练使用常用设计模式。
  • 精通开发需要的语言,注意是精通,可能的语言有JAVA、C/C++、SQL、JAVASCRIPT、Python。
  • 学更多的专题技术。
  • 看开源软件架构,超越语言,超越编程。

设计模式 | JAVA多线程与线程安全 | JAVA性能问题分析 | JAVA NIO学习笔记

现在开始学习高级软件工程师技术

(资深)软件架构师

软件架构师的职责:理解系统的业务需求,制定系统的整体框架(包括:技术框架和业务框架);对系统框架相关技术和业务进行培训。解决系统开发、运行中出现的各种问题。

  • 掌握基本的架构设计理论:了解“4+1视图”模型
  • 掌握架构的分层观点(三层设计)。
  • 了解常见架构视图类型(要能按照“消费者、视角、元素、关系”四要素对具体架构视图进行说明)。
  • 了解业界通用的架构设计的方法并能够清楚描述架构设计成果。
  • 安全设计、性能设计、算法设计。

4+1视图 | 负载均衡学习笔记

现在开始学习软件架构师技术

专题技术

学习通用专题技术,扩展业务相关专题技术。

开始学习专题技术