前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >个人学习方法分享

个人学习方法分享

作者头像
米开朗基杨
发布2021-07-15 15:07:18
1.3K1
发布2021-07-15 15:07:18
举报
文章被收录于专栏:云原生实验室云原生实验室

hi,大家好,今天来分享一下,我的一些学习经验,希望对大家学习有帮助

我的学习方法

学习计划

核心思想:把自己像产品一样打造,就像张一鸣经典语录:run company as a product

制定目标

首先学习需要明确学习目标,学习之前,要把目标制定下来,一个月,三个月,半年,一年,三年等不同周期目标。

迭代计划

分解目标,然后建立特定周期的迭代计划,最终形成多个迭代, 不断迭代自己。

每天学习安排

每一天时间安排,就像高中一样,制定出一个时间表,心里有数,用来指导学习,不需要严格执行,大致就好,留一些缓冲时间,具体时间安排可以参考番茄工作法,一般每天至少尽量留一个小时给自己充电。

迭代计划

之前用的一个敏捷开发工具 trello来实现迭代计划,我设置10天为一个迭代周期,每个月结束后会进行总结复盘,是否达到迭代的目标。

这里tc是指什么,大家可以猜一下?

具体迭代看板:

每个卡片为一个具体任务,可以设置开发时间,设置任务状态,check list是用来验收任务-闭环:

trello软件,在手机和电脑都可以用,是我最喜欢的软件迭代工具(任务管理,团队协作工具),知乎评价非常高,同样可以用来迭代自己。

学习资料

书籍

很多经典书籍(后面有经典书单推荐),经典书籍可以让我们更容易理解知识的本质,学习作者对技术的理解,和作者进行精神交流,有些章节我都会反复看几遍,然后敲代码去实现验证。

博客网站

大多数知识点都需要上网查看,翻看各种博客网站,主要是看一下该知识点的内涵和外延,看一下别人是怎么理解的,后面有经典博客网站推荐。

极客时间

极客时间课程, 有些很经典,质量很高,我会选我想看的章节, 查缺补漏, 加强理解, 看一下其他大佬对这个知识点是怎么理解的, 有助于加深理解。

总结沉淀

我目前用来记笔记的工具 mindmaster 脑图 比较好分类, 查找比较方便。之前有用文本记录比较乱,看个人爱好, 这款软件支持手机和电脑端同步使用。

比如学习TCP/IP协议后,就需要总结如下:

由于展开太大,这里取TCP节点展示看(由于导出图片有大小限制,完整版更详细):

不知不觉中总结很多知识:

这些其实可以算是个人知识财富,希望大家多总结。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

读过一些经典书单

1. 深入理解计算机系统

计算机界的神书,底层开发的圣经,计算机基础知识神作,建议多读几遍。

2.具体数学

计算机科学的神奇书籍,帮你建立计算机独有数学思维,比如递归,组合,动态规划等。

3. 编译原理

本书作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的计算机 科学家,他们在计算机科学理论、数据库等很多领域都做出了杰出贡献。本书是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。

4 . 计算机程序的构造和解释

书中使用程序设计语言Lisp的方言Scheme来解释计算机科学的核心概念,包括抽象、递归、解释器以及元语言抽象。具体而微地由宏观到微观给出清楚地轮廓与脉络。

5 . The C Programming Language

到今天仍然是C语言入门的首选,书非常简洁优美,就像C语言本身一样。

6. 深度探索C++对象模型

C++对象内存模型,从语法上看编译器实现,学习C++必须要掌握的。

7. 深入理解LINUX内核

如果你想深入学习Linux内核,这本书是个很好选择。

8. 深入理解LINUX网络内幕

对Linux网络子系统有深入分析,如果你要深入学习网络,这本书是很好的选择。

9. UNIX编程艺术

本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,而这些经验对于理解Linux系统有非常大的益处。

10. 程序员的自我修养

了解程序编译,连接,库等程序运行原理,包含windows和linux系统,加强基本功修炼。

11. 刻意练习

这本书深刻分析刻意练习背后的原理,用科学方法论证如何从新手到大师。

推荐好的博客

1.https://blog.csdn.net/dog250

dog250的文章都比较深刻,属于网络进阶,可能不太适合入门,建议入门后,再看这里文章,会让你醍醐灌顶。

2. https://blog.csdn.net/gatieme

操作系统优质博客,可以学习linux 调度相关内核知识;

3.http://www.wowotech.net

