精华内容
下载资源
问答
  • Java程序员分类

    千次阅读 2014-03-22 00:47:35
    最近看了一本清华大学出版的关于java虚拟机的书,看到其中对java程序员分类,感觉挺不错,所以分享给大家。 Java程序员的6个级别:   一、第一个级别——普通java程序员 掌握内容: 1) Java开发环境 JDK、JVM...

    最近看了一本清华大学出版的关于java虚拟机的书,看到其中对java程序员的分类,感觉挺不错,所以分享给大家。


    Java程序员的6个级别:

     

    一、第一个级别——普通java程序员

    掌握内容:

    1)  Java开发环境

    JDK、JVM、Eclipse、Linux。

    2)  Java 开发入门:Java开发环境的安装与使用,包括JDK命令、Eclipse IDE、Linux下Java程序的开发与部署等

    3)  Java语法基础:基于JDK和Eclipse环境,进行java核心功能开发,掌握Java面向对象的语法构成,包括类、抽象类、接口、最终类、静态类、匿名类、内部类、异常的编写。

    4)  Java核心编程:包括Java两大核心功能——JAVA输入/输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML和属性文件

    5)  Java图形编程:包括Sun的GUI库AWT(Java2D、JavaSound、JMF)和Swing、IBM和GUI库SWT和Jface;

    6)  Java网络编程:Applet组建编程、Socket编程、NIO非阻塞Socket编程、RMI和CORBA分布式开发

    7)  高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入

     

    二、第二个级别——JavaEE初级软件工程师

    掌握内容:

    1)  JSF框架开发技术

    配置文件(页面导航、后台Bean)、JSF组件库(JSF EL 语言、HTML标签、事件处理)、JSF核心库(格式转换、输入验证、国际化)

    2)  JavaWeb核心开发技术

    开发环境(Eclipse、Linux)

    三大组件(JSP、JavaBean、Servlet)

    扩展技术(EL、JSTL、Taglib)

    网页开发技术(SQL、MySQL、Oracle、SQLServer、JDBC)

    3)  Web服务器

    常用的服务器有:Tomcat、Jetty、Resin和JbossWeb

     

    三、第三个级别——JavaEE中级软件工程师

    掌握内容:

    1)  Struts1表现层框架

    入门配置、核心组件、标签库、国际化、数据校验、数据库开发、Sitemesh集成、集成Hibernate/iBATIS

    2)  Struts2表现层框架

    入门配置、核心组件、标签库、国际化、数据校验、Sitemesh集成转换器、拦截器、集成Hibernate/iBATIS

    3)  Spring业务层框架

    入门配置、IoC容器、MVC、标签库、国际化、数据校验、数据库开发

    4)  Hibernate持久层框架

    MySQL、Oracle、SQLServer

    5)  iBATIS持久层框架

    MySQL、Oracle、SQLServer

    6)  Web服务器

    Tomcat、Jetty、Resin、JBossWeb

     

    四、第四个级别——Java高级软件工程师

    掌握内容:

    1)  JavaWeb开源技术与框架

    2)  JavaWeb分布式开发技术

    3)  JTA(Java事务管理)

    4)  JAAS(Java验证和授权服务)

    5)  JNDI(Java命名和目录服务)

    6)  JavaMail(Java邮件服务)

    7)  JMS(Java信息服务)、WebService

    8)  JCA(Java连接体系)、JMS(Java管理体系)

    9)  应用服务器(JbossAS、WebLogic、WebSphere)

     

    五、第五个级别——JavaEE系统架构师

    掌握内容:

    1)  面向云端架构(COA)

    COA、SaaS、网络计算、集群计算、分布式计算、云计算

    2)  面向资源架构(ROA)

    ROA、RESI

    3)  面向Web服务架构(SOA)

    WebService、SOA、SCA、ESB、OSGI、EAI

    4)  Java设计模式

    5)  Java与UML建模

     

    六、第六个级别——CTO首席技术官

    掌握内容:

    1)  发展战略

    2)  技术总监

    3)  团队提升

    4)  团队建设

    5)  项目管理

    6)  产品管理


    个人感觉这个分类只是一些大牛们根据经验划分的而已,没有什么对错,仅供参考。其实很多技术的掌握并没有什么严格的界限,而且随着java的发展,有些技术可能会被淘汰、替换,这里概括的技术今后不一定还能用上。但是还是要分享出来,因为它概括了Java的体系、以及大概的学习流程,而这对于像我一样不知从何着手学习Java的人,无疑具有指导作用。

    展开全文
  • notes-milewski-ctfp-hs:来自Bartosz Milewski的《程序员分类理论》中的注释(识字的Haskell)
  • 程序员分类(转)

    2015-07-28 17:33:15
    在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist ...

    在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商需要的更高。

      在著名的“Coding Horror”上出现了这样一篇文章,我把其转到这里(我并没有完全一模一样的翻译,我只不过是用自己的话转述罢了),也让大家看看国外人的思考方式(当然,这篇文章只是分析程序员的级别而不是工种)。正如其作者结尾时所说,这八个级别并不是很严格的,其只不过是一种想法,希望能给大家另一种思路。

      第八级 不朽的程序员

      这一级别是程序员的最高级别。你的代码比你的生命活的还长,当你死后,你将会成为整个历史的一部分。其它程序员对你顶礼膜拜,或许你会获得计算机最高奖“图灵奖”,不然就是一系列极其影响力的论文,再不然,就是发明了一些可以影影响整个编程界根基的技术。你拥有的不仅仅是在维基百科上的一个词条,还会有一个专门的网站来研究你的生平和你的工作成果。

      比如:Dijkstra, Knuth(编程艺术的作者), Kay

      第七级 成功的程序员

      这类程序员一方面很著名,另一方面在商业上也很成功,他们影响了整个工业界。他们似乎决定了工业界中发展的方向,这些人,自己的编程能力固然了得,但估计他们的Business方面的能力应该大于他们编程的能力。(我个人认为Linus应该属于这一类)

      比如: Gates(比尔盖茨), Carmack(Doom和Quake 3D游戏), DHH (Ruby on Rail的创建者)

      第六级 著名程序员

      这一类的程序员,在编程圈子内比较有名气,但是他们的这种名气并不一定能给他们带来某种利益。名气是一件好事,但是成功可能更好一些,这类人一般正在给一个很著名的大的公司,或是是一极具影响力的小公司里工作,或者正在创建自己的事业。无论怎么样,其它的程序员听说过你的名字,并以你为榜样在效仿着你。

      第五级 骨干程序员

      这类程序员一般来说都是公司里的骨干份子,他们担任着公司内最重要的编程角色,在公司内部,他们受到老板和其它程序员的尊敬,他们不会失业,因为他们随时都可以很容易地找到工作。他们工作过的公司都会因为他们而有所发展。

      第四级 一般的程序员

      这类程序员的优点在于,他们很清楚地意识到了自己可能这一辈了也无法成为一个伟大的程序员。天才只是很少的一部分人。如果这类程序员有一些商业和人员管理能力,他们也会在公司里相当的成功。“认识自我”并不简单,这并不是一般人能做到的,能够认识自己的人已经是很不错了,找到自己的长处,并像那个方向努力,一定也会很成功的。因为在公司里,并不只有程序员一种职位,经理,PM,流程,SQA,技术支持,售前,管理员,测试人员等等都可能会让这类程序员有更为广阔的天空。

      第三级 业余的程序员

      这类人员不管是不是计算机科班出身,基础如何,他们对编程有着特殊的爱好,他们可能会是一些很有前途的学生或实习生,也许他们可能会给开源做一些贡献(比如说提供一些语言包或是一些插件什么的),有时候,他们也会写两个小工具软件放在网上让人下载,也行有些时候就是为了玩玩而开发一些小程序而打发一下他们空闲的时间。他们完全是靠热情和承诺来编程。兴趣永远是最好的老师,也是最好的一件事,因为兴趣而引发的热情通常会让这些程序员成为“骨干程序员”。

      第二级 不知名的程序员

      这一级的程序员是典型的为大众所知的程序员,他们有一定的编程能力,但并不出众,也许他们会在一家大公司里工作,只程序员只不过是他们的工作而已,并不是他们人生的全部。当然,这样的程序员也挺好的。必竟,平凡地人还是大多数,平凡地活着也没有什么错的。

      第一级 糟糕的程序员

      这类程序员不知道为什么就走上了编程这条路,他们甚至连最基本的编程经验和能力都没有。所有被他们碰过的事情都需要他们的同事重头再返工一遍,他们根本不就是程序员。程序员这个职位对于他们可能就是一个错误。

      正如原文作者所说,“这些级别并不是很严肃的,也并不是每个程序都会去思考一下自己的未来,但是这些级别可能会让你去想一想从事程序员十年/二十年/三十年后,自己可能变成什么样。”

    展开全文
  • 1 卖力工作的程序员  手脚勤快,编写代码边思考。作为一个满怀激情、天生的程序员,他们会在心里一有想法就马上开始编写代码。他们不会退后一步先做些思考。因此,虽然卖力工作的程序员有着非常好的技术能力,但是...

    在这个数据的世界里,充斥着各种各样的程序员。在我大程序员帝国中,你是哪一种?


    一 代码猴子 

       软件工厂里面居住着许多不能适应社会的仁,我们把他们叫做代码猴子。

    1 卖力工作的程序员

        手脚勤快,编写代码边思考。作为一个满怀激情、天生的程序员,他们会在心里一有想法就马上开始编写代码。他们不会退后一步先做些思考。因此,虽然卖力工作的程序员有着非常好的技术能力,但是他们所编写的代码从来没有显示出他们真正的能力。

       卖力的程序员常常会因为时髦而去试着使用新的功能或语言习惯。他们这种尝试新东西的渴望,意味着他们甚至会在不恰当的情况下应用技术。

    优点

        就代码数量而言,卖力工作的程序员们费城多产。他们会编写大量的代码。他们学习新东西,而且对编程抱有特别的热情——甚至会激情万丈。卖力工作的程序员们热爱他们的工作,并且发自内心的希望写出优秀的代码。

    缺点

        由于过于热情,卖力工作的程序员特别性急,而在急着打开代码编辑器之前不先进行一番思考。他确实编写了大量的代码,但是因为写得太快nzhexie代码都有缺陷——卖力工作的程序员会在调试上花费大量的时间。事前进行一些思考就可以避免许多愚蠢的错误,以及在消除粗心的缺陷上所花费的大量时间。

        不幸的是,卖力工作的程序员是个糟糕的调试者。就像急着开始编码一样,他们也会急着进行调试。他们不会有条不紊的工作,所以他们会花费大量的时间在黑暗中寻找缺陷。

        他们在时间估计这方面也很差劲。当事情进展得比较顺利时,他们会做出合理的情况估计,但是却从来不能按照计划进行。他们所用的时间总是会比预期的长。

    如果你是其中一员该怎么办

        不要丢掉你的热情——这是程序员最后的特点之一。因为你的乐趣在看程序正常运行,在于站在一旁欣赏代码的美,所以应该想一些实用的办法来做到这一点。编写单元测试,将其作为开发的一部分,会是一个不错的主意。不过所有的建议可以汇集成一句话:“停下来,想一想。”不要着急!制定一些对你有所帮助的个人原则,甚至做一些简单的事。例如,在一张字条上写下“三思而后行”,然后贴在你的显示器上。

    如何跟他们打交道

        在表现良好时,他们事编程伙伴的最佳人选。关键是要把他们的精力引导到高效的编程上,而不是用在不经考虑的胡乱编写上。在进行结对编程时,他们是良好的编程伙伴。

        问问一位卖力工作的程序员,看看他们每天都在做什么,他们的计划是什么。多关注他的设计,这会鼓励他真正得进行思考!如果依赖一位卖力的工作程序员的工作,那么要尽早向他要一个版本,并还要求看看他的单元测试。

        一位卖力工作的程序员会从恰当的管理中受益,以帮助他自律。确保他谨慎地按照项目计划安排他的时间(你不必自己来安排他的时间)。

     

    2 平凡程序员

       他们所编写的代码很可靠,但没有创意。在交给他一项任务之后,他会诚心诚意地完成它,并时刻准备着接受下一项任务。由于总是在干粗活,所以这些家伙被称之为“平凡程序员”(也许不公平);

        他们的性格恬静。由于害怕好工作的压力,他们只能参加一些乏味的项目。他们把自己定位于维护程序员,在具有开拓精神的人去开发替代产品的时候,他们却在维护着旧的代码库的运行。

        如果给与一定的时间和指导,初级的就会学习并进步,但是只能分到到风险的工作。年长的可能已经停滞不前了,并且以这种身份退休。他们很乐意这么做。

    优点

        给他们一项工作,他们就会完成它——做的还不错,并且很准时。他们很可靠,而且通常在时间紧迫的情况下付出更多的努力。与卖力工作的程序员不同,他们能很好的估计时间。他们有条不紊,面面俱到。

    缺点

        虽然他们很细心并且有条理,但是他们的思维局限性很强。他们缺乏设计的眼光和直觉。代码猴子会无条件的遵循现有的代码设计约定,而不会提出任何可能存在的问题。由于他们不能对设计负责,所以他们也不会为出现的任何问题承担责任,而且也往往不会主动调查和修正这些问题。

        教他们学习新的东西是件很困难的事,他们就是不感兴趣。

    如果你是其中一员该怎么办

        你是否想探索新的领域,并拓展你的职责范围?如果是,那么就开始通过个人的项目来锻炼来强化你的技能吧。找一些书,并从中学习新的技术。

        用于承担更多的责任,并自荐参加设计工作。在当前的工作中采取主动的态度,尽早确定可能失败的地方,并找出避免的方案。

    如何跟他们打交道

        即使你拥有更强的技能,或担任更重的责任,也不要看不起平凡的程序员。鼓励他们,赞扬他们的代码,并教给他们改善工作的技巧。

        在编写代码的时候,要考虑周到一些,尽可能地使他们的工作更加轻松。

     

    3 权威

         这就是传说中神秘的天才:程序界的圣贤。权威通常很安静和谦虚,也许甚至有些怪。他编写的代码很出色,但是却无法与凡人很好的沟通。

        权威会独自做最基础的工作:框架,体系结构和内核等。他拥有同时的尊重(有时甚至市敬畏);

        权威市万能的,他无所不知,无所不晓。在任何技术讨论场合,他都如圣人般地出场,并给出他的专家意见。

    优点

        权威是经验丰富的魔术师。他们了解所有的现代技术,也清楚哪些旧技术更好。(所有哪些非常棒的技术最初就是有权威发明的。)他们拥有一笔经验的财富,并且能编写成熟的,可维护的代码。

    缺点

        能够良好地沟通的权威为数不多。他们并不总是一言不发,但是他们的思维跳跃得太快,超出了常人的水平,所以要想跟上他们的思路相当困难。与权威对话会让你觉得自己很愚蠢,或者感动困惑,或者既觉得自己愚蠢又感到困惑。

    如果你是其中一员该怎么办

        试着走出理想世界,并生活在显示世界种。不要期望每个人都能像你那么敏捷,或者按你的方式思考问题。为了简单地把问题解释清楚,需要运用很多的技巧。要在这方面多家练习。

    如何跟他们打交道

        如果你遇到一位权威,那么就向他学习吧。尽量多地吸取知识(不仅仅是技术上的知识)。要想成为一名权威,需要具备特定的气质和个性,需要知识而不是傲慢。认真得观察这一点。

     

    4 半权威

         半权威自认为是一个天才。其实他不是。他说的话听起来似乎有道理,实际上不多是一堆垃圾。

        这类仁可能是代码猴子中最危险的一种。在造成损失之前,很难发现谁是半权威。管理人员相信他是天才,因为他看上去似乎很可信,并且充满自信。

        半权威通常会比真正的权威更张扬。他很傲慢,并且自以为是。他委任自己做权威人士。(从另一方面来讲,权威应该是背同行们公认的专家。)

    优点

        半权威很容易被认为没有任何优点,不过他最大的财富就是他的自信。相信自己的能力非常重要,而且能够承诺编写高质量的代码也很重要。但是。。。。。。

    缺点

        半权威最大的缺点也是自信。他高估了自己的能力,而他的决策会危及项目的成功。他是一个巨大的障碍。

    如果你是其中一员该怎么办

         现在对你的技术做一个中肯的评价。不要高估自己的。有抱负当然很好,但是不要把自己说成是那个你并不是的角色。

         你也许并不是故意这样做的,所以要客观地对待你能做和不能做的事情。要多关注你的软件的质量,而不是你看上去有多重要或者多聪明。

    如何跟他们打交道

         一定要非常、非常地小心。

        一旦你认出了半权威,这场战斗你就赢了一半。他造成的大部分损失,都将在你没有发现他的时候已经发生了。要密切关注半权威的行为:你必须过滤他所说的废话,抓住他的缺陷设计,并检查他糟糕的代码。

     

    5 傲慢的天才

         这类仁是各种权威中数量非常重要的一支。作为杀手级程序员,他速度快,效率高,并且能编写高质量的代码。虽然不能完全算是权威,但是他们很受关注。不过,由于他太清楚自己的技术能力了,所以他会很骄傲,显示出很强的优越感,并且时常觉得屈就。

        天才非常爱与人争辩,因为他们通常是正确的,并总是需要让自己正确的观点压倒其他人错误的意见。他已经习惯这样做了。最让人懊恼的是,在大多数情况下他都是正确的,因此和他争辩你注定要败下阵来。如果你是正确的,他将不会停下地说下去,直到争论内容转到对他有利的一面。

    优点

         天才拥有相当强的技术能力。他可以提供强大的技术领导力,如果得到团队中每个仁的支持,他将是团队的催化剂。

    缺点

        天才不喜欢被证明犯了错,并且认为他肯定永远都是对的。他觉得有义务承担起权威的责任。天才什么都知道。他从来不会说“我不知道”,不愿意遭受被冷落的耻辱。

    如果你是其中一员该怎么办

        不是每个人都能得到像神一样受人崇拜的地位,但是有许多优秀的程序员确实值得尊重。要明白这一点。谦虚地待人处事,尊重别人的意见。

        寻找那些可能更有阅历的人,然后向他们学习。千万不要自欺欺人,掩饰自己经验的不足——对于你知道什么,不知道什么,一定要诚实。

    如何跟他们打交道

        一定要向天才表达敬意,还要向他周围的其他程序员表达敬意。避免与他惊醒毫无建设性的争论。但是如果你有理有据,就要坚持你的观点。不要被他吓倒。与一位天才讨论技术问题,可以使你成为一名更好的程序员,知识要先学会如何不带情绪地进行讨论。如果你知道自己是正确的,那么可以寻求支持者,一起与他辩论。

        一定要留心,不要让自己变得傲慢无礼,也不要争强好胜。

     

    6 牛仔

        牛仔是一种很糟糕的程序员,他会故意逃避艰苦的工作。他将到处找捷径。有些人将这类家伙错误地归类为“黑客”。从这个词的一般意义上来讲,他并不是黑客。“黑客”是编程高手们用来骄傲地形容英雄般的程序员的词语。

        牛仔会一头扎进代码里,做最小的工作来解决直接的问题。他并不关心这是否是一个非常好的解决方案,是否会损害代码的结构,或是否能满足未来的需求。

        牛仔急于完成每个任务,并转到去做下一个。如果他多少对程序有些了解,他就会把这叫做敏捷开发。这实际上只不过是懒惰。

     优点

         牛仔的代码可以运行,但并不是很优雅。牛仔们喜欢新的东西,但是很少进行深入的研究(这听起来像是一项艰苦的工作)。

    缺点

        你将花费大量的时间,在牛仔身后做清理工作。他的身后可不是一个令人愉快的地方。牛仔的代码总是会需要在以后进行修复、重新编写或重新调整。他们只会运用有限的技术,并且没有任何真正的工程技能。

    如果你是其中一员该怎么办

        学会如何以正确的感觉来快速编写代码。为你的工作而骄傲,在它上面多花些时间。承认你的缺点,并试着去改变。

    如何跟他们打交道

        永远不要走进牛仔的房间;如果必须要和他们的代码打交道,那么将是一个DIY的灾难!要明白他们并不是居心不良,而是有点儿懒。要组织对他们的代码进行审查。让他们结对编程。(一个牛仔也许可以与一位卖力工作的程序员很好的协同工作;如果你想看刺激的争吵,那么就让他和规划者配对吧。)

     

    7 规划者

        规划者对他们要做的事做太多的思考,以至于他在开始编写任何代码之前,项目早就过期了。

        这是真的,你必须先进行规划,并建立一个统一的设计,但是这个家伙会在自己周围编一个密不透风的茧,并在他们完成之前拒绝与外界进行任何接触。与此同时,他在周围的世界却不断地改变着。

        规划者受过良好的教育,进行大量的学习和阅读。Process Weenie是一种常见的规划者类型:他非常了解“正确的开发过程”,但是在满足截止日期或者完成任务方面非常差。(Process Weenie最终会成为中层管理人员,然后会被开除)。

    优点

        他们确实会设计。他们也确实在思考。他们不会乱编写出没有经过深思熟虑的代码。

    缺点 

        当规划者开始认真的工作的时候,就会出现“过度设计”的危险。他们很容易会创建出非常复杂的系统。规划者是“分析瘫痪”的主要原因——他们的开发集中于方法和建模,而不是圆形设计和解决方案的创建。规划者喜欢创建无数的文档,并且每隔一二小时就召开一次会议。

        他们把大量的时间花在思考上,而没有足够的时间来做事。他们懂得很多,但是这些知识不能从理论升华为实践。

    如果你是其中一员该怎么办    

        预先创建细致的设计是很重要,但是可以考虑使用渐进的开发和原型设计方法,让你的设计得到验证。有时你会无法诉诸于设计,除非你真正开始实现它。只有那时你才能懂得所有的问题。

        试着在规划和行动之间建立一个更好的平衡。安慰你自己说话很长的时间进行设计,总比编写糟糕的代码要好——后者校正起来要难得多。 

    如何跟他们打交道

        在时间上超前一些,同意关于规划者工作的所有关键点和截止时间。插入一个“设计完成”关键点;规划者会很高兴地看到这被当作一项重要的任务,而且会倍受鼓舞地按时完成他的设计工作。这通常就足以促使规划者立即投入行动。

        避免规划者开会。你会花一个小时的时间,来讨论如何决定会议的议程。

     

    8 老前辈

         这类老家伙是老牌的资深的程序员。做好,听他回忆过去的那些美好时光,那时他使用的是打孔机,以及内存少到无法保留整数的加法运算结果的机器。

        老前辈要么对他仍在充实最喜爱的工作而感到非常幸福,要么对错过了无数次升职机会而十分痛苦。他们阅历丰富,知道所有的答案,并且不想再学习新的技术(他会告诉你已经没有什么新技术可学了;我们只不过是老瓶装新酒而已)。他们不愿意学习新的语言:“我不需要C++。有汇编语言就足够了,谢谢你们。”

        老前辈不会乐于遭受愚弄。他有些怪癖,而且很容易发怒。

    优点

        他们已经编了很多年的程序,因此有着相当丰富的经验和智慧。老前辈拥有成熟的爱你吗方法。他已经知道哪些因素会造成优秀的代码或糟糕的代码,也知道如何避免常见的缺陷。

    缺点

        老前辈不愿学习新技术。因为受够了那些名不副实的时髦理念,他对新事物的反应迟缓,而且会抵制改变。

        他们没有什么耐心,这要归功于多年公司环境的折磨。对于无数紧急的最后期限和不切实际的管理人员,他已经厌烦透了。

    如果你是其中一员该怎么办

        不要对更年轻、更有激情的程序员太过苛求。你曾经和他们一样,而你的代码也曾经不是那么好,对吗?

    如何跟这类人打交道

        他们根本不知道现在的时光有多宝贵,你们这些年轻的程序员!不要与老前辈混在一起,否则你就会知道他如何在软件工厂中生存了这么长的时间。要明智地选择你与他们之间的战斗。对他表示尊重,但是要把他们当作一位同时,而不是奉若神明。

        了解老前辈的动力所在。搞明白他编程是因为热爱这一行,还是他的职业生涯已穷途末路。

     

    9 狂热者

         狂热者是经受了洗脑的皈依者,他盲目的认为所有大公司的东西都是最优秀的。十几岁的女孩子会崇拜摇滚歌星,而程序员则由他们的偶像。狂热者满怀激情,把自己当作义务的技术传道者。他会试着在所有分配给他的任务中都是用大公司的产品。

        狂热者追随大公司的产品,排斥任何其他的方法,并且很少知道其他可选的产品:“大公司产品线上当前不完美的任何东西,都肯定会在下一个版本中得到修正,我们必须立即进行升级。”

    优点

        他对公司的产品极为熟悉,而且会基于这些产品做出真正优秀的设计。这种技术使他们有效率,但不一定是他的最高效率——其他不熟悉的方法也许更加有效。

    缺点

        作为一名狂热者,他既不客观,也不实际。他会错过那些更好的非大公司的设计。更糟糕的是,他会不停地吹捧大公司的产品。

    如果你是其中一员该怎么办

        没有人会期望你厌倦他所钟爱的大公司。了解它的技术,并了解如何部署这些技术,是很有价值的。但是不要成为技术的盲从者。要接纳不同的方法和新的思维方式。不要用高人一等的眼光来看待他们,也不要有偏见。

    如何与这类人打交道

        不要陷入与狂热者进行哲学探讨的麻烦当中。不要试图解释你所喜欢的技术的优点——他们不会听的。注意:于这种家伙的对话,可能会把你也编程狂热者。他有传染性。

        除非你的项目处在至关重要的设计阶段,在这个阶段,要用一种清洗的没有偏见的眼光来看到问题域,并坚持对所有的实际方法进行全面的评估。记住:他也许是对的。

       如果你遇到了愚蠢的辩论,就用准备充分的、准确的、详细的信息,告诉他你的方法的优点,以及他的方法的缺点。

     

    10 单线条程序员

        这是一种典型的家伙,他以技术卫生,呼吸的都是技术。这就是他的全部生命。他也许做梦时想的也是技术。

        单线条程序员具有明显的单向思维。如果让他们把工作都带回家,他回来的时候,就会设计并并编写好的整个系统,修正了所有的bug,并且对如何实现项目和其余部分指定了计划。在你吃饭之前,他就已经完成了所有的工作。

    优点

        单线条程序员专心致志,非常坚定。他将确保项目能够正常运行,否则他会拼命地努力。他愿意去做大量的额外工作,而且当截止日期日益临近时,他确实很有用。

    缺点

        他期望别人也想他那样的专心投入,一心一意,对那些部这样的仁表示反感。他最大的问题就是忽略一些事情,而且他总是与问题距离太近了。

    如果你是其中一员该怎么办

        开始集邮,或者开始做类似的事情,以帮助你换换脑子。文武之道一张一弛。但是也许你对别的什么都不感兴趣。

    如何与这类人打交道

        和这些家伙合作会非常棒。他们的热情是有传染性的,如果团队中由他们的加入,项目的推动非常快。但是别让他们接管工作。只要有半点机会,单线程序员就会把你的工作也做了!虽然这听起来很不错,但是以后你将不得不维护陌生的代码。这得不偿失。

        不要去担心他们没有私人生活,也不要被迫把所有的时间都花在项目上+有时最好的设计工具就是好好地睡一觉。

     

    11 拖沓者

        拖沓者是一种不远工作的懒散的人。这种人很难发现,因为他已经学会如何让自己看起来很忙碌。他的“设计”是在电脑上玩游戏,他的“研究”是在网络上观看新款的汽车,而他的“实现”则是干私活。拖沓者会主动避免热河任务分配。(噢,我太忙了,没有时间去做那个)

        还有一种跟不容易发现的拖沓者,他只会做自己想做的事,或者做一点他认为应该做的事,而不是他必须做的事。虽然总是在不停地工作,但是他从来也做不完。

        拖沓者知道如何找乐子。他频繁地参加派对,你经常能看到他倒在桌子下面呼呼大睡。他大部分都在喝咖啡,除了午餐时间外,那时你会发现他在酒吧。

        这种家伙实在玩火自焚。总有一天,过多的失败项目会浇灭他的工作热情。

    优点

        至少,他知道如何找乐子。

    缺点

        拖沓者显然是个负担。很难证明他在偷懒——一些困难的问题确实需要花些时间来解决。某个程序员可能并不懒惰,而只是缺乏快速解决问题的足够技巧。

    如果你是其中一员你该怎么办

        需要职业精神,开始在工作中投入精力吧。要不,就学着忍受犯罪感吧。   

    如果跟这类人打交道

        最好不要抱怨拖沓者——你自己也有缺点。他很快就会得到报应的。

        想办法证明你在有效地工作,并证明工作的拖延是拖沓者的错。也许规律地记下你的工作是个好办法。一些明确的截止日子通常就会让拖沓者紧张起来。不要编写属于他的那部分代码,即使是在绝望的情况下。否则,下次他还会期望你这么做。

        不要折磨自己,试着在休息的时候去找些乐子吧。也许你有时应该和他们一起去逛逛酒吧。

     

    12 勉强的团队领导

         这是一种组织上的典型:以为开发人员被提拔为团队领导,原因只是因为对他而言在技术上已经没有再升职的余地了。

        你可以很明显地看到,他在这个职位上很不自在。他没有明确的领导技巧,却在竭力维持。他是一位程序员,他愿意编程。这种家伙天生就不是团队的组织者或管理者,而且他的沟通能力很差。

        大多数的程序员的领导能力都很差。真正杰出的软件团队领导没有几个,这需要一套技巧,即包括技术方面的,也包括组织方面。

        勉强的团队领导通常性格温和,而且优柔寡断——他这样怎么能说服别人来做某项工作?他在开发团队和管理层之间两面受气,总是因为质量不高的软件而受到责备。他脸上的痛苦表情越来越多,知道他最终崩溃。

    优点

        勉强的团队领导对程序员的境遇有着真切的同情——他也曾经有过这样的经历,而且现在希望重返当年。他往往国语愿意承担起软件交付延迟的责任,以保护程序员们不被管理层挑毛病。就像他不适合很擅长分配工作一样,他也不擅长分配责任。

    缺点

        如果团队的领导师徒编写代码,事情会变得很糟糕。他永远不会有充足的时间来足够认真地编写、设计或是测试代码。他很天真地安排自己在一天中既要做编程又要做管理。结果,他一件也做不好,所以这位勉强的团队领导在办公室里呆的时间越来越长,以试图赶上进度。他不能很好地进行组织,不能向管理层解释情况,也不能恰当地管理他的团队成员。

     如果你是其中一员该怎么办

        接受培训,要快。

        如果你在这个职位做得不开心,那么就试着调动一下吧。这不是成人失败,做你憎恨并且不擅长的工作,是对生命的浪费,而且毫无意义。不是每个人都具有管理能力和热情。换到你真正擅长的并且热爱的岗位上去。

        如果你喜欢挑战艰苦的任务,那么就试着在你的公司里解决升职的途径吧。让公司意识到管理职位是高级研发人员的下一个晋升职位。很少有程序员成为得体的管理人员,他们大脑不适合做这项工作。

    如何与这类人打交道

       要有同情心,尽一切可能去帮助团队领导。按时向他报告,并尽量按计划完成工作。如果你有可能超出截止日期,要尽早让你的团队领导知晓,以便他可以对此早做准备。

     

    二 理想程序员

         从这些混乱的分类中可以看出,我们显然是不同寻常的一类人。这些代码猴子中,我们应该渴望成为哪一种呢?哪种代码猴子的血统能创造出理想的“程序员”呢?

        不幸的是,在显示的世界中,并不存在完美的程序员——这种动物知识一个都是传说。因此,这是一种学术性的问题。不过,找到答案会让我们明白努力的方向。

        传说中理想的程序员具有以下品质:

    政治家(Politician)

        他必须很老练,能够应付这些怪异代码猴子的小过失,能够应付越来越多居住在软件工厂中的人——管理人员、测试人员、支持人员、客户、用户,等等、

    亲切(Relational) 

        他可以愉快地与别人合作。他为自己的代码划定范围,并且为了大家的共同利益,不惜干脏话累活。他拥有良好的沟通技巧,既善于演讲,也善于聆听。

    艺术感(Artistic)   

        他可以设计出优雅的解决方案,并且可以欣赏高品质实现所具有的美感。

    技术天才(Technical Genius)

        他编写的代码可靠耐用。他拥有良好的技术能力,并且明白如何以及何时应用它们。

        再看一遍这些品质,它们清楚地描述了我们应该成为怎么样的程序员。如果你还没有意识到怎么做,那么让我把他拼写出来:理想的程序员是prat。对,这就是我们渴望实现的目标。   

     

     

     

    展开全文
  • 程序员垃圾分类图鉴

    2019-07-18 13:58:24
    如今我国正大力推广垃圾分类 作为一名奋斗在一线的程序员 不禁让人想问这样一个问题: 1:干垃圾 | 装逼程序员 2017年,微信群一段对话 小D:微笑,你们公司使用的是什么技术? 微笑:主要用的是 ...

    在这里插入图片描述
    如今我国正大力推广垃圾分类
    作为一名奋斗在一线的程序员
    不禁让人想问这样一个问题:在这里插入图片描述
    在这里插入图片描述
    1:干垃圾 | 装逼程序员
    2017年,微信群一段对话

    小D:微笑,你们公司使用的是什么技术?
    微笑:主要用的是 PHP+Memcached+Mysql+Spring Boot+…
    小D:你们公司没有使用 Redis、Kubernetes、… 等技术呀
    小D:感觉你们公司技术挺一般呀!
    微笑:技术确实是随大流,但挺适合我们小公司。
    小D:我们公司使用的是XXX技术,…,一大堆最新时髦技术。
    微笑:。。。。
    当时我们公司研发配置:PHP(2)+ Java(9),需要把全世界的牛逼技术都用到公司吗?

    牛逼的留言

    当年我把这篇文章《一次生产事故的优化经历》文章发布到 51CTO 的时候,有一个史无前例的大神出现了。在这里插入图片描述
    听了大神的发言之后,心生崇拜之情
    随手打开了他的博客
    结果个人博客空空如也
    看来很多大神都喜欢嘴上大神
    这种类似的留言我每周都会收到
    翻开他们所有的留言记录
    10条里面有9条都类似
    可能在精神上已经高潮了很多次在这里插入图片描述
    装逼型程序员对行业是一种伤害
    对小公司来讲合适才是最重要
    技术不是用来炫技吹牛逼
    它是用来稳定跑业务
    不知道他们脑子里面懂这些吗?

    干垃圾建议处理措施:采取卫生填埋可有效减少对地下水、地表水、土壤及空气的污染。

    2:湿垃圾 | 湿湿的程序员

    每个公司应该都有湿湿的程序员
    每天来公司的时候
    头发油腻腻的
    大概半个月没有洗头吧
    对,很湿,还很,油
    在这里插入图片描述
    他们对什么都不敢兴趣
    对上班不感兴趣
    对程序不感兴趣
    对代码不感兴趣
    但他们对某一类东西很感兴趣
    比如,打开了一个叫做1024的网站
    比如,来了一个新的产品妹子
    比如,公司里面的男女八卦
    各种段子如数家珍
    交流起来唾液横飞
    有的还有特殊癖好
    不说了不说了
    在这里插入图片描述
    湿垃圾建议处理措施:经生物技术就地处理堆肥,每吨可生产0.6~0.7吨有机肥料。

    3:有害垃圾 | 有害程序员

    有这么一种程序员
    他有一点技术节操
    但他也有另外一种非常独特的能力
    就是和谁都搞不到一起去
    任何任务完不成的时候,那都是因为别的原因
    比如,公司太烂,没有配套的系统
    比如,同事太烂,根本没有办法合作
    比如,领导太烂,没有按照他的方案来走
    反正总之一句,就是其它都烂
    自己完全没有任何问题
    在这里插入图片描述
    这种程序员属于有害垃圾,会影响团队
    影响公司项目进展
    包容是不能解决任何问题
    人和人的脑回路是不一样的
    且行且珍惜

    有害垃圾建议处理措施:建议单独回收或填埋处理。
    4:可回收垃圾 | 可回收程序员
    在程序员的职场上,总有这么一批人
    工作勤勤恳恳,态度认认真真
    安排任务积极响应,组织活动积极参加
    总之一切都很好,但唯一有一点不好
    在这里插入图片描述
    给他分配任务,总是超过期限没有完成
    安排他写代码,测试验收通过率为负数,因为跑不起来
    最可贵的是他也能意识到自己的能力不足
    态度很好,认识很好,就是能力不太好
    重新进行降级培训再利用,回来之后又是一条好汉!

    可回收垃圾建议处理措施:回收加工再利用。

    5:收尾语:
    垃圾分类是为了让环境更美好
    针对不同垃圾采用不同的处理方式
    消灭一批、送走一批、改造一批
    还程序员行业一片朗朗晴空
    你觉得还有哪些程序员可以划分到垃圾分类中?

    展开全文
  • 程序员分类

    2016-07-08 17:52:00
    真正的程序员用C, 聪明的程序员用Delphi, 懒惰的程序员用PHP, 勤奋的程序员有ASM, 有情怀的程序用Python 转载于:https://www.cnblogs.com/mall/p/5654211.html
  • 前端程序员面试分类真题.docx
  • 程序员科学分类指南

    千次阅读 2018-08-19 22:00:00
    ... “在那山的这边海的那边有一群程序员,他们老实又腼腆,他们聪明又有钱,他们一天到晚坐在那里熬夜写软件,饿了就咬一口方便面~~哦苦命的程序员,哦苦命的程序员,只要一改需求他们...
  • Java程序员面试分类真题带解析
  • 上一篇文章《程序员垃圾分类图鉴》和大家聊了聊程序员的垃圾分类,有的程序员直呼太真实,有的程序员觉得太讽刺,不应该给程序员进行这样的分类。其实每个行业都会存在各种各样糟糕的...
  • 程序员版本分类

    2008-06-28 14:40:00
    程序员按水平像软件版本号那样划分为不同的版本。相对于在招聘时分为初级,中级,高级程序员,直接表明需要某种语言N版本的程序员或许更方便直接。根据作者的观点,可将WEB开发者大致分为以下几个版本:Alpha:阅读...
  • 大龄程序员的未来在何方

    万次阅读 多人点赞 2015-12-16 07:36:25
    程序员老去……有人说这是程序员最怕的事,然而,老程序员的将来究竟怎样……
  • 上一篇文章《程序员垃圾分类图鉴》和大家聊了聊程序员的垃圾分类,有的程序员直呼太真实,有的程序员觉得太讽刺,不应该给程序员进行这样的分类。 其实每个行业都会存在各种各样糟糕的情况,娱乐性的分类会将问题...
  • 程序员考试 类型:nlc 需用nlc阅读器,我空间有此阅读器.
  • 初级程序员考试试题分类解析
  • 趣图:程序员的新分类:云程序员

    千次阅读 2018-12-06 19:30:00
    (给程序员的那些事加星标,每天看趣图)云程序员来了↓↓↓(Roy 推荐)(@瑞的郭 推荐)往期趣图(点击下方图片可跳转阅读)关注「程序员的那些事」加星标,每天看趣图(商务...
  • 程序员的级别分类

    千次阅读 2012-01-01 15:44:41
    菜鸟,大牛这些头衔似乎适用于每个程序员,今天我们列举程序员的十个层次,看您究竟属于哪一级? 自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有...
  • 程序员也不是什么都记得住,经常会查一些帮助文档或者参考手册什么的,下面这个网站是一个很全的汇总 http://tool.oschina.net/apidocs/ Java的找J字母那部分还有一些国内一些半学习半参考的网站 ...
  • 程序员那些必须掌握的排序算法(上)

    万次阅读 多人点赞 2019-08-17 16:03:39
    现在的IT行业并不像以前那么好混了,从业人员过多,导致初级程序员过剩,这也间接导致了公司的招聘门槛越来越高,要求程序员掌握的知识也越来越多。 算法也是一个争论了很久的话题,程序员到底该不该掌握算法?不同...
  • (给程序员的那些事加星标)转自:程序员吴小胖投票:你是什么垃圾?作者:吴小胖,目前是画风最歪的 Java 开发。热衷涂鸦,热衷码字,《OpenTSDB技术内幕》、《etc...
  • 程序员算法分类详解,把所有的算法思路分类并做了详细的介绍!
  • 程序员书签如何分类Frustrated with having no quick and easy way to access the Unsorted Bookmarks in your Firefox Browser? See how easy it is to change that with the Unsorted Bookmarks Folder Menu ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,640
精华内容 66,656
关键字:

程序员分类