Awesome
Crifan的电子书的使用说明
最后更新:20230914
[toc]
源码
crifan/crifan_ebook_readme: Crifan的电子书的使用说明
Crifan电子书的简要说明
关于Crifan的电子书,无需细节只关注重点,则只需看此概览:
- 脑图
- 在线浏览
- 图片
- 文字版
- 技术类
- 非技术
为何要有:Crifan的电子书
我Crifan Li
之前折腾过很多方面的内容,包括技术类的和非技术类的。
关于技术类中又分很多种,其中都放到了我的网站 crifan.com 上的工作和技术,目前已有7000多的技术帖,但多数内容都是零散的某个细节知识点和某个具体问题的解决过程和结果。
当我在某个技术领域有了一定的心得和经验后,就会抽空整理成相对成系统的内容,用(Docbook、Gitbook等)工具去制作出电子书,免费发布出来供别人参考。
目前已经整理出150多本成系列的电子书了,接下来详细介绍:
另:手上还有几十本电子书的内容已基本完成,待之后能抽出时间再尽快整理发布出来。
为何要有:Crifan的电子书的使用说明
我写的电子书涵盖范围面较广,需要专门整理后的分门别类的介绍,才有利于他人快速定位到自己所需要参考的内容。
目前所写电子书的总的概览:
- 内容上:主要分两类
- 一方面:技术类
- 计算机相关的,技术类,开发类
- 另一方面:非技术类
- 生活类的,学习类的,娱乐类等
- 一方面:技术类
- 制作工具上:也分两类
- 一类是(最早)用
Docbook
制作的 - 另一类(后来,现在)是用
Gitbook
制作的- 弄了2份一样的,分别发布到
- 自己的 crifan.com 的网站上
- 和 GitHub Pages 上
gitbook
电子书的源码- 全部源码都已公开放在
github
上了,详见:https://github.com/crifan - 如何利用gitbook的源码去创建自己的电子书,可以参考:https://github.com/crifan/gitbook_template
- 全部源码都已公开放在
- 弄了2份一样的,分别发布到
- 一类是(最早)用
下面详细介绍各个电子书的具体分类和内容简介:
技术类
从大的概念上来说,计算机的技术可以大致分为:
- 上层:纯软件
- 涉及到在PC(Windows/Mac/Linux)上,用各种编辑器/IDE,去编写各种代码,实现各种工具/软件/脚本等内容
- 包括PC桌面端软件,Web领域网页开发,移动端APP开发等等
- 中间:(软硬件结合的)嵌入式
- 涉及到在某某开发板上,写嵌入式代码,驱动硬件工作
- 包括给别人的芯片或开发板,去写某BSP,某个模块(蓝牙,USB,FM,Nand Flash等)的驱动
- 底层:纯硬件
- 涉及PCB Layout,设计和生产开发版
- 涉及到各种芯片的涉及,包括CPU,内存,显示屏等,涉及到流水线,代工厂等等内容
自己主要涉及的领域是:
中间的嵌入式 和 上层的纯软件
技术类通用知识
不论哪方面的技术,都有一些通用的学习方面,逻辑概念,总结如下:
- 关于如何学习和利用网络资料,以及一些技术方面的心得体会和总结:
- 关于如何利用工具和脚本提供工作效率的:
- 关于要有良好的编程习惯和逻辑,才能写出高质量代码:
- 对于不同领域的技术,都有一些通用的概念需要了解,才能更好的开发:
- 以及都有一些通知的基础知识:
- 对于计算机,或者说电脑,各种不同类型系统都有一些通用的基础知识:
推荐的工具或软件
做各种领域的技术开发,甚至非技术方面的工作,都会涉及到一些好用的工具和利器,现整理如下:
科学上网
想要用外网,比如用google等搜索技术资料,可以使用shadowsocks:
编辑器和IDE
关于编辑器和IDE的概览和总结:
好用的编辑器和IDE
之前Windows下觉得最好用的编辑器Notepad++:
现在觉得更好用的、最好用的编辑器(甚至可称之为IDE):VSCode:
Python开发中最专业的IDE:
画图工具软件
涉及到画路程图、结构图、架构图等,可以参考:
去选择合适的画图工具。
文件对比工具
如果需要对比文件、文件夹中的内容,可以参考:
API接口测试
后端人员,移动端开发人员,测试人员等涉及调试api接口时,可以用Postman:
ssh远程连接工具
通过SSH连接远程服务器的工具方面,常用SecureCRT:
代码版本管理
当前最流行的是Git
:
硬件类
折腾嵌入式期间,其实也想去了解硬件方面的知识,只不过没有深入。
只整理了点和硬件相关的皮毛:
之前拆过智能音箱,然后总结了相关各种细节:
且在拆解期间又去整理了芯片和产业链的相关知识:
嵌入式软件
下面是之前折腾的嵌入式开发相关的内容:
嵌入式领域(包括很多硬件反面)都有些通用的基础知识和概念:
关于CPU方面的:
和技术和概念相关的,比如:
开发环境+交叉编译器
在折腾嵌入式相关开发前,往往要先去搭建开发环境,其中就要先去搞懂:交叉编译
先去搞清楚什么是交叉编译:
然后再去了解相关的GNU方面的工具:
然后再去用具体的某个工具,去搭建交叉编译环境(和相关的工具链、rootfs等内容):
关于开发环境的:
在Windows上折腾Linux方面的开发,用Cygiwn:
嵌入式Linux+嵌入式Linux驱动
如果对于嵌入式软件的整体概念不了解,可以去看:
如果想要了解嵌入式软件中关于驱动开发的事情,可以去看:
而关于嵌入式Linux方面的软件和软件中的驱动,可以去看:
关于嵌入式Linux开发期间的,有:
而关于典型的Uboot+Kernel+Rootfs的嵌入式Linux中的Uboot:
其中的最开始的启动代码相关的Start.S的汇编代码,实现了启动硬件的功能。
而关于启动的逻辑的具体分析:
而关于具体的某个模块/功能方面的驱动有:
关于DMA的驱动:
关于无线网卡的驱动:
关于Nand Flash方面的驱动和介绍:
而其中Linux中关于Nand Flash的是MTD层,MTD中关于如何识别Nand Flash和启动过程的解析是:
而关于USB方面的协议介绍和相关驱动开发总结是:
具体模块或领域
PLC
此处暂时把PLC归为嵌入式大类。
关于PLC的知识的总结:
大的方向=嵌入式的不同应用领域
条形码Symbology相关的,各种不同类型的条形码的总结:
- Code 128 Symbology Introduction
- GS1-128条形码和相关的AI及FNC1的详解
- Plessey & MSI Symbology Introduction
- UPC/UPC-A/UPC-E & EAN Barcode Symbology
小方面来说=关于具体的模块/硬件/协议方面
关于蓝牙的:
关于串口/RS232的:
关于音频领域的:
关于MPEG和MP3的知识:
上层软件
对于上层纯软件方面,也有一些总结:
上层软件的通用知识
关于后台开发和设计接口,移动端调用后台接口,测试人员测试接口和网页等相关的:
和HTTP方面的知识:
以及后台人员设计RESTFul的API接口需要了解的:
各种计算机语言通用的的方面的知识总结:
在涉及到前台和后台数据交互,常用数据格式是JSON:
- 旧教程
- 新教程
字符编码
而用不同的编辑器或IDE,以及处理文件相关的内容时,往往会涉及到文件的字符编码,可参考:
而上面的教程内容太多太杂,如果只是想要简单的使用编码方面的知识,可以直接去看:
正则表达式
不同的语言和工具中,都支持用正则表达式去实现复杂的规则去提取想要的数据。可以参考:
- 之前用docbook写的旧教程:
- 后来用gitbook写的新教程
- 应用广泛的超强搜索:正则表达式
- 以及实际的使用案例:
信息安全
需要先对信息安全领域有个总体的了解,可参考我自己边学边整理出的:
然后再去分别了解不同领域内的安全技术:
Web安全
其中侧总基于浏览器的、Web相关的安全是:
其中Web安全包含几个主要方面:
- 渗透测试
- 模糊测试
- 安全(日志)分析
二进制安全
二进制安全,也称PWN
,主要侧重点是操作系统的底层机制:
其中对于Windows系统,就是常说的Windows的漏洞和挖掘等方向。
设备安全
对于设备安全
~=物联网安全
,包含几个子领域=不同侧重点:
- 工控领域
- 汽车领域
移动端安全和逆向
爬取安卓app的数据期间,折腾过如何破解安卓,后整理心得如下:
以及辅助工具:
后来整理出移动端安全和逆向的成套的教程:
- 通用
- 编程语言
- 汇编
- 高级语言
- 静态分析
- 动态调试
- 逆向调试利器:Frida
- 主流调试器:LLDB
- 高级逆向
- 编程语言
- Android安全和逆向
- iOS安全和逆向
- iOS安全
- iOS逆向
- iOS逆向开发
- 系列
- 典型流程
- 涉及领域
- 实例
- 相关
- 开发语言
- 系列
- iOS逆向开发
自动化
把工作自动化的工具
不论是嵌入式还是上层软件,都可以用一些工具,从手动变自动,去提高做事效率,比如Makefile:
自动化测试
对于自动化测试,先看概览以了解有哪些子领域:
然后再去了解不同子领域:
- Web端
- Web领域的自动化测试,也叫Web网页自动化,往往也属于爬虫领域,常用工具有
- Selenium
- Playwright
- puppeteer
- Web领域的自动化测试,也叫Web网页自动化,往往也属于爬虫领域,常用工具有
- 移动端
- 先了解概况
- 再看具体的不同方向的工具
- 通用=跨平台
- Android端
- 安卓端的话,可以用
uiautomator2
- 安卓端的话,可以用
- iOS端
- 关于iOS端的自动化测试,可以考虑用
facebook-wda
:
- 关于iOS端的自动化测试,可以考虑用
PC桌面端软件
在写Windows平台的桌面端软件时,可以使用C#
:
如果想要开发跨平台的桌面端应用,可以考虑选用Electron
:
苹果系统
苹果的Mac
、iOS
等相关开发总结:
网页Web领域开发
关于如何搭建网站,以及如何给网站搬家的话,可以参考:
在数据可视化方面,有很多JS图形库,图标库,其中主流的有:
移动端APP开发
在涉及到移动端开发时,可以参考:
后续整理出了,不同端的开发总结:
- Android
- iOS
爬虫
折腾网络爬虫(和模拟登录)领域的话,可以先去了解宏观逻辑和概念:
再去选择合适的语言去写爬虫,比如目前最适合的是Python:
然后才涉及到基于某语言(Python)去具体选择什么框架(PySpider),以提高爬虫效率:
在爬虫领域内涉及到提取内容时,往往才会涉及到Xpath:
如果想要抓包app时可以用:
另外,之前也写过相关的爬虫方面的资料:
通信领域
在移动通信网络中,总体网络从1G到5G的演化,可以参考:
期间出现了相关技术:
- (RCS底层所依赖的技术)IMS
- RCS
- 概览
- 开发
而最新的5G技术,总体概览如下:
上层软件的其他领域
比如想要开发自己特定领域内的语言的解析器,即实现自己的编译器,可以使用ANTLR:
想要和我一样去制作出复杂的电子书,则可以:
先学习通用的语法格式Markdown:
再去使用相对简单好用的工具GitBook去制作电子书:
- 电子书制作利器:GitBook
- 如果想要更简单易用更省心,可以基于我的Gitbook的模板去制作,生成的效果是Gitbook演示
不过gitbook官网放弃维护,所以换用兼容和集成自Gitbook
的HonKit
:
也可以用更加强大但非常复杂的,技术类书籍专业制作工具Docbook:
在数据库方面,主流的文档数据库有:
不同系统中都会涉及到文件和代码等压缩,可以参考:
如果涉及到音视频的处理,可以用强大的ffmpeg
:
Python语言
折腾折腾Pyton期间,单独整理了一系列的内容,供参考:
- 旧的
- 用于入门级的介绍的:
- 关于整体的Python的心得和总结:
- 关于某个特定的模块的总结:
- BeautifulSoup
- PyQuery
- re模块
- 字符编码
- 网络库
- 操作excel和CSV
- 新的
- 对于新手小白常见的错误和解决方案和引申思考:
- 全新整理的
- 让你人生不苦短的编程语言:Python
- 常用代码段:
- 虚拟环境
我Crifan的技术库
在折腾技术方面,整理出一些,相对通用的库,整理出来,供参考:
目前最新的代码,都放到 crifan的Github上了:
其中关于自己的库函数,各种语言都有:
其中关于C#和Python,分别写了专门的电子书解释如何使用:
非技术类
电脑计算机使用类
和电脑/计算机使用方面的知识,比如有哪些常见的操作系统,以及如何安装软件和驱动等知识的:
以及觉得很多好用的工具和软件,也进行了推荐:
和技术开发有点关系,但是更主要是属于电脑使用方面的,虚拟机:
在Windows
、Mac
等系统中,想要安装另外一个系统,可以用虚拟机软件,比如VMWare
或VirtualBox
:
- 虚拟机教程
- VirtualBox教程
- VMWare
- 旧的
- 新的
工作类
而开始了工作后,需要了解的各种基本概念和常识,包括招聘和应聘,薪资待遇,股票和期权,创业和公司等:
而和别人合作时,往往涉及到文件共享,资料共享,协同编辑等内容,可以使用有道云协作:
而工作后,会遇到具体的某个商业领域相关的知识,比如:
领域相关知识
汽车销售行业内的知识,包括售前和售后、整车厂和经销商。经销商和客户等相关内容:
生活类
和买房前后需要注意哪些事项,具体买房的过程的内容:
以及日常生活期间也有些心得供参考:
针对苏州这个城市,也专门整理了极其详尽的各种资料,尤其是宏观规划,详见:
娱乐类
本人常年打羽毛球,有些心得,整理如下,供喜欢羽毛球运动的参考: