top | item 4381371

Thoughts on being a programmer

235 points| earnubs | 13 years ago |yelsew.com | reply

190 comments

order
[+] tokenizer|13 years ago|reply
Be yourself. Code for fun. There's hundreds of ways to write the same thing, don't be a dick about your way, but stand up for good practices. Respect those who accomplish great things, because it was a lot of work, even if they say it was a weekend practice, they took a lot of time to get to that point. If you code correctly, one line changes are possible. Learn to desire success more than you fear failure. (I like this one) Don't become the old people you hate, always try to learn new things, no matter how alien. Who cares if you're coding on production live? Right? Right? Comments are for the weak, tracing and prototyping code is not. Mistakes are inevitable *It's hard being the smartest person in the room sometimes, wear it with humility rather than pride.

My version of the list. This was fun!

[+] nickolai|13 years ago|reply
>Comments are for the weak,

Care to elaborate on this ? Commenting code is bad ? Or did I miss the irony ?

[+] clwoodson|13 years ago|reply
What others have said. Good code is self commenting. I prefer to see comments reserved for instances where its not clearly obvious why a piece of code exists (hacky workarounds, etc...)
[+] overgryphon|13 years ago|reply
Don't hate the old people. They have a lot to teach.
[+] frou_dh|13 years ago|reply
Something in one of Zed Shaw's old talks stuck with me. Roughly:

"Don't go with the flow of the industry. Try [unconventional] things because there's something beneath [software] that we haven't figured out yet."

I suppose there's two personal disclaimers:

- I'm not that interested in the business aspect of software.

- The answer to what the magic beneath is may elude me due to it simply being "math, stupid".

[+] toomuchcoffee|13 years ago|reply
...due to it simply being "math, stupid".

Care to elaborate?

[+] podperson|13 years ago|reply
I liked "err vicariously" ;-)

It's good to learn from your own mistakes, and even better to learn from someone else's.

[+] worldsayshi|13 years ago|reply
Yea. A good workplace is one in which calling "that one is my fault" is a natural part of your work flow and doesn't cost you points (unless you become to frequent).
[+] jawr|13 years ago|reply
>Always back up before tidying up. I liked this piece of advice, it's a lesson we all hate to learn.
[+] arscan|13 years ago|reply
Happened to me last night -- I wish I read this yesterday. Who am I kidding... I prefer to learn these lessons the hard way :)
[+] lazyjones|13 years ago|reply
I miss VMS, it solved this problem in such a naturally elegant way.
[+] alanmackenzie|13 years ago|reply
I would add: Don't release on a Friday.
[+] gacba|13 years ago|reply
Sadly, the company I work for ONLY releases on Friday nights because the business closes out at 5pm. sigh
[+] recycleme|13 years ago|reply
Communicate often. Have a beer with a fellow programmer. Don't be afraid to break code.
[+] sukuriant|13 years ago|reply
> Don't be afraid to break code.

Just not in production :)

[+] twakefield|13 years ago|reply
> There's always plenty of room for improvement - in your code, in your abilities, in you.

I just saw an amazing movie about a man that embodies this philosophy: "Jiro Dreams of Sushi"[1]. This man's dedication to further mastering his craft is unparalleled. Even though he is widely regarded as the best Sushi chef in the world, he is still singularly focused on becoming better every day.

I highly recommend watching - it's very inspiring.

[1] http://en.wikipedia.org/wiki/Jiro_Dreams_of_Sushi

[+] einhverfr|13 years ago|reply
The bit about there always being room for growth was driven home for me yesterday as I was looking through how to build an object model in PostgreSQL using object-relational features. I went through the features one by one and discovered that I had only scratched the surface of that aspect of PostgreSQL. I suddenly understood how to rethink what I was doing in terms of design patterns in order to build object interfaces in the db for the relational underpinnings.
[+] 3am_hackernews|13 years ago|reply
It is written so beautifully that the "code" part of these thoughts can be substituted for many other things: design, engineering, life etc.
[+] joe_the_user|13 years ago|reply
Don't be an asshole

Agreed but on the page, it looks a bit of out of place with the other points.

My mind fills in the details as "don't act like you are the programmer who's a hundred times more productive than the others, even if it seems like you are".

But that's a big question. Apple Computer arguably expects its programmers to all be the x100 producers and was managed by someone who it more or less was admitted to be an asshole (a genius, inspiration, unique asshole but still an asshole).

So it think the greatness and asshole-dom question is not settled for people even if I would embrace it.

[+] joe_bloggs|13 years ago|reply
"Err vicariously"

Loved that. Subtle, yet deep!

[+] jebblue|13 years ago|reply
That was a short, concise, pragmatic, wise and rockin article.