编程高手箴言笔记

刚刚又浪费了很多时间做无聊的事,现在赶紧开始努力!

《编程珠玑》,从图书馆看到过,一直比较喜欢看这种不是很专业的书。做个笔记。

 

最底层开始做起,从最基层学起。

程序艺术家成长过程:1.熟练使用一门语言。2.精通某个平台的接口,如win32api。3.了解某个平台的底层。4.在平台上进行深层次的开发。5.体系结构的设计。其中思想的转变时很重要的!

以机器的思想来考虑问题。我就是程序,程序就是我。

具备开放性思维,对技术不应抱有偏见,掌握任何相关的技术,在到高手的时候会发现其实他们是相通的。

雄心的一半是耐心,玩程序,从开始玩到老去。

心得:他们不过是比我早生二三十年,好在我生的不算太晚,现在的事就是要努力学基础,将这些年发展的技术什么的学会,然后才能做那些创造性的事。

一直以为程序员就是晚睡,就是熬夜,就是青春饭。现在看来不然,要保持正常的生活节奏,12点之前睡觉,早上7点起。这样才能有精神和精力去学习,不是么。

有耐心去积累基础的东西。只有这样在以后才会对整个的结构以及本质有深刻的理解,做到,物我合一!

成对编码的思维:括号成对,分配空间和析构空间成对。

分块的阅读程序。

注释是非常重要的,同样重要的还有程序的设计理念,方法,思路。

不会调试的程序员永远成不了高手!

将一个问题拆开来思考,就是基本的开放性思维。

动态库的思想,编译器产生代码的方法决定了要使用动态库,方便升级。

不存在没有bug的编译器。

程序设计流程:拆出模块。然后进行砍分,注意接口和注释。然后从简单的模块开始一个个实现。

可预测性,从错误判断是哪里产生了错误。需要了解代码从汇编级都做了哪些事情,怎么做的。

外部中断为“中断”,内部中断称为“异常”。

进入保护模式非常重要的不仅是CR0置为1,并且需要修改寄存器的值,否则和实模式没有什么区别。也不会死机。但同样的方法不能用于分页,否则会死机。

//明天继续探索这个“貌似”很神秘的世界!(我很喜欢他这个“貌似”词,体现出了我学计算机前后的心情O(∩_∩)O~)

cpu计算地址的方式在实模式和保护模式中是一样的,只不过看的见的部分被当成了选择子,到描述符表中寻找 看不到的部分,然后再移位形成新地址到内存寻找内容。

作为一个高手,必须要了解计算机的过去现在,这样才能预测将来。历史是个很有意思的东西。

任何程序编译出来都是要和平台有关系,脱离了平台,就没有任何的意义。

引用也是地址(这句话我不太理解),只不过在编译的时候编译器加上一个自动搬移的过程,把相应的值搬过来。引用作参数结束时会

自动搬回去,这个是自动的。

编译器:一个把你的想法变成内存中映射的东西。

连接器的原理是根据符号的不同通过来区别的。(不懂)

事实上:重载是在编译器编译的时候被编译器换名了。(那模板呢?得换多少名字)

C++中所有类成员函数都是不能取地址的,除非是静态函数,(静态函数在实质上还算是成员函数么)

解释程序就是一个字符串的解释器(不懂)