蜗窝科技,博客专注分享linux内核知识(偏嵌入式方向), 很多文章都非常精华和透彻,值得内核学习者学习;

4. http://bbs.chinaunix.net/

bbs.chinaunix的内核板块,第一代内核程序员聚集地,很多大佬在这里分享内核知识,现在应该都是各大公司技术专家或者负责人了。

5.https://coolshell.cn

耗子叔个人技术网站,早期我喜欢的技术blog博主,一个乐于分享技术的大牛,尤其是分享的基础知识,本人也很喜欢基础知识;

6. https://blog.codingnow.com/

云风的blog,大多数和游戏相关,可以学习很多高性能编程技巧。

7. C++博客

7.1 https://www.stroustrup.com

Bjarne Stroustrup,不认识的可以去面壁了,没有他,就没有我们现在的饭碗。Bjarne Stroustrup是丹麦人,目前任教于TAMU。他的Homepage和他的书籍The C++ Programming Language一样,都是百科全书级的,如果你认真研究,你也会成为你同事或周围人的C++之父。

7.2 https://www.fluentcpp.com

博客作者Jonathan Boccara是C++软件工程负责人、博客作者和作家,专注于如何使代码具有表现力,顶级C++高手。

7.3 http://scottmeyers.blogspot.com

Scott Meyers,不多介绍,世界上几乎每个C++程序员都应该知道的名字,畅销书:Effective C++, More Effective C++的作者。博客长期更新,就凭Scott Meyers这个名字,就值得一读。

7.4 http://www.modernescpp.com/index.php

现代C++编程大神,文章主打modern C++,让你与时俱进;

7.5 http://purecpp.org/

应该是算国内顶级C++社区,举办多届C++大会。博主为C++委员会成员

个人博客 https://www.cnblogs.com/qicosmos,也非常值得C++开发者学习。

8.http://www.yinwang.org/

王垠大佬博客,对编程语言理解深刻,如果还在学习编程语言语法,可以看一下这个博客一些文章;

个人学习经验总结

此处为个人学习经验总结,可能不一定适合你,但或许对你有些帮助,希望你取长补短,协助你找到自己的方向。

1. 学习一定要有目标,目标一定要有计划(排期),计划一定要有落地执行方案(迭代),迭代一定要有check list(结果验证),最后根据结果进行复盘总结,这样才能形成学习的闭环,然后不断按照这个流程迭代自己,同时整个流程可能也会发现一些问题,比如拖延,比如时间估算不准等,这时候流程也需要不断调整优化。

2. 学习中,真正困难的地方,是习惯问题,可能存在一些不好的习惯,导致不能专心学习,比如玩手机等,改变自己习惯是一件很困难的事情,如果你已经走投无路,或者你很想完成你的目标,做梦都想,那你必须对自己狠心一点,改掉自己不好习惯,学习的时候最好专注,找个安静的地方学习,尽量不要被打扰。

3. 学习中,多去和别人交流,很多心中疑惑,很可能别人一句话就让你悟道解开,和大神交流(可以书本,视频演讲,直播,线下技术讲座等等),要学会虚心请教,大神对一些基础概念的本质理解,会让人醍醐灌顶,胜读十年书。

4. 学习要有耐心,很多时候是需要花很多时间去学习一个知识点,一些知识点需要反复来回多看几遍,要刻意去练习,大脑才会加深影响,慢慢地把各个点串起来,很多时候看代码就是这样,需要时间,我会慢慢在大脑中试图关联起来,最后才能恍然大悟。

5. 学习最重要就是坚持,这个比任何技能都重要,很多知识是需要花很多时间才能吃透的,而这个过程并不是循序渐进,很可能是某一天灵感爆发,或者悟道,而这个爆发又是你之前慢慢积累结果,所以很多时候,我们可能百思不得其解,很多人中途可能放弃了,觉得太难了, 如果我们非常想完成我们的目标,就要突破这些难点,咬牙坚持,总有一天会拨开迷雾,获得真知,你会感谢当初坚持下来的你,这个过程是痛并快乐着。

6. 要学会思考,要学会多总结(输出),对知识的透彻理解,才是我们最终的目标,而不是死记硬背,背概念,这需要我们不断思考,不断总结,所谓智慧就是这些思考的成果,这也是社会进步源泉;

7. 要学会分清重点,逐个攻破重点知识,时间有限,需要掌握28定律,了解一个系统,先要明白什么才是它的核心技术,其他只是辅助或者实现细节。

8. 要学会各种搜索技能(google,bing,百度,知乎等),学会查找各种经典资源,包括付费资源(csdn下载,百度文档,购买课程),有时候不要舍不得,好的资料,犹如武林秘籍,可以助你一臂之力。

总之,要建立自己的知识体系,不断迭代,查缺补漏, 把其他资源融入到自己计划中 。

技术思考总结

多年工作经验和学习经验,分享一些技术思考,可能不一定准确,但希望对热爱技术人有一些帮助。

1. 很多开源软件,其实并不是很难,只要花时间,有耐心啃代码,都会水落石出,源码面前,了无秘密,这是进大厂的一个快速路径。

2. 上层技术都是都是基于底层技术构建,找到底层原子操作,你也可以构建上层应用,比如docker基于Linux三大件(namespace,cgroup,ufs),不管上层应用如何变化,这些技术都不会过时,掌握这些核心技术,会让你走得更远,即使是开发应用,也会比其他人做得更好。

3. 计算机基础知识(内存,CPU,缓存,网络,文件系统),基础思想(二分思想,缓存思想, 面向对象,流水线,批量,递归,延后处理等),都非常重要,这些是决定你技术上限,只有深刻理解基础知识,才能看问题看到本质,才能拥有强悍的实战能力,才能在技术之路上走得更远:

  • 一类是解决问题的高手,保证业务可以稳定持续运行,基本功非常扎实,可以解决很多技术难题,最终这类人会成为技术牛人和专家,比如阿里的多隆大神,谢宝友大神,耗子叔-陈皓,Dog250,TK教主,Kevin David Mitnick等;
  • 一类是代码和软件设计高手,输出机器,保证产品可以快速上线,这类人最终会成为架构师或者负责人,比如求伯君,章文嵩,章亦春,张小龙,比尔盖茨,Ken Thompson,Fabrice Bellard,Linus Torvalds,Jeff Dean等;

4. 学会把大系统分解成子系统,按专项逐个攻破每个子系统,收集子系统相关的资料,吸收他人的精华,有时候胜读十年书,加快自己成长;每个专家大神,都是从菜鸟过来的,向大佬看齐,快速吸收他们的经验,总有一天你也会修炼成功。

5. 团队都需要各种人才,我们不可能样样精通,5v5团战是需要大家一起配合的,一定要找到自己的位置,就算是辅助,也是世界级辅助,照样让人刮目相看,比如我在我们团队,基本上算是疑难问题解决,辅助(各种环境搭建,资源建设,自动化,协助他人解决问题)和攻关队长,但不是很擅长写大段代码(纯输出)。

6. 有一些技术难点,是必现要去攻破的,比如之前在外企的时候,我写了多年的C++业务框架代码,一直对模板元编程感到力不从心,后面决心攻破这个问题, 并总结了C++这三座大山:

同时业务框架代码讲究就是代码和架构设计,对设计能力要求很高,我又重新学习很多设计模式(大话设计模式等):

经典永不过时!重温设计模式

7. 不设边界,之前在华为的时候,主要是做无线通信产品(USB上网卡,无线模块,车载模块,家庭CPE网关),需要对3G,4G等协议非常熟悉,我是从来没有搞过,使用是高通modem芯片,这些都是高通专利,一些重要的代码没有开放给我们,只能通过查看log和有限资料学习,通过提case和高通技术支持交流(悄悄学习),慢慢熟悉了高通设计,最终我们写了很多经典文章,比如无线传输性能白皮书等;我们开发分两波人,一波是主协议,属于上层应用,一波是主驱动,属于底层架构,我一年后差不多掌握了无线协议开发,包括熟悉理解高通芯片设计,后面主动学习USB协议和驱动相关的,1年半后,我可以一个人包揽从上层到底层全部任务,后面很多项目PL都叫我来主导,每一年几乎都是优秀员工,但也有很多不足,需要学习。

最后

学习技术,还是要有一点情怀(我知道大部分都是为挣钱,这个很正常),很多时候技术是枯燥无味的,需要长时间做冷板凳,如果内心不喜欢,很可能会非常痛苦,但调通代码或者找到某个疑难bug的根本原因带来的快乐,是其他人无法理解的,那种成就感会激励我们继续前行,希望大家都能朝着自己的目标努力,终有一天,有所收获。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我的学习方法
  • 学习计划
  • 迭代计划
  • 学习资料
  • 总结沉淀
    • 读过一些经典书单
      • 推荐好的博客
        • 个人学习经验总结
          • 技术思考总结
            • 最后
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档