5 stages of programmer incompetence _ yield thought

40
yield thought itʹs not as hard as you think 5 Stages of Programmer Incompetence with 169 comments Every now and again I see glimpses of myself in ‘younger’ programmers as they struggle with the same concepts I did, fall into the same mental traps and generally make similar mistakes. Writing the 4 wrong ways post made me wonder how common these phases really are and whether we could categorize them. You too? Well wonder no longer, for I have completed this herculean task! I’ve found myself in each of these traps at least once – some of them several times – and have seen them in others too. Are there more out there? The Enthusiastic Newbie The newbie is full of passion and excitement for her one and only language, which is undoubtedly VB, PHP or actionscript. Having finally got to grips with the syntax of said language she feels she’s completely mastered it in all its forms. The newbie writes astonishingly quickly, but everything ends up in one big file full of global variables. This is a very productive stage, if little worm games and random utilities / replacement shells are what you want produced. Distinguishing code features: Each program is exactly one file, containing a hundred global variables, none of which has more than four letters in the name. Mistaken belief: Programming’s pretty easy, really. Most endearing quality: Her little shiver of excitement every time she opens her IDE and gazes at a blank project, full of potential. Reads: Firefly fanfics. Most likely to say: “Come and look at this cool flash game I just finished!”

Upload: testabc

Post on 13-Sep-2015

15 views

Category:

Documents


0 download

DESCRIPTION

dfsf

