我之前折腾过很多方面的内容,包括技术类的,非技术类的。
关于技术类中又分很多种,其中都放到了我的网站 crifan.com 上,目前已有7000+的技术帖子,但多数都是零散的某个细节的知识点。
当我在某个技术领域有了一定的心得和经验后,就会抽空整理成相对成系统的内容,用(Docbook
、Gitbook
等)工具去变成电子书,方便别人参考。
对于这些电子书,之前虽然已经分类列出来了,但是缺少了基本的介绍,所以对于很多人来说,不方便快速找到自己所需要看哪些。
现在加上必要的简介,重新整理如下:
目前所写电子书:
- 内容上:主要分两类
- 一方面是计算机方面的相关的,技术相关的
- 另一方面属于非技术,比如生活类的,学习类的
- 制作工具上:也分两类
- 一类是用
Docbook
制作的 - 另一类是用
Gitbook
制作的- 弄了2份一样的,分别放在了
- 自己的 crifan.com 的网站上
- 和 https://crifan.github.io 上
- 弄了2份一样的,分别放在了
- 一类是用
下面就来详细介绍一下,都有哪些方面的电子书,以及大概的内容分类如何,便于每人找到自己想要的内容:
计算机的技术,从大的概念上,可以大致分为:
- 上层:纯软件
- 涉及到在PC(Windows/Mac/Linux)上,用各种编辑器/IDE,去编写各种代码,实现各种工具/软件/脚本等内容
- 包括PC桌面端软件,Web领域网页开发,移动端APP开发等等
- 中间:(软硬件结合的)嵌入式
- 涉及到在某某开发板上,写嵌入式代码,驱动硬件工作
- 包括给别人的芯片或开发板,去写某BSP,某个模块(蓝牙,USB,FM,Nand Flash等)的驱动
- 底层:纯硬件
- 涉及PCB Layout,设计和生产开发版
- 涉及到各种芯片的涉及,包括CPU,内存,显示屏等,涉及到流水线,代工厂等等内容
此处目前折腾的领域主要是:
中间的嵌入式 和 上层的纯软件
不论哪方面的技术,都有一些通用的学习方面,逻辑概念,总结如下:
- 关于如何利用工具和脚本提供工作效率的:
- 关于要有良好的编程习惯和逻辑,才能写出高质量代码:
- 对于不同领域的技术,都有一些通用的概念需要了解,才能更好的开发:
- 以及都有一些通知的基础知识:
- 想要能用google搜索技术资料,可以使用shadowsocks:
折腾技术或非技术期间,会用到很多软件和工具,此处把觉得不错的,整理出来,推荐之:
折腾嵌入式期间,其实也想去了解硬件方面的知识,只不过没有深入。
只整理了点和硬件相关的皮毛:
下面是之前折腾的嵌入式开发相关的内容:
嵌入式领域内有些通用的,基本知识:
关于CPU方面的:
和技术和概念相关的,比如:
在折腾嵌入式相关开发前,往往要先去搭建开发环境,其中就要先去搞懂:交叉编译
先去搞清楚什么是交叉编译:
然后再去了解相关的GNU方面的工具:
然后再去用具体的某个工具,去搭建交叉编译环境(和相关的工具链、rootfs等内容):
关于开发环境的:
在Windows上折腾Linux方面的开发,用Cygiwn:
如果对于嵌入式软件的整体概念不了解,可以去看:
如果想要了解嵌入式软件中关于驱动开发的事情,可以去看:
而关于嵌入式Linux方面的软件和软件中的驱动,可以去看:
关于嵌入式Linux开发期间的,有:
而关于典型的Uboot+Kernel+Rootfs的嵌入式Linux中的Uboot:
其中的最开始的启动代码相关的Start.S的汇编代码,实现了启动硬件的功能。
而关于启动的逻辑的具体分析:
而关于具体的某个模块/功能方面的驱动有:
关于DMA的驱动:
关于无线网卡的驱动:
关于Nand Flash方面的驱动和介绍:
而其中Linux中关于Nand Flash的是MTD层,MTD中关于如何识别Nand Flash和启动过程的解析是:
而关于USB方面的协议介绍和相关驱动开发总结是:
条形码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接口需要了解的:
以及后台人员开发调试接口时,移动端调用接口时,测试人员测试接口时,可以用到的Postman工具:
各种计算机语言通用的的方面的知识总结:
在涉及到前台和后台数据交互,往往都是用JSON:
不同的语言和工具中,都支持用正则表达式去实现复杂的规则去提取想要的数据:
而用不同的编辑器或IDE,以及处理文件相关的内容时,往往会涉及到文件的字符编码,可参考:
而上面的教程内容太多太杂,如果只是想要简单的使用编码方面的知识,可以直接去看:
在写Windows平台的桌面端软件时,可以使用C#:
在涉及到Web网页自动化测试,写爬虫等,会涉及到Selenium:
而在Web和上层领域内,对于html类的内容提取常会涉及到Xpath:
关于如何搭建网站,以及如何给网站搬家的话,可以参考:
在涉及到移动端开发时,可以参考:
比如想要开发自己特定领域内的语言的解析器,即实现自己的编译器,可以使用ANTLR:
想要和我一样,制作出复杂的电子书,可以用相关的工具,比如:
折腾网络爬虫(和模拟登录)领域的话,可以参考:
- 去了解整个的逻辑和相关的技术:
- 用Python去实现爬虫:
折腾折腾Pyton期间,单独整理了一系列的内容,供参考:
用于入门级的介绍的:
关于整体的Python的心得和总结:
关于某个特定的模块的总结:
在折腾技术方面,整理出一些,相对通用的库,整理出来,供参考:
目前最新的代码,都放到 crifan的Github上了:
其中关于自己的库函数,各种语言都有:
https://github.com/crifan/crifanLib
其中关于C#和Python,分别写了专门的电子书解释如何使用:
和电脑/计算机使用方面的知识,比如有哪些常见的操作系统,以及如何安装软件和驱动等知识的:
以及觉得很多好用的工具和软件,也进行了推荐:
和技术开发有点关系,但是更主要是属于电脑使用方面的,虚拟机:
在Windows/Mac中,按照Mac或Windows的系统,而用到的工具,比如VMWare或VirtualBox:
而开始了工作后,需要了解的各种基本概念和常识,包括招聘和应聘,薪资待遇,股票和期权,创业和公司等:
而和别人合作时,往往涉及到文件共享,资料共享,协同编辑等内容,可以使用有道云协作:
而工作后,会遇到具体的某个商业领域相关的知识,比如:
和汽车销售行业,售前和售后,整车厂和经销商,经销商和客户等相关内容:
和买房前后需要注意哪些事项,具体买房的过程的内容: