不止代码 == 摘读

误区

  1. 拜大牛为师
    • 大牛很忙,不太可能单独给你开小灶,更不可能天天都给你开 1 个小时的小灶
    • 由于第一个缘由,因此通常要找大牛,都是带着问题去请教或者探讨
    • 大牛很少,不太可能每一个团队都有技术大牛
    • 综合上述的几个缘由,我认为对于大部分人来讲,要想成为技术大牛,首先仍是要明白“主要靠本身”这个道理
  2. 业务代码同样很牛逼
    • 因此我认为:业务代码都写很差的程序员确定没法成为技术大牛,但只把业务代码写好的程序员也还不能成为技术大牛。
  3. 上班太忙没时间本身学习
    • 首先咱们应该在工做中学习和提高,由于学以至用或者有实例参考,学习的效果是最好的;其次工做后学习不须要大段时间,而是要挤出时间,利用时间碎片来学习。

正确的作法

Do more
作的更多,作的比你主管安排给你的任务更多程序员

  1. 熟悉更多业务,不论是不是你负责的;熟悉更多代码,不论是不是你写的这样作有不少好处,举几个简单的例子:
    • 需求分析的时候更加准确,可以在需求阶段就识别风险、影响、难点
    • 问题处理的时候更加快速,由于相关的业务和代码都熟悉,可以快速的判断问题可能的缘由并进行排查处理
    • 方案设计的时候考虑更加周全,因为有对全局业务的理解,可以设计出更好的方案
  2. 熟悉端到端
    系统性”、“全局性”、“综合性”这些字眼看起来比较虚,但其实都是技术大牛的必备的素质,要达到这样的境界,必 须去熟悉更多系统、业务、代码
  3. 自学

Do better面试

要知道这个世界上没有完美的东西,你负责的系统和业务,总有不合理和能够改进的地方,这些“不合理”和“可改进”的地 方,都是更高级别的怪物,打完后可以增长更多的经验值。算法

Do exercise
光看不用效果不好数据库

学习三步走编程

  1. learning
    这个是第一阶段,看书、google、看视频、看别人的博客均可以,但要注意一点是“系统化”,特别是一些基础性的东西,
  2. Trying
    本身动手丰衣足食
  3. Teaching
    能掌握 70% 左右,但要真正掌握,我以为必定要作到可以跟别人讲清楚

职业发展

第一阶段:大学毕业 3 到 5 年

  • 基础的 Java 知识:你会开始看《Java 编程思想》、《Effective Java》
  • 高质量代码进阶知识:你会开始看《重构:改善既有代码的设计》、《代码大全》、《编程珠玑》
  • 经常使用的主流框架:
  • 系统设计与算法知识:《系统分析与设计方法》、《设计模式》、《需求分析与系统设计》、《面向对象分析与设计》、《UML 用户指南》、《算法导论》
  • 其余知识:好比数据库调优、缓存框架、NoSQL 数据库、日志框架等等

第二阶段:大学毕业 5 到 10 年

其实,年龄并非问题的真正缘由。真正的缘由仍是在于自身“竞争力”是否符合这个年龄所应该具有的设计模式

  • 能对所负责领域的业务特色、发展趋势、友商竞争分析
  • 服务于特定领域的客户,咱们须要能了解咱们的客户企业架构、业务知识。要了解清楚规划的产品、服务
  • 做为 TL, 是否有必要能将本身对于市场的洞察转换成业务规划,并能向本身的老板(或者投资人)说清楚、讲明白
  • 得到老板支持后,就须要开始带着兄弟们干活了
  • 作完业务设计后,开始要带着团队作技术方案设计、接口设计以及编码实现等。
  • 你还经历过什么有挑战的业务、技术、产品、平台等方面的成功与失败经验

什么是架构师

  • 组织业务, 业务领域的知识,构建自身看待业务的”世界观”。
  • 组织技术, 架构师须要选用合适的框架、中间件、编程语言、网络协议等技术工具, 造成一套软件系统方案
  • 组织人员, 肯定人员的协做方式
  • 组织全局,对外输出, 架构师的首要目标是解决业务问题,推进业务增加

面试

面试要作的事

  • 问已经发生的事情
  • 问题解决思路
  • 少问多听

鉴别方式人员的方式

  • 更多的关心 What/How/Why
    招聘的人中有一种人是比较好的,他总能比较清楚的记住过往项目当中的重点
  • 细节!细节!细节!
    不少关键节点的细节很重要,好比网络库的优化。

推书

《程序员修炼之道 - 从小工到专家》
《设计模式之禅》
《从优秀到卓越》
《为何精英都是时间控》
《创新者的窘境》
《魔鬼经济学》
《创造天然》
《浮生六记》缓存