介绍

这些年在微博上回答和总结了不少关于程序员工作方面的问题,也获得了一些朋友的认可。随着总结内容的不断增多,有个疑惑在我心中逐渐增长:为什么这些事情之前没人告诉我?

后来我发现,虽然每个具体问题最终都能找到完整的、可参考的资料,但是这些问题并不能简单的归类为一个具体的类别,而是在程序员职业发展的过程中逐渐显现的,包含了各种类型的,难以被简单总结和归纳的一系列问题的合集。

在程序员成长过程中,每个阶段都会被赋予不同的角色,这些角色之间虽然有联系,也会有区别。例如,一个开发能力非常强的程序员,在他负责一个大型项目的时候,一部分精力实际上变为了管理者的角色;或者,当他去推广某个组件时,实际的角色是布道师。

大多数书籍或者文章都会专注在某个角色(比如“java开发者”)之上,而当角色发生转变,尤其是隐性转变的时候,就会发现过往的很多知识和技巧突然就不再适用了。程序员很容易发现不同编程语言和技术栈之间的区别,但是却往往容易忽视不同角色之间的技能鸿沟,很多时候,不同角色之间的区别会被淡化,最终会被归结于“人的能力”。但是假如能以新角色的视角审视问题,就会发现绝大部分的问题实际上都是简单到不能再简单的基础问题,之所以不断踩坑,只是因为自己没有察觉到角色已经发生改变了。

这促使我想做点什么,能够帮助自己和更多的程序员们避免在这些简单问题上持续的踩坑,因此就有了这本书。我希望能总结出程序员成长发展过程中面临的不同角色,以及作为这个角色,应该具备的基本知识和能力。

写下这篇介绍的时候,《成为程序员》这本书里还没有什么具体内容。按照我一贯的想法,我希望最终呈现的是一些有点意思,同时也能让人有点收获的东西,而不是完全的知识输出。这本书大概会以我自己的成长经历为基础,识别和总结出不同阶段的角色,再给出这个角色应该具备的基础能力和后续发展方向。

我希望它最终能够成为程序员职业发展的某种“索引”,本身不需要过多的篇幅,但是能够给人足够清晰的脉络。

本书的在线阅读地址为:https://become-a-programmer.2baxb.me ,由于个人的能力和视野有限,书中内容难免出现主观或客观错误,希望大家不吝指正。

同时由于精力有限,这本书目前采取不定期更新的方式编写,源码会在https://github.com/qdaxb/become-a-programmer同步,根据反馈来决定后续更新的频率,如果你觉着内容还不错,欢迎留下star。

让我们开始成为程序员吧。

最后更新于