做技术有没有前途?什么是技术领导力?作为一个程序员怎样才算是拥有技术领导力呢?如何拥有技术领导力?

打卡Day59:今天学习了《05|何为技术领导力?》和《06|如何才能拥有技术领导力》,我的收获如下:

技术重要吗?

几个发展阶段:

  1. 野蛮开采。资源过多,只需要开采就好了。
  2. 资源整合。资源已经被不同的人给占有了,通过管理手段对资源整合优化,提高利用率。
  3. 精耕细作。精细化运作,通过科学的手段来达到。
  4. 发明创造。利用已有不足的资源来创造更好的资源,并替代已有的马上要枯竭的资源。采用高科技来达到。

中国公司目前还处于“野蛮开采”阶段。这就是为什么很多公司为了快速扩张,要获得更多的用户和市场,需要通过加班、加人、烧钱、并购、广告、运营、销售等这些相对比较“野蛮”的方式发展自己,而导致技术人员在其中跟从和被驱动。这也是为什么很多中国公司要用“狼性”、要用“加班”、要用“打鸡血”来驱动员工完成更多的工作。

野蛮开采绝不会是常态,只能赢得一时,长期来说,一定会被那些掌握先进技术的民族或公司所淘汰。

这也是为什么像亚马逊、Facebook这样的公司,最终都会去发展自己的核心技术,提高自己的技术领导力,从早期的业务型公司转变成为技术型公司的原因。那些本来技术很好的公司,比如雅虎、百度,在发展到一定程度时,将自己定位成了一个广告公司,然后开始变味、走下坡路。

尊重技术的公司和不尊重技术的公司在初期可能还不能显现,而长期来看,差距就很明显了。

什么是技术领导力?

几次工业革命:

  1. 第一次工业革命。1860年~1940年。机器时代。标志技术,蒸汽机。
  2. 第二次工业革命。1870年~1914年。电力时代。标志技术,电力和内燃。
  3. 第三次工业革命。二战后~至今。信息时代。标志技术,计算机。

技术领导力是:

  • 尊重技术,追求核心基础技术。
  • 追逐自动化高效率的工具和技术,避免无效率的组织架构和管理。
  • 解放生产力,追逐人效的提高。
  • 开发抽象和高质量的可重用的技术组件。
  • 坚持高于社会主流的技术标准和要求。

如何拥有技术领导力?

特质:

  • 能发现现有方案的问题。
  • 能提供解决问题的思路和方案,并比较优缺点。
  • 能做出正确的技术决定。
  • 能用更优雅,更简单,更容易的方式来解决问题。
  • 能提高代码的扩展性、重用性和可维护性。
  • 能用正确的方式管理团队。让正确的人做正确的事,发挥每个人的潜力;提高团队的生产力和人效,找到最有价值的需求,用最少的成本实现之;不断地提高自身和团队的标准。
  • 创新能力。使用新的方法新的方式解决问题,追逐新的工具和技术。

总是在提供解决问题的思路和方案的人才是有技术领导力的人。需要做到以下几点:

  • 扎实的基础技术
  • 非同一般的学习能力
  • 坚持做正确的事
  • 不断提高对自己的要求标准

吃透基础技术

这些技术可能枯燥无味,要克服人性的弱点,努力啃完。

编程部分

  • C语言。了解程序是怎么精细控制底层资源的,比如内存管理、文件操作、网络通信。推荐书籍《C程序设计语言(第2版)》
  • 编程范式。培养抽象思维,提高编程效率,提高程序的结构合理性、可读性和可维护性,降低代码的冗余度,进而提高代码的运行效率。
  • 算法和数据结构。算法是编程中最最重要的东西,也是计算机科学中最重要的基础。任何有技术含量的软件中一定有高级的算法和数据结构。如 epoll使用了红黑树,数据库索引使用了B+树。

系统部分

  • 计算机系统原理。推荐书籍《深入理解计算机系统》
  • 操作系统原理和基础。推荐三本书《UNIX环境高级编程》《UNIX网络编程》《Windows核心编程》
  • 网络基础。推荐书籍《TCP/IP详解》
  • 数据库原理。了解数据库访问性能调优的要点,保证并发情况下数据操作原子性的方法。
  • 分布式技术架构。参与到分布式项目的开发中去,并阅读相关论文。

无法速成,需要用一生的时间来学习。基础技术会随着阅历和经验的增加而有不同的感悟。

提高学习能力

  • 学习的信息源。如果说有的问题你连用英文搜索都找不到,只能到社区里去找作者或者其他人交流,那么可以说你已真正和时代同频了。
  • 与高手交流。通过技术社区,参加技术会议,参加开源项目。
  • 举一反三的思考。操作系统的缓存和网页缓存。C++的面向对象和Java的面向对象。
  • 不怕困难的态度。坚持住,多思考,多下功夫,往往就能找到出路。
  • 开放的心态。不拘泥于一个平台、一种语言,知道在什么样的场景下用什么样的方案。

做正确的事

  • 提高效率的事。
  • 自动化的事。
  • 掌握前沿技术的事。
  • 知识密集型的事。
  • 技术驱动的事。

高标准要求自己

  • Google的自我评分卡。
  • 敏锐的技术嗅觉。
  • 强调实践,学以致用。
  • Lead by Example。永远在编程。不写代码,你就对技术细节不敏感,你无法做出可以实践的技术决策和方案。

仅有技术还不够。作为一名合格的技术领导者,还需要有解决问题的各种软技能。比如,良好的沟通能力、组织能力、驱动力、团队协作能力等等。推荐书籍《技术领导之路》《卓有成效的管理者》

左耳朵耗子带你重学《左耳听风》

https://time.geekbang.org/column/article/288

https://time.geekbang.org/column/article/291