俗话说,不想当 CTO 的技术开发,不是好程序员。
谁不想当一个“技术大牛”?
谁不想年纪轻轻“年薪百万”?
但“梦想美好,现实残酷”,多少人实际工作中做的事,跟大牛根本不沾边,常年忙于业务代码,究竟该如何成长?
记住 3 个原则:“积累经验、拓展视野、深度思考”。具体做法:
第一:就是扎实核心基本功:俗话说初级程序员比招式,高级程序员看内功。像算法、操作系统,这种能从 0 到 1 真正锻炼底层能力的知识,花多少时间啃下都值得。
第二:足够的技术修养;这是区分架构师和“码农”的关键点。
- 英语:技术高手必须攻克,最简单的方法,每天在 YouTube 上看 5 分钟视频;
- 掌握提问的智慧;
- 写代码的修养,一定要 Code Review;
- 具备安全防范意识,尤其近期漏洞频发,安全问题,字少事大;
- 在工作中,既具备技术整合能力,也通晓技术细节,从而实现技术驱动业务的突破。
第三:软实力也很重要:
- 深度学习、归纳和坚持实践的能力;
- Talk 和 Code 同样重要,有效的沟通是事业成功的必要条件;
- 技术管理能力,“带团队”从来不是一个可选项,而是迟早都要面对的事;
当然,最高效的学习方式,就是跟技术大牛深度对谈。
手写个操作系统,真可以飘!
“生活可以一地鸡毛,但操作系统却是心中的光”
—— “计算机鬼才”彭东
操作系统作为所有软件的基石,我们常用“灵魂、大脑、内核”等词来形容,可以说是程序员必修内功,能直接解决我们工作中的问题,比如 Linux 内核相关的技术,中断、I/O、网络、多线程、并发、性能、内存管理、系统稳定性、文件系统、容器和虚拟化等等,都与之相关,可以说是涨薪、晋升的必考项。
学操作系统,关键不是死看书,而且要尝试“从 0 到 1 写一个操作系统”,你会对操作系统的理解有质的飞跃。
在我看来,最合适的学习路径就是「练习实践 → 应用实际 → 开发实践」。
在此基础上,掌握「操作系统知识体系」,建议收藏:
跟着实践下来,操作系统架构设计能力会大幅提升,还可以学到系统级别的软件编程技巧,这对我们拓展技术深度和广度是大有裨益的。
对于技术人来说,只有不断升级自己的认知,才能让你的技术之路行稳致远。
上述内容出自极客时间专栏《操作系统实战 45 讲》
事半功倍地刷算法题
“家长一直逼婚,怎么用算法尽快确定合适的结婚对象”
—— 前 Facebook 工程师 覃超
无论是阿里巴巴、腾讯、百度这些国内一线互联网企业,还是 Google、Facebook、Airbnb 等硅谷知名互联网公司,在招聘工程师的过程中,对算法和数据结构能力的考察都是重中之重。
很多求职者在面试前都会在 LeetCode 网站上做大量练习,但现在 Leetcode 上面已经有上千道题了,该怎么高效刷题呢?
学习数据结构和算法的正确姿势:三位一体练习法
“三位”指三个要点:
要点一:快速过所有算法知识点,串成知识体系
要点二:学以致用。练习时,要按照知识体系,有组织、系统性的做题。
要点三:刷题也要过遍数
要点利用图标+文字形式展现出来
“一体”指“五遍刷题法”:
第 1 遍刷题:读题加思考、直接看解法
第 2 遍刷题:把好的解法自己背诵、默写完之后,打开 Leetcode,马上开始自己写解法并且提交。
第 3 遍刷题:完成了第一遍、第二遍刷题后,24 小时候之后可以再来一遍。
第 4 遍刷题:是一周之后再来练习相同的题目。
第 5 遍刷题:在你面试前的一个月或者一周进行恢复性训练(第五遍)就可以了
五遍刷题法可利用图标+文字形式展现出来
本内容出自,极客时间视频课《算法面试通关 40 讲》
照着做,你也能成为架构师!
“所谓成长,其实就是不断学习、不断踩坑、不断填坑的过程。”
——前阿里资深技术专家(P9) 李运华
每个程序员心中都有一个成为架构师的梦想,梦想是美好的,但道路是曲折的。为什么很多同学技术能力很强,业务也很不错,但在做架构设计时会遇到很多困难?
前阿里 P9 架构师李运华是这样认为的:
1、架构设计的思维和程序设计的思维差异很大。
2、架构设计没有体系化的培训和训练机制。
3、程序员对架构设计的理解存在很多误区。
分享一套硬核的「架构师技能图谱」分享给你,建议收藏:
想成为一名真正的架构师,你还需要:
- 清楚地理解架构设计相关的概念、本质、目的;
- 掌握通用的架构设计原则,无论是何种业务或技术,架构师在判断和选择的时候有一套方法论可以参考;
- 掌握标准的架构设计流程;
- 深入理解已有的架构模式,做到能够根据架构特点快速挑选合适的模式完成架构设计,或者在已有的模式上进行创新,或者将已有的模式组合出新的架构;
本内容出自极客时间专栏《从 0 开始学架构》
千万年薪 CTO 的管理法则
“发展要快,每五年就要登上一个职业生涯的新台阶。”
—— 彩食鲜副总裁兼 CTO 乔新亮
对于能成事的程序员来说,拥有成长型思维只是第一步,要想在工作中成功交付项目,还需要形成正确的认知,并付诸到实践中去,知行合一,即认知到位 + 彪悍执行 = 成功交付。
第一,多读书,多学习。
第二,培养自己的思辨能力。
对技术管理者来说,始终绕不开的一个问题是:在管理工作日渐繁重的情况下,怎样才能保持自己敏锐的技术判断力呢?
技术管理者应该先向技术要价值,再深入去看技术。关键在于这 4 个素质:
1. 聚焦某个技术点,把“根”扎深。
2. 培养自己的逻辑推理能力和思辨能力。
3. 拥有站在全局视角看待问题的能力。
4. 提升决策能力:迅速拍板并为结果负责的能力
对于技术管理者来说,当你具备了以上 4 个关键素质后,就能迅速理解相应技术,提升自己的技术判断力。
本内容选自极客时间专栏:《乔新亮的CTO成长复盘》