What makes YOU a good programmer?

Just curious as to what sort of strengths my fellow programmers in particular what one thing do you think gives you an advantage over most people?
I like to think I have a good memory, I can just look at a class diagram of a program I wrote two years ago(my programming history :) and I can remeber all of the logic behind it and a large portion of the implementation.
There are so many situations where a good memory comes in handy... certainly when your trying to find out why a certain part of a program is not working and you know from memory some method signatures of a distant superclasses because you skimmed through its API one day.

Over the years, I've worked with all sorts of software developers ranging from Mensa geniuses to tech school drop-outs. Though my I.Q. isn't genius level, it is well above average. Everywhere I've worked I've always moved to the top very quickly, despite the talented and intelligent people that I pass up along the way. I always seemed be fixing bugs that these supposedly highly sought after developers were creating, while my code was consistently breezing through the test department. I actually claim to be the creator of the title "Software Janitor" (which has a good story surrounding its creation). One time, a developer I was mentoring asked me, "How did you get so good?" The answer was obvious to me, but is completely overlooked by most others. It's my ATTITUDE toward software development that sets me apart. So, for only the second time in history being made available to the general public, without further ado, here is "Fred's Software Development Attitude".
In no particular order
Software development is a science, not an art. There is still a great deal of creativity involved in software development, but development methodologies should be understood and utilized. Development standards should be adhered to as closely as possible.
Comment your code. Accept from the start of a development task that somebody else will eventually examine the code that you are writing and will need to understand what is going on. Make your code neat and readable, and use comments in first person form. Remember, through your comments you are communicating directly with the reader, and that the reader may not be as experienced as you are.
Watch your code execute. When ever possible, you should white-box test your code to make sure that all of the conditions that you wrote execute as you planned. Sometimes white-box testing cannot be performed adequately in the environment in which you are working. In that case, get creative and invent a way to test the code.
Aesthetics are on equal footing with function. This does not mean that you should load up your user interface with cool graphics. A user interface should appear neat and organized. User interface features must be consistent throughout the application, and you should adhere to platform specific user interface standards.
When given a new development task, assume that it can be done. Then ask yourself, "How can I do this?" Do not waste time wondering if the task is possible. Always assume from the start that it can be done, and that you will find a way to do it. Eliminate the impossible through reasoning.
Know your development tool. If you are wasting time hunting for features in your development tool, you are wasting valuable creative time. Take the time that you need to learn your development tool. It is an investment in yourself and your company.

