怎样学习和阅读技术书籍?

640?wx_fmt=jpeg

技术的更新换代非常的迅速,作为一个技术人,需要持续不断地学习才能不被淘汰。但是学习没有速成的方法,只可能有一些技巧让我们事半功倍,本文是我对学习和读书的一点思考。

学习是一件「逆人性」的事,如果让你选择是学习枯燥的技术,还是躺在沙发上看电视或者打游戏,相信很多人都会选择后者,想要克服学习的困难和人的惰性,我们就需要给自己设定目标。

目标

  • 5年想要达到年薪50万,需要做些什么?

  • 3年要让自己具备架构师的能力,需要怎样去规划?

  • 想要管理一个团队,又该如何去提升自己?

总之先要定一个短期或长期的目标,如果是长期的,还可以再分解成一个个小的目标,通过目标一步步反推到当下,然后制定好计划,行动就可以了。当能够完成一个个小目标后,就不会觉得那么的「逆人性」了。

同学习一样,我觉得跑步也是件「逆人性」的事,我的方法是,我先报一个几个月之后的马拉松比赛,然后反推,要能完成这个比赛,我一个月大概要有多少跑量,多长时间要能完成5公里,多长时间能达到10公里,像这样跑步就持续下来了。有人会说,我报了马拉松比赛,也可以不去参加呀,这也需要我们自己去找一些不可抗拒的因素,比如:

  • 报名马拉松,是需要报名费的,总不能让钱打水漂吧

  • 马拉松是需要抽签的,如果能中签,这种幸运总不能浪费吧

  • 早早的就发个朋友圈,总不能等着放弃后打脸吧

同样的道理用在学习和读书中也是适用的。

主动学习和被动学习

现在获取知识的方法和途径越来越多了,视频、书籍、博客、公众号、官方文档等等,当我们要学习一门新的编程语言或技术时,我认为书籍是最系统的,一本好的书可以让我们知其然也知其所以然,主动系统地去学习某个知识领域,这是我所理解的主动学习。

而被动学习与之相反,常常是在工作中遇到问题,或者需要引入一个新的技术的时候,临时去网上查,然后进行各种尝试,以程序能跑通为终极目标,并没有理解背后的原理,这样临时找到的一些代码或方案极大可能不是最优解,也会给后人留下大坑。

我个人比较喜欢主动学习,在探究技术细节的时候,可以知道以什么方式来实现便于扩展和维护,又能性能最好;在技术选型的时候,可以不用盲目听网上的人云亦云,有自己的思考和判断。好的书籍和官方文档是我认为能比较好系统学习的方式。

技术书的分类

读技术方面的书籍,不能像看武侠小说一样,如果只是为了完成读书量的任务,囫囵吞枣的通读一遍,起不到任何作用,还浪费了时间。我把技术书籍分为了三类:原理型、实战型、和工具型。

原理型

不会随着时间的推移而过时的技术书籍,我归为原理型,像《设计模式》、《CLR via C#》、《重构》等都属于此类,这一类书籍需要反复多次的阅读,随着经验的增长,不同时期读,会有不同的体会,最终要达到的就是能将知识融会贯通。

实战型

实战型的书籍,随着时间的推移,技术的发展,书里的内容会过时,所以我更推荐的是看相关的官方文档,因为得到的是第一手资料。像In Action系列丛书就是属于实战性。

实战型的书通常章节的前后有较强的关联性,适合从前往后看,而且并不能只是看,要配合书中的讲解做相应的代码演练。

工具型

工具型的就比较简单了,目的型很强,用于查阅,我们可以先了解目录结构,然后泛读全书,没有必要去强行记忆,主要是要了解书中都提供了那些方面的知识结构,以便于在需要用到的时候,能够快速地检索到。熟能生巧,用到次数多了自然就记住了。

阅读方法

阅读技术书籍,目的是为了获取某方便专业的知识,我自己在读技术书籍的时候用到了下面的一些方法。

读前先提问

一本书拿到手后,我一般会先看目录和书结构的讲解,如果章节之间没有连续性,那就可以挑自己感兴趣的章节开始阅读。

阅读前,先可以问自己几个问题:

  • 如果是涉及过的内容,现在的理解是什么?

  • 如果是全新的知识和概念,那么通过这个章节的学习,要能达到什么目的?

然后在阅读的时候,就可以带着这些问题去阅读和思考。比如我们阅读《Javascript高级程序设计》的7.2小节,这一小节是讲闭包,假设我完全不懂闭包,那么我的问题如下:

  • 闭包的概念是什么?

  • 闭包用代码是如何实现的?

  • 什么场景下我们需要使用闭包?

  • 闭包有副作用吗?

