User Control Panel
Search iVirtua
Advanced/Tag Search...
Search Users...
What is iVirtua Exclusive Community?
  • An exclusive gaming industry community targeted to, and designed for Professionals, Businesses and Students in the sectors and industries of Gaming, New Media and the Web, all closely related with it's Business and Industry.
  • A Rich content driven service including articles, contributed discussion, news, reviews, networking, downloads, and debate.
  • We strive to cater for cultural influencers, technology decision makers, early adopters and business leaders in the gaming industry.
  • A medium to share your or contribute your ideas, experiences, questions and point of view or network with other colleagues here at iVirtua Community.
Guest's Communication
Live Chat
Teamspeak (VOIP) Audio Conference
Private Messages
Check your Private Messages
Themes
Choose an iVirtua Community theme to reflect your interests...
Business Theme
India/Arabic Theme

Gaming Theme
iVirtua Recommends
Fly Emirates Advertising
12 Signs You're a Crappy Developer / Programmer
Digg This Digg Topic Tag it on del.icio.us Tag topic on On del.icio.us Technorati Search Technorati Search Post to Slashdot Post to Slashdot
You are currently in Programming, Web and Software Design/Development
Post new topic Reply to topic
Mon Dec 24, 2007 6:35 pm Reply and quote this post
You know those crappy programmers who don’t know they are crappy?You know, they think they're pretty good, they spout off the same catchphrase rhetoric they've heard some guru say and they know lots of rulesabout the "correct" way to do things? Yet their own work seemsseriously lacking given all the expertise they supposedly have? Youdon’t know any programmers like that? Come one, you know, the guys whoare big on dogma but short on understanding. No, doesn’t sound familiar?
Then here are some signs you're a crappy programmer and don't know it:

  • Java is all you'll ever need. You don't see the needfor other languages, why can't everything be in Java? It doesn't botheryou at all to see Python or Ruby code that accomplishes in 10 lineswhat takes several pages in Java. Besides, you're convinced newlanguage features in the next release will fix all that anyway.(BTW,this can be almost any language, but right now the Java community seemsmost afflicted with this thinking)
  • "Enterprisey" isn't a punchline to you.This is seriousstuff dammit. "Enterprise" is not just a word, it's a philosophy, a wayof life, a path to enlightenment. Anything that can be written,deployed or upgraded with minimal fuss is dismissed as a toy that won't"scale" for future needs. Meanwhile most of the real work in youroffice is getting done by people sending around Excel spreadsheets asthey wait for your grand enterprise visions to be built.
  • You are adamantly opposed to function/methods over 20 lines of code.(or 30 or 10 or whatever number of lines) Sorry, sometimes a reallylong function is just what's needed for the problem at hand. Usuallyshorter functions are easier to understand, but sometimes things aremost simply expressed in one long function. Code should not be mademore complex to meet some arbitrary standard.
  • "OMG! PATTERNS!" Developers who actively seek to applypatterns to every coding problem are adding unnecessary complexity. Farfrom being something you look to add to your code, you should feel badevery time you are forced to code up another design pattern, it meansyou are doing busy work that makes things more complex and is ofdubious benefit. But hey, your code has design patterns, and no one cantake that from you.
  • CPU cycles are a precious commodity and your programming style and language reflects that belief.There are plenty of problem domains where you have to worry a lot aboutCPU cycles (modeling/simulation, signal processing, OS kernels, etc),but you don't work in them. Like nearly every software developer, yourbiggest performance problems are all database and I/O related. The onlyeffect of optimizing your code for CPU is to shave 2 milliseconds offthe time to get to the next multi-second database query. Meanwhile yourdevelopment has slowed to a crawl, you can't keep up with the rapidlyevolving requirements and there are serious quality issues. But atleast you’ll be saving lots of CPU cycles... eventually.
  • You think no function/method should have multiple return points.I've hear this from time to time, and usually the reason given isbecause the code is easier analyze. According to whom? I find simplecode easy to analyze, and it often simplifies the code to have multiplereturns.
  • Your users are stupid. Really stupid. You can't believehow stupid they are, they constantly forget how to do simplest thingsand often make dumb mistakes with your applications. You never considermaybe it's your application that’s stupid because you're incapable ofwriting decent software.
  • You take great pride in the high volume of code you write.Beingproductive is good, unfortunately producing lots of lines of code isn'tquite the same as being productive. Users never remark "Wow, thissoftware may be buggy and hard to use, but at least there is a lot ofcode underneath." Far from being productive, spewing out tons of crapcode slows down other devs and creates a huge maintenance burden forthe future.
  • Copy and paste is great, it helps you write decoupled code!You defend your use of copy and paste coding with odd arguments aboutdecoupling and removing dependencies, while ignoring the maintenancedrag and bugs code duplication causes. This is called "rationalizingyour actions".
  • You think error handling means catching every exception, logging it and continuing on.That’s not error handling, that’s error ignoring and is thesemantically equivalent to “on error next” in VB. Just because it gotlogged away somewhere doesn’t mean you’ve handled anything. Errorhandling is hard. If you don’t know exactly what to do in the face of aparticular error, then let the exception bubble up to a higher levelexception handler.
  • You model all your code in UML before you write it.Enthusiastic UML modeling is typically done by those who aren’t strongcoders, but consider themselves software architects anyway. Modelingtools appeal most to those who think coding can be done in conferenceroom by manipulating little charts. The charts aren’t the design, andwill never be the design, that’s what the code is for.
  • Your code wipes out important data. You wrote some codethat’s supposed to overwrite application files with new files, but itgoes haywire and deletes a bunch of the user's important data files.

