让初学者读懂代码的入门书

news2024/12/24 8:10:58

经常有同学问,零基础想要学编程,应该先从哪门编程语言学起。

如果你学习编程是想要从事互联网技术岗位,那么对比众多的编程语言,Java作为目前使用率最高且应用领域最多的编程语言之一,从应用领域、生态及业内使用率上来看,是非常适合零基础学习编程的小伙伴来学习的。

也就是说,学Java,好找工作图片~~

而且,选择Java作为“编程母语”,未来即使有学习其他编程语言的需求,也可以在具备Java语言基础的情况下,很快上手其他编程语言——所谓“进可攻、退可守”“一门通,门门通”。

对于零基础入门的小伙伴来说,看着密密麻麻的代码,不免会产生畏难心理,心想:“这都是些神马?该从何学起?”

其实,对于已经开始编程的小伙伴来说,有时候也经常在阅读源码时感到头大!

编代码、读代码真的有那么难吗?

作为要和代码打交道的人,如果知道它是如何设计的,遵循怎样的底层逻辑,多理解代码的意思,对它足够熟悉,在编程和读源码时就会更加游刃有余!

所以,今天给大家分享一本可以轻松、高效掌握Java语法结构与编程思维的好书——《码解Java:让初学者读懂代码的入门书》!

书中大部分内容以代码的形式呈现,通过代码案例带大家学习Java基础部分的相关知识,并通过详细的代码注释帮大家更容易理解Java代码!

要想不怕代码,就要多见代码;要想见到代码不怕,就要辅以代码注释!

这本书可以说是一本帮大家从开始就爱上代码、爱上编程,让初学者轻松读懂代码的书!

本书特色

书中的内容以“第一人称”形式描述,也就是在本书中,你会有一个角色,从此刻起,你的名字叫作“小肆”,未来你的角色也会不断地出现在本书中,让你的学习更加有代入感。

本书中的内容多数以实操案例为主,关于Java语言的历史及其他相关介绍,如果你感兴趣,可以通过互联网进行了解。

一切脱离实操、脱离代码输出的理论基础相关内容,都是你前期学习的绊脚石,除会占用你更多的精力外,并不会给你的学习带来任何帮助。

很多人在大学里学了四年都没能达到一个入门级别的水平,正是因为学习了太多没有用的所谓基础、理论知识,忽略了实操的重要性。

任何技术的学习都需要通过实操产生结果,给学习者带来正向的交互反馈,只有这样才能引发学习者更浓厚的学习兴趣。就像让你学开车一样,先把车子开走才是有用的,而不是在还没摸到车之前就去研究发动机的组成。

如何正确使用本书

在明确了基本的学习思路之后,就要了解正确的学习方法,作者老邪一直强调的都是“一带三”的学习方法,接下来就具体描述一下这个方法。

所谓“一”指的是,在你接触到一个新知识点的时候一定要先手写一遍,因为任何理解都建立在一定的记忆基础上。前期学习过程中,键盘对于你或许还是一个比较牵扯精力的外设。你在日常的中文打字过程中或许觉得没什么压力,但代码都是英文单词,字母的排列组合与中文区别很大,并且代码中会频繁地使用各种格式符号及运算符。这些都会分散你的注意力。

多数人学习编程都会觉得自己“一学就会,一做就废”,主要原因就是方法不对。

写代码的时候千万不要把屏幕一分为二,把老邪的代码放在一侧,自己的代码放在另一侧,然后照着代码去敲,这样的做法根本就不是在写代码,而是在练打字。这就好像给你一篇英文文章,让你用打字软件去输入一遍一样。所以在你使用键盘写代码的时候,屏幕上一定不要出现第二份代码,此时,记忆和理解就变得非常重要。学习的过程原本就是先输入,再输出,你看老邪写了一遍,这就是输入的过程,通过书中的讲解先去记忆和理解一遍,然后落实在笔上,因为手写是你这十几二十年里最熟悉的一种输出方式,你不用考虑某个字母或字符在键盘上的哪个位置,这样你就可以更专注于代码的结构和逻辑。

当你手写过一遍之后,对这段代码就有了第二次的理解和记忆。

另外,物理层面的表现力是经常被我们所忽视的。日常我们使用计算机,经常会因为想不起来某个文件被存放在哪里而困扰。相信你也有过这样的情况。这就是电子产品的劣势,虽然它能更快地帮我们完成某些工作。但是却不会给我们留下更深刻的印象。

而物理层面的表现力就不同了。你试着回想一下你最近一次拿笔写东西的场景,如果你的记忆力不是很差,我相信你会回想起你是在哪儿写的,写的是什么,你是站着写的还是坐着写的,你还会想起你是使用铅笔、钢笔还是圆珠笔写的,你是写在了纸上还是本子上,你甚至还能想起,你是写在了左上角还是右下角,这就是物理层面的表现力。

