登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

『簡體書』Head First Kotlin程序设计

書城自編碼: 3537119
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]道恩?,格里菲斯[Dawn,Griffiths]戴维?
國際書號(ISBN): 9787111662358
出版社: 机械工业出版社
出版日期: 2020-08-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 834

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
异质文化交织下的上海都市生活(1843-1949)
《 异质文化交织下的上海都市生活(1843-1949) 》

售價:NT$ 666.0
暂别(邓安庆全新文集)
《 暂别(邓安庆全新文集) 》

售價:NT$ 406.0
鲍勃·迪伦为什么重要
《 鲍勃·迪伦为什么重要 》

售價:NT$ 354.0
超负荷的女性:看见内心的渴望与恐惧
《 超负荷的女性:看见内心的渴望与恐惧 》

售價:NT$ 307.0
数学史(第三版) 国际数学史领域具有影响力的名著
《 数学史(第三版) 国际数学史领域具有影响力的名著 》

售價:NT$ 822.0
接纳真实的自我(日本超人气禅师小池龙之介力作!"与自己和解"指南!)
《 接纳真实的自我(日本超人气禅师小池龙之介力作!"与自己和解"指南!) 》

售價:NT$ 307.0
敦煌及周边区域荒漠植物图鉴
《 敦煌及周边区域荒漠植物图鉴 》

售價:NT$ 354.0
吴哥王朝兴亡史(方尖碑)
《 吴哥王朝兴亡史(方尖碑) 》

售價:NT$ 359.0

建議一齊購買:

+

NT$ 561
《 Kotlin核心编程 》
+

NT$ 474
《 信息技术安全评估准则: 源流、方法与实践 》
+

NT$ 534
《 智能风控:原理 算法与工程实践 》
+

NT$ 768
《 中文版3ds Max 2020完全案例教程(微课视频版) 》
+

NT$ 294
《 少儿编程之旅 趣学Python 》
+

NT$ 474
《 Kotlin编程实践 》
編輯推薦:
【目标读者】本书适合有一定基本的编程知识(不要求你有Java编程经验)想零基础学习Kotlin的新手阅读。
本书语言和版式活泼,内容讲解深入浅出,是难得的Kotlin入门书。
本书内容涵盖Kotlin的基本知识、用例和对象(包括接口、继承和授权等)以及创建基本Kotlin程序。
书中配备了大量有趣的实例、图示和练习,让读者轻轻松松掌握Kotlin。
【为什么这本书如此不同?】
基于认知科学和学习理论的新研究,本书采用一种视觉丰富的格式来吸引你,而不是使用以文字为主的方法来使你昏昏入睡。为什么要浪费时间在新的概念中挣扎?这种多感官的学习体验正是为你的大脑真正的工作方式而设计的。
內容簡介:
本书是对Kotlin编程的完整介绍,将帮助你以一种独特的方法学习Kotlin语言(这远远超越了语法和说明手册),并教你如何像一个伟大的Kotlin开发者一样思考。你将学习从语言基础到集合、泛型、lambda以及高阶函数的所有内容。在此过程中,你将使用面向对象和函数式编程。如果你想真正了解Kotlin,这本书正适合你。

