碎片时间杂学 12.28 技术领导力

1. 吃透基础技术一一编程和系统。

编程:C语言和汇编语言(了解底层资源的处理方式)、编程范式(了解各语言的特点)、算法和数据结构。

系统:

·计算机系统原理

CPU 的体系结构一一指令集 [CISC/RISC]、分支预测、缓存结构、总线、DMA、中断、陷阱、多任务、虚拟内存、虚拟化等),内存的原理与性能特点(SRAM、DRAM、DDR-SDRAM 等),磁盘的原理(机械硬盘 [盘面、磁头臂、磁头、启停区、寻道等]、固态硬盘 [页映射、块的合并与回收算法、TRIM 指令等]),GPU 的原理等,推荐书籍《深入理解计算机系统》(Randal E. Bryant)

操作系统原理和基础一一进程、进程管理、线程、线程调度、多核的缓存一致性、信号量、物理内存管理、虚拟内存管理、内存分配、文件系统、磁盘管理等);学习方式:1.观察和探索当前使用的操作系统,2.阅读操作系统原理相关图书,3.阅读API文档。

《UNIX 环境高级编程》、《UNIX 网络编程》和《Windows 核心编程》

网络基础一一了解基本的网络层次结构(ISO/OSI 模型、TCP/IP 协议栈),包括物理层、数据链路层(包含错误重发机制)、网络层(包含路由机制)、传输层(包含连接保持机制)、会话层、表示层、应用层(在 TCP/IP 协议栈里,这三层可以并为一层)。推荐书籍《TCP/IP 详解》。

数据库原理一一数据库适合保存短的数据,而且可以方便地按字段进行查询。

学习数据库原理之后,能了解数据库访问性能调优的要点,以及保证并发情况下数据操作原子性的方法。

·阅读各类数据库图书

·多做数据库操作以及数据库编程

·多观察分析数据库在运行时的性能

分布式技术架构:需要横向扩展,以提供足够性能。需要学习技术点:分布式技术架构,包括负载均衡、DNS 解析、多子域名、无状态应用层、缓存层、数据库分片、容错和恢复机制、Paxos、Map/Reduce 操作、分布式 SQL 数据库一致性(以 Google Cloud Spanner 为代表)等知识点。

2. 提升学习能力

信息源一一Google 等搜索引擎,Stack Overflow、Quora 等社区,图书,API 文档,论文和博客等。

与高手交流一一

举一反三的思考一一

不怕困难的态度一一

开放的心态一一

3. 坚持做正确的事:提高效率的事、自动化的事、像我前沿技术的事、知识密集的事、技术驱动的事。

4. 高标准要求自己。

附 Google 评分卡

0 - you are unfamiliar with the subject area.

1 - you can read / understand the most fundamental aspects of the subject area.

2 - ability to implement small changes, understand basic principles and able to figure out additional details with minimal help.

3 - basic proficiency in a subject area without relying on help.

4 - you are comfortable with the subject area and all routine work on it:

For software areas - ability to develop medium programs using all basic language features w/o book, awareness of more esoteric features (with book).

For systems areas - understanding of many fundamentals of networking and systems administration, ability to run a small network of systems including recovery, debugging and nontrivial troubleshooting that relies on the knowledge of internals.

5 - an even lower degree of reliance on reference materials. Deeper skills in a field or specific technology in the subject area.

6 - ability to develop large programs and systems from scratch. Understanding of low level details and internals. Ability to design / deploy most large, distributed systems from scratch.

7 - you understand and make use of most lesser known language features, technologies, and associated internals. Ability to automate significant amounts of systems administration.

8 - deep understanding of corner cases, esoteric features, protocols and systems including “theory of operation”. Demonstrated ability to design, deploy and own very critical or large infrastructure, build accompanying automation.

9 - could have written the book about the subject area but didn’t; works with standards committees on defining new standards and methodologies.

10 - wrote the book on the subject area (there actually has to be a book). Recognized industry expert in the field, might have invented it.

Subject Areas:

TCP/IP Networking (OSI stack, DNS etc)

Unix/Linux internals

Unix/Linux Systems administration

Algorithms and Data Structures

C

C++

Python

Java

Perl

Go

Shell Scripting (sh, Bash, ksh, csh)

SQL and/or Database Admin

Scripting language of your choice (not already mentioned)

People Management

Project Management

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容