俗话说,不想当 CTO 的技术开发,不是好程序员。
谁不想当一个“技术大牛”?谁不想年纪轻轻“年薪百万”?
但“梦想美好,现实残酷”,多少人实际工作中做的事,跟大牛根本不沾边,常年忙于业务代码,究竟该如何成长?
记住 3 个原则:“积累经验、拓展视野、深度思考”。具体做法:
第一:就是扎实核心基本功:俗话说初级程序员比招式,高级程序员看内功。像算法、操作系统,这种能从 0 到 1 真正锻炼底层能力的知识,花多少时间啃下都值得。
第二:足够的技术修养;这是区分架构师和“码农”的关键点。
第三:软实力也很重要:
当然,最高效的学习方式,就是跟技术大牛深度对谈。
操作系统作为所有软件的基石,我们常用“灵魂、大脑、内核”等词来形容,可以说是程序员必修内功,能直接解决我们工作中的问题,比如 Linux 内核相关的技术,中断、I/O、网络、多线程、并发、性能、内存管理、系统稳定性、文件系统、容器和虚拟化等等,都与之相关,可以说是涨薪、晋升的必考项。
学操作系统,关键不是死看书,而且要尝试“从 0 到 1 写一个操作系统”,你会对操作系统的理解有质的飞跃。
在我看来,最合适的学习路径就是「练习实践 → 应用实际 → 开发实践」。
在此基础上,掌握「操作系统知识体系」,建议收藏:
跟着实践下来,操作系统架构设计能力会大幅提升,还可以学到系统级别的软件编程技巧,这对我们拓展技术深度和广度是大有裨益的。
对于技术人来说,只有不断升级自己的认知,才能让你的技术之路行稳致远。
无论是阿里巴巴、腾讯、百度这些国内一线互联网企业,还是 Google、Facebook、Airbnb 等硅谷知名互联网公司,在招聘工程师的过程中,对算法和数据结构能力的考察都是重中之重。
很多求职者在面试前都会在 LeetCode 网站上做大量练习,但现在 Leetcode 上面已经有上千道题了,该怎么高效刷题呢?
学习数据结构和算法的正确姿势:三位一体练习法
“三位”指三个要点:
要点一:快速过所有算法知识点,串成知识体系
要点二:学以致用。练习时,要按照知识体系,有组织、系统性的做题。
要点三:刷题也要过遍数
“一体”指“五遍刷题法”:
第 1 遍刷题:读题加思考、直接看解法
第 2 遍刷题:把好的解法自己背诵、默写完之后,打开 Leetcode,马上开始自己写解法并且提交。
第 3 遍刷题:完成了第一遍、第二遍刷题后,24 小时候之后可以再来一遍。
第 4 遍刷题:是一周之后再来练习相同的题目。
第 5 遍刷题:在你面试前的一个月或者一周进行恢复性训练(第五遍)就可以了
数据结构与算法就真的就如网上流程的那么令人闻风丧胆吗?是“程序猿”最难啃的骨头之一吗?
我不这么认为,我认为数据结构与算法虽然有一定程度的难度,但是会出现这样的风评的原因,除了部分人缺乏毅力和决心,三天打鱼两天晒网之外,还有一些重要的原因是没有正确的学习方法,学习效率差,缺乏老师带,盲啃大头书,被晦涩难懂的知识整蒙了.....
因此,我建议要么跟着大牛系统地学习、要么挑一本通俗易懂的数据结构与算法的书籍学习、多吸取前辈的经验。