然后带着问题去寻找答案。

读中做笔记

俗话说,好记性不如烂笔头,在阅读中根据自己的理解做一些记录,形成自己的知识脉络。这里我推荐使用思维导图来做笔记。

阅读完成时,一张适合你的知识图谱就同步绘制完成。再加以整理,就是一篇适合初学者的入门文章了。当我们能讲一个知识以口头或文字的方式表达出来的时候,说明真正的掌握了。

读后复盘

对于新的知识,读前的提问,可能你阅读完书籍中所有相关介绍,也没有能完全找到答案,没关系,我可以再通过网络搜索,或同类书籍交叉来作为补充,

对于接触过的知识,读完后,我们可以看看自己之前的理解和书中的介绍是相吻合还是有分歧,如果觉得书中介绍的还有欠缺,同样可以采用其他的方式来作为补充。

总之我们的目的是要获取知识,而不是「读完书籍」。

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

52ABP和ABP的关系

52ABP和ABP的关系本文作者:52ABP开发团队 文章会随着版本进行更新,关注我们获取最新版本 本文出处:https://www.52abp.com/wiki/common/latest 源代码: https://www.github.com/52abp 52ABP和ABP的关系ASP.NET Boilerplate是一个开…

【译】C#9的候选功能

通往C# 9 的漫长道路已经开始了,这是世界上第一篇关于C# 9候选功能的文章。阅读完本文后,你将希望为将来遇到新的C#挑战做好充分准备。 这篇文章基于:C#语言版本计划 9.0 候选功能基于记录和模式匹配的表达式我一直在长时间等待这个功能。记录…

AKS开讲啦! | DevOps with AKS

上周小Phippy搬到了Kube船长船上的Pods里,感觉好极了,那今天我们继续看看Phippy的兴趣爱好哦。探索Kube船上的世界上篇(点击回顾)小Phippy 搬到了船上的Pods里,感受到了回家般的舒适感,小Phippy希望能发挥一…

把文件隐藏在图片中

一、前言有的时候我们需要把文件给隐藏起来,但是Windows自带的隐藏方式还是很容易被发现的。这时候我们可以选择把文件放在网盘,但这毕竟需要网络。不过,我们可以通过Windows自带的功能,把文件隐藏在图片中。是不是有一种大隐隐于…

.NetCore下使用Polly结合IHttpClientFactory实现聚合服务

在使用微服务的过程中经常会遇到这样的情况,就目前我遇到的问题做下分析情况一:这里服务对于前后端分离情况来说,多使用查询服务,前端直接获取不同服务的数据展示,如果出现其中的服务失败,对业务数据无影响…

你需要了解的有关.NET日期时间的必要信息

引言DateTime数据类型是一个复杂的问题,复杂到足以让你在编写【将日期从Web服务器返回到浏览器】简单代码时感到困惑。ASP.NET MVC 5和 Web API 2/ASP.NETCore 以不同方式序列化日期,这可能会给在一个Web应用程序中同时使用这两个序列化的开发人员带来更…

只需3步,即可将你的Chromium Edge 浏览器设置成中文

最近,Chromium Edge 浏览器推出了添加语言包的功能,于是我们可以轻松将其界面设置成中文的。第1步: 升级浏览器到最新版在Chromium Edge 浏览器的地址栏中输入:edge://settings/help稍等片刻,浏览器会自行升级到最新版。第2步: 将Language se…

【北京】线下活动 | Azure SQL Database Managed Instance发布会

6/12/2019 | 8.30 AM - 1.30 PM微软大厦一号楼一层故宫会议室N丹棱街5号 海淀区 北京市S尊敬的客户感谢您一直以来对微软的支持!诚挚地邀请您参加微软Azure SQL Database Managed Instance (SQL Database托管实例)在中国北京的发布会。SQL Da…

ASP.Net Core MVC 发生二次请求

Bug回忆录昨天搭建新框架的时候&#xff0c;遇到一个很奇怪的“Bug”&#xff0c;每次请求都会触发两次Aciton&#xff0c;举例子吧&#xff0c;Demo&#xff1a;_Layout.cshtmlHomeControllerIndex.cshtml<h1>Hi, Im index page.</h1>最简单不过的代码&#xff0c…

DDD战略设计相关核心概念的理解

前言本文想再讨论一下关于领域、业务、业务模型、解决方案、BC、领域模型、微服务这些概念的含义和关系。初衷是我发现现在DDD领域建模以及解决方案落地过程中&#xff0c;常常对这些概念理解不清楚或者有歧义&#xff0c;导致我们不知道如何运用这些概念来落地我们的软件。领域…

Visual Studio容器项目工程化心得

引言  关注博主的网友会看到我使用ASP.NET Core 容器化部署企业级项目的过程&#xff0c; 回想到开发过程中&#xff0c;鄙人有一些工程化心得&#xff0c; 分享给同学们。项目工程化因为本项目涉及单元测试Project、容器化部署、本地化的sqlite数据库&#xff0c;nlog日志&a…

Insider Dev Tour 2019 | 以技术之力,展现传承魅力

世界原本是一个漆黑的山洞的大小&#xff0c;一个“胆大妄为”的人燃起火把&#xff1b;世界原本是一个孤岛的轮廓&#xff0c;一个“野心勃勃”的人扬帆起航&#xff1b;如今&#xff0c;世界的版图已经清晰&#xff0c;是什么让我们走出黑暗与闭塞&#xff0c;从未放下对未知…

.NET 之 ORM 性能评测

Why你应该总能听到某ORM性能比Dapper高你应该有如下疑问&#xff1a;基准测试是否权威基准测试的方式是否合理基准测试的标准是否能够统一统一基准测试标准/规范如何进行姿势正确的性能测试相信大家对 Dapper 的性能&#xff0c;以及基准测试的权威性是没有疑问的&#xff08;否…

CF817E Choosing The Commander 01tire 贪心

看到集合和异或&#xff0c;可以想到01tire(但是我没有想到)。 让后就可以对于每次插入和删除一个数&#xff0c;都在01tire树上操作即可。让后记录一下到当前位(当然是从高位到低位啦)有相同前缀的数的个数。例如样例建图出来大概是这样的&#xff1a; 可以看到从编号为2的点开…

不断进化的分支和需求管理

昨天有朋友在公众号私信问我几个关于代码分支管理的问题&#xff0c;这几个问题是我去年写的《在团队中使用GitLab中的Merge Request工作模式》一文结尾时抛出的几个问题&#xff1a;如果系统上线后有紧急Bug需要处理&#xff0c;这个流程应该怎样去调整&#xff1f;每个任务都…

CF56E Domino Principle 树状数组 + 简单dp

一个比较简单的题&#xff0c;但是我还是没做出来(哭。 很容易想到从后往前做&#xff0c;所以我们可以维护一个dp数组f&#xff0c;f(i)表示到第i个牌倒下能达到的最远距离。 f直接倒着跑&#xff0c;每次取[x,xh−1][x,xh-1][x,xh−1]的最大值即可&#xff0c;可以用线段树比…

基于Docker的Consul服务发现集群搭建

在去年的.NET Core微服务系列文章中&#xff0c;初步学习了一下Consul服务发现&#xff0c;总结了两篇文章。本次基于Docker部署的方式&#xff0c;以一个Demo示例来搭建一个Consul的示例集群&#xff0c;最后给出一个HA的架构示范&#xff0c;也会更加贴近于实际应用环境。一、…

Hills And Valleys CodeForces - 1467B 思维

给你一个数组&#xff0c;最多可以修改一个数&#xff0c;问最少的山峰和山谷数量之和。 小菜鸡做了一年。 一上来想猜个结论&#xff0c;让每个数等于其相邻的两个数&#xff0c;看了题解之后也证明的正确性&#xff0c;当时直接写就没后面这么多事了。 但是命运让我分情况讨…

[译]使用LazZiya.ExpressLocalization开发多语言支持的ASP.NET Core 2.x项目

介绍开发多语言支持的ASP.NET Core 2.x Web应用程序需要大量的基础架构设置&#xff0c;并且耗费时间和精力。这篇文章&#xff0c;我们将使用LazZiya.ExpressLocalization nuget包一步本地化支持。背景大多数网络应用程序都是基于网址的本地化。因此我们可以在网址中看到所选的…

2019 ICPC World Finals Problem B. Beautiful Bridges

2019 ICPC World Finals Problem B. Beautiful Bridges Solution 太菜了&#xff0c;sbsbsb题调了一个下午。 首先有一个显然的O(n3)O(n^3)O(n3)的dpdpdp&#xff0c;令fif_ifi​表示最后一个桥柱在iii的最小代价&#xff0c;枚举上一个桥柱jjj&#xff0c;因为地面超过桥拱…