That last one, I did that. Just last year. Honest mistake and itnever showed up in QE’s testing. Sometimes I’m crappy. Sometimes we allare. I have been guilty of most of the items on the list and stillstruggle with a few (especially premature optimization). So try not totake anything on the list too personally, but feel free to flame meanyway if it makes you feel better.

Contributed by Editorial Team, Executive Management Team
372659 iVirtua Loyalty Points • View ProfileSend Private MessageBack to Top

Tue Dec 25, 2007 3:52 am Reply and quote this post
Intersting post, true in many senses of the word. I mean i'm not saying i'm perfect when i started i was very noobish stole pieces of code here there and everywhere, none of it was published but it was a good way to learn.

Even now, 2 years experience and various contracts and jobs behind me, i'm still proud of writing lots of lines (obviously the quality is still there) and like to complain abotu the amoutn of support questions i get. In all honesty i don't treat them like idiots but it does get annoying constnatly repeating yourself.

Everyone has their tendencies and flaws i can't say i actually know someone who can tick all of the list above =p

Contributed by Noobarmy, Editorial, Marketing & Services Team
9726 iVirtua Loyalty Points • View ProfileSend Private MessageBack to Top

Related Articles
Post new topic   Reply to topic


Page 1 of 1

iVirtua Latest
Latest Discussion

Discuss...
Latest Articles and Reviews

Latest Downloads
Subscribe to the iVirtua Community RSS Feed
Use RSS and get automatically notified of new content and contributions on the iVirtua Community.


Tag Cloud
access amd announced applications author based beta building business card case company content cool core course cpu create data deal dec demo design desktop developers development digital download drive email feature features file files firefox flash free future gaming google graphics hardware help industry information intel internet iphone ipod jan launch linux lol love mac market media memory million mobile money movie music net nintendo nov nvidia oct office official online patch performance playing power price product program ps3 pst publish ram release released report rss sales screen search security sep server show size software sony source speed support technology thu tue update video vista war web website wii windows work working works xbox 360 2006 2007 2008

© 2006 - 2008 iVirtua Community (UK), Part of iVirtua Media Group, London (UK). Tel: 020 8144 7222

Terms of Service and Community RulesAdvertise or Affiliate with iVirtuaRSSPress Information and Media CoverageiVirtua Version 4PrivacyContact