技术人员典型的焦虑和烦恼
- 加班
- 加班时间长,没有时间提升
- 搬砖
- 工作没有技术含量
- 成长
- 成长到了瓶颈期
- 学习
- 东西太多学不过来
- 彷徨
- 失去方向,未来要干什么,要做什么不知道
认识一下这个世界
这个世界是怎么组成的?
- 基础技术、工具、产品、项目……
- 大家的分工是怎么来的?
这个世界需要什么样的人?以及这些人的特点
- 劳工、技工、特种工、设计、架构、经理……
- Google评分卡
这个世界的技术趋势和规律是什么样的?
工业革命、信息化革命
技术更新淘汰、风口是什么样的
历史上发生的,未来一定也会发生,现在没发生的,未来可能发生
认识自己
自己的喜好
- 找到自己可以坚持不会放弃的东西
自己的特长是什么
- 找到自己可以干成的事
- 找到别人会来请教你的事
自己有什么
- 找到可以承上启下的东西
自己可以付出什么
- 找到自己的本金来投资,找到可以付出和牺牲的东西
第二部分 夯实基础,一通百通
为什么要学习基础技术
一通百通
- 所有的技术原理和本质都在基础技术上
突破瓶颈
只有基础技术才能让你上升到更高的层次
在技术的世界里,量变永远无法导致质变
自己推导
- 掌握基础技术以及原理可以让自己推导答案和趋势
有哪些基础技术
程序语言
- 原理、编程范式、设计模式、代码设计、类库……
系统
- 计算机原理、操作系统、网络协议、数据库……
中间件
- 消息队列、缓存、网关、代理……
理论知识
- 算法和数据结构、系统架构、分布式……
如何识别新的技术
解决了什么样的问题
- 任何技术的出现都是要解决已知问题的
- 降低技术门槛、提高开发效率、提升稳定性
提升了什么样的能力
可以计算更为复杂的计算
可以自动化更为复杂和更为困难的事
闲聊:卡车问法拉利司机,你的车能拉多少吨货,不要把自己的长处和别人的短处比。
会成为主流技术的特征
有大公司做背书
有杀手级应用
有强大的社区
闲聊:Go是google发明的,解决了java难用的问题,提升了并发编程的能力,社区强大;ruby社区不行。java不会被Go取代。Python一般。大数据挺好,更偏算法,分两块,基础层的,数学模型算法层的。
第三部分 找到方法,事半功倍
主动学习 VS 被动学习
学习的一些观点
- 学习是为了找到方法
- 学习不是找答案,而是找到通往答案的方法
- 学习是为了认识原理和本质
- 理解原理和本质就可以一通百通
- 学习是为了打开自己的认知
- 你不知道你不知道的东西
- 学习是为了改善自己
- 思维方式 - 更为的逻辑和科学
- 行动方式 - 更为的高效
学习的相关方法
挑选知识和信息源
- 第一手资料非常重要(英文非常重要)
- 注意基础和原理
- 我可以忘了这个技术,但是我可以自己徒手打造出来
- 使用知识图系统的学习 (read the fucking menu)
- 通过知识关联可以进行“顺藤摸瓜”
举一反三
用不同的方法学同一个东西
学一个东西时把周边的也学了
学http也看看http1/http2/socked/Tcp/Ip
总结和归纳
- 形成框架、套路和方法论
实践和坚持
- 实践才能把知识变成技能,坚持才能有沉淀
学习的一些技巧
如何阅读代码
- 基础知识、文档、代码结构
- 模块、接口、关键业务路径
- 代码逻辑、运行时调试
如何面对枯燥和硬核的知识
找到应用场景和牛人
补充基础知识
咬牙使劲啃
啃一本硬核的书,看自己能不能完成,看看完成后是不是多巴胺分泌上升,是不是兴奋,而不是说卧槽程序员坑真多啊
其它小技巧
- 不要记忆
- 把信息压缩
- 经常犯错
- 写blog
- 它山之石可以攻玉
闲聊:
- 关手机是个重要的事,做到不被打扰。最短作业先处理,整块时间留给重要的事。
问产品经理你到底要解决什么问题,可以减少70%的需求。
年龄问题:
- 20-30要敢于冒险。多学习。
- 30-40职业成长的最后十年
- 40-50 还可以折腾的最后十年
- 50-60 还有精力的十年
一定要上升到更高的层次,不能一直搬砖,你搬不过25岁的那些人,对一个领域要精通或者做一个管理者。
推荐算法主要是找关联信息,例如:抽象出哪个商品和哪个商品有关联。
要成为自由职业者,坚持把原理吃透了,多写博客,树立影响力,教别人,别人有问题能来找你。弄绝大多数人不会的。
区块链不可能成。
- Node.js别玩,php没前途,php转go自然点。
- Java像是有城市规划,其他的语言都是拼凑,没有什么架构,一堆东西在拼凑。
- 但是要不要学,当然都要学,但是要确定好吃饭的那一个 。