TRANSCRIPT

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 1/40

    yieldthought

    itsnotashardasyouthink

    5StagesofProgrammerIncompetence

    with169comments

    EverynowandagainIseeglimpsesofmyselfinyoungerprogrammersastheystrugglewiththesameconceptsIdid,fallintothesamementaltrapsandgenerallymakesimilarmistakes.Writingthe4wrongwayspostmademewonderhowcommonthesephasesreallyareandwhetherwecouldcategorizethem.

    Youtoo?Wellwondernolonger,forIhavecompletedthisherculeantask!Ivefoundmyselfineachofthesetrapsatleastoncesomeofthemseveraltimesandhaveseentheminotherstoo.Aretheremoreoutthere?

    TheEnthusiasticNewbie

    Thenewbieisfullofpassionandexcitementforheroneandonlylanguage,whichisundoubtedlyVB,PHPoractionscript.Havingfinallygottogripswiththesyntaxofsaidlanguageshefeelsshescompletelymastereditinallitsforms.Thenewbiewritesastonishinglyquickly,buteverythingendsupinonebigfilefullofglobalvariables.Thisisaveryproductivestage,iflittlewormgamesandrandomutilities/replacementshellsarewhatyouwantproduced.

    Distinguishingcodefeatures:Eachprogramisexactlyonefile,containingahundredglobalvariables,noneofwhichhasmorethanfourlettersinthename.Mistakenbelief:Programmingsprettyeasy,really.Mostendearingquality:HerlittleshiverofexcitementeverytimesheopensherIDEandgazesatablankproject,fullofpotential.Reads:Fireflyfanfics.Mostlikelytosay:ComeandlookatthiscoolflashgameIjustfinished!

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 2/40

    TheBuddingGenius

    Havingprogrammedforafewyearsandlearntasecondlanguage,thebuddinggeniusisfirmlyconvincedthatheistheMessiahoftheprogrammingworld.Hereinforcesthisworldviewwithhisconvictionthatanythinghedoesntunderstand(i.e.almosteverything)ispointless,oldfashionedandawasteoftime.

    Distinguishingcodefeatures:Useshisownvectorclassimplementation.Alwaysstartsclassnameswithhisowninitial.Mistakenbelief:Theprogrammingworldhasmoretolearnfromhimthanhedoesfromit.Mostendearingquality:Howeasyitistomakehimdefensiveandhuffybymentioninganythingoutsidehiscabbagepatchofexperience.Reads:Hisownblog.Mostlikelytosay:Huh,yeahwelleveryoneknowsfunctionallanguagesarenousefor*real*programming*anyhow*

    TheAbstractionFreak

    Afterawhileallnewprogrammersbeingtorealizetheystarteachnewflashgamebycopying90%oftheoldone.Suddenlyitoccurstothemthattheycouldwriteonesupergameenginetomakewritinganewgameassimpleasfindingthespritesandwritingaconfigfilecontainingtherules!Flushedwiththissuccess,thewannabeabstractionfreakbeginstobelieveallprogramsshouldbegeneralized,generalized,generalizedunfortunately,holdingontothisbelieftoolongturnsthemintotheAbstractionFreak.

    Distinguishingcodefeatures:Addsfivenewclasseseverytimeheimplementsanewfeature,allofwhicharenamedafterdesignpatternsandgivenocluewhatsoeverastothefeaturetheyresupposedtoimplement.Anyactualbusinesslogicishiddeninanxmlbasedconfigfilesomewhereelseintherepository.Mistakenbelief:Writingaprogramtointerpretasetofconfigfilescontaininganawkwardlyphrased,buggydescriptionoftheprogramhewantstowriteisbetterthanwritingtheprogramhewantstowrite.Mostendearingquality:Theexpressionofpainfulconcentrationonhisfacewhilebattlinghisanalysisparalysisbeforestartingtoreimplementtheloginfeatureforthefourthtimethatmonth.Reads:DesignPatterns,covertocover,duringhislunchbreakeveryday.Mostlikelytosay:SoIthinkweshouldstartthenewtimeschedulingprojectbywritingagenericapplicationframework

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 3/40

    TheVeteran

    Anyprogrammerexposedtothebitterrealitiesofworkinginasoullesscommercialsoftwarecompany,shufflingbitsonaharddiskforthesamesalaryeverymontheventuallydevelopsacertainprotectiveshell.Neitherspeednorgeniusarerewarded,sooftenaprofessionaldeveloperbegintodevelopaverycareful,measuredstylethatensureshesnevercaughtoutbyeitherbugsormanagement,whichheconsiderstobeprettymuchthesamething.

    Distinguishingcodefeatures:Thefirsttenlinesofanyfunction,evenanaccessor,areallassertstatements.Alltheerrorconditionsforeachfunctionaredutifullycheckedandhandledandcommentsareliberallyscatteredthroughout.Mistakenbelief:Doingthingsproperlyisthesameasgettingthingsdone,butbetter.Mostendearingquality:Hisauraofmeasured,unflappablecalmthatmakesitclearthateventhedirestemergencywontmakehimworkanyfaster,leavingonewiththeimpressionhemightbebettersuitedtoacareerinthebonsaiindustry.Reads:joelonsoftware.com(yes,eventhoughJoelsstoppedposting)Mostlikelytosay:Well,Iwontbeabletosayuntildoingaproperestimatenextweek,butitsgoingtobeatleast*sucksairinthroughpursedlips*atleastfourmanmonthstoaddaprintpreview,plustestinganddocumentationofcourse.

    TheGuru

    Afteradecadeorsoofbouncingfromonestereotypetothenext,ournewbieisallgrownup,yetshefeelslikeahollowshelloftheenthusiastsheoncewas.Onemorning,shewakesupandrealizesthattheunwieldycrustofunittests,assertions,errorcheckingandclassdesignthathavebuiltuparoundherprogrammingstylearejustcrutches,crutchesthataredraggingherdownandthatshenolongerneeds!Shecaststhemoffandbeginswritingthesimplest,barestcodeshecanthinkoftodowhatsheneeds!Freethefeatures!Freethecode!Freedom!

    Distinguishingcodefeatures:Onlywritesindynamicallytypedlanguageswithastrongfunctionalcomponent.Atfirstglancehercodelooksremarkablysimilartothenewbies,exceptthereslessofitandthevariablenamesmakesense.Mistakenbelief:Thatherenlightenmentmakesheraguruwithoutthequotationmarks.Mostendearingquality:Herlittleshiverofexcitementeverytimesheseesaninterestingproblemshecouldsolvewithjusthalfadozenlinesofcode.Reads:news.ycombinator.com/newestMostlikelytosay:Youknow,polymorphicinheritanceisreallyjustapoormanssubstituteforfirstclassfunctionsanddynamictyping

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 4/40

    And

    Sothereyouhaveit,mycareerasaprogrammerlaidbare.Imcurious;doeseveryonegothroughthesephases?

    Polldaddy.com

    Whichstagesofprogrammerincompetencehaveyoubeenthrough?

    Vote ViewResults

    IfIvemissedanygreatones,addyourowninthecommentsandIlleitherupdatethearticleorcollectthemforaPartII

    Note:YieldThoughthasmovedtohttp://yieldthought.comcheckthereforthelatestposts!

    Writtenbycoderoom

    March19,2010at3:25pm

    PostedinUncategorized

    169Responses

    SubscribetocommentswithRSS.

    Spoton.Ijustrepliedmybosswith*sucksairin*estimateandwantedtocheckoutwhatsthefussabouthackernewswebsite.

    kl

    March19,2010at4:48pm

    Replyyep..thatprettymuchsumsitupforme.

    tony

    March19,2010at6:01pm

    TheEnthusiasticNewbieTheBuddingGeniusTheAbstractionFreakTheVeteranTheGuru

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 5/40

    ReplyAnyonewhohasbeeninthisbusinessover10yearsWORKING,havelived,practicedandsuffer.

    Ninel

    ninelconde

    July6,2010at2:16am

    ReplyIcheckedallthecheckboxes.Assumingyoumean,Whichstagesofprogrammerincompetencehaveyoubeenthroughtoday?

    Neebat

    March19,2010at6:05pm

    ReplyImbecomingaveteran NOMOREBUGSFORYOU

    droope

    March21,2010at11:14pm

    ReplyHeresagreatcommentfromknight666intheredditcommentthread,itsacrimeifmorepeopledontseeit:

    Atschool(gameprogramming),wehavethreeprogrammingteachers:

    JaccotheexdemoscenerDefiningfeatures:Doesntlikeabstraction.Everythingshouldbecrammedinasinglefileifpossible.Codeshouldbefast.Providesaframework,butitsabsolutelybarebones(rendersabuffertoawindow,providesavector2,vector3andmatrix4x4class)Mayorannoyance:Lackofabstractioncausesinflexiblecode.Singlelettervariablenames.

    DinotheveteranabstractionistDefiningfeatures:Abstracteverythiiiiiiing.Memberdatashouldbeinpimps.Hatesheadersandconsidersthemarchaic.Alwayscodesplatformagnostic.Becauseofhisabundanceofabstraction,theprogramcodeisseparatedfromtherenderingcode.Mayorannoyance:Putseverythingin.cppsinsteadofheaders,whichcauseslinkingnightmares.Ridiculouslyconvulatedcodingstyleandvariablenaming.Abstractionwherenoneisrequired(ImprettysuremyVec3isalwaysgoingtouseeitherfloatsorfixedpoint,IhavenoneedforaVec3)

    Nilsthechilledoutdude

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 6/40

    NilsthechilledoutdudeDefiningfeatures:Featuresbeforespeed.Getitrunning,thengetitfast.Abstractthingsonlywhenrequired.Getsshitdone.Mayorannoyance:Nonereally.

    Thepastyear,IvebeenagreeingwithJacco,thenwithDinoandnowwithNils.However,itsabalance.Whenyoucodeforspeed,yourshitwillbreakwhenyouwanttoaddnewstuff.Whenyouabstracteverything,nothingwillevergetdone!Itsaveeeeerydelicatebalance.HowmuchabstractiondoIreallyneedandhowimportantisspeedrightnow?

    coderoom

    March19,2010at6:11pm

    Replysmallworld,thosearemyteachers(knightbeingmysenior)

    Andthatabsolutelysumsthemup!

    awesomearticle

    zeroZshadow

    June24,2010at11:08am

    ReplyAfterpoundingoutcodefor25years,Guruisthebestfit.

    Jeff

    March19,2010at6:23pm

    ReplyAndthisiswhyyouarenotone.Itaskedyouwhichstagesyouwentthrough,notwhichoneyouthinkyouare.

    Linegod

    March21,2010at11:48pm

    ReplyAlso,heputquotesaroundguru.

    Yep

    April19,2010at2:00pm

    ThiswouldexplainwhysomanypeopleiconsiderGuruprogrammershavefalleninlove

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 7/40

    ThiswouldexplainwhysomanypeopleiconsiderGuruprogrammershavefalleninlovewithHaskellandProlog

    Dustin

    March19,2010at6:33pm

    ReplyGreatread,lotsoftruth,butswitchinggendersoftheprogrammereveryparagraphistremendouslyannoying.

    Brian

    March19,2010at6:35pm

    ReplyMaybeyourerightaboutthat.They/their/themislessimmediate,lesspersonal.Perhapsonesheandtheresthewouldvebeenmorerepresentative(althoughallhewouldvebeenevenmoreso).Wellsee.

    coderoom

    March19,2010at7:15pm

    ReplyGenderdoesntmatter.Chooseheorsheandstickwithit.Idontthinkanyoneiskeepingscoreofyourpronouns,andiftheyare,thentheyreprobablyworthpissingoff.

    decadeCoder

    March25,2010at9:50pm

    Sogenderabstractionisnowrequired?

    Pete

    March19,2010at9:09pm

    Replytheauthorsaidhe/shehasexperiencedallthosestages,perhapschanginggenderbetweeneachofthem?

    bse

    March20,2010at1:02am

    Reply

    Iagree.WhenIreadashemyinstinctisthatIhavemissedsomethingandIstartlooking

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 8/40

    Iagree.WhenIreadashemyinstinctisthatIhavemissedsomethingandIstartlookingbacktofindoutwhothissheis.Pleasepeople,hecanbeusedtomeanheorshe.

    Ben

    March20,2010at12:58pm

    ReplyIactuallyenjoyedthegenderswitching.Madeitlessaboutthespecificperson.

    zachaysan

    March20,2010at2:10pm

    ReplyOfthefivetypes,theguruistheonemostlikelytobeashe.Sheprobablystartedhercareerintheearly1980s,whichwasthelasttimetherewassomethingapproachinggenderequality.

    BTW,Imustbereadyforsometranscendentstageofprogrammerincompetence,becausetheonlycodethatdoesntseemfussyandprecioustomethesedaysisassemblylanguage.

    Webar

    March20,2010at8:39pm

    Thatsbecausethearticlehasdynamicgendering.

    Angel

    March21,2010at6:23am

    Reply

    Greta

    September20,2010at9:54pm

    Firstclassfunctionsareagoodsubstituteforasinglepolymorphicfunction,untilyouneedtopass/returnmultiplepolymorphicfunctionsandsomedataallatonceandthenyouhaveanADTagain.

    Colin

    March19,2010at6:39pm

    Reply

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 9/40

    ThisblogpostfollowsapatternIhavebeennoticinglatelyinprogrammerblogs.Ibelievethatonecouldabstractoutseveralpiecesofittocreatearudimentaryframework

    Merritt

    March19,2010at6:39pm

    ReplyTherewasanexcellentpostonHNalongthoselinesamonthorsoago,somethinglikeThisisthetitleofagenericblogpost.Itriedsearchingforitbutfoundsomanythatitdidntseemfunnyanymore

    coderoom

    March19,2010at7:11pm

    ReplyHitthenailontheheadandhammeredhome.

    FarazAli

    March19,2010at6:40pm

    ReplyThisisbrilliantitsnotonlyfunny,itssimplythetruth,andfunnybecauseitsthetruth

    Thanks,itmademyday

    RolandBouman

    March19,2010at6:50pm

    ReplyAwesome,itwasmypleasure

    coderoom

    March19,2010at7:10pm

    ReplyHilariousandsotrue.Bravo.

    Braden

    March19,2010at7:45pm

    Reply[]5StagesofProgrammerIncompetenceyieldthought[]

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 10/40

    StreamingcalcioPalermoInter20/03/2010

    March19,2010at7:56pm

    ReplyVeteren,sigh

    Veryaccurate!

    bgw

    March19,2010at9:46pm

    Replygurufornewprojects,veteranwhenmaintaining.

    Butgurucouldntbemoreaptmylanguagechoice,thatIcheckedHN10timestoday,mybeliefthatthemostcrucialpartofprogrammingischoosingtherightnamesforthings,whatIwastalkingaboutlastweekendtheonlymischaracterizationisthatIthinkallmyprogramsareshit,andIdratherhaveaseizurethantrytoaddfeaturestoa10k+linepythonproject.

    jhl

    March19,2010at10:12pm

    ReplyYourenotacompetentprogrammeruntilyoucaremoreaboutthesolutionthanthetools.Anyonethatproselytizesalanguageortooloutsidethecontextofaddressingaparticularproblemisnotyetacompetentprogrammer.

    myarse

    March19,2010at10:22pm

    ReplyIlovethem!Itsjustwell,arentthesereallytheevolutionarystagesforadeveloper?Somanyofusidentifywiththem,Imnotsureitsfairtolabelthemasstagesofincompetence.Ithinkweallgothroughthem.Theyarestagesofgrowth.

    vurcease

    March19,2010at10:41pm

    ReplyThisistrue,butasJeffAtwoodsays,recognizingourownincompetenceisthekeytogrowth

    coderoom

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 11/40

    March20,2010at7:26am

    ReplySoWhatsafterguru?

    Andwhileauthoringyourmemoirsofacareerincode,youveforgottenafewfriendsalongtheway

    Remember:TheTechnicalProjectManagerforwhomthereisntanycodingproblemthataGanttchartcouldntfix,andwhohadsomemysticalunderstandingofwhatpercentcompletemeans.Thisguyleftthecodingpathsomewherebetweennewbieandabstractionist

    AndRecall:TheUI/HFEngineerforwhomtheholygrailistheultimatehumanunderstandablerepresentationofsystemstate.Forwhomtheinventionofthedropdowncomboboxisamajorhistoricalmilestone

    BrianMaso

    March19,2010at10:48pm

    ReplyHowniceforyouthatyouimagineyoureaguru.

    Wontitbefunwhenyoumakethistableagain,assignyourcurrentpositiontobeingarelativenovice,andwhereveryouarethenisnowthegurustep?

    Maybeyoushouldstopfellatingyourownskilllevelinpublic.

    JohnHaugeland

    March19,2010at11:10pm

    ReplyHeh,aguruisntaguru.Theyjustthink,actandtalkasiftheyare

    coderoom

    March20,2010at7:27am

    ReplyGurushouldbeindoublequotes(guru)asitisastringandnotachar,usuallyinsinglequotes.Justthrowingthatoutthere.

    Vlad

    March19,2010at11:12pm

    Reply

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 12/40

    Ah,butinpythonyoucanuseeither

    coderoom

    March20,2010at7:27am

    ReplyAndinPHPaswell..

    ThomasLukasik

    March20,2010at6:55pm

    WorksinC++toogivesyouanint

    ReJ

    June25,2010at7:12am

    Whileeveryoneknowsthestepsinyour5stagesarespectrumsnotquantumjumps,theyareindeedveryfair.Anditsimportanttoremembertherearelittletidbitsofall5thatSHOULDbeanotherlevel.

    Howeveronceyouworkforacompanywhosejobisittomakemoneysellingnotsupporting,youdoindeedgetbeatendown.Timetomarket,visualappeal,marketing,alltrump(mostofthetime),eleganceinsoftwareengineering.Stillyouhavetoadmit,itsnotabadwaytomakealivingifyouarestillenthusiasticaboutwritingcode.Evenifhastobeyourcode,notyouemployersyouareenthusiasticabout.

    Jeff

    March19,2010at11:36pm

    Reply[]5StagesofProgrammerIncompetenceEverynowandagainIseeglimpsesofmyselfinyoungerprogrammersastheystrugglewiththesame[][]

    TopPostsWordPress.com

    March20,2010at12:06am

    ReplyTheBuddingGeniusisthebest,notonlyforprogrammers Youarestillatthestagewhenyoudontknowifthoseareillusionsorpremonitions.

    StephanaNikolova

    March20,2010at12:12am

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 13/40

    ReplyAnychanceyoucando5StagesofProgrammerCompetencynext?Ohandbtw,youcantradeobjectforclosure.(youcanbut,heylol)

    gml

    March20,2010at12:48am

    ReplyIfIeverreachalevelofcompetencyinprogrammingIsurelyshall!

    coderoom

    March20,2010at7:28am

    ReplyThepostseemstodescribefolkswhostartworkingat1820knowingonlyoneprogramminglanguage,asopposedtogrowinguplovingtheprogrammingexperiencewhilebeinglanguageagnostic.Theabstractionstepmakessense,buteventhatcanbejustifiedforpragmaticreasonswhenyouhavetodothesamethingbutconfigureddifferentlyforthe2ndor3rdtime.Idontconsideritastepinanaturalevolution.Whatreallystandsoutfromthispostisthelackofbusinesssenseandpragmatismfromthepersonalitiesdescribed.Isitwhatworkingassoftwareengineerinalargecorporationdoestoyou?Andwhatwiththeegodrivenneedtoaccomplishorshowcase,asopposedtosimplyperformthetaskathand,whetheritbeselfassignedorhandeddownmanymature(andsomeimmature)programmersdonthavesomuchanegoproblemthattheyshouldprovethemselvesbettersomehowviaoneofthedescribedidiosyncrasies.Finally,atrueprogramminginmyopinionisequallycomfortablewithassemblylanguageaswithLisporJava,hasnothingtoprovetheworldandjustenjoyswhathedoes.Hedoesntseemtofittheprofileslisted.Andtoboot,noneoftheseprofileshasmuchtodowithcompetencecompetenceisgettingtherightthingsdoneproperlyinasturdyandscalableway,thenbeingabletosmoothlyhanditoverandmoveon.Franklyalltheprofilesfitthenewbieattitudetome.

    DreamT

    March20,2010at1:12am

    ReplyMythoughtsexactly.Greatprogrammers

    *Seetheexpandedproblemspace,whichincludesorganisationalobjectives,culture,practice,existingcode,people,materialsandbudget,aswellasstatedobjectivesandtechnicalissues.

    *Areusuallygeniuseswithloadsofexperience.Theyseekandfindmajortechnical

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 14/40

    *Areusuallygeniuseswithloadsofexperience.Theyseekandfindmajortechnicalshortcutstodeliversolutionsacrosstheexpandedproblemlandscape.ThisistheGreatProgrammersXfactor.Youcantteachit.

    *Improveprocesseswherepossible,butareneverprocessjunkies.Particularlytheyeschewthesemblanceofprocess.

    *Areprobablyawareoftoolandlanguagetrends,butareneverfashionvictims.

    Bill

    March20,2010at8:25am

    Replyrighton.thiscannotbesaidbetter.

    c0der78

    March7,2012at2:30am

    YouleftoutmyprogrammingpositionTheGrunt.TheonethatisassignedtofinalizethegeniuscodeanddesigntheGuruhascreatedandbringittoproduction.InmyexperiencetheGurudoesthedesignaccordingtowhateverfancynewdesignpatternortechniquehislastconferencegothimtobelievein.Iasamultitaskingrobotamassignedtodeliverhisgenioustoproduction.WhatIgetisaproofofconceptthathasbeencarefullydemonstratedtothecompanymanagement.Thebigbossesbelievetheproductis90%readybutthetruthisthatitsbarely20%ready.SoinmythemanagementeyesIamalwaysunderperformingandtheGuruisoverperforming,hegetsthebigsalarycheckandIgetthescrapsforfinishinghisconstantlychangingdesignpatternsandwhimsydesignsandhavetosupportthestuffaswellandmeanwhiletheGurumovesontodesignsomenewstuffwithWindows7featureseverywherebutourcustomersarestillstickingtoWinXpandServer2000.IagreewithDreamTtheprofilesaredescribingnaivenewbieprogrammersandasfunasthispostingisitwouldbegreatgetamorethoroughanalysisofprogrammers,butIknowablogisnottheplace

    Tobakstugga

    March20,2010at2:48am

    ReplyAh,thisissotrue!

    coderoom

    March20,2010at7:31am

    Replystopbloggingandgobacktowork!

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 15/40

    zero

    March20,2010at2:56am

    ReplyDistinguishingcodefeatures:

    Mistakenbelief:

    Mostendearingquality:

    Reads:

    Mostlikelytosay:

    Mentifex

    March20,2010at3:35am

    ReplyTheMetamorphizedSolutionEngineer:

    Thisperson,preferablypriortoGuru,butafterAbstractionist,decidestochangecareersandgointoEnterpriselevelSolutiondevelopment.

    Thisguyremembersallhiscodekata,buthaslosttrackofmostlanguages,thinksinobjectsandERD,butalsospeakshardwareandnetwork.Hefailstorememberthepainthatgeneralprogrammingcausestheheartbuthasmasteredthetaskofcommunicatingbetweentheregularhumanandtheprogrammingteamusuallyusingthemostdangerousandpowerfullanguageofall:pseudocode.

    Heisknownforwritingthingsontheboardlike:

    if(datareturnsok)then(dosecondprocess)else(throwerror)

    andthenconsiderthataviablespec.

    Athisbest,thismangetsthebillspaidandkeepseveryonehappyinplushiesandnerfguns,athisworst,hepromisesthingstocustomersthatcantexistanywherebesidesthepliable4dimensionalfantasylandofhisownmindbutyouhavetocodeit.

    Lovethisman,andfearhimheslikelyyourboss.

    Distinguishingcodefeatures:completesitallindryerasemarker,andconsiderscolorcodingtheextentofhisresponsibility.

    Mistakenbelief:ifhecandreamit,youwillbuildit

    Mostendearingquality:willingtostandbetweenyouandthesuitsandactuallytrulygets

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 16/40

    Mostendearingquality:willingtostandbetweenyouandthesuitsandactuallytrulygetsiteventhoughhedoesntcodeanymore

    Reads:TheRobbReport(becausehesmakingmoremoneythanyouare)

    Mostlikelytosay:Yes,wecandothatnoworries.

    CPUnk

    March20,2010at3:54am

    ReplyThanksforthisone,itreallymademelaugh

    coderoom

    March20,2010at7:31am

    Replyapropos++;

    nolochemical

    March20,2010at4:51pm

    ReplyScriptkiddie?

    davefar

    March20,2010at5:39am

    ReplyIhaverbeenthroughallofthemandIamnowinastateofenlightenedignorancewrtsoftwaredevelopment.

    lee

    March20,2010at6:07am

    ReplyYouforgotoneofthemostimportantones:RealProgrammer.http://www.pbm.com/~lindahl/real.programmers.htmlhttp://www.pbm.com/~lindahl/mel.html

    Distinguishingcodefeatures:Selfmodifyingcode.Nocommentsanywhere.Herefusestowritecodeinanythingotherthanassembly,CorFORTRANorusethewordswebandprogramminginthesamesentence.Hiscodeisimpossibleforanyotherprogrammertounderstand,afactthatensureshimjobsecurityforlife.

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 17/40

    Mistakenbelief:Commentsareforsissies.Ifitwashardtowrite,saystheRealProgrammer,itshouldbehardtounderstand.

    Mostendearingquality:Helikestoentertainotherprogrammersatpartiesbyrecitingthebinaryopcodesforeverymachinehehaseverprogrammed.

    Reads:Intel64andIA32ArchitecturesSoftwareDevelopersManualVolume3B:SystemProgrammingGuidePart2.,opentoaparticularlyinterestingpageaboutthesubtlenuancesofVirtual8086Mode.

    Mostlikelytosay:Ifaprogramcantrewriteitsowncode,whatgoodisit?

    Alex

    March20,2010at6:38am

    ReplyNicearticle,thanksforthelink!

    SinceMelknewthenumericalvalueofeveryoperationcode,andassignedhisowndrumaddresses,everyinstructionhewrotecouldalsobeconsideredanumericalconstant.Hecouldpickupanearlieraddinstruction,say,andmultiplybyit,ifithadtherightnumericvalue.Hiscodewasnoteasyforsomeoneelsetomodify.

    Understatementmakecoderoomhappy!

    coderoom

    March20,2010at7:37am

    ReplyHahagladyoulikeitTheStoryofMelsaclassicpieceofhackerfolklore

    Kindoffascinatingtoo.MakesmewishIhadanoldmainframejusttoseewhatitwaslike

    Alex

    March20,2010at9:39am

    DamngotmeatAbstractionFreak.Thanksfortheheadsup!

    Scott

    March20,2010at9:06am

    Reply

    IdbepossiblyanothersortofincompetentprogrammerMan(asinManual).Man

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 18/40

    IdbepossiblyanothersortofincompetentprogrammerMan(asinManual).Manmakessurethateachandeveryprogrammerinhisteamcancodethewaytheywantandproduceresultsinthewaytheyprefer.EverysingleupdateneedstogothroughMansohecanmakesureitdoesntaffectanyotherdevswayoflife.Asaresultnooneeverimproves,Manistheonlyonewhoknowswhatsgoingonandis*litterally*themanual.IfManeverhappenstotakeadayoff,nothingwillhappenonthatday.

    Notethatnooneelseknowswhatmandoes,orhowmandoesit.Notthatitmattersmuch,sincemancanonlywriteacouplelinesperdayduetoallthattimespentlisteningtootherpeopleandansweringquestions.

    Damn,Idlooooovetofinddecentawayoutofit,helpmeplease

    Tom

    March20,2010at9:55am

    ReplyIguessMandoesntmindbeingthecenterofattentionbutwouldliketobeabletogetsomeworkdone?

    Hecouldtakefourweeksoffduringabusyperiod,thencomebackandtryhttps://coderoom.wordpress.com/2010/01/28/3simplerulesthatwillmakeyouasuperstardeveloper/(butdonttellanyoneIsaidthat)

    coderoom

    March20,2010at10:56am

    Reply4weeksoffsuperstarcomebackyou,sir,arethedevilincarnate!

    Tom

    March20,2010at3:33pm

    AfterspendingsometimeasVETERAN,IwentbacktoABSTRACTIONFREAKandbranchedtowardsmodelinginstead.

    AMODELERisanABSTRACTIONFREAKinheaven!

    modelpractice

    March20,2010at10:30am

    Replyhellyeah,spoton.ivebeeninthefirstandsecondstages,andnowimattheveteranstage

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 19/40

    althoughtheidontgiveafuckmayvaryfrompersontoperson.youveseenyourshareofemergencies,andthisstageisaboutgettingshitdoneandcoveringyourass.also,havingabitofknowledgeallowsyoutoslack2daysandworkoneonathreedaydeadline

    oneguy

    March20,2010at10:52am

    ReplyThisisfrighteninglygood.Iwouldliketoofferanewclassofprogramming

    TheDelusionalAttentionDeficitProgrammer.DistinguishingCodefeature:Writesalotofnonreadablecodethatdoesalotstuff,butdoesntsolvetheactualproblem.Nocomments,thinksashe/shecodes.Noconceptofknowinghowtofocusonaspecifictaskatanyonetime.Constantlyflitteringbetweenminiprojects,leavingahalfdonesolutionthatarehardtopickup.

    MistakenBelief:Thinksthattakingonafewproblemsatatimeisok.Falselybelievesthattheirapproachisagilinordertoquicklycodeanddesignontheflytogetresults.Butitsnot,justburyingthemselvesunderamountainofspagehtticodethatisunmaintainable.DoesntseethatitsreallythePITOOMAmethodology.(Pulleditoutofmya$$).

    Mostendearingquality.Whinesaboutnothavingtimetotakeontasks,butistoobusyyabbering/procrastinatingtogetstuffdone.

    Reads:whateveristhelatesttrick/techniqueindesign.

    Mostlikelytosay:Imtoobusy,ImstretchedsooothinlyIdonthavetimetosleep.

    Giulio

    March20,2010at11:07am

    ReplyOhyeah,Gurureadsnews.ycombinatorandthenclickingonlinkstheregetstothissite;D

    jakubmal

    March20,2010at11:46am

    Reply[]fullpostonHackerNewsIfyouenjoyedthisarticle,pleaseconsidersharingit!Taggedwith:Incompetence[]

    The5StagesofProgrammerIncompetence

    March20,2010at12:09pm

    Reply

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 20/40

    Imconvincedthereareonly5peoplewritingcodeintheworld.TherestofusGoogleandcopyandpastereallywell.

    AndImchangingmynametoNils.

    Sam

    March20,2010at1:19pm

    ReplyDefinitelynot.Somepeoplejustfallinlovewithcomputers,thenfalloutoflovewithcomputers&fallinlovewithsomethingelse.Atsomepointtheyfalloutoflovewiththesomethingelse&fallinlovewithcomputersoncemore,thentheyfalloutoflovewithcomputersonemoretime&discoverthatmachinesingeneralarenice&justletitbe.

    ahse

    March20,2010at1:34pm

    ReplyOuch.Thetruthhurts,man.

    Chris

    March20,2010at2:16pm

    Reply

    tokyohotelsonline

    March20,2010at4:15pm

    ReplyGoodOne

    ittalentz

    March20,2010at4:26pm

    Replywonderful!sotrue!

    HaroldShip

    March20,2010at5:20pm

    ReplyHaha,veryhumorous,Ilikeit.(:

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 21/40

    fcukthat

    March20,2010at5:57pm

    ReplyThisishilariousbutverytrue.

    SeifSallam

    March20,2010at6:20pm

    ReplyGreatarticle,funnybuttrue

    JaneAdams

    March20,2010at6:31pm

    ReplyGreatpeiceofwriting.NotsurewhereIwouldsitastherearetimesabitofeachcomesintoplay.ButcertainlytheVerteranseemstofitthebestasthesucksinairhashappenedoftenbutIthinkthatismoreduetothefearthatmangementthinksitsahardtimelinenotablastedestimate.

    KeithChadwick

    March20,2010at6:33pm

    ReplyThisissoFULLOFEPICWIN..IfiguredIwouldprobablybetheEnthusiasticNewbie,butafterreadingIfoundoutthatIwasacrossbetweenaVeteranandaGuru*COMMENTSANDFREEDOM!!*eventhoughIhaveZEROprogrammingexperienceinanactualjob.IwentO:O:O:

    Butyeah,funnyentry..anditsprettyrealisticineveryway.YoudeservetheBadgeofEPICWIN.x3

    MarxTaich0u

    March20,2010at6:42pm

    ReplyHahaGoodread!!

    Anne

    March20,2010at7:19pm

    Reply

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 22/40

    Veteran.

    Mystuffships.Mystuffworks.Mycontractskeepgettingextended.

    Javarocks!

    Greatpost.Gonnaputitinthehallatwork.

    JohnBannick

    March20,2010at7:21pm

    Reply[]5StagesofProgrammerIncompetenceyieldthought[]

    jardenbergkommenterar20100320|jardenbergunedited

    March20,2010at7:51pm

    Replygetoveryourselves

    smileylizard

    March20,2010at9:09pm

    Replyoutofscopeofthepost:WhyabstractusersandprogrammersinEnglishtextsmentionedasshepredominantly?Isitasomekindofcourtesy?Because,ifwespeakaboutprogrammersoutthere,20to1isagoodaproximationofsexproportioninourprofession(whateverthereasonforthat),andinsteadofpoliticalcorrectequalizationofsexes,usageofshejustaccentsthatdisproportioninastrangeway,no?

    Iwasunabletofindanyethymologyofsuchatradition,butmaybeyouknow,why?

    codesnik

    March21,2010at1:31am

    ReplyIthinkitmightbepartofsomeunspokenefforttohelpchangethatpredominanceinsomesmallway.Theresnophysiologicalreasontheratioshouldbesohigh,whichmeanstheprofessionismissingoutonalmost50%ofthepotentialvanRossums,Knuthsand,yes,SpolskysandGrahams.

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 23/40

    Therearebetterwaysthanoccasionallyusingthepronounsheaswellashe,buthey,notalltechnicalwritersarepoliticalactivistsorrevolutionaries.

    Personally,Ithrowitinthereforabitofvariety;Imsurpriseditbotheredsuchahighpercentageofyou,dearreaders.

    coderoom

    March21,2010at7:13am

    ReplyAsafemaleprogrammer,Iagreewithcodenik.Itsniceforusgirlstobeincluded,butIfeelitsOKtotreatthenounprogrammerwiththemalegender.

    Sam

    March21,2010at2:50am

    ReplyTheenlightenedone.thedayhegotinterestedinprogrammingandreadabook,herealizedhealreadyknewhowtoprogram,andquicklyputthebookaway.theonlyusehehasformanfilesistogetthecorrectargumentlistthatthepreviousenlightenedonecreated.thereisnocode,onlylanguage.

    distinguishingcodefeatures:simple,elegant,easytoread.maybeabitcomplicatedforothers,butwithalittleinvestmentmostcanfigureitout.mistakenbelief:programmingiseasy,everyprogrammerislikehimself.mostendearingquality:thelittleeyebrowraisewhenanotherprogrammersays~itcantbedonereads:anythingnotrelatedtoprogramming.historyofrussia?thatsoundsinteresting.mostlikelytosay:Yes,itsfinished.

    Boppity

    March21,2010at3:01am

    ReplyThiswouldbeanicestageofprogrammingcompetence SadlyIcouldnthonestlyclaimtohaveeverreachedorevenseenit!

    coderoom

    March21,2010at7:14am

    ReplyThedescriptionforTheEnlightenedOnesoundsverymuchlikewhattheBuddingGeniuswouldsayifyouaskhimtodescribehimself.

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 24/40

    lincolnboulevard

    March21,2010at10:22pm

    ReplyIagreewithcodenik

    Sidra

    March21,2010at5:32am

    Replyitwasntarant.Itwasjustaquestion.Iveseenusageofshepronounintechdocsmanytimesbefore,Ijustwanttoknow,whyandwhenitstarted.

    and,damn,itscodeSnik!

    codesnik

    March21,2010at5:35am

    Reply[]camealongapostdescribingfivestagesofprogrammerincompetence.Ihighlyrecommendyoutogoreadthearticleandseeifyouidentifyyourselfwithanyofthesetongueinthecheek[]

    Programmerincompetence|Smartengineeringpractises

    March21,2010at9:46am

    ReplyAgoodreadwithsomegoodcomments.Iaddedyourbloginmybookmarks.

    John

    March21,2010at9:54am

    ReplySpoton!AndIlikedtheonecommentallinoneday!greatobservations.

    DeciduousTree

    March21,2010at11:29am

    ReplyIhadtocheckallboxes!!Gotthefeelingthatsomehow,atsometime,Iwenttroughallstages.Nevernamedclasseswithmyinitialthough(dotheyexist??).

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 25/40

    Fortherestyesyourhonor,IconfessIf,andafterhavereadthis,Iwouldstilldaretomakeanykindofselfevaluationonmycompetences,asixthstagewouldsurelyworthtobementioned:theprocrastinatortype.

    Greatarticle.Greetings

    flashopen

    March21,2010at2:10pm

    ReplyThisisfunnyIthinkIdontanylanguagebutbriefly20yearsagoworkedwithFocusandwasprettyproudofmyself.NowIjustdependonyoufolks..thankfully.

    bzirkrants

    March21,2010at5:56pm

    ReplyImeant,ofcourse,Idontknowanylanguages

    bzirkrants

    March22,2010at1:19am

    Reply[]5StagesofProgrammerIncompetenceAmusing[]

    RandomLinks#156|YASDWyetanothersoftwaredeveloperweblog

    March21,2010at7:16pm

    ReplyGreatArticle!Lovedeverybitofit

    AtulKash

    March22,2010at1:47am

    Replyuhaehuaeeayes,ihavefoundmyselfinallstagesbesidesthegurustagehahahaitisinteresting,idevelopmyownapplicationhttp://www.archiveclipboard.com/itisnotmorethanthebestClipboardtoolihavefound,believeme,itriedtousetheavailabletools,allofthemsuckanywaymyprojectsonlyhavegetoutofmyIDEtootherscomputersafteralmostwoyears,andnowitishappy,imhappy,peopleusingitarehappey,sincejan07,ihaveownedmorethan4kusers,itiscoolisnt??checkoutsoftpedia!softoxi!googleit=D

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 26/40

    thisprojectshasfacedsomestagesheredescribed,untiligetmatureenoughtomakethisshitwork!huahahaha

    hopeyouenjoy!

    RafaelKarst

    March22,2010at5:14am

    ReplyGladyouenjoyeditandgoodluckwithArchiveClipboard!Yes,gettingthefirstusersisreallyexciting!Ihopeyoumeanownedasinhaveandnotasinwitharootkit

    YoudgetevenmoreusersifyouaddedtwoorthreescreenshotstoyourhomepagetellingalittlestoryaboutwhatArchiveClipboarddoesandwhythatsawesome.Asinglesentencedescribingwhyavisitorshouldcare,inanicebigfont,andanicebigdownloadbuttonwouldhelp,too.Quotesfromhappyusers,too!

    coderoom

    March22,2010at9:01am

    Replyyoudamnrightcoderoom,imlasyaboutthesite,basiclythemassivedownloadscomefromreviewsiteslike,softpediaredirectsandothersreviewersiguessimgoingtodosomethingthanksfortheadvice!

    RafaelKarst

    March22,2010at2:20pm

    Iamattheveteranlevelandamshowingpromiseofgraduatingtothegurulevelverysoon

    Verynicelyput.Andyes,Ithinkeveryonegoesthroughthesamecycle.YouforgotthelastphasethoughTheLead/Manager Ithinkyouhaveyettoreachthere,elseitwouldhavebeeninthelist!

    Anonymous[Iamstillemployed:)]

    March22,2010at10:27am

    ReplyHmmmmAveryinterestingwaytolookathowonematuresasapragmaticprogrammer.

    AchallengetotheprogrammerinU

    TheMYSTERYSPIRAL

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 27/40

    http://2600hertz.wordpress.com/2010/03/20/themysteryspiral/

    canUcodeit??

    cvs268

    March22,2010at10:49am

    ReplyWhatsthemystery?Thealgorithmisclear:makeanNxNarray,startinthetopleft,windintothemiddledecrementingasyougo,printsaidarray.

    coderoom

    March22,2010at11:26am

    ReplyImatthemadmanstageforwhichyoukindlyleftoutanoption.Iseeprogrammingpatternsintheworldaroundus,insocialnetworks,andIseenaturalpatternsinprograms.

    Juststartedlearningwebprogramminglanguagesinthesecondhalfoflastyear.Fromastrictdietofcfor13yearshittingthewallofacoupledozenlanguagesanddatabasesformatsatoncewasprettyradical.Ivejuststartedtogetcomfortablewithrubyonrails,andJavaScript.ImstillnotproficientbutIvelearnedenoughabouthowinformationflowsthroughrailsstructurestobecapableofbreakingourwebapp.Meandabettersuitedrailshackerareworkingonasocialreader/filterthatjustdoveintothedeepend(web)fromTwitterville.

    MarkEssel

    March22,2010at12:30pm

    ReplyTheonlythingthatIwouldaddisthateveryBuddingGeniuswouldcategorizethemselvesasaGuruhavingmagicallyskippedtheVeteranstage.

    Marshall

    March22,2010at12:56pm

    ReplyFirstupkudosforallowmetobeashe.WhenItweet/replyonforums,theassumptionthatImusthaveaychromosomeisprettymuchuniversal.Makesmerealisewhybitchwhocodeschosethatname

    ImcringingatthewayIbehavedinstage2IrememberoncetellinganHTMLdevthatallsiteswouldbebuiltinflashoneday.ButasanewbieIsuregotalotdonebuiltsomeproperappsinAS1thattookforevertodebugbutwouldneverhavebeenattemptedbythestage3

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 28/40

    me

    CurrentlyImeasingintoVeteranmode.ThemoreItestthemoreIrealisehowfundamentallystupidIamthereisnolimittothesimplicityofthecodeIcanscrewup.TDDiscurrentlymysafetynetitsnotthatitsbetterfortheclient,itjustthatitsbetterformybrain.

    Whatyourereallytalkingaboutthoughisthecyclefromunconsciousincompetence,throughconsciousincompetence,consciouscompetence,unconsciouscompetenceandallthewaybackaroundtobeginagain.Thegreatthingaboutthisindustryisthattheresonlythejourneythedestinationisonamovingplatform

    Stray

    March22,2010at2:44pm

    ReplyYourewelcometheunconsciousincompetence=>unconsciouscompetencecycleisaninterestingwayoflookingatit,althoughinmyexperiencedespitebeingmuchmorecompetentthananewbie,theairquotedguruisstillalotlessenlightenedthanshelikestothinkmaybeitsaspiralofincompetence?

    coderoom

    March22,2010at3:16pm

    ReplyAhyesthatsexactlywhatImeantbyandallthewaybackaroundtobeginagain.

    Theresnostayingstillifyourenotlearningthenyouresimplyslidingbackwardswithyoureyesclosedbutchargingmoreperhourforeachcycleyouvecompleted!

    Stray

    March22,2010at4:54pm

    InterestinglyIhaveseenthatsheistheprevalentterminprogrammingliterature(forbothusersanddevelopers)atleastliteraturewrittenbybetterprogrammers/writers(havealookatMSDNmagazinetoseewhatImean).

    JonathanDickinson

    March23,2010at7:36am

    Reply[]5StatesofProgrammerIncompetence[]

    SAPABAPdevelopersNEVERdothisWelcometoMyHead

    March22,2010at4:07pm

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 29/40

    ReplyQuiteinteresting,butIwouldntclassifyadynamiclanguageasmostdefinitelythetoolofchoicefortheGuru.

    Shewouldratherusethecorrecttoolforthejob.

    Writingasocketserverthatcanhandle100softhousandsofconnectionsuseastaticallytypedlanguage.Maybeevenwhatcouldbearguedastoomuchproceduralcode.

    Writingadesktopclientfortwitter?Agarbagecollecteddynamiclanguagewouldbebest.HeavyOOPorfunctionalstyledependingonwhatisbeingaccomplished.

    Theinternetisjustcurrentlygoingthroughadynamiclanguageforeverythingfad,theoldtools(OOPandstaticlanguage)stillworkjustaswell.

    IworkwithoneofthesepeoplethetypeofpersonwhohasgonefarpastGuru(IwouldhappilyadmitthatIamstucksomewhereinbetweenAbstractionFreakandVeteran ).

    JonathanDickinson

    March22,2010at4:55pm

    ReplyHaveyoumissedthesignificanceoftheairquotesaroundguru?Atrueguruwouldusewhateverworks,butthehyperfashionableguruismostdefinitelyadynamictypingconvert.Shethinksshesatrueguruandhastheanswertotheworldsprogramming,butsheisntandhasntnotyet,anyway.

    coderoom

    March22,2010at7:13pm

    ReplyIguessIdid .

    JonathanDickinson

    March23,2010at7:29am

    BTW,quiteimpressedonhowmanycommentsyourespondto.Youdontseethatkindoffollowthroughonblogsthesedays.

    JonathanDickinson

    March25,2010at1:14pm

    ^_^

    coderoom

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 30/40

    March25,2010at1:40pm

    Thanksfortheexcellentpost.Itgavemeafewchuckles.Ifeltalittlecompelledtorespond,althoughIamnotsurewhy.Ithinkthemostimportantthingisrecognizingtheselevelsandhavingthehumilitytoacknowledgethatyoutravelinandoutofeachdependingonmultiplefactorsnotjustlengthoftimeintheprofession.

    IvebeenprogrammingsinceIwas8,andworkingprofessionallyfor15years.Ihaveexperiencedeachlevel,butshyawayfromusingthetermguru.Tomeitsuggestsreachingsomeplateauofknowledge,andthenegativeconnotationofanegotogowithit.

    Inreality,guruisfairlyaccurateforitsreferencetoattainmentofknowledgeandteachingothersbothkeysforprogrammingsuccessandlongevity.

    Constant,rapidchangeisaforcetoreckonwithinthisindustryandmakesusallnewbiesatsomelevel,somemoreenthusiasticthanothers.Keepyoureyesopenandmouthshut,learnfromandteachthosearoundyou,usethemostappropriatetoolforthejob,andyouwillbehappyandsuccessful.

    Nathan

    March22,2010at9:11pm

    Reply^lol@thepeoplewhowrotecommentstoassertthemselves.

    goodreadthough,gavemeafewlaughswiththeguys,itwouldbefunnyifsomeoneprofiledmanagementstylesfromdeveloperperspective.

    Dznuts

    March23,2010at2:45am

    ReplyAfterguru,youmightconsideredascendedmode,takendirectlyfromtheStargateseries.(AlsocalledDanielJacksonmode.)Ascendedprogrammersappearatoddmoments,smileknowingly,givehintsandthentellyoutheycanttellyoutheanswerbecausethenyouwouldntlearnthetruthofyourwork.

    Thesepeoplecancausedincredibleofficerage.

    Gene

    March23,2010at1:15pm

    Reply

    ImindbequalifiedasGuru,butIpreferstaticallytypedlanguages,Haskellforinstance.

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 31/40

    ImindbequalifiedasGuru,butIpreferstaticallytypedlanguages,Haskellforinstance.ProbablyImlazyveterantocarefultousedynamiclanguagesandlazytoputassertionsbyhand.

    suigintou

    March23,2010at1:47pm

    ReplySpoton

    AndImamazedathowseriouslysomepeopletakethisposttheressomecommentsonherethatIsweartheydidnthaveanysenseofhumoraboutthemselves/usingeneral.

    MeImdefinitelyaguru!!lol

    Ric

    March24,2010at7:00am

    ReplyNotaprogrammermyselfbutdogettositdownandspeakwiththemoften.AmazinghowwellyourcategoriesgenerallyfitthoseIvehadthechancetomeet.

    Funread.

    mattpagemgisinc

    March24,2010at1:55pm

    ReplyWellthisisquitecondescendingIthinkyoushouldnotcategorizewhatshouldnotbe.

    Someprogrammersoutthere(asinotherjobs)arejusthumbleandtrytolearnandpractice,gettingbettereveryday.AndImproudofbeing(oratleasttryingtobe)oneofthem.

    Ihaveneverbeenthroughoneofthesestages(exceptmaybethenewbie,butonlyfortheEnthusiasticpart).

    Idontknowwhereyouwork,butifitisyourpointofviewforthisjob,Isurelydontwanttoworkthere

    kronos85

    March24,2010at3:49pm

    Reply

    Ireallyenjoyedthewhole.Thetext,thecomments

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 32/40

    Ireallyenjoyedthewhole.Thetext,thecommentsAndwhatIfeeltobeveryimportantisactuallythatYourarticleandthismarvelousdiscussionareTEACHINGallofusofourindividualandcollectivemistakes.Justrecognisingyourselfinanyofthestagesisaneyeopeningexperience!!!

    Imyselfprogramcomputersfor36years,so,fromthatpointofviewIamaveteran(IevenprogrammedtheLGP21,thelittlebrotherofLGP30!seeMELsstory),andyes,probably,inmyownidiom,passedmanyofthementionedstages.

    However,itisalwayswisetobehumble.Itiseasieronyourself,andontheothers.

    Zork

    March24,2010at6:55pm

    ReplyIwasonceworkingforacompanywhichwasFULLYintotheTheAbstractionFreakstage.Theyneverfinishedtheproject,thecompanygotbust,theinvestorslostmoney,IlostsomeearnedincomeandthejobHowever,Istill,20yearslater,haveaveryexpensiverobotmotorandencodertheywantedtotrowawaywiththerestofgarbish

    Zork

    March24,2010at7:05pm

    Reply[]5StagesofProgrammerIncompetenceyieldthought.ShareandEnjoy:[]

    forthoseofyoubeginingtobudinyourcodewritery.|Spacemadness

    March24,2010at8:38pm

    ReplySincewhenJavascriptandPHPareprogramminglanguages?

    Justbeingmean,evenPHPisOOnow

    remusdragos

    March24,2010at9:12pm

    ReplyAmazingpost!IwouldliketothinkIampastthenewbiephasebuteverynewbugsometimesmakesmescaredwhatifitallcomescrumblingdown?Butthenanewissuealsobringsupnewsolutions,newideasandnewthingslearnt.Iguessthephasesarentseparatedbywallsofstoneafterall.

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 33/40

    Imgoingtobookmarkthisandcomebacktocheck

    Debby

    March25,2010at8:56am

    ReplyILOLdatHisauraofmeasured,unflappablecalmthatmakesitclearthateventhedirestemergencywontmakehimworkanyfasterWow,thisisME!

    zoxell

    March25,2010at5:16pm

    ReplyHavingreadallyourcomments,athoughtcomestomindProgrammersarethewindbeneathourwings.Sure,Iwantthebestvehicleonthemarket;butIjustwanttogetinit,driveit,andenjoyitwithouthavingtothinkaboutwhatallittooktobuilditthesamewaykidswanttoeattheirfavoritemealwithoutgivingthoughttowhatallwentintoitspreparation.SoIguessthismakesyalltheroadforourrubber?OrmasochisticperfectionistsoperatingonBloomssixlevelsallatonce,ifthatspossible?Octopusmodedoescometomind.Plus,yallsperceptionoftheworldissouniquethatyouuseyourownlanguagetocommunicate.Bottomline?Yourprogramminggeniusregardlessofthelevelyoureongivesmycreativityfreedomofexpression.Sothanks!

    DeliLanoux,Ed.D.

    March26,2010at11:56am

    Reply[]IwaslearningtoprogramsomeonetoldmethatIshouldtrytoreadasmuchcodeaspossible.BuddinggeniusthatIwas,Ithoughtthiswasadviceforstupidpeoplewhoneededtolearnfromtheirbetters.I[]

    OnTheFearofReadingCodeyieldthought

    March26,2010at3:02pm

    Reply[]FivestagesofprogrammerincompetenceInterviewswithaverageprogrammersSoftwareEngineeringRadioepisodeonClojure[]

    WeekendmiscellanyTheEndeavour

    March26,2010at5:33pm

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 34/40

    ReplyAgoodbreakdown.Asopposedtoapurelylinearprogression,Ifindthesetobecyclical.IcomeroundbasedonthecompanythatIamat,learninganewlanguage,workingonanewprojectorjusttheseasons.Irecognizethattree

    AmberShah

    March26,2010at11:33pm

    Reply[]5StagesofProgrammerIncompetence[]

    Destillat#16|duetsch.infoOpenSource,Wet,Web,Software

    March27,2010at11:00am

    Replynicesite..veryinteresting!!ineedupdatesfromyou.

    cahbagoes

    March29,2010at8:54am

    ReplyThankYou!!!

    Imnotatprofi butimlearningtobesomekindof

    whiteHacker

    usuallyIknowwheremaybeerrorinthedeveloperstools

    haveanicedays

    D.A.B

    dB

    March29,2010at8:56am

    Reply[]https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/[]

    hackification.comRediscovertheJoyofCoding::WeeklyLinksMicrosoft,WindowsPhone7,GeneralCoding,andabitofhumour

    March29,2010at8:24pm

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 35/40

    ReplyLovedreadingitman!Goodwriteindeed.Sonomatterwhatstageyoureat,youstillremainincompetentinsomewayorother,thatisthebeautyofitbeingincompetentandworkingtowardscompetenceandthenrealizinganotherlevelofincompetenceinthemidstoffreshlyachievedcompetence!Abstract..hmm!?

    UmeshAdtani

    March30,2010at4:33am

    Reply[]IwaslearningtoprogramsomeonetoldmethatIshouldtrytoreadasmuchcodeaspossible.BuddinggeniusthatIwas,Ithoughtthiswasadviceforstupidpeoplewhoneededtolearnfromtheirbetters.I[]

    ProgrammerblogofsomekindSomesummarywhichintimatesthetoneandcontentoftheblog.

    April1,2010at1:41am

    Reply[]Thesearticleisobviouslyanalyzethesepeople.https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/[]

    TheseProgrammersBrainstormonComputerScienceRelatedThings

    April1,2010at6:54pm

    Reply[]The5StagesofProgrammerIncompetencefrom:HackerNewson26Mar2010[]

    SharedItemsonApril7,2010

    April7,2010at9:02am

    Reply[]}Thisdescriptionisntonlyaptforprogrammers,Iwouldapplyittoengineerswhoregularlywrite[]

    TalesfromtheEngineeringFloor5StagesofProgrammerIncompetenceWataMalaysianOilandGasEngineer

    April16,2010at10:03pm

    Reply[]2010inProgramowanie,PrzemyleniaRegeditnaswoimblogunapisanotk,wktrejpodaadresciekawegoartykuunatematetapwprzejciowychdotyczcychkadego[]

    Cojestnajwaniejszewprogramowaniu?MorituriussDevlog

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 36/40

    June20,2010at7:21am

    Reply[]5StagesofProgrammerIncompetenceyieldthought[]

    linksfor20100319|Acervus

    June20,2010at9:08pm

    ReplyNodatall.

    OlafDoschke

    June24,2010at10:35am

    Reply[]https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/vara2a_config=a2a_config||{};a2a_config.linkname=5StagesofProgrammerIncompetence;a2a_config.linkurl=http://aronze.com/2010/06/28/5stagesofprogrammerincompetence/";Filedunder:blahblah,devLeaveacommentComments(0)Trackbacks(0)(subscribetocommentsonthispost)[]

    5StagesofProgrammerIncompetence|aronze

    June28,2010at5:09am

    ReplyThatsagreatbreakdown.Iamjustanewbie.=)

    TomWelling

    July6,2010at2:36am

    Reply[]madeitrightwasmyinnocencebackwhenIknewnothingaboutprogramming(i.e.whenIthoughtIkneweverything)longerlivedprogramsstartedaccruingoddifstatementsandshoehornedadditionalfunctionality[]

    MakeExceptionsyieldthought

    July29,2010at2:37pm

    ReplyAccordingtoyourdivisions,Ibelongtotheveteranclassrightnow.Iwentthroughtheenthusiasticnewbieandabstractionfreak.

    KoutheirAttouchi

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 37/40

    July30,2010at8:39am

    Reply[]5StagesofProgrammerIncompetenceyieldthought[]

    DailyDigestSeptember4th

    September4,2010at6:11pm

    ReplyWow!Realycool.ItmademeremembertheHowtokilladragonandsavethedamseltheprogrammersway.

    Ifindthislinkwiththe(maybetheoriginalfromthebrazilianversionwastranslated)Englishversion:http://generalforums.com/t69877/

    RCDMK

    September12,2010at5:16pm

    ReplyNicethanksforthelink!

    coderoom

    September21,2010at7:15am

    ReplyYoualsoforgottheframeworkdude.

    Distinguishingcodefeatures:Addslotsofframeworkstohis/herprojecttosolvesimpleproblems.Theprojectisoverloadedwithcoolopensourceprojectsdownloadedfromanopenrepositories.

    Mistakenbelief:Youdonthavetospendyourtimecreatingownstuff;othersdidalreadycreatedthisandthosepeoplealwayscodebetter+moreoptimized.Hetriesthousandsofplugins,addonsandframeworks.Healsospendsextratimetofigureouthowtogetthemostoutoftheframework,evenifitisnotneededyet.Heneedtoreadthefulldocumentationbeforehecandecideiftheframeworkreallyfithisneeds.Afterhalfadaygoogling;hehasgotagreatnewframeworkwhichheprobablycoulduseinthefuturetoo,butforthenextprojectthereisanotherframeworkwaiting.

    Mostlikelytosay:OhNoyoucreatethatcodeyourself?Everythingisalreadycreated.Theremustbeaframeworkforthat.Wait;letmeGooglethatforyou.

    Mark

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 38/40

    September20,2010at8:43pm

    ReplyAworthyaddition

    coderoom

    September21,2010at7:15am

    ReplyIrecallanotheraspectoftheBuddingGeniusstage(solongago):enthusiasticallystartingandrunninglunchnlearngroupstotacklenewlanguagesandtoolswewerediscouragedfromusinginourlegacyshopsuntilwewereabruptlylaidoffforbeingoldlanguagecodersandreplacedwithanewgeneration.Alwaysaslowlearner,Ididthatthreetimesatthreedifferentcompanies!heeheegoodtimes

    Greta

    September20,2010at10:04pm

    ReplyArgh!Hopeyouvefoundaclassplacetoworknow,atlast!

    coderoom

    September21,2010at7:16am

    Reply[]https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/[]

    5StagesofProgrammerIncompetencearg3.net

    January24,2011at3:58am

    ReplyIdontthinkthatIpassedoneofthosestages.Coz,Ireallydontlikeprogrammingitsjustthat,Ireallyneedtoloveit,tochallengemyselfandtoprovethatIcanalsobeagoodprogrammeroneofthisdays.ImanOracleDeveloperbyprofessiontoday.Because,ProgrammingisaPRACTICE,notjustaJOBbadthing,theauthorofthatsayingisunknown.

    faith

    February25,2011at5:59am

    ReplySotrue!Imonprogrammingforabout5years.HeadingtoVeteranaftergoingthroughnewbie,buddingandabstract

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 39/40

    ThinH

    July15,2011at4:21am

    Reply[]theideathatbuildingthenextflashsiteshouldbeeasierandquicker.ThisprojectleadmetomyAbstractionFreakPhaseasaprogrammerasIwasquicklyoverwhelmedwithabstraction.ThelatestversionfoundonGitHub[]

    WhatAS3Projecttofocusonnext?|DoesFlash?|AS3Blog

    January17,2012at10:09pm

    Replyivebeeninthismesssince1989whatidliketoknowiswhendidyouhityourburnouts?

    RobinGist

    September2,2012at4:31pm

    ReplyIvebeenprogrammingforatouchover20years,professionallyformorethanadecade.Ihaventhitanyburnouts(yet!);Ithinkthatsaysmoreaboutmyemployerandenvironmentthanmepersonallythough.

    coderoom

    September8,2012at5:24am

    Reply[]5StagesofProgrammerIncompetence[]

    WeeklyInterestingFinding(08/27/201209/03/2012)Onthewaytobegreat

    September6,2012at3:30am

    Reply[]mostamazingiPhoneyet5StagesofProgrammerIncompetenceyieldthoughtCoilingUnattachedRope|HowtoCoilUnattachedRope|RopeCareKnotsTweet!function(d,s,[]

    FridayLinks#219|BlueOnionSoftware*

    September8,2012at12:22pm

    ReplyVerysimilartotheHinduVedas.Ooops,IguessthatrevealswhichstageIamat.

    SheltonSmith

  • 6/29/2015 5StagesofProgrammerIncompetence|yieldthought

    https://coderoom.wordpress.com/2010/03/19/5stagesofprogrammerincompetence/ 40/40

    June6,2014at1:18pm

    Reply[]heressomethingIcanrelateto:5StagesofProgrammerIncompetence.IdputmyselfintheVeteran[]

    WhatStageAreYouIn?

    May5,2015at3:53am

    Reply

    CreateafreewebsiteorblogatWordPress.com.TheJournalistv1.9Theme.