直面问题,谈谈焦虑,谈谈烦恼,谈如何成长
一
1. 世界的认识
世界如何组成?
- 基础技术、工具、产品、项目…
- 大家的分工呢?
世界需要怎样的人?这些人的特点
- 劳工、技工、特种工、设计、架构、经理…
- Google 评分卡 (把人分成三六九等)
世界的技术趋势和规律?
- 工业革命、信息化革命
- 技术更新淘汰、风口是什么样的、
如果想知道未来十年可能发生的事情,请看看过去十年。过去十年发生的必定还会再发生,没发生的可能不会发生。
效率会被规模化的
进十年是移动互联网时代,进入了TB时代,之前是互联网时代还处在GB时代。
工业革命告诉我们要学会 “自动化”。
比如 律师 可以被 知识密集型自动化掉!虽然现在处在 劳动密集型自动化中。
Google评分卡
You are unfamiliar with the subject area.
You can read/understand the most fundamental aspects of the subject area.
Ability to implement small changes, understand basic principles and able to figure out additional details with minimal help.
Basic proficiency in a subject area without relying on help.
You are comfirtable 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 feature(with book).
- For systems areas - understanding of many fundamentals of networking and systems administration, ability to run a small network of system including recovery, debugging and nontrivial troubleshooting that relies on the knowledge of internals.
- An even lower degree of reliance on reference materials. Deeper skills in a field or specific technology in the subject area.
- 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.
- You understand and make use of most lesser known language features, technologies, and associated internals. Ability to automate significant amounts of systems administration.
- 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.
- Could have written the book about the subject area but didn’t; works with standards committees on defining new standards and methodologies.
- Wrote the book on the subject area(there actually has to be a book). Recognized industry expert in the field, might have invented it.
科目领域:
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
2. 认识自己
自己的喜好
- 找到自己可以减持不会放弃的东西
自己的特长是什么
- 找到自己可以干成的事
- 找到别人会来请教你的事
自己还有什么
- 找到可以承上启下的东西
切记不要东搞搞西搞搞。
自己可以付出什么
- 找到自己的本金来投资,找到可以付出和牺牲的东西
交易性的业务(涉及到金钱)就必须要严谨。业务架构师也是很缺少的。
二
1.学好基础技术,十分重要
为什么要学号基础技术
一通百通
- 所有的技术原理和本质都在基础技术上
突破瓶颈
- 只有基础技术才能让你上升到更高的层次
- 在技术的世界里,量变永远无法导致质变
自己推导
2. 哪些基础技术
编程语言
- 原理、编程范式、设计模式、代码设计、类库
比如:go goroutine 如何调度的原理
系统
- 计算机原理、操作系统、网络协议、数据库…
中间件
- 消息队列、缓存、网关、代理…
理论知识
- 算法数据结构、系统架构、分布式…
算法数据结构真的很重要!!!
3. 如何识别新的技术(Go语言!)
解决了什么样的问题
- 任何技术的出现都是要解决已有问题的
- 降低技术门槛、提高开发效率、提升稳定性…
提升了什么样的能力
- 可以计算更为复杂的计算
- 可以自动化更为复杂和更为困难的事
会成为主流技术的特征
- 有大公司做背书
- 有杀手级应用
- 有强大的社区
三 找到方式,事半功倍
主动学习 与 被动学习
视频,音频,读书 属于较为被动的学习。
博客写了开放出来,被别人质疑讨论。
翻译书或者其他语言的应用等。
学习的一些观点
学士为了找到方法
-学习不是找答案,而是找到通往答案的方法
学习是为了认识原理和本质
- 理解原理和本质就可以一通百通
学习是为了打开自己的认知
- 你不知道你不知道的东西
学习是为了改善自己
- 思维方式-更好的逻辑和科学
- 行为方式-更好的高效
学习的相关方法
挑选知识的信息源
- 第一手资料非常重要(英文非常重要)
注意基础和原理
- 我可以忘了这个技术,但是我可以自己徒手打造出来。(同理学算法数据结构也是一样的)
使用知识图系统的学习
- 通过知识关联可以进行 “顺藤摸瓜”
举一反三
- 用不同的方法学同一个东西
- 学一个东西时把周边的也学了
总结和归纳
- 形成框架,套路和方法论
实践和坚持
- 实践才能把知识变成技能,坚持才能有沉淀
学习的一些技巧
如何阅读代码
- 基础知识、文档、代码结构
- 模块、接口、关键业务路劲
- 代码逻辑、运行时调试
如何面对枯燥和硬核的知识
- 找到应用场景和牛人一起搞
- 补充基础知识
- 咬牙使劲啃
其他小技巧
- 不要死记
- 把信息压缩
- 要犯错然后记住
- 写BLOG
记录:
- XYZ问题怼产品可以把他问懵
- 微服务健康检查。
进程端口活着 (健康?) 不对的。
比如: 我响应慢了 也叫不健康。
adpex 健康检查术语
- 推荐系统 亚马逊论文 (关联数据)