左耳听风笔记之一
左耳听风
技术变现
千里之行,基于硅步
关注有价值的东西
- 了解市场需求
- 看清技术趋势
高速发展的公司,技术人员的价值最大化
动手能力
关注技术付费点,能帮别人挣钱的
提升自己的能力和精力
找到有价值的信息源
输出观点和价值观
积累有效的朋友圈
新增节点
信息泄露和数据安全
程序已知漏洞
暴力破解密码
代码注入
程序日志泄露密码等信息
社会工程学,员工没有安全意识
公网暴露内部系统
何为技术领导力
社会发现过程
- 一 野蛮发展
- 二 资源整合
- 三 精耕细作
- 四 发明创造
什么是技术领导力
-
工业革命
- 第一次 蒸汽机 机械代替人力
- 第二次 电力 内燃机
- 第三次 信息技术革命 计算机
-
技术领导力
- 尊重技术,追求核心技术
- 追逐自动化的高效和技术
- 解放生产力,追逐人效的提高
- 开发抽象和高质量的技术组件
- 坚持高于社会主流的技术和要求
如何拥有技术领导力
- 能发现问题
- 能够提供技术问题的思路
- 能做出正确的决定
- 能用更简单的方式解决问题
- 能够提高代码和软件的扩展性和重用性
- 能够正确的管理团队
技术领导力
- 扎实的技术基础
- 高效的学习能力
- 不断提高自己的要求标准
如何拥有技术领导力
吃透基础技术,基础技术是上层技术的共同基础
一 编程部分
- C语言,底层交互较多
- 汇编语言,了解计算机的工作原理
- 编程范式 ,C语言的,Java的,函数式变成的Python,Erlang
- 算法和数据结构, 算法是程序设计的有力支撑。通过算法可以有销售的抽象问题,并提高程序的执行效率
二 系统部分
-
计算机原理
- CPU 的体系结构( 分支预测、缓存结构、总线、DMA、中断、陷阱、多任务、虚拟内存、虚拟化等
- 内存的原理与性能特点(SRAM、DRAM、DDR-SDRAM 等)
- 磁盘的原理(机械硬盘 [盘面、磁头臂、磁头、启停区、寻道等]、固态硬盘 [页映射、块的合并与回收算法、TRIM 指令等])
- 推荐书籍《深入理解计算机系统》
-
操作系统原理和基础
- 进程、进程管理、线程、线程调度、多核的缓存一致性、信号量、物理内存管理、虚拟内存管理、内存分配、文件系统、磁盘管理
- 学习操作系统 一是要仔细观察和探索当前使用的操作系统,二是要阅读操作系统原理相关的图书,三是要阅读 API 文档(如 man pages 和 MSDN Library)
-
网络基础
- 网络层次结构(ISO/OSI 模型、TCP/IP 协议栈),包括物理层、数据链路层(包含错误重发机制)、网络层(包含路由机制)、传输层(包含连接保持机制)、会话层、表示层、应用层(在 TCP/IP 协议栈里,这三层可以并为一层)
- 《TCP/IP 详解》
- CP 的滑动窗口限流,完全可以用于分布式服务中的限流方案
-
数据库原理
- SQL(基于 B+ 树,强一致性)
- NoSQL(较弱的一致性,较高的存取效率,基于哈希表或其他技术)
- 学习了数据库原理之后便能了解数据库访问性能调优的要点,以及保证并发情况下数据操作原子性的方法
-
分布式技术架构
- 横向扩展,这样才能提供足够高的性能
- 学习分布式技术架构,包括负载均衡、DNS 解析、多子域名、无状态应用层、缓存层、数据库分片、容错和恢复机制、Paxos、Map/Reduce 操作、分布式 SQL 数据库一致性(以 Google Cloud Spanner 为代表)等知识点
三 提升学习能力
-
提高学习能力。所谓学习能力, 就是能够很快地学习新技术,又能在关键技术上深入的能力
-
学习的信息源 Google Quora
-
与高手交流
- 参加 开源会议
- 技术社区
-
举一反三的思考
-
不怕困难的态度
-
开放的心态
四 坚持做正确的事
- 做正确的事,比用正确的方式做事更重要,因为这样才始终会向目的地靠拢
- 提高效率的事
- 自动化的事
- 掌握前沿技术的事
- 知识密集型的事
- 技术驱动的事
五 高标准要求自己
-
只有不断地提高标准 ,你才可能越走越高,所以,要以高标准要求自己,不断地反思、总结和审视自己,才能够提升自己
-
Google 的自我评分卡
-
敏锐的技术嗅觉
-
强调实践,学以致用
- 学习知识,一定要实际用一用,可以是工作中的项目,也可以是自己的项目,不仅有利于吸收理解,更有利于深入到技术的本质
-
Lead by Example
- 永远在编程。不写代码,你就对技术细节不敏感,你无法做出可以实践的技术决策和方案。
每个程序员都该知道的知识
每个程序员都应该要读的书
- 《代码大全》
- 程序员修练之道
- 计算机的构造和解释
- 算法导论
- 设计模式
- 重构
- 人月神话
- 代码整洁之道
Docker和新技术
对Go的体会
- 语言简单,上手快
- 并行和异步编程几乎无痛点
- Go 语言的 lib 库“麻雀虽小,五脏俱全
- C 语言的理念和 Python 的姿态
新技术发展起来的要素
- 有没有一个比较好的社区
- 有没有一个工业化的标准
- 有没有一个或多个杀手级应用
- 学习难度是否低,上手是否快
- 有没有一个不错的提高开发效率的开发框架
- 是否有一个或多个巨型的技术公司作为后盾
- 有没有解决软件开发中的痛点
PaaS 层解决的问题
- 软件生产线的问题
- 分布式服务化的问题
- 提高服务的可用性 SLA
- 软件能力的复用
早点进入新技术
- 技术的发展过程非常重要
- 这些关键新技术,可以让你提前抢占技术的先机
XMind: ZEN - Trial Version