zoukankan      html  css  js  c++  java
  • 如何建立你自己的开发知识体系---转载

    首先,我认为学习总结,要有所总,所结,就是有归纳后,能用自己的话告诉别人!有所结,就是有所收获输出,一般我认为是思维导图,所以,每篇文章前,我都会先给出文章的脑图:

    建立你自己的开发知识体系.png

    2、正文

    学习任何文章之前,一定要有可行的方法论,否则很难有所突破。上面脑图中,我列出了一些个人认为非常好的方法论,所以,在学习课程前,先了解一下,对后续自学或其它的学习都会有益处。

    一个知识点

    1. 为什么需要 XXX
    2. 什么是 XXX
    3. 怎么使用 XXX
    4. 使用 XXX 时注意的问题
    5. XXX 的应用领域
    6. XXX 的优缺点
    7. XXX 触类旁通

    这个理论是在郝斌老师所录制的计算机(编程)教学视频里提到的,很适合初学者,有兴趣的大家可以自行搜索。

    为什么这个很受用?因为简单的套用一下,你就知道自己是否掌握了一个知识点!

    举例:

    1. 为什么需要 单例模式
    2. 什么是 单例模式
    3. 怎么使用 单例模式
    4. 使用 单例模式 时注意的问题
    5. 单例模式 的应用领域
    6. 单例模式 的优缺点
    7. 单例模式 触类旁通

    当我们在谈论性能优化时,我们在说什么?

    1. CPU
    2. 内存
    3. 网络
    4. I/O

    大家有没有发现,以上4点对应计算机的基本组成原理,在谈论性能优化时,其实就是在说计算机的瓶颈!,所以,当在谈论性能优化时,我们可以做的,就是把计算机的瓶颈提高或转化

    单一 CPU 处理不过来,我们新加 GPU;一个 CPU 处理不来,我们8核、16核心!多核 CPU 处理不过来,我们可以集群!分布式!云化!

    当内存不足时,我们加内存!内存压缩!内存置换

    当网络带宽不够时,我们加带宽!我们加服务器!我们加异地多端!

    当I/O过高时,我们取舍I或O!我们把I和O拆分

    在深入到程序、代码中,所有的优化,是不是也一样,你要减少计算和循环次数,你要节省内存开销!你要网络数据缓存!你要定量定时入库

    所有的性能优化,不过如此!大家明白了吗?

    换空间

    1. 压缩
    2. 分片
    3. 索引

    上面说到的性能优化,从大方向时如此,然后细化到具体,会有非常多的算法或技巧,其中换空间就是一个经典的问题。

    大家一定听说过类似:

    • “20张100MB的图片,怎么显示在1G内存的设备上”
    • “在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。”
    • “给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?”

    这些问题,其实解法,基本上可以用上面3个方法!

    大家明白了吗?建立你自己的开发知识体系!其实并不难,学习是没有捷径,但有方法!,所以,了解和掌握更多的方法论,构建自己的知识体系树,这样,才是不用被动的每天在各种各样的文章中,人浮于事!

    学什么

    1. 不要被难倒 —— 分治思想
    2. 不要想太简单
    3. 学习曲线陡峭度,跳过原则
    4. 多疑问,多思考,多总结
    5. 学习不仅仅是知识,还有过程
    6. 授人以鱼不如授人以渔

    我个人推崇 授人以鱼不如授人以渔,学习不是给你知识,而是学会如果获取知识,如何知识点串联起来,如何快速有效的掌握知识!

    学习技巧

    1. 先实践再学理论更有感觉
    2. 按工作需要来,工作毕竟是实践,最容易有成就感的
    3. 实践&思考
    4. 经验&总结
    5. 方向很重要,坚持方向更重要
    6. 不断深入,理解和认知都在更新
    7. 把逻辑和流程整理出来,更清晰
    8. 尝试作为一个提供 api 的人
    9. 并不是样样精通,而是有擅长的领域。
    10. 融会贯通

    很多人可能迷恋/迷信学习的快捷方式,每次学习一个知识点时,总时想找到捷径在学习,往往不得其道!有需要,大家可以看看我之前的年终总结 2020,爱你爱你 | iHTCboy’s blog,这里我就不多说了。关于学习,先深挖某一领域,经过大量的学习和实践后理解了编程的本质,从而可以灵活调配和运用自己已经积累的知识。切记!切记!切记!学习是没有捷径!但有方法!

    知识点

    1. 组件化是将上层业务隔离开,下层提供通用能力的一种架构模式
    2. 组件化、热修复、动态化、大前端、Flutter、小程序
    3. 提高编译速度,内存优化,性能优化,电量优化,测试驱动开发,架构设计模式和iOS中算法数据结构的使用

    虽然大家都是程序员,工程师,但是,所在行业不同,现实是千差万别的!了解和熟悉的知识也是不尽不同!如何把计算机的万千技术用到自己所在的行业?每个人的精力有限,但是无极限,当别人告诉你不可能时,那一定是他度量的尺子与你不同!我们度量一件事,要尽量放长线,放大眼光,放高视角!,对于知识点,有太多的东西,选择自己感兴趣和工作需要的,不用太关心别人的评论,绝大多数事件,不是做不来,而是需要长期做

    面试

    1. 被别人问底层原理答不出所以然
    2. 1.业务代码谁都会写,你还会什么?
    3. 2.我觉得iOS开发不值这个价,我们公司这个价的也不是没有都是后台,前端不需要。
    4. 公司不考虑员工的成长,多待无益
    5. 成体系地提升自己的内功,完善自己,然后反哺到工作上,让工作效率和质量达到质的提升,进而从容应对技术的更新迭代
    6. 面试应聘者的时候,通常都会问他所负责项目的整体架构是怎样的。
    7. 只对自己负责的那摊子事儿说的溜,而回答所在项目整体情况时却支支吾吾,面试不会成功。

    如果不是自由工作者,我想大多数的国内同学都没有机会选择,所以,面试是一个总是要面对的问题,每次辞职、被辞职,大家就重新拿起试题集来刷,刷题目!刷算法!刷刷刷!

    所有的问题不能简单的一刀切!,经过这么多年,我的理解里,问题没有对与错,好与坏。刷题目也是一样。我想说的是内力是不能一天俩天就长成,所以为面试,建立自己的开发知识体系,面试题就是西天取经,每一道题目就是一个怪兽,你不可能一天就打败所有怪兽,所以,不要忽视七七四十九日的轮回。

    书籍

    1. 《代码整洁之道》
    2. 《人月神话》

    书籍很多,好书也很多!这里暂时不列出所有值得看的技术书,因为,我害怕大家一下子又回到原点,买了一堆书,然后不知道从那里开始!,所以,我是不建议买书!买书是自己要系统学习的时候买!怕伤害眼睛时买,但不能因为别人推荐或感觉不错就买!要从自身出发,从自己工作,从自己从事的行业,从自己的规划发展,从自己的兴趣,任何事情的起点,都是初心,不要忘了初心!

    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/

  • 相关阅读:
    ASP.NET 高级编程基础第七篇—开发原则2
    反垃圾邮件引发的Email格式变异!
    .NET框架程序设计生成,打包,部署及管理应用程序与类型(2:Assembly的生成以及版本信息)
    .NET框架程序设计NET框架开发平台的体系架构概览(FCL,CTS,CLS)
    .NET框架程序设计生成,打包,部署及管理应用程序与类型(1:程序集的PE格式)
    [电影]蝴蝶效应
    .NET框架程序设计.NET框架开发平台的体系架构概览(.NET程序本质)
    [转贴]浅析.NET Framework对PE文件格式的扩展
    [MSDN今日讲座]Whidbey 开发系列讲座二:Visual Studio 2005团对开发系统简介
    郁闷!我的Gmail邮箱的问题!
  • 原文地址:https://www.cnblogs.com/jzzgci/p/12256125.html
Copyright © 2011-2022 走看看