偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘

今天来给大家谈一谈如何高效地学习编程。


无论什么时候,找到学习的目标,以及学习的套路都非常的重要。找不到的话,就只能事倍功半,付出了很多努力,却迟迟得不到最好的回报。


三四年前,我特别喜欢收藏文章,觉得有些技术文写得真好,忍不住收藏了!等过了一段时间后,闲得无聊,就去翻收藏夹,想着学一波,谁知道竟然找不到——不是微信给我删了,而是收藏夹里躺的“尸体”实在是太多了,根本就找不到。


后来,我就总结了一个小窍门——每周收藏夹里最多躺五篇文章,如果想进来第六篇,之前的必须得清一篇。别小看这个小窍门,它真的有督促我去学习,去消化。


有句话说得好,学习的时候一定要把自己当成一台计算机,既有输入,也要有输出。只输入不输出会堵塞,只输入不输出会枯竭。


我在网上看到有大佬列出 Java 工程师应该掌握的知识点,分了 5 个梯度,我觉得蛮有道理的。


第一梯度:操作系统、计算机组成原理、计算机网络、数据结构、算法。这个我之前已经强调很多次了,也列了对应的学习资料。比如说《深入理解计算机系统》这本黑皮书是要必读的,不管什么时候读。


这第一梯度的知识还是挺庞大的,需要花很多时间去消化。科班的比较适合一上来就啃,啃不动的可以放到后面再去补,反正是不要绕过去。


第二梯度:Java 基础、JVM 内存模型和 GC 算法、JVM 性能调优、JDK 工具、设计模式。


Java 基础方面我写过《教妹学Java》,这部分内容目前处于断更的阶段,我在想后面的内容怎么继续下去,在“沉默王二”这个号上写感觉有点不太适合了,因为之前的反响一般;打算后面用我妹的那个号“程序员宝宝”来写,然后这个号次条转载一波。


除了《教妹学Java》,我推荐过另外一个 GitHub 上标星 115k+ 的 Java 教程,我自己从 GitHub 上下载到本地整理了一份 PDF,我看百度网盘下载的次数接近 1 万次,还是挺受欢迎的。


Java 基础里面有一块内容,就是并发编程,需要花大力气。我之前也推荐过这方面的资料,几个阿里的朋友写的,叫《深入浅出 Java 多线程》。


至于 JVM,一本书搞定,就是周志明老师的那本《深入理解 Java 虚拟机》,不过这书和《深入理解计算机系统》差不多,都挺难吃透的,需要花时间去读,前后持续的时间会比较久。


然后是设计模式,这块需要通过大量的实战经验才能有所感悟,设计模式玩得炉火纯青,写出的代码就更优雅,阅读起来也会更加舒服,可维护性、可扩展性就更强。推荐好朋友小傅哥重写的 Java 设计模式,全网下载次数应该有 3 万多次了。


第三梯度:Spring 系列、MyBatis、Dubbo 等主流框架。


Spring 系列的话,我之前推荐过松哥的视频,在 B 站上有,大家可以去搜一下“江南一点雨”,质量我觉得还是挺不错的。听松哥说,今年还会录一些新的视频。


至于 Spring Boot 和 Spring Cloud,木得说,大家直接搜“纯洁的微笑”,看他的博客就行了。虽然微笑哥现在不怎么写这方面的教程了,但它之前写的就足够用来学习了。


MyBatis 其实很简单,学起来不复杂,就是怎么在 XML 文件里写 SQL 的事,不难,直接看官网就行。


Dubbo 是阿里巴巴公司开源的一个高性能服务框架,使得应用可通过 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。学习 Dubbo 的话,也推荐直接看官方文档。


第四梯度:MySQL、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper 等数据库或者中间件。


MySQL 的话,推荐先看《SQL 必知必会》,再看《MySQL 必知必会》,然后是《高性能 MySQL》。


