`
rysh0818
  • 浏览: 22078 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

程序员能力的四个境界

 
阅读更多

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

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

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

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

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

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

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

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

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

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

分享到:
评论

相关推荐

    程序员编写程序能力的四种境界

    程序员编写程序能力的四种境界!人类心理学研究中的一个基础支撑科目就是分析人的潜意识和意识。弗洛伊德是最早的一位能够清楚的认定和描述我们的心理活动“领域”的人。在他这著名的一生的早期,他就指出我们的意识...

    java程序员上班那点事

    原名:《Java 程序员要上班!》1 前言8 第一卷生存法则9 第1章知己知彼,百战不殆10 1.1 问题1:这个职业赚钱吗?赚多少钱10 1.1.1 修炼第一层境界:剑指四方,试问天下谁与争锋11 1.1.2 修炼第二层境界:世界如此之...

    Java程序员+上班那点事儿.doc

    1.2.3 程序员的笔试 20 1.2.4 回答这个问题 23 1.3 问题3:跨行业真的这么难吗? 24 1.3.1 跨行业最难的是什么 24 1.3.2 跨行业的入口--原来从事行业的业务知识 24 1.3.3 农民造出了飞机,为什么他还是农民 25 1.3.4...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中...

    凌波微步:软件开发警戒案例集

    真正的编程高手是在千锤百炼之后诞生的,其中的酸甜苦辣均凝结在本书的字里行间,尤为珍贵的是文中的“秘笈”将会是无名小卒脱胎换骨的利刃,希望本书能让程序员体味到一个编程的“天高云淡”的最高境界。...

    如何学好C++语言,如果你准备学,一定要学好,那么我开个书单.

    基础不太好的,可以看Stanley B.Lippman的Essential C++,这本书份量要轻得多,不过四个C++的范型都讲了,而且讲得非常清楚。 第二本应该停止技术层面的东西,静下心来看看Pike和Kernighan的The Practiceof ...

    Shellcoder’s Handbook: Discovering and exploiting Security Holes---中文CHM

    还是那句话,一个程序员做到W.Richard.Stevens那个份上,做到逝世后还能叫全世界的顶级hacker们专门著文怀念,但生前却不曾著文攻击,想想看,那是一种什么样的境界,那是一份什么样的淡然。我们可以大肆讨论技术...

    软件项目管理师大全(大纲+论文格式+经典案例)

    项目管理要突出解决好四个问题 113 项目管理业绩为上 115 项目管理应树立的理念 117 项目管理中问题与对策探讨 118 应用P3E进行IT项目管理初探 120 影响项目的因素及经验总结 129 用项目总结来减少问题的重复发生 ...

    信息系统项目管理师 论文 信息系统项目管理师范文

    项目管理要突出解决好四个问题 113 项目管理业绩为上 115 项目管理应树立的理念 117 项目管理中问题与对策探讨 118 应用P3E进行IT项目管理初探 120 影响项目的因素及经验总结 129 用项目总结来减少问题的重复发生 ...

    JAVA自学之路

    提醒一句,要理解代码思路之后再跟着敲 ,背着敲,千万不要左边摆着别人的程序,右边自己一个一个子母的写,这就不再是程序员了,成了打字员了。 纸上得来终觉浅,所以:别问那么多,别想那么多,动手写吧。 ...

Global site tag (gtag.js) - Google Analytics