现在很多人总是一味地追求效率,要快!但是老邪告诉你,学习编程、学习任何技术都一样,最好的捷径就是不走捷径。你要明确你的目的是要学会,学得扎实,而不是学得快,忘得快。所以,在前期学习的过程中,准备一支笔和一个本。用这么长的篇幅来说明这个“一”,足以证明它的重要程度。

所谓“三”,指的就是用计算机去实操输入三遍,“三遍”不是一个准确的数字,仅仅是一个基础数字。但是这三遍也是有讲究的,我们具体地说明一下。

上机输入的第一遍,你可以凭借着之前手写的记忆来完成,最终达到可以成功编译并运行的效果,这样你就又加深了一遍记忆。

这时不要急于把代码删掉,因为你还有一个任务,就是把每一行代码都添加上注释(注释就是代码中用来解释代码的文字,不参与源码的编译,只用来给开发者解读程序含义,Java中单行注释使用“//注释内容”的形式,多行注释使用“/注释内容/”的形式,后面会具体提到),这就相当于你对程序又多了一次理解。此时可以删掉所有代码。

注意,保留刚刚添加的注释内容,第二遍输入的时候,就有了许多中文注释在屏幕上。此时,你的任务就是将所有中文注释都翻译成代码,这就容易多了,目的还是让你对程序再熟悉一遍。这次写完之后,再正常地编译运行并得到运行结果,此时就可以删除所有内容了。在空白的源码文件中再写一次,如果这一次你可以写出来,就说明你对这个程序案例已经理解并且记住了。当然,如果发现还是不行,那么就借助之前手写的那一遍代码来填充代码中不完整的位置。

什么时候能独立完成当前的这个案例,就说明这个部分可以跳过,继续往下学习了。

所以三次只是一个基础数字,如果不行,那么可能还需要第四次、第五次……总之,要记住并且理解,再继续学习,避免学习中的疑惑越来越多。

本书结构

第1章:Java开发环境的搭建及完成属于你的第一个Java程序。

第2章、第3章:介绍程序代码中最基本的操作单元——常量、变量及运算符的使用。程序 = 数据结构 + 算法。无论是数据结构还是算法,都离不开最基本的常量、变量及运算符。所以,在这里我们要先做好铺垫。

第4章至第6章:介绍Java中的流程控制,其中包括if、switch、while、do while、for 等语法。流程控制也是所有编程语言中都涵盖的部分。无论是面向过程,还是面向对象的编程语言中都包含这部分内容。这也是基础部分中的重点内容,一定要掌握好。

第7章:介绍数组的使用,这是Java中的相比于基本数据类型更为复杂的一种数据类型。数组在Java开发中使用得并不是很多,但是并不代表它不重要,后续我们可能更多使用集合来取代数组。但是我们要知道集合的底层实现也使用了数组这部分知识,所以我们有必要很好地掌握数组。而且在其他面向过程的编程语言中,数组的使用频率是非常高的,比如我们熟悉的C语言。在实现各种复杂的数据结构和算法的过程中,都有数组的参与。

第8章:介绍Java中的方法(也可以称之为“函数”),通过这部分的学习,我们可以将代码进行模块化的拆分,也可以更好地实现代码的复用。

第9章至第13章:介绍Java的面向对象,包括封装、继承、多态、接口、内部类等相关知识点,这部分内容也是Java语言的精髓所在。

第14章至第24章:介绍Java中的Lambda、Stream流,以及常用API的使用,包括字符串、日期操作、文件、集合、多线程、I/O流、异常、反射等,这部分内容建议读者按照章节顺序依次学习。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

限时五折优惠,快快扫码抢购吧!

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

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

相关文章

【016】C++预处理详解(内存分区、变量的存储、头文件、宏等)

C内存分区和变量存储 引言一、内存分区二、变量的存储2.1、普通局部变量2.2、普通全局变量2.3、静态局部变量2.4、静态全局变量 三、全局函数和静态函数3.1、全局函数3.2、静态函数(static修饰的函数) 四、头文件包含五、#define宏5.1、不带参数的宏5.2、…

chatgpt赋能python:Python中的不确定尾数问题

Python中的不确定尾数问题 Python作为一种高级编程语言,被广泛应用于数据科学、机器学习、Web开发等众多领域。然而,Python在处理浮点数时会出现一些不确定尾数的问题,给程序员和数据分析员带来不少麻烦。本篇文章将介绍Python中不确定尾数的…

抖音seo开源源码,抖音优化系统定制方案

抖音作为目前最火热的短视频平台之一,其在移动互联网领域的影响越来越大。然而,一款成功的产品未必仅仅靠着其自身的功能和品质就能获得市场的认可,还需要通过优化SEO来实现更好的曝光率。下面,本文将介绍如何优化抖音SEO源码开发…

16个好用到爆的Python实用技巧!

Python 是一门用途广泛的编程语言,它具有大量的库和框架。有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松,编写代码更高效。 本文将探讨一些鲜为人知的 Python 技巧,这些技巧非常有用,但并不广为人知。…

领域驱动模型VO,BO,PO,DO,DTO概念介绍和区别

先来一张图,有一个直观地感受: 概念介绍 VO(View Object)视图对象 用于展示层(和控制层Controller共同属于表现层),它的作用是把某个指定页面(或组件)的所有数据封装起来…

机器学习算法

机器学习擅长的任务: ● 回归(regression) ● 分类(classification) ● 聚类(clustering) 1.回归(regression) 回归是处理连续数据时使用的方法,如时间序列数据。 …

vue使用obs华为云上传图片或者视频

可惜只支持web和h5 api链接 引入,位置自己放,我放了两个其实一个就可以 import ObsClient from "./../common/esdk-obs-browserjs-without-polyfill.3.23.5.min.js";使用 Bucket桶名;Key可以理解为参数;SourceFile文…

香豆素荧光标记652966-03-5,ATTO425 acid,ATTO 425 羧酸,进行简析说明

中文名称:ATTO 425 羧酸 英文名称:ATTO425 COOH,ATTO-425 carboxylic acid 规格标准:10mg,25mg,50mg CAS:652966-03-5 分子式:C22H27NO6 分子量:401.46结构式&#xff1a…

90.qt qml-Table表格组件(支持表头表尾固定/自定义颜色/自定义操作按钮/插入排序)

众所周知,qml table在目前版本还很废,qt5的table完全就没法用,在之前章节就写过: 88.qt qml-TableView学习(一)_诺谦的博客-CSDN博客 所以本章便参考VUE-Element的Table外观组件实现一个可排序可操作的Table组件. 1.组件介绍 GIF如下所示: 排序支持数字和字符串排序。 …

Mysql5.7.41windows安装

Mysql5.7.41windows安装 Mysql5.7.41windows安装Mysql5.7.41官方下载mysql安装 配置PATH路径,任意位置打开cmd都可以连接Mysql环境验证,并登录友情链接 Mysql5.7.41windows安装 本文主要完成windows从下载到安装的安装文档撰写。 Mysql5.7.41官方下载 …

html实现会拐弯的时间线,jquery实现会拐弯的时间线,css实现会拐弯的时间线

前言 jquery html css实现一个会拐弯的时间线 基于此网址整改,参考:https://www.jq22.com/webqd5873 效果 实现 基于jQuery,需要引入jQuery.js,没有必要使用太高版本,够用就行 jquery下载:https://www…

SadTalker 学习笔记

SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation 摘要 Generating talking head videos through a face image and a piece ofspeech audio still contains many challenges. i.e., unnatural head mo…

前端页面调用EXE应用程序

文章目录 1️⃣ 操作步骤1.1 操作注册表1.1.1 创建 xcLeigh.reg 注册表文件1.1.2 安装 xcLeigh.reg 注册表文件1.1.3 放入EXE文件 1.2 界面代码1.3 运行效果 优质资源分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details…

大专毕业,从6个月开发转入测试岗位的一些感悟 —— 写在测试岗位3年之际

时光飞逝,我从前端开发岗位转入测试岗位已经三年了,这期间从迷茫到熟悉,到强化,到熟练,到总结,感受还是很深的! 三年前的某一个晚上,我正准备下班回家,我们的项目经理把…

嵌入式Linux中的 gpio、gpiod基本分析

GPIO 应该是每个嵌入式设备都避免不了的。最近在做项目的时候,也遇到这方面的问题,所以简单总结一下。 现在内核里面多了 gpiod 的来控制 gpio 口,相对于原来的形式,使用 gpiod 的好处是我们申请后不进行 free 也没有什么问题。但…

Seata分布式事务AT、TCC、SAGA、XA模式

Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。 AT模式 🍮实现原理 阿里SEATA独有模式,通过生成反向SQ…

STM32读取24位模数转换(24bit ADC)芯片ADS1231数据

STM32读取24位模数转换(24bit ADC)芯片ADS1231数据 ADS1231是一款TI公司出品的24位ADC芯片,常用于与称重传感器配合实现体重计的应用。这里介绍STM32读取ADS1231的电路和代码实现。ADS1231的特点为通过硬件管脚可控制两种采样速率&#xff0…

日期与字符串相互转化(自定义日期工具类总结,Hutool工具类使用)

一、将日期格式化成字符串输出(Date转String) Java旧的时间API饱受诟病,Java8以后提供了新的时间API,在java.time包下。 //获取当前时间LocalDateTime dateLocalDateTime.now();//创建日期时间对象格式化器,日期格式类…

Hadoop学习---11、HA高可用

1、Hadoop HA高可用 1.1 HA概述 1、所谓HA(High Availablity),即高可用(7 * 24小时不中断服务)。 2、实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。 …

数字化转型,低代码开发真的靠谱?

关于数字化转型,有这么一种定义,即利用数字化技术和能力来驱动企业商业模式创新和商业生态系统重构的一种途径与方法。通俗点说,数字化的核心和目的就是通过数字化技术,实现业务的转型、创新和增长,提供新的营收点与价…