一个程序员的成长的六个阶段

第一阶段
此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。
第二阶段
此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32API函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。
第三阶段
此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是手中有剑,心中无剑
第四阶级
此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行VxD或操作系统的内核的修改。
这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会难呢?这就是因为很多人的思想变不过来。
第五阶级
此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是手中无剑,心中有剑。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是MSWord这样的大型软件,只要有充足的时间,也一定会设计出来。
第六阶级
此阶段也是最高的境界,达到无招胜有招。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是手中无剑,心中也无剑
此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拳拿来就用。这就是真正的大师级的人物。这时,Win 32Linux在你眼里是没有什么差别的。
每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。
要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经过二、三年的积累就能达到第三个阶段。但是,有些人到达第三个阶段后,常常就很难有境界上的突破了。他们这时会产生一种观念,认为软件无非如此,认为自己已无所不能。其实,这时如果遇到大的或难些的软件,他们往往还是无从下手。
现在我们国家大部分程序员都是在第二、三级之间。他们大多都是通过自学成才的,不过这样的程序员一般在软件公司也能独当一面,完成一些软件的模块。
但是,也还有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
梁肇新开发技术总结,值得借鉴 这是我在网上能够找到的最清晰的版本,分享给大家 目录: 第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: 全栈程序员成长历程通常包括以下几个步骤: 1. 基础知识学习:包括计算机基础知识、编程语言基础知识、数据结构和算法等。 2. 实践经验积累:通过完成一些小项目或参与开源项目,积累实际开发经验,提升编程能力。 3. 选择一个关注领域:全栈程序员是指能够涉及前端、后端、数据库、运维等多个领域的程序员,因此可以选择一个感兴趣的领域进行深入学习。 4. 加强软件工程和系统设计能力:包括代码规范、版本控制、测试、自动化部署、性能优化等方面的知识和技能。 5. 不断学习和提升:全栈程序员的技术领域非常广泛,因此要不断学习新技术和理解新范式,提升自己的综合能力。 ### 回答2: 一个全栈程序员成长历程可以分为以下几个阶段。 首先是入门阶段,全栈程序员首先需要学习计算机基础知识,如操作系统、数据结构与算法等。然后学习编程语言,如Python、Java、JavaScript等。掌握基本的编程技能后,可以开始学习前后端开发的基础知识,如HTML、CSS、数据库等。 接下来是深入学习阶段,全栈程序员需要进一步熟悉前后端技术。在前端方面,学习JavaScript框架如Angular、React等,掌握前端开发工具如Webpack、Gulp等。在后端方面,学习服务器端框架如Node.js、Ruby on Rails等,熟悉API设计和数据库管理。此外,全栈程序员还应该学习版本控制工具如Git,以及测试和调试技术。 在实践中不断提升是全栈程序员成长的关键阶段。可以参与开源项目、编写个人项目,提升自己的实战经验。通过解决实际问题,全栈程序员可以加深对各种技术的理解和应用能力。此外,参与技术交流和分享也是很重要的,可以加入技术社区、参加技术会议等,与其他开发者交流和学习。 最后是专业领域的拓展与深化。全栈程序员可以在前端或后端领域进行深耕,成为该领域的专家。同时,学习新的技术和潮流,如大数据、云计算、人工智能等,不断追求技术的创新和发展。 总之,一个全栈程序员成长历程需要从入门到精通的过程。通过不断学习、实践和交流,全栈程序员可以不断提升自己的技术能力,成为能够独立完成整个项目开发的优秀工程师。 ### 回答3: 一个全栈程序员成长历程是一个不断学习和提升的过程。刚开始接触编程时,我选择了一门编程语言作为入门,通常是HTML、CSS和JavaScript。通过学习这些基础知识,我能够开发简单的网页,并了解网页的基本结构以及交互效果的实现。 在掌握了基础知识后,我开始学习后端开发。我选择了一门服务器端语言,比如Java、Python或Ruby,并学会了使用数据库与服务器进行交互。通过这些知识,我可以开发复杂的网站和应用程序,并与数据库进行数据交互。 接下来,我开始学习前端开发的更高级技术。我学习了一些流行的前端框架和工具,比如React和Angular,以提升用户界面的交互性和响应性。同时,我也学习了一些前端设计的基本原则和技巧,以提高网站的用户体验。 在成为一个全面的程序员的过程中,我也逐渐了解到软件工程的重要性。我学会了使用版本控制工具(如Git)来协作开发,使用测试工具来确保我的代码质量,并遵循良好的编程实践和设计模式,以使我的代码更易于理解、维护和扩展。 此外,我也发现不断学习和自我提升是成为一个优秀的全栈程序员的关键。随着技术的迅速发展和变化,我需要不断学习新的编程语言、框架和工具,以跟上行业的最新趋势和需求。同时,我也会参与一些技术社区,与其他程序员交流和分享经验。 总结起来,一个全栈程序员成长历程是一个不断学习、不断提升技能和应用的过程。从基础知识到高级技术,再到软件工程和持续学习,这个过程充满了挑战,但也带来了无限的成就感和职业发展的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值