如何建立你自己的开发知识体系---转载
首先,我认为学习总结,要有所总,所结,就是有归纳后,能用自己的话
告诉别人!有所结,就是有所收获输出,一般我认为是思维导图
,所以,每篇文章前,我都会先给出文章的脑图:
2、正文
学习任何文章之前,一定要有可行的方法论
,否则很难有所突破。上面脑图中,我列出了一些个人认为非常好的方法论,所以,在学习课程前,先了解一下,对后续自学或其它的学习都会有益处。
一个知识点
- 为什么需要
XXX
- 什么是
XXX
- 怎么使用
XXX
- 使用
XXX
时注意的问题 XXX
的应用领域XXX
的优缺点XXX
触类旁通
这个理论是在郝斌
老师所录制的计算机(编程)教学视频里提到的,很适合初学者,有兴趣的大家可以自行搜索。
为什么这个很受用?因为简单的套用一下,你就知道自己是否掌握了一个知识点!
举例:
- 为什么需要
单例模式
- 什么是
单例模式
- 怎么使用
单例模式
- 使用
单例模式
时注意的问题 单例模式
的应用领域单例模式
的优缺点单例模式
触类旁通
当我们在谈论性能优化时,我们在说什么?
- CPU
- 内存
- 网络
- I/O
大家有没有发现,以上4点对应计算机的基本组成原理,在谈论性能优化时,其实就是在说计算机的瓶颈!
,所以,当在谈论性能优化时,我们可以做的,就是把计算机的瓶颈提高或转化
。
单一 CPU 处理不过来,我们新加 GPU;一个 CPU 处理不来,我们8核、16核心!多核 CPU 处理不过来,我们可以集群
!分布式!云化!
当内存不足时,我们加内存!内存压缩
!内存置换
!
当网络带宽不够时,我们加带宽!我们加服务器!我们加异地多端!
当I/O过高时,我们取舍
I或O!我们把I和O拆分
!
在深入到程序、代码中,所有的优化,是不是也一样,你要减少计算和循环次数,你要节省内存开销
!你要网络数据缓存
!你要定量定时入库
!
所有的性能优化,不过如此!大家明白了吗?
换空间
- 压缩
- 分片
- 索引
上面说到的性能优化,从大方向时如此,然后细化到具体,会有非常多的算法或技巧,其中换空间
就是一个经典的问题。
大家一定听说过类似:
- “20张100MB的图片,怎么显示在1G内存的设备上”
- “在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。”
- “给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?”
这些问题,其实解法,基本上可以用上面3个方法!
大家明白了吗?建立你自己的开发知识体系
!其实并不难,学习是没有捷径,但有方法!
,所以,了解和掌握更多的方法论
,构建自己的知识体系树,这样,才是不用被动的每天在各种各样的文章中,人浮于事!
学什么
- 不要被难倒 —— 分治思想
- 不要想太简单
- 学习曲线陡峭度,跳过原则
- 多疑问,多思考,多总结
- 学习不仅仅是知识,还有过程
- 授人以鱼不如授人以渔
我个人推崇 授人以鱼不如授人以渔,学习不是给你知识,而是学会如果获取知识,如何知识点串联起来,如何快速有效的掌握知识!
学习技巧
- 先实践再学理论更有感觉
- 按工作需要来,工作毕竟是实践,最容易有成就感的
- 实践&思考
- 经验&总结
- 方向很重要,坚持方向更重要
- 不断深入,理解和认知都在更新
- 把逻辑和流程整理出来,更清晰
- 尝试作为一个提供 api 的人
- 并不是样样精通,而是有擅长的领域。
- 融会贯通
很多人可能迷恋/迷信学习的快捷方式,每次学习一个知识点时,总时想找到捷径在学习,往往不得其道!有需要,大家可以看看我之前的年终总结 2020,爱你爱你 | iHTCboy’s blog,这里我就不多说了。关于学习,先深挖某一领域,经过大量的学习和实践后理解了编程的本质,从而可以灵活调配和运用自己已经积累的知识。切记!切记!切记!学习是没有捷径!但有方法!
知识点
- 组件化是将上层业务隔离开,下层提供通用能力的一种架构模式
- 组件化、热修复、动态化、大前端、Flutter、小程序
- 提高编译速度,内存优化,性能优化,电量优化,测试驱动开发,架构设计模式和iOS中算法数据结构的使用
虽然大家都是程序员,工程师,但是,所在行业不同,现实是千差万别
的!了解和熟悉的知识也是不尽不同!如何把计算机的万千技术用到自己所在的行业?每个人的精力有限,但是无极限
,当别人告诉你不可能时,那一定是他度量的尺子与你不同!我们度量一件事,要尽量放长线,放大眼光,放高视角!
,对于知识点,有太多的东西,选择自己感兴趣和工作需要的,不用太关心别人的评论,绝大多数事件,不是做不来,而是需要长期做
!
面试
- 被别人问底层原理答不出所以然
- 1.业务代码谁都会写,你还会什么?
- 2.我觉得iOS开发不值这个价,我们公司这个价的也不是没有都是后台,前端不需要。
- 公司不考虑员工的成长,多待无益
- 成体系地提升自己的内功,完善自己,然后反哺到工作上,让工作效率和质量达到质的提升,进而从容应对技术的更新迭代
- 面试应聘者的时候,通常都会问他所负责项目的整体架构是怎样的。
- 只对自己负责的那摊子事儿说的溜,而回答所在项目整体情况时却支支吾吾,面试不会成功。
如果不是自由工作者,我想大多数的国内同学都没有机会选择,所以,面试是一个总是要面对的问题,每次辞职、被辞职,大家就重新拿起试题集来刷,刷题目!刷算法!刷刷刷!
所有的问题不能简单的一刀切!
,经过这么多年,我的理解里,问题没有对与错,好与坏。刷题目也是一样。我想说的是内力是不能一天俩天就长成,所以为面试,建立自己的开发知识体系,面试题就是西天取经,每一道题目就是一个怪兽,你不可能一天就打败所有怪兽,所以,不要忽视七七四十九日的轮回。
书籍
- 《代码整洁之道》
- 《人月神话》
书籍很多,好书也很多!这里暂时不列出所有值得看的技术书,因为,我害怕大家一下子又回到原点,买了一堆书,然后不知道从那里开始!
,所以,我是不建议买书!买书是自己要系统学习的时候买!怕伤害眼睛时买,但不能因为别人推荐或感觉不错就买!要从自身出发,从自己工作,从自己从事的行业,从自己的规划发展,从自己的兴趣,任何事情的起点,都是初心,不要忘了初心!
3、总结
关于如何建立自己的开发知识体系,以上就是我认为比较重要的点(还有很多方法论,但是多并一定是好事,以后有机会在归纳吧),贯穿到开发的每一个细节,需要大家长期长时间的学习、研究和经历,才能打造一套属于自己的知识树,任何告诉你可以复制的知识,你可以复制!但永远无法粘贴到自己脑心中!
https://ihtcboy.com/2020/02/02/2020-02-02_%E5%BB%BA%E7%AB%8B%E4%BD%A0%E8%87%AA%E5%B7%B1%E7%9A%84%E5%BC%80%E5%8F%91%E7%9F%A5%E8%AF%86%E4%BD%93%E7%B3%BB/
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步