本书介绍了Kotlin的基本语法、常用类型、面向对象编程以及一些高阶的知识。在所有的章节中,都广泛使用图片和会话的介绍方式,以帮助大脑更容易理解和获取信息。此外还有各种生动的实例、习题,以及有问必答环节。让读者仿佛置身其中,更加高效专注地学习知识,而把一些无关紧要的事情抛之脑后。本书以类似于划重点或记笔记的方式对某些内容或代码进行注解和说明,读者更容易知晓内容和代码的重要部分。此外,有问必答环节的设计也十分巧妙,它会囊括一些在文中没有提及到,但读者可能会疑惑的问题。
關於作者:
Dawn Griffiths是一名高级开发人员和高级软件架构师,在IT行业拥有超过20年的工作经验。她写过Head First系列中的其他书籍,包括Head First Android Development。她还曾经和她的丈夫David一起开发了动画视频教程The Agile Sketchpad,以一种使你的大脑保持积极参与的方式,教授核心概念和技术。
目錄
【引子】xxi
1 开始:快速入门 1
2 基本类型和变量:关于变量 31
3 函数:跳出主函数 59
4 类和对象:初步认识类 91
5 子类和父类:使用继承 121
6 抽象类和接口:重要的多态 155
7 数据类:处理数据 191
8 空值和异常:使代码安然无恙 219
9 集合:变得有条理 251
10 泛型:从输出推断输入 289
11 lambda和高阶函数:像数据一样使用代码 325
12 内置高阶函数:使你的代码更强大 363
附录i 协程:并行地执行代码 397
附录ii 测试:确保你的代码可以运行 409
附录iii 其他:我们没有涉及的十大内容 419

【详细目录】
引子
你的大脑与Kotlin。你想学些新东西,但你的大脑总是帮倒忙,让学习无法继续。你的大脑在想:最好留出空间来记住那些更重要的事情,比如要避开哪些野生动物。那么,该如何哄骗你的大脑,让它认为如果不知道Kotlin你将无法生存?
谁适合看本书 xxii
我们知道你们在想什么 xxiii
我们知道你的大脑在想什么 xxiii
元认知:思考何为思考 xxv
我们是这样做的 xxvi
重要说明 xxviii
技术审校团队 xxx
致谢 xxxi


1 开始
快速入门
Kotlin正在掀起新的浪潮。
自首次发布以来,Kotlin就以其友好的语法,简洁、灵活和强大的功能给程序员留下了深刻的印象。在本书中,我们将教你如何构建自己的Kotlin应用程序。我们将从创建并运行基本的应用程序开始讲解。在此过程中,你将了解Kotlin的一些基本语法,例如基本语句、循环以及条件分支。你的旅程刚刚开始。

欢迎来到Kotlin之城 2
你几乎可以在任何地方使用Kotlin 3
本章内容 4
安装IntelliJ IDEA 7
构建一个基本的应用程序 8
你的第一个Kotlin项目 11
新增一个Kotlin文件 12
main函数剖析 13
将main函数添加至App.kt文件 14
你可以在main函数里面做些什么呢 16
循环 17
循环示例 18
条件分支 19
带有返回值的if语句 20
更新main函数 21
使用Kotlin的交互式shell 23
你可以在REPL中加入多行代码片段 24
Kotlin工具箱 30


2 基本类型和变量
关于变量
所有代码都依赖于变量
本章我们将进一步探索Kotlin,并且向你展示Kotlin变量是如何工作的。你会学习Kotlin的基本类型,例如整型(Int)、浮点型(Float)和布尔型(Boolean),并且学习Kotlin的编译器是如何聪明地从给定的变量值推测出变量类型的。你还将学会如何使用String模板和简短的代码来构建复杂的String类型,并且学会创建数组来存储多个值。最后,你会发现对象对于Kotlin之城如此重要的原因。

你的代码需要变量 32
当你声明变量时会发生什么 33
变量保存了指向对象的引用 34
Kotlin的基本类型 35
如何显式声明变量类型 37
根据变量类型正确赋值 38
将一个变量值赋给另一个变量 39
类型转换 40
数值类型转换背后发生了什么 41
小心溢出 42
使用数组存放多个值 45
创建Phrase-O-Matic应用程序 46
向PhraseOMatic.kt中添加代码 47
编译器从数组中元素的值来推测数组的类型 49
var表示该变量可以指向不同数组 50val
表示该变量永远指向同一个数组 51
Kotlin工具箱 58