Redis 的话,推荐看老钱的《Redis 深度历险:核心原理与应用实践》,在业界的评价还是蛮高的。


Kafka 和 RabbitMQ 是两款比较主流的消息中间件,具备消息传递的基本功能,但在一些特殊的功能方面存在差异,RocketMQ 在阿里集团内部有大量的应用场景。这部分的学习可以直接看官方文档,然后通过实战项目提升自己对这些消息中间件的应用功底。


Zookeeper 是一个分布式的、开源的程序协调服务,可以到菜鸟教程上学习。


第五梯度:CAP 理论、BASE 理论、Paxos 和 Raft 算法。


一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项——CAP 理论。


BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。


Paxos 算法是一种基于消息传递且具有高度容错特性的共识算法。


Raft 算法是一种用于替代 Paxos 的共识算法,安全性更高,并能提供一些额外的特性。


这些都是一些比较难以理解的知识点,需要通过大量的实战经验(海量数据的前提下)才能很好的掌握,属于中级、高级程序员应该掌握的内容。


大家在学习编程的时候,一定要形成自己的知识体系,建议大家通过思维导图来梳理知识点。比如说并发编程这块的知识点如下图所示。


image.png


最后,提几点建议吧。


试着去造个轮子。虽然我们常说,不要重复造轮子,为了开发效率,可以不造轮子,但必须得具备造轮子的能力。

多做技术分享。可以是写博客这种面向大众的,也可以是团队的内部分享,新人培训等。

重视英语。学好英语可能和掌握编程语言一样重要,如果英语足够好,可以直接阅读一手的英语资料,接收知识的时间可能就比其他人早了不少。

及时温习。网上说,人在一天后的记忆量只有 30%,所以我们上学的阶段各种考试,月考,周考,其实就是用来加强记忆的,很多题都是做过的,换汤不换药。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
学IT上培训班有用吗?
学IT上培训班有用吗?
201 0
|
7月前
|
安全 程序员 网络安全
花无涯带你走进黑客世界之深夜编程的程序员
有些人,家境贫寒,有强烈的发大财的欲望,渴望出人头地,让父母过上好日子。说起来永远踌躇满志,日常却是逛淘宝刷b站,基础工作嫌没劲,难的项目接不住,深夜会被上进心折磨,下着要努力的决心,被自己感动得睡着。沉沦在「我告诉自己要努力就等于我努力了」的生活里,日复一日,年复一年。
|
5月前
大学四年就靠这些东西成为别人眼中的大神(工具用好才是硬道理,兵来将挡,水来土掩)
大学四年就靠这些东西成为别人眼中的大神(工具用好才是硬道理,兵来将挡,水来土掩)
28 0
|
7月前
|
移动开发 前端开发 JavaScript
花无涯带你走进黑客世界16 前端攻城狮资源
Web前端开发是从网页制作演变而来的,在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。
|
9月前
|
编译器 C语言 C++
重生之我要学C++第四天
重生之我要学C++第四天
66 0
|
9月前
|
编译器 C++
重生之我要学C++第五天(上)
重生之我要学C++第五天(上)
50 0
|
9月前
|
程序员 C++
重生之我要学C++第五天(下)
重生之我要学C++第五天(下)
74 0
|
10月前
|
数据采集 JSON 算法
贡献!程序员大学四年珍藏的26个宝藏网站,全部拿出来了
哔哩哔哩 对于程序员来说,B站不可只是一个看番、鬼畜、舞蹈等等的一个网站,B站上所拥有的学习资源是非常非常非常丰富的,基本上你可以在这里找到任何你想要的资源(不是你想的资源,狗头),哈哈。
|
传感器 机器学习/深度学习 存储
重温工业4.0:(二)时光已过,她的魅力你不曾拥有
在整个工业4.0的实现过程中,肯定没有单一的、标准化的方法。
重温工业4.0:(二)时光已过,她的魅力你不曾拥有