梁肇新开发技术总结,值得借鉴 这是我在网上能够找到的最清晰的版本,分享给大家 目录: 第1章 程序点滴 1 1.1 程序≠软件 1 1.1.1 商业软件门槛的形成 2 1.1.2 认清自己的发展 4 1.2 高手是怎样练成的 5 1.2.1 高手成长的六个阶段 5 1.2.2 初级程序员和高级程序员的区别 7 1.2.3 程序员是吃青春饭的吗 9 1.3 正确的入门方法 11 1.3.1 规范的格式是入门的基础 13 1.3.2 调试的重要性 17 1.4 开放性思维 18 1.4.1 动态库的重要性 19 1.4.2 程序设计流程 20 1.4.3 保证程序可预测性 21 第2章 认识CPU 23 2.1 8位微处理器回顾 23 2.2 16位微处理器 24 2.2.1 组成结构 24 2.2.2 8086寄存器组成 25 2.2.3 内存的寻址 26 2.2.4 中断处理 27 2.3 32位微处理器 29 2.3.1 寄存器组成 29 2.3.2 保护模式 32 2.3.3 80386的寻址方式 32 2.4 【实例】:在DOS实模式下读取4GB内存代码分析 36 2.4.1 程序的意义 37 2.4.2 程序代码 37 2.4.3 程序原理 41 2.4.4 程序中的一些解释 42 第3章 Windows运行机理 44 3.1 内核分析 44 3.1.1 运行机理 44 3.1.2 LE文件的格式 53 3.1.3 VxD的设计实现 59 3.1.4 【实例】:CPU降温程序代码分析 65 3.2 消息的运行方式 82 3.2.1 认识消息 82 3.2.2 Windows系统中消息的运作方式 84 3.2.3 消息处理过程实例 87 3.3 GDI的结构和组成 89 3.3.1 GDI的组成 89 3.3.2 GDI和DirectDraw的关系 91 3.4 线程的机制 93 3.4.1 线程的工作方式 93 3.4.2 线程与GDI的冲突:死机的主要原因 94 3.4.3 线程的内存泄漏的主要原因 96 3.4.4 进程管理 98 3.4.5 同步机制 100 3.5 PE结构分析 103 3.5.1 PE头标 103 3.5.2 表节 113 3.5.3 PE文件引入 119 3.5.4 PE文件引出 125 3.5.5 PE文件资源 129 第4章 编程语言的运行机理 133 4.1 汇编的原理 133 4.1.1 指令系统 133 4.1.2 汇编与Win API的接口方法 141 4.1.3 【实例】:自定义程序的入口点 145 4.2 高级语言的原理 151 4.2.1 C/C++的原理 151 4.2.2 解释语言的原理 165 4.2.3 【实例】:用C实现简单的BASIC语言环境 165 4.3 C、C++的学习方式 187 4.3.1 从BASIC到C 187 4.3.2 C、汇编API的关系 187 4.3.3 接口的建立方法 190 4.4 挂钩技术 201 4.4.1 Windows上C的挂钩 201 4.4.2 C++的挂钩技术 213 第5章 代码的规范和风格 220 5.1 环境的设置 220 5.1.1 集成环境的设置 220 5.1.2 TAB值的设置 221 5.1.3 编译环境的设置 222 5.1.4 设置herosoft.dsm宏 224 5.2 变量定义的规范 227 5.2.1 变量的命名规则 227 5.2.2 变量定义的地方规定 228 5.2.3 变量的对齐规定 229 5.3 代码对齐方式、分块、换行的规范 230 5.4 快速的代码整理方法 232 5.5 注释的规范 233 5.6 头文件的规范 236 5.7 建议采用的一些规则 236 5.8 可灵活运用的一些规则 238 5.9 标准化代码示例 239 5.10 成对编码规则 243 5.10.1 成对编码的实现方法 243 5.10.2 成对编码中的几点问题 248 5.11 正确的成对编码的工程编程方法 251 5.11.1 编码前的工作 252 5.11.2 成对编码的工程方法 255 5.11.3 两个问题的解释 260 第6章 分析方法 266 6.1 分析概要 266 6.1.1 分析案例一:软件硬盘阵列 268 6.1.2 分析案例之二:游戏内存修改工具 274 6.2 接口的提炼 286 6.2.1 分离接口 286 6.2.2 参数分析 287 6.3 主干和分支 290 6.3.1 主干和分支分析举例 291 6.3.2 程序检?? 300 6.4 是否对象化 301 6.5 是否DLL化 307 6.5.1 DLL的建立和调用 307 6.5.2 DLL动态与静态加载的比较
讲述一个程序员成长的六个阶段: 1、能熟练地使用某种语言,这相当于练武中的套路和架式这些表面的东西。 2、精通基于某种平台的接口(如win的API),以及所对应语言的自身的库函数。这也就相当于可以进行真实的散打对练了,可以真实地在实践中做一些应用了。 3、此阶段能深入了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑” 4、此阶段能够直接在平台上进行比较深层次的开发。基本上能达到这个层次可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行VxD或操作系统的内核的修改。这时已经不再有语言的束缚,此时语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。 5、此阶段已经不再局限于简单的技术上面的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段就能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是MS Word这样的大型软件,只要有充足的时间,也一定能够设计出来。 6、最高境界,达到“无招胜有招”。这时候,任何问题都纯粹变成了一个思路问题,不是用什么代码就能表示的。此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁边看别人对战,就能把这拳来用。这个就是大师级别的人物。这时,Win32或Linux在眼里是没有什么区别的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值