编程中的疑难杂症

在学习编程和写代码的过程中,应该都或多或少会遇到以下困惑。这些问题和知识点对菜鸟来说真是苦不堪言,然而书上总是一笔带过,或者讲得不清晰易懂,大部分问题还是得网络上到处搜索相关的资料。

虽然不搞清楚这些东西,还是可以继续完成软件需求,但总感觉飘在云端,很不踏实。

现在把他们列举出来。以后有时间就写一部分。逐个击破。

    1. 字符集,字符编码,乱码
    2. 数据类型在内存中的结构
    3. 大端(BigEndian)与小端(LittleEndian
    4. 变量/函数的声明、定义、初始化
    5. c指针的理解,汇编角度
    6. const static restrict 变量修饰符
    7. const指针与指向const变量的指针 函数指针
    8. 内存溢出、空指针,变量的类型转换
    9. include extern c作用域 头文件和.c源文件
    10. 动态链接库,静态链接库
    11. 程序的编译运行过程,gcc命令
    12. Makefile文件
    1. c/c++的宏与typedef
    2. 内核空间与用户空间,系统调用与系统接口、APIPOSIXXSI
    3. 进程与线程
    4. shell运行程序的原理,execfork
    5. 进程在内存空间的上下文结构,堆和栈
    6. 环境变量
    7. 流、文件、缓冲区、IO、标准输入、标准输出
    8. 流的冲洗、字符回显、流阻塞与非阻塞
    9. 重定向、管道
    10. 脚本文件运行原理
    11. linux文件系统的模型,目录、文件、文件表、i节点
    12. linux的文件权限和进程权限机制
    13. UNIXLinux 各版本以及关系
    14. UNIXLinux的约定俗成的惯例和设计方法
    15. GNU项目以及GNUBSDMIT开源许可
    16. 面向连接与非连接,数据报和流
    17. 阻塞与非阻塞
    18. 信号的重入
    19. 异步与同步
    20. 正则表达式
    21. Git版本控制
    22. 网络数据中的段、包、帧
    23. 网络各层次常见的协议
    24. 代理与反代理,,洋葱路由
    25. JAVA jvm jrejdk
    26. 解释型语言和编译型语言,半解释型语言,动态语言与静态语言,脚本语言
    27. 函数式语言、面向过程语言、面向对象语言
    28. 跨平台、跨系统、跨架构
    29. CPU指令集,系统位宽、寻址宽度,总线宽度、寄存器

你可能感兴趣的:(编程中的疑难杂症)