3 函数
跳出主函数
现在,是时候更上一层楼了。下面,我们一起来了解一下函数。
到目前为止,你一直将所有的代码写在应用程序的主函数中。但是,如果你想要编写更有条理并且更加易于维护的代码,你需要知道如何将代码拆分为不同的函数。在本章中,你将通过构建一个游戏来学习如何编写函数以及与应用程序交互。你将了解如何编写简明的单个表达式函数。在此过程中,你还将学习如何使用强大的for循环来遍历范围和集合。

我们一起来编写一个游戏Rock、Paper、Scissors 60
游戏设计概览 61
让程序选择一个选项 63
如何创建函数 64
可以向函数中传入多个值 65
可以从函数中返回一个值 66
单个表达式函数 67
向Game.kt中添加getGameChoice函数 68
getUserChoice函数 75
for循环工作原理 76
询问用户的选择 78
验证用户的输入 81
更强大的布尔表达式 81
向Game.kt中添加getUserChoice函数 83
向Game.kt中添加printResult函数 87
Kotlin工具箱 89


4 类和对象
初步认识类
现在是时候了解一下Kotlin基本类型之外的类型了。
Kotlin的基本类型迟早会难以满足你的需求,此时,你就需要类的帮助。类是一个模板,它允许你创建自己的对象类型,并定义它们的属性和函数。这里,你将要学习如何设计、定义类以及如何使用类来创建新的对象。你将会看到构造函数、初始化程序块、getter和setter,以及getter和setter是如何保护类的属性的。最后,你将学习Kotlin是如何内置数据隐藏功能,从而节省你的时间、精力和编码量的。

使用类定义对象类型 92
如何设计自己的类 93
一起定义一个Dog类 94
如何创建Dog对象 95
如何访问属性及函数 96
创建一个Songs应用 97
神奇的对象创建 98
对象是如何创建的 99
现象背后:调用Dog构造函数 100
深入了解属性 105
灵活的属性初始化 106
如何使用初始化块 107
你必须初始化所有属性 108
如何验证属性值 111
如何编写自定义的getter 112
如何编写自定义的setter 113
Dogs项目的完整代码 115
Kotlin工具箱 120


5 子类和父类
使用继承
你是否曾经想过,只需要做一点点改变,对象的类型就会变得完美?
是的,这就是继承的好处之一。在本章,你将学习如何创建子类,以及继承父类的属 性和方法。你将学会如何覆盖override属性和方法,从而使类表现出你想要的行 为,并弄清楚什么时候这样做是合适的或不合适的。最后,你将学会如何利用继 承避免代码重复,如何利用多态提高代码灵活性。

继承帮助你避免代码重复 122
我们将要做什么 123
设计一个animal类继承结构 124
使用继承避免子类中的代码重复 125
子类应该覆盖什么 126
我们可以将一些动物分类 127
添加Canine和Feline类 128
使用IS-A测试类的层次结构 129
继承树中的任意子类都满足IS-A测试 130
创建一些Kotlin动物 133
使用open关键字声明父类及它的属性和方法 134
子类是如何继承父类的 135
如何以及何时覆盖属性 136
覆盖属性不仅仅让你可以指定默认值 137
如何覆盖方法 138
被覆盖的方法或属性仍然是open的 139
向Animals项目中添加Hippo类 140
添加Canine和Wolf类 143
哪个方法被调用了 144
当你调用方法时,变量指向对象的方法进行响应 146
你可以使用父类型作为方法的参数和返回值类型 147
更新后的Animals代码 148
Kotlin工具箱 153


6 抽象类和接口
重要的多态
父类继承层次结构只是一个开始。
如果想充分利用多态,你需要设计抽象类和接口。在本章中,你将学习如何使用抽象 类来控制层次结构中的类能否被实例化。你将知道它们如何强制具体的子类提供自己 的实现。你将了解如何使用接口在相互独立的类之间共享行为。在此过程中,你将了 解is、as和when的来龙去脉。

再谈Animal类的层次结构 156
一些类不能被实例化 157
抽象还是具体 158
抽象类可以有抽象属性和方法 159
Animal类有两个抽象方法 160
如何实现一个抽象类 162
你必须实现所有的抽象属性和方法 163
更新Animals项目 164
独立的类可以有共同的行为 169
接口可以让你在父类层次结构之外定义共同的行为 170
让我们定义Roamable接口 171
如何定义接口属性 172
声明一个类实现了一个接口 173
如何实现多个接口 174
如何决定是创建类、子类、抽象类还是接口 175
更新Animals项目 176
接口让你可以使用多态 181
在哪里使用is操作符 182
使用when将变量和一组选项进行比较 183
is操作符通常会进行智能转换 184
使用as进行显式转换 185
更新Animals项目 186
Kotlin工具箱 189


7 数据类
处理数据
没人愿意花费比生精力重新造轮子。
大多数应用程序都包含一些主要用于存储数据的类。为了使你的编程生活更轻松, Kotlin开发者提出了数据类的概念。在这里,你将学习如何使用数据类编写更加 清晰、简洁的代码。你将探索数据类工具函数,并学会如何将一个数据对象解构 成它的组件。在此过程中,你将了解默认参数值如何使代码更灵活。最后将为你
介绍Any,它是所有父类的起源。

==调用了equals方法 192
equals继承自Any父类 193
Any类定义的共有行为 194
我们可能希望用equals检查两个对象是否等价 195
数据类允许你创建数据对象 196
数据类覆盖了它们继承的行为 197
使用copy方法复制数据对象 198
数据类定义了componentN方法 199
创建Recipes项目 201
生成的方法仅包含构造函数中定义的属性 205
初始化许多属性可能会导致烦琐的代码 206
如何在构造函数中设置默认值 207
方法也可以使用默认值 210
重载方法 211
更新Recipes项目 212
Kotlin工具箱 217


8 空值和异常
使代码安然无恙
每个人都想编写安全的代码。
好消息是Kotlin的设计本身就是代码安全的。我们首先为你展示Kotlin如何使用可空类 型,这意味着你在Kotlin小城逗留期间几乎不会遇到空指针异常。你将学习如何进行安 全调用,以及如何使用Kotlin的Elvis操作符避免惊慌失措。当我们介绍完空值后,你将 学会如何像专业人士那样抛出和捕获异常。

从变量中删除对象引用 220
用空值删除一个对象引用 221
你可以在任何能够使用非可空类型的地方使用可空类型 222
创建一个可空类型的数组 223
访问可空类型的方法和属性 224
通过安全调用确保一切安全 225
链式安全调用 226
你可以使用安全调用赋值 228
如果变量的值不为空,使用let执行代码 231
对数组项使用let 232
替代if表达式 233
使用!!操作符故意抛出NullPointerException 234
创建Null Values项目 235
在异常情况下抛出异常 239
使用trycatch捕获异常 240
使用finally去做无论如何你都想做的事情 241
异常是Exception类型的对象 242
你可以显式地抛出异常 244
try和throw都是表达式 245
Kotlin工具箱 250


9 集合
变得有条理
你想过比数组更灵活的东西吗?
Kotlin有一些好用的集合类可以让你在存储和管理对象组方面有更多的灵活性和更强的 控制力。你想要可以不断增加对象的可变列表吗?你想要排序、打乱和倒序列表的内 容吗?你想要通过名字进行检索吗?或者你想要不动一根手指就实现自动去重吗?只 要你对以上任何一个功能感兴趣,或者想要发掘更多有意思的功能,请继续读下去。 在本章你将找到答案。

有用的数组 252
数组不能处理的事情 253
Kotlin标准库 254
List、Set和Map 255
奇妙的List 256
创建MutableList 257
移除一个值 258
改变元素顺序以及批量更改 259
创建Collections项目 260
List允许重复项 263
如何创建Set 264
Set如何查重 265
哈希码与相等性 266
覆盖hashCode和equals的规则 267
如何使用MutableSet 268
复制MutableSet 269
更新Collections项目 270
Map的表演时间 276
如何使用Map 277
创建MutableMap 278
从MutableMap移除条目 279
拷贝Map和MutableMap 280
完整的Collections项目代码 281
Kotlin工具箱 287


10 泛型
从输出推断输入
人人都喜欢通用的代码。
使用泛型是令代码一致且不易出错的一种策略。在本章中,我们将看到Kotlin的集合类
如何利用泛型避免将Cabbage对象放入List。你将了解编写泛型类、接口和函 数的场景和方法,以及如何将泛型类型限制为特定的父类型。最后,你将学习利用协 变和逆变控制泛型类型的行为。

泛型在集合中的使用 290
如何定义MutableList 291
在MutableList中使用类型参数 292
通过泛型类或接口可以做什么 293 接下来要做的事 294
创建Pet类的层次结构 295
定义Contest类 296
添加scores属性 297
创建getWinners方法 298
创建一些Contest对象 299
创建Generics项目 301
Retailer层次结构 305
定义Retailer接口 306
轻松创建CatRetailer、DogRetailer和FishRetailer等对象 307 用out使泛型类型协变 308
更新Generics项目 309
再定义一个Vet类 313
创建Vet对象 314
用in使泛型类型逆变 315
泛型类型的局部逆变 316
更新Generics项目 317
Kotlin工具箱 324


11 lambda和高阶函数
像数据一样使用代码
你想要写出更强大、更灵活的代码吗?
如果是的,那么让lambda来帮助你吧。一个lambda或者lambda表达式是像对象一 样能被传递的代码块。在本章中,你将了解如何定义lambda,将它赋予某个变量,然 后执行其中的代码。你将学习利用函数类型在高阶函数中使用lambda作为参数或者返 回值。最终,你将见证小小的语法糖给写代码带来的乐趣。

初识lambda 326
lambda的代码格式 327
将lambda赋值给变量 328
调用lambda时会发生什么 329
lambda表达式类型 331
lambda参数类型的自动解析 332
根据变量类型使用正确的lambda 333
创建Lambdas项目 334
将lambda作为函数参数 339
在函数体中调用lambda 340
代码运行时发生了什么 341
将lambda移到函数括号外面 343
更新Lambdas项目 344
函数可以返回一个lambda 347
将lambda作为函数参数和返回值 348
如何使用combine函数 349
用typealias为已存在的类型取别名 353
更新Lambdas项目 354
Kotlin工具箱 361


12 内置高阶函数
使你的代码更强大
Kotlin提供完整的内置高阶函数库。
本章我们将介绍一些最常用的高阶函数。你将见到灵活的过滤器家族,并了解它们如 何帮你剪裁集合。你将学会如何用map对集合进行转换,用forEach对集合进行遍历, 以及用groupBy对集合元素进行分组。甚至依靠fold用一行代码完成复杂的计算。学完 本章,你的编程能力将比你想象的更厉害。

Kotlin的内置高阶函数 364
用min和max函数处理基础类型 365
深入理解minBy和maxBy的lambda参数设置 366
sumBy与sumByDouble函数 367
创建Groceries项目 368
走近filter函数 371
使用map转换集合 372
代码运行时发生了什么 373
像for循环的forEach 375
forEach没有返回值 376
更新Groceries项目 377
使用groupBy划分集合 381
在链式调用中使用groupBy 382
如何使用fold函数 383
fold函数背后的故事 384
再举几个fold函数的例子 386
更新Groceries项目 387
Kotlin工具箱 394


附录i 协程
并行地执行代码
有些任务最好在后台执行。
如果你想要从一个慢速的外部服务器读取数据,你可能不希望其余代码处于空闲状态,等待读取任务的完成。在这种情况下,协程(coroutine)将成为你新的死党,它可以让代码异步执行。这意味着更少的空闲状态,更好的用户体验,而且可以使你的应用程序易于扩展。继续往下阅读,你将学习其中的秘诀:如何在与Bob交谈的同时又倾听Suzy。


附录ii 测试
确保你的代码可以运行
众所周知好的代码是可以支行的。
但是,你所做的任何修改都有可能引入新的错误,阻止你的代码正常运行。这就是全面测试如此重要的原因:这意味着你能够在代码部署到生产环境之前,知晓其中的任何问题。在本附录中,我们将讨论JUnit和KotlinTest,你可以使用这两个库进行单元测试,保障代码安全。


附录iii 其他
我们没有涉及的十大内容
除此之外,还有更多需要学习。
尽管我们已经学习了很多知识,然而还是有很多内容未被包含在本书中。 我们认为还有一些知识点是你需要掌握的。忽略这些内容是我们的不对,然而我们真的很想为你呈现一本能够轻松上手的书。在你放下本书之前,还请仔细阅读这些花絮。

包和导入 416
可见性修饰符 418
枚举类 420
密封类 422
嵌套类和内部类 424
对象声明和表达式 426
扩展 429
return、break和continue 430
更多关于函数的知识 432
Kotlin和其他语言的互操作性 434
內容試閱
这不是一本速查字典。本书旨在帮助你学习Kotlin,但它不是Kotlin的百科全书。
【谁适合看本书】
如果以下问题你都回答了是, 那么本书就是为你而写的。
①你有编程经验吗?
②你想要学习Kotlin吗?
③相比于坐在课堂中被动地接受知识,你更愿意在实际中应用你所掌握的技术吗?

【谁可能在阅读本书前需要三思】
如果以下问题你都回答了是, 那么本书可能不适合你:
①你是否仅仅接触过HTML编程,并且没有任何使用其他脚本语言的经验?
(你仅仅使用过HTML标签,并未曾学习过循环,ifelse语句。)
②你是否刚刚开始学习Kotlin,期望本书是一本速查手册?
③你是否拒绝学习新鲜事物?你是否觉得Kotlin的书应面面俱到,尤其是需要包含那些你永远不会使用的晦涩难懂的知识? 你是否期待一本介绍Kotlin的教材?

【我们知道你们在想什么】
这怎么可能是一本严肃的Kotlin教材?
为什么有那么多插图?
我真的能这样学习吗?
我是闻到了比萨的味道吗?

【我们知道你的大脑在想什么】
你的大脑渴望新奇。它总是在搜索、扫描、等待不寻常的事物。它就是这样构建的,并且因此能够帮你保持活力。那么对于你每天都会遇到的常见事物,大脑会怎样做呢?你的大脑会竭尽所能地阻止它们妨碍自己的重要工作记录重要的事情。我们无须担忧这些无聊的东西会占用大脑的存储,它们永远不能通过名为这显然不重要的过滤器。

那么,你的大脑是如何知道什么是重要的呢?假设你有一天徒步旅行,老虎跳到了你的面前你的大脑和身体中会发生什么?
神经元被激活。情绪高涨。化学物质激增。
而你的大脑正是以此来分辨重要性的。
这很重要!请别忘记!

但想象一下,你在家里或者图书馆里。这是一个安全、温暖、没有老虎的地方。你在学习,准备考试,或者试图学习一些工作中常用的高深技术。

大脑试图帮你一个大忙:它想要分配更多的资源给重要的内容 (比如老虎、火灾的危害、你不应该在你的Facebook主页上放那些聚会的照片等),并且尽可能保证不重要的内容不会占用过多的资源。然而告诉大脑 无论这本书多么无聊,无论我现在的情绪是怎样的,请务必帮我记下这些重点并非一件易事。

【Head First系列图书学习准则】
可视化知识。
相较于文字而言,图像更容易被记住,并且可以提高学习效率(能够使记忆和知识迁移效率提高近89%)。图像还能够帮助我们更好地理解知识。相比于将文字放置于页脚或另一页,将文字放在图像中,或者与之相应的图像周围,能够更好地帮助读者解决与内容相关的问题。