Similar Messages

  • What do you use to make Gnome apps look good in KDE4?

    What are you all using to make Gnome apps (like Firefox, Gimp, Inkscape.. etc) look good in KDE (I am using KDEmod).
    I tried Qtcurve (I think it works the best), gtk-qt-engine (for some reason it didn't seem to work for me) and others...
    I want to hear opinion from other people (who use KDE or possibly KDEmod) and who are probably using Arch longer than me. This is my first successful Arch install.
    Last edited by kdar (2009-12-15 03:07:05)

    +1 for qtcurve
    yes.. i need to rebrand the startmenu icon....
    Last edited by Rasi (2009-12-15 07:06:46)

  • What does it take to be a good programmer

    Hello i am a student i have just finished my second year where i designed a gui using swing class that takes in a task name and date and displays it on a scroll list with neatbeans 5.1.1
    My java programming is not that good and next year i want to be very good in JDBC driver 1,2,3,4. so i can maybe be a programmer or a database administrator
    So can you please tell me what is the best way to learn java online also i would like to know how to use .net as well.
    so is it best to go through all the sections 1 at a time in http://java.sun.com/docs/books/tutorial/reallybigindex.html
    is it best to write new java programs every week e.g like the one i mentioned above(If so where do i start and what type do i do).
    Or can you figure another way that i can be a very good programmer and can you give me some tips

    My java programming is not that good and next year i want to be very good in JDBC driver 1,2,3,4. so i can maybe be a programmer or a database administratorStop right there. Pick one and forget the other. Programmer or DBA. They are completely different career paths. And don't worry about the driver types, just learn JDBC if you want to write Java code that uses databases. The driver type isn't that important, it's more configuration than anything.
    So can you please tell me what is the best way to learn java online also i would like to know how to use .net as well.I'm going to stop you again. You need to choose Java or .net, not both, then go in that direction. Just learning one of those platforms well may take years, so don't bite off more than you can chew.
    so is it best to go through all the sections 1 at a time in http://java.sun.com/docs/books/tutorial/reallybigindex.html
    is it best to write new java programs every week e.g like the one i mentioned above(If so where do i start and what type do i do).The best thing to do is keep working with code. Read it, write it, download, compile, and run it, extend it, etc.
    Or can you figure another way that i can be a very good programmer and can you give me some tipsSpend a good amount of time putting a good amount of effort into programming and you'll hopefully end up being a good programmer. Oh, and stay away from your Nintendo, strip clubs, world of warcraft, grand theft auto, and anything else that will suck your life away.

  • Is there a good GUI tool on linux for backups? What do YOU use?

    Hi all,
    I feel Linux lacks a good and simple graphical tool to do desktop backups for regular users. I'm thinking of writing one myself (probably a front-end to a good command line tool), but before I get started, I want to make sure I'm not reinventing the wheel.
    So:
    - Is there a good graphical tool available already? It should be: simple (minimalist interface, sane defaults), fast and incremental.
    - What do YOU currently use for your desktop backups?
    EDIT: rsync alone is not great, because a good backup solution keeps multiple snapshots. Imagine you deleted a file by accident 15 days ago, and realize only today: rsync won't save you.
    EDIT2 : I have tried backintime, I think it's a step in the right direction, but it's not that great. Maybe I should improve on it instead of starting something new, though.
    EDIT3 : Has anyone tried PyBackPack (http://andrewprice.me.uk/projects/pybackpack/) ? I'm trying it at the moment and it seems to be getting it right. I'd like to hear some success stories before getting my hopes to high
    Last edited by lardon (2010-05-11 13:33:55)

    It doesn't snapshot -- I occasionally back-up my back-ups and don't need that -- but it does its job well.
    #!/bin/bash
    ### System Backup ##############
    # Version 0.5 by Scott Garrett #
    # Wintervenom [(at)] gmail.com #
    backup_label="demonpit"
    exclude="/dev/shm/rsync-excludes.rc"
    excludes=(
    'tmp/*' # Temp files.
    'tmp/.*' # Hidden temp files.
    '.mozilla/firefox/*/Cache' # Firefox caches...
    'cookies.sqlite' # Mozilla-based cookies.
    'formhistory.sqlite' # Mozilla-based form history.
    '.thumbnails' # Thumbnail cache.
    '.recently-used.xbel' # Recent-open history.
    '.ccache' # Compiler caches
    'sessionstore.js' # Firefox session-saves.
    '.gvfs' # GNOME virtual filesystem.
    '.local/share/Trash' # XDG trash.
    '.local/share/user-places*' # Recent-open history.
    '.purple/logs' # Pidgin/Finch logs.
    '.cache/Thunar/thumbnailers.cache' # Thumbnailer cache.
    '.cache/chromium' # Chrome cache.
    '*~' # Backup/temp files.
    out () {
    echo ">> $*"
    stat_done () {
    echo ">> ...done."
    stat_fail () {
    echo ">> ...failed!"
    if [ $UID != '0' ]; then
    echo "Must be executed as root user."
    exit 1
    fi
    out "Mouting backup device ('$backup_label')..."
    backup_dev=`readlink -f "/dev/disk/by-label/$backup_label"`
    if mount | grep -qF "$backup_dev on"; then
    backup_root=`mount | grep -F "$backup_dev on" | cut -d' ' -f3`
    echo " - This device seems to already be mounted at '$backup_root'."
    echo ' Do you want to use this, instead (y/N)?'
    echo -n ' << '
    read -n1 confirm
    echo
    [ "$confirm" != 'y' ] && exit 1
    else
    backup_root="/mnt/$backup_label"
    mkdir -p "$backup_root"
    if ! mount -o noatime,user "$backup_dev" "$backup_root"; then
    echo ' - Failed to mount device.'
    exit 1
    fi
    echo ' - Device mounted successfully.'
    fi
    out "Backing up system..."
    echo > /tmp/rsync-excludes.rc
    for file in ${excludes[@]}; do
    echo "$file" >> "$exclude"
    done
    rsync -axl -h --progress --delete --delete-excluded --exclude-from="$exclude" /{home,usr,opt,var,*bin,lib*,etc,boot,root,srv} "$backup_root/$HOSTNAME"
    mkdir -p "$backup_root/$HOSTNAME/"{dev,sys,proc,tmp,mnt,media}
    mkdir -p "$backup_root/$HOSTNAME/var/"{tmp,lock}
    chmod 1777 "$backup_root/$HOSTNAME/tmp" "$backup_root/$HOSTNAME/var/"{tmp,lock}
    stat_done
    out "Backing up package list..."
    pacman -Qqe | grep -v "$(pacman -Qmq)" > "$backup_root/$HOSTNAME/pacman.list"
    pacman -Qmq > "$backup_root/$HOSTNAME/aur.list"
    stat_done
    out "Unmouting backup partition..."
    if umount "$backup_dev"; then
    rmdir "$backup_root/$HOSTNAME"
    rmdir "$backup_root"
    else
    echo ' - Could not unmount.';
    fi

  • Book on digital B&W? What makes a good B/W image?

    I want to purchase a book on digital B/W photography. Ideally, it would contain information about how to take the quality of color images that are best edited into B/W. I would like information on how much contrast to look for when shooting, exposure pointers, and how to edit to B/W using Elements ( have PSE7).  I need pretty basic information, not super technical information that I wouldn't understand!  And, here's a basic question, "What makes a good B&W photograph?" Can you recommend a good online site or forum for B/W?

    There are many ways to convert color to B&W. Newer versions of PSE have the Smart Brush which will do the trick (I don't know if PSE7 has it, I'm only on PSE2). For other methods, refer to past forum topic http://forums.adobe.com/message/2698012 where I give some examples in msg#4.  As to your question about what makes a good B&W, my only answer is that it is a matter of taste. In some cases a harsh contrast looks better, in other cases a soft looks better. There is no one "correct" answer.
    You might also want to search this forum for "convert black white" for many more tips and methods.

  • Apple, what have you done? 8.01 makes my ipad seems like it is back on dial up. Don't fix what ain't broken, or is your policy break it so we have to fix it?

    Apple, what have you done? 8.01 makes my ipad seems like it is back on dial up. Don't fix what ain't broken, or is your policy break it so we have to fix it?

    Hi The best option is to do a factory Reset this will get rid of any bugs And set up iPad as new. Just use same Apple ID you will get all your Apps & Data back. Do this over Wifi Cheers Brian

  • Do you have any idea, what makes to fix this error in creating PO.

    The error is u201CDocument 101600 does not existu201D
    Do you have any idea, what makes to fix this error in creating PO.The error is u201CDocument 101600 does not existu201D  Here the 101600 is PO no.

    Hi
    Please check in t.code: RZ20 .
    You can find out the nature of this error
    Regards
    G.Ganesh Kumar

  • "Do you want to allow the following program from an unknown publisher to make changes to this computer?" I mean....what would you do? Is it safe to click yes....(Don Don Don...*sound effect*)..please help...

    Okay everybody...so I'm on the struggle bus so I'm going from Photoshop cs6 off my old broken laptop to trying to dwn Photoshop Cs2...either way I love PS. Now when I tried downloading it for free from Adobe...succeeded...but when I went to the download folder to install it, it said "Do you want to allow the following program from an unknown publisher to make changes to this computer?" I mean....what would you do? Is it safe to click yes....(Don Don Don...*sound effect*)..please help...

    If you already have a license for photoshop cs6, why do you want photoshop cs2?
    You can just install photoshop cs6 on your new computer provided both operating systems are the same kind (both mac or both windows)
    If you don't have an install dvd for cs6, you can download photoshop cs6 from here and use your serial:
    http://helpx.adobe.com/x-productkb/policy-pricing/cs6-product-downloads.html

  • I have a question can you please add so the iphone also have 5 icon dock like the iPad have it would make my day easy as h..:) maby in the next update? What do you think?

    I have a question can you please add so the iphone also have 5 icon dock like the iPad have it would make my day easy as h..:) maby in the next update? What do you think? What do everyone think?

    I have a question can you please add so the iphone also have 5 icon dock like the iPad have it would make my day easy as h..:) maby in the next update? What do you think? What do everyone think?

  • What's the best way to be a good programmer

    hi everyone .........
    I'm a beginner in Java and I'd like to know the best way to be a good programmer in Java ...
    I'll be thankful if u help me and tell me how .

    Spend the time to learn the basics of Java first - before you try to write code. A sound understanding of object-oriented principles will allow you to progress much faster than if you blindly start cranking out code without understanding why.
    Sun's Java Tutorial is organized so that you learn 00 principles first. It can be pursued either online, or downloaded to your machine, or you can purchase it as a book.
    [url http://java.sun.com/docs/books/tutorial/]Sun Java Tutorial

  • What would make YOU upgrade from a 2011 to a 2012 MBA?

    What would make you upgrade from a 2011 MBA to a 2012 MBA?
    For me, the following woud be important for an 13'' MBA upgrade:
    keep the low weight or even improve it
    do not sacrifice battery life
    offer an 8 GB memory option
    offer USB 3.0 in addition to Thunderbolt
    Pretty simple, isn't it?

    carl wolf wrote:
    There is no "2012 MBA".
    True, but expecting a similar cycle of time between revisions is no more "strange" than expecting 2013 to arrive. I call it confidence in Apple's innovation cycles.
    Yes, I suppose it is "speculating" in the harsh sense of the word, but so would talk about Apple's mere existence in the future. Right?

  • E4200 Tomato Firmware what do you make of this

    I was looking for alternative firmwares until Linksys fixes their broken device.
    What do you guys make of this Tomato firmware?  Do you think it has usb drive and Media Streaming (Twonky) support?
    Tomato Firmware Info

    xbones wrote:
    I was looking for alternative firmwares until Linksys fixes their broken device.
    What do you guys make of this Tomato firmware?  Do you think it has usb drive and Media Streaming (Twonky) support?
    Tomato Firmware Info
    Your link is broken. I believe you are missing a colon before the slashes.
    I don't work for Cisco. I'm just here to help.

  • Please do what ever you can to get iTunes Match in Italy. it's very important!! make it happens, please!!

    Please do what ever you can to get iTunes Match in Italy as soon as possible. it's very important!! make it happens, please!!

    You aren't talking to Apple here, just ofther users.
    Try this instead:
    http://www.apple.com/feedback/

  • What would you do if you are a programmer and have an ipad 2 ?

    The question is clear I think;
    What would you do if you are a programmer and have ipad 2
    You can read programming books( pdf-s etc. )
    Search a topic/code/something without sitting infront of any computer( 3G-wifi )
    You can try/test your apps that you developed with ObjectiveC, html5 etc.
    Just tell me your things, I think this article will be a "guide" for - programmers which have ipad
    -Regards,
    Orkan

    Hello Dave,
    Thank you very much for your reply. I tried to edit my question, but I think( or I can't find ) there is no post editing feature on this forum. Anyway; I'm a software developer and I don't know very well apple's platforms.
    I used an ipod and now I'm using an ipad 2 - But I'm a .net( C# ) developer. [ and I hate object-c ]
    I bought this ipad 2 because I want to view my pdf files all the time.
    Besides that, What can I do with this ipad 2 as a sofware developer?
    -Viewing computer/programming magazines with itunesU etc.
    -Surfing webpages which are related on programming,
    and then what ?
    I want to explore the possibilities what can I do more with an ipad 2! ( based on programming )
    An example: I discovered today;
    There is a nice app ide which is working on ipad 2 > http://twolivesleft.com/Codea/
    We (ms users) didn't see any ide like that before... This is different and nice to learn.
    I'm asking these kind of possibilities...

  • Whoops! What are you doing here? Did you make a left at that last URL instead of a right? No problem. Unless you want us to deal you in,I want in then how?

    Whoops! What are you doing here?
    Did you make a left at that last URL instead of a right? No problem. Unless you want us to deal you in, here are some tips to get you back on your way:
    If you typed in the address, check your spelling. Could just be a typo.
    If you’ve found an issue with one of our websites, we’d appreciate it if you could report the problem in Bugzilla, our bug tracker. One of our developers will take a look at it as soon as possible.
    If you followed a link, it’s probably broken.
    If you’re not sure what you’re looking for, start at mozilla.org.
    It's not broken it's not letting me do what I want too and I am very upset and I want in on this project that you are trying to guide me away from!!!!! I did not find this website by searching or typing i found it by using my tools.

    Are you trying to access the Mozilla website? What page in specific is causing this to happen?
    The people who answer questions here, for the most part, are other Firefox users volunteering their time (like me), not Mozilla employees or Firefox developers.
    Please report this bug to the development team at [https://bugzilla.mozilla.org/ Bugzilla], so that they can repair the issue as soon as possible.

Maybe you are looking for