出处http://www.cnblogs.com/aigongsi/archive/2012/09/13/2682420.html

无意中看到程序员杂志中 关于编程的四个境界,觉得非常有意思,也比较有道理,想想自己也是这么过来的

1 无意识无能力(不知道自己不知道

这个时候是刚开始接触编程到编程有差不多一年左右的时间,大多数这个时候在大学生涯,年少轻狂,激情四射,学习起来超级有干劲,尤其当自己知道一个个编程法则,写出很自己认为很牛逼的程序,研究过高深的算法,做过几个项目,觉得编程很简单。我当初就是这样的,在大学的时候会用 spring,hibernate,tapestry(貌似这个不是很流行),struts做过两个中型项目,学习过设计模式,部署过ejb,看过soa相关的皮毛知识,觉得自己无敌了,都不知道学习什么了,觉得所有框架都会用了,好牛逼啊,不知道自己学习啥子了。

2 有意识无能力(知道自己不知道)

这个阶段应该是编码超过一年,接触过比较大型的项目,在工作中遇到一些自己无法独立解决的问题。会经常请教一些前辈们。对于编程,知其然,不知其所以然。这个时候大概应该参加工作了,因为工作过程中会遇到很多在校园里面无法遇到的技术问题,比如性能,可用性等等。这个时候没有当初的那种轻狂,开始虚心学习,研究事物的本质。我在刚工作3个月时候,才发现自己水平很菜。虽然会用spring,但是无法领会其精髓。以前做的项目都是自己搭建工程的,而公司有一套标准化的开发,测试,打包,构建工具。开始接触越来越多的技术,遇到很多无法独立解决的问题。这个时候感觉自己的成长很快,慢慢开始走上职业程序员之路。

3 有意识有能力(知道自己知道)

经过有意识无能力的阶段,这个时候,由于自己接触的东西已经非常多,职业水平已经达到一个台阶。经历过几千小时的编码生涯,解决过各种棘手的技术问题,对于遇到的大多数问题都知道其发生的原因以及解决方案。在这个阶段里面,已经是一个很有水平的程序员,能够独立解决自己遇到过的所有问题。我在公司的前几年,正好遇到公司的快速发展,公司的技术架构经历了巨大的变化,从单系统架构到分布式架构,从单系统发展到上百系统,日独立PV从几十W发展到接上亿,每天上亿的交易数据。这个阶段自己在 编码技巧,设计模式,消息中间件,分布式系统设计,领域驱动设计,集群,数据库拆分,架构设计 都有很大提升。基本上能够解决遇到所有的问题。

4 无意识有能力(不知道自己知道)

这个阶段就是融会贯通的时候。如果说第三个阶段是能够解决自己遇到的所有问题,这个阶段就是能够解决他人遇到的但是自己还没有碰到的问题。这个阶段就是抽象思维能力不断提高能够达到的境界。如果说第三个阶段能够解决某一个问题。这个阶段能够解决某一类问题。能够把自己在第三阶段遇到的问题抽象化一类问题,例如如何解决一个系统的性能问题。我最近在做ios相关的开发,自己之前从未学习过objective c,但是因为对java底层实现以及设计模式和mvc设计了解,对cocoa 中UIKit设计图看一下就知道大概是如何实现的了。还有就是目前比较火爆的 函数式编程的高阶函数 和 java中的模板模式与 回调机制有点类似。这就是融汇贯通的结果。目前觉得个人能力已经基本在这个阶段。

ps:看到很多吐槽,其实真的木有必要,你在哪个阶段,是现在的你对于自己的认知情况。随着自己的越来越了解,可能阶段也会发生变化。这个阶段本来就比较主观的。其实程序员最关键的是需要思考,就好比,如果你觉得你真的达到第四个阶段,那你后续还需要提升的是什么?程序员限定的范围是什么?程序员的职责是什么,程序员未来的发展是什么?只有不断的思考,才会脱离这个阶段之争。有一些程序员是可以成为项目经理,有一些程序员可以架构师,有一些程序员可以成为科学家,但是他们不一定真的是编码高手,所以不能狭隘的认为程序员就是coder!

程序员能力的四个境界(转)相关推荐

  1. 为什么有的程序员能力一般却能拿到好offer?

    为什么有的程序员能力一般却能拿到好offer?进入职场的一道门槛便是面试,如果想从众多面试者中脱颖而出就必须在面试中掌握一定的面试能力,包括:进取心和热情.沟通能力.核心技能和特长.解决问题的能力.职 ...

  2. 程序员能力矩阵 你属于哪一层?

    程序员能力矩阵 你属于哪一层? 注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识. 计算机科学 Computer Science 软件工程 Software Engin ...

  3. 程序员能力矩阵 Programmer Competency Matrix

    [译文]程序员能力矩阵 Programmer Competency Matrix [译文]程序员能力矩阵 Programmer Competency Matrix 注意:每个层次的知识都是渐增的,位于 ...

  4. python开发工具排名-Python程序员必备的四款开发工具

    原标题:Python程序员必备的四款开发工具 每一位Python程序员都会有套工具来应对开发工作上的挑战.多年来,Python程序员使用开发工具来完成他们的工作.有很多工具对他们是有用的,不过对于初入 ...

  5. 小猿圈Java学习心得之Java程序员能力提升在哪

    对于互联网发展的今天,IT行业慢慢变成大多数年轻人发展的目标,不仅前景好,薪资也是越来越高的,而java是行业中一直都需要的技术之一,也促进了大多数朋友在学习java,但是没有好的方向,今天小猿圈ja ...

  6. python界面开发工具免费_Python程序员必备的四款开发工具

    原标题:Python程序员必备的四款开发工具 Python自学与交流中心QQ群:260308621 大家今晚利用1个小时看python基础视频教程 23-27节 ,自己监督自己.跟着学习哈!一定要做到 ...

  7. [译文]程序员能力矩阵 Programmer Competency Matrix

    [译文]程序员能力矩阵 Programmer Competency Matrix 注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识. 计算机科学 Computer Sc ...

  8. 大厂程序员能力修炼手册,从筑基到化神要多久?

    刚入行: 就是干 入行两年:熟知各种设计模式,信手拈来 入行三年:阅码无数,心中已无设计模式 入行五年:就是干 大家好,我是安酱.今天来跟大家聊聊程序员的能力进阶道路. 相信许多小伙伴都知道,互联网大 ...

  9. 蛋花花谈程序员年过四十该何去何从

    蛋花花谈程序员年过四十该何去何从,据蛋花花了解程序员这个行业可以说是一碗青春饭.蛋花花认为除开年纪大了,技术跟不上,学习能力下降,等等的工作职能方面的问题.还有就是一个自身身体健康的问题. 蛋花花在业 ...

  10. PHP初级程序员能力测试参考答案

    PHP初级程序员能力测试参考答案[闭卷] 注:①本测试满分100分,80分及格,形式为闭卷,不得翻阅任何手册和参考书籍.本试卷使用的PHP版本为5.2.6+,WEB服务器使用APACHE2+,开发平台 ...

最新文章

  1. JavaScript 面向对象 (prototype 原型模式)
  2. MYSQL使用inner join 进行 查询/删除/修改示例
  3. 调查显示开发者最讨厌 PHP,最爱 Python
  4. 再见python你好go语言_再见Shell,你好Python
  5. java 发送qq消息_php发送qq消息
  6. iOS: 讯飞语音的使用
  7. 前端学习(2818):小程序学习之文件建立
  8. RabbitMQ 镜像集群配置_05
  9. 如何解决常见的 Active Directory 复制错误
  10. “运营商不能沦为管道”是一个错误的理论
  11. php 判断来访ip地址是国内还是国外的,验证IP属于国内还是国外的PHP类
  12. PCIe协议学习之-Ack/Nak协议
  13. Arcface训练vgg2face数据集——数据制作
  14. joycon手柄拆解_任天堂switch手柄怎么拆解图文教程 教你如何拆joycon
  15. 清北学堂18年国庆刷题班游记
  16. uplift model的理论与实践
  17. Nvidia Xavier调节风扇转速与开机启动
  18. Conventional-path insert(传统路径插入)
  19. 通过驱动断链来隐藏驱动
  20. 【论文笔记】A comprehensive survey on sentiment analysis: Approaches, challenges and trends(上)

热门文章

  1. python泊松_Poisson Distribution——泊松分布
  2. pdf转word,这个库好用
  3. aplay amixer arecord说明
  4. android webview 之 AgentWeb的使用
  5. fastboot 常用命令
  6. 二叉树非递归遍历方法总结
  7. 不开机win7计算机还原,Win7开机出现Windows错误恢复解决方法
  8. 简单嵌入式系统软件架构
  9. 模糊控制 进化算法 PID参数整定
  10. 三维点云处理技术二:三维点云表征概述