在书中使用对话和个性化的方式。
近期的研究发现,如果书中的内容能够以第一人称直接对话的形式,而非过于书面化的描述呈现给学生,学生的成绩能够在课后测试中提升40%。 内容最好以讲述故事的形式表现,而非教科书般地呈现。使用休闲语言,别太严肃。试想一下,你更喜欢一个即兴派对还是一个大学课堂?

让学习知识的人进行更深入的思考。
换言之,除非你经常锻炼你的神经元,否则你的大脑很难记住学习的内容。读者需要被激发,享受学习的过程,并充满好奇,应鼓励他们解决问题、得出结论,进而掌握新的知识。如果想要达到这样的效果,那么你就需要挑战、练习、思考复杂的问题,并参与需要完全调动大脑以及多感官的活动。

持续吸引读者的注意。
我们都有类似经历:我真的很想学习这个知识,但是读完一页之后我就困了。你的大脑喜欢关注那些不寻常的、有意思的、奇怪的、吸睛的以及意料之外的东西。学习一个新的并且困难的知识并不意味着无聊。如果这个知识不无聊,那么你的大脑会学习得更快。

调动读者的情绪。
你能否记住一个内容很大程度上取决于这个内容所表达的情绪。你只会记住你在乎的东西。当你有所感触的时候更容易记得某些内容。前文所提到的情绪指的是惊讶、好奇、有趣以及我对此了如指掌的情绪。这些情绪来源于你解决了一个问题、学会了大家都觉得难的知识,或者是觉得我比学习工程的Bob更擅长这个技术。

【元认知:思考何为思考】
如果你想要更加快速且深入地学习知识,那么你需要了解如何自我集中注意力、如何思考以及如何学习。
我们大多数人在成长过程中并没有理论和系统性地学习过元认知。尽管我们在不断学习,但很少有人告诉我们如何学习。
我们假设你想从本书中获取Kotlin的知识,而且你可能并不想花过多的时间学习。然而如果你想要应用本书中的知识,那么你就得理解本书的内容只有如此你才能记住这些知识。这同样适用于你的其他阅读体验。
激活你大脑思考的诀窍在于将每一个新内容当作重要的东西来看待,否则你的大脑将会由于学习的持续时间过长而失去对新内容的兴趣,导致你无法记住这些新的知识。

想要让大脑觉得Kotlin重要的方法有两种:
一种枯燥乏味并且耗时甚久,另一种高效而迅速。前者即是纯粹的重复,当你不断向大脑灌输同样的内容,那么即使是最无聊的知识,你也能学习并且记住它们当你重复的次数足够多时,你的大脑可能会想:这个看起来并没有那么重要啊,然而他不断重复这件事,也许我该记住这个内容吧。

而另一个快速高效的方法是通过进行不同类型的脑力活动来激发你大脑的活跃度。之前提到的内容就是解决方案的重要组成部分,它们已经被证明是能够有效帮助大脑思考的事情。例如,研究表明将文字描述放在图片中(而不是放在同页的其他诸如题注或正文等位置),可以更有效地帮助你的大脑将图文联系在一起,并且这样可以激活更多的神经元。激活更多的神经元意味着你的大脑更有可能关注,甚至记住这些内容。会话风格的描述更加有助于大家学习知识。这是因为人们通常会坚持到会话结束,这使得大家会格外集中注意力。神奇的是,你的大脑并不需要知道这是你和一本书之间的对话。如果一本书的写作方式正式并且枯燥,那么你的大脑仿佛置身于一个无聊的课堂,周围都是被动出席的听众。而此时,你的大脑就觉得无须保持清醒。
然而图片以及会话形式的描述只是一个开始

【我们是这样做的】
我们使用图片,因为你的大脑更喜欢图片而不是文字。就你的大脑而言,一张图片确实胜过千言万语。当文本和图片一起使用时,我们将文本嵌入到图片中。相较于将文字隐藏于图题或正文的某处,这样做可以提高学习效率。
我们使用冗余,即使用不同的呈现手法和描述方式来表达同样的内容,旨在增加这个内容被大脑的不同部分编码存储的概率。
我们以意想不到的方式来呈现概念和图片,因为你的大脑喜欢新奇的东西。我们将图片和想法以一些情绪化的方式来呈现,因为你的大脑会更加注意情绪化的东西。哪怕只有一点点的幽默、惊讶或是有趣,都有助于记忆。
我们使用了个性化的会话式风格,因为相较于被动聆听,主动参与会话更有助于集中注意力。而这种会话形式在阅读中同样有效。
我们提供了实践活动,因为你的大脑更倾向于在实践中而不是在阅读中学习和记住更多内容。与此同时,我们让练习充满挑战且具有可行性,因为这是大多数人更喜欢的方式。
我们使用了多种学习方式,也许你更喜欢循序渐进,但有些读者更想先了解大局,或是更喜欢通过实例学习。但无论读者的学习偏好如何,内容的多样化表达可以使每个人都获益。
我们同时考虑到了左右脑。这是由于使用的大脑部分越多,你就越能轻松记住想要学习的内容,并且更加专注于当前的学习。当使用大脑的一个部分时,另一个部分就能得到休息,这样有助于长时间内的高效学习。
我们提供了故事和练习,并且它们都描述了不同的观点。这是因为当你强迫自己进行评估与评判时,你通常能够进行更加深入的学习。
在阅读过程中,读者会遇到各种挑战,这些挑战通过练习的方式,或是通过一些稍微复杂的问题给出,这是因为当你进行思考或是实际操作的时候,大脑更容易记住这些知识。这就类似于坚持锻炼与保持好身材之间的关系。当然,我们保证你的工夫花在刀刃上而不是额外花时间理解一个复杂的案例,或是其他一些晦涩的、堆砌术语的文本。
我们在故事、图片和例子中大量使用人物,因为,大脑更加关注人,而非事物。

【重要说明】
这是一本帮助你学习的书,而非速查手册。撰写本书时,我们故意删除了一些可能会对你的学习过程造成障碍的内容。随着内容的深入,我们会省略已经介绍的部分。因此,如果这是你第一次阅读本书,我们建议你按照顺序从头开始。

我们假设你有一定的编程知识。这并不意味着要求你精通编程,而是你要知道基本的诸如变量、循环等概念。与其他Kotlin书籍不同,我们并不要求你有Java编程经验。

我们将在第1章中介绍Kotlin的基本概念,这样当阅读第2章时,你可以立刻动手写一些简单的程序。本书剩余的部分将建立于你的Kotlin知识之上,并且力求在最短的时间里将你从新手转变为大师。

本书区别于其他同类书籍的一个重要特点是我们希望你能够真正从中学到东西。当你读完本书时,我们希望你能够记住书中的知识。大多数的参考书并不将此作为写作目标,然而本书是一本完全关于学习的书籍,因此很多知识点会多次出现。?

在200行代码中寻找两行你需要了解的代码是一个令人沮丧的过程。本书中的代码示例都是以尽可能精简的内容呈现的,这样能够更加简洁清晰地呈现你所需要理解的部分。因此,书中的代码示例可能并非完整,且鲁棒性较差。然而完成这些代码是你读完本书后的作业之一,并且这都是学习经历的一部分。

书中的练习和活动并非附加内容,它们是本书的核心内容之一。其中有一部分是帮助记忆的,有些是帮助理解的,还有一部分是帮助你应用自己所学的知识的。请不要跳过这些练习,你的大脑会感谢你的。

至少本书的内容中不包括这部分的答案。其中一些练习是开放式的问答,另一些是由你来决定答案以及答案的正确性的。部分脑力练习中会给出解题提示。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.