This is the final installment in our “Professional Development for Professional Developers” series where I outline the traits of awesome web developers and offer advice for those new (or not-so-new) to the field. Catch up with Part 1, Part 2, and Part 3.
I’m not going to sugarcoat this: there are thousands of developers out there that can solve problems faster and more elegantly than you. There will always be people who are younger, smarter, and more capable, but if you waste your time worrying about not being “the best,” you’ll stall your professional growth.
Seek these people out and try to work with and learn from them – you’ll be a better programmer for it.
Along these same lines don’t be afraid to make mistakes. If you’re looking back on code you wrote six months ago and not cringing, then you’re not growing as a developer. We all regularly write code only to go back to it and ask “what the heck was I thinking?” (sometimes within the duration of a single project). Writing bad code does not make you a bad programmer if you’re able to learn from your mistakes. You may also consider finding another programmer who can help review your code and/or act as a mentor.
Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else.
It’s also important to recognize that no project will ever be ready to ship. A developer who’s truly interested in a project will want to continue to find ways to refactor, improve, or otherwise enhance a project until the project is over budget, timeline, or both. It’s important to pay attention to the project scope and focus on delivering what was promised. If you can up-sell the client on your enhancements that’s fantastic, but the scoped project should outweigh your desire to build the perfect site/nas/content/live/buckii.
Most of all, don’t be afraid to ask questions. Not knowing or understanding something isn’t a weakness; in fact, knowing how to effectively ask questions is one of the most valuable skills a programmer can have. Be it a mentor, peer, or the great Google in the sky, you’ll save yourself a lot of time and stress if you’re willing to swallow your pride and say “I don’t understand this, can you help me?” Then, as we discussed earlier, share that knowledge back to the community. We all learn, grow, and can move on to better, more interesting tasks.
When you first get started programming it can be hard to find the right applications to do your job. While it’s important to find a set of software that works well for you, it doesn’t hurt to venture out of your comfort zone from time to time. Never let yourself feel pressured into changing everything to use the flavor of the week; after all, some of the best programmers around use software like Vim or Emacs that’s been largely unchanged in years.
If you’re still trying to find your perfect stack, check out blogs like The Setup and see what others are using.
Some of my personal favorites are:
- Operating system: OSX, Ubuntu Server
- Text editor: Textmate, Vim
- Database: Sequel Pro, Navicat
- Snippets: CodeBox
- Terminal: iTerm 2
- FTP client: Transmit
The Programmer Stereotype Is BS
The word “programmer” or “software engineer” usually conjures a very particular image: a middle-aged, overweight man with glasses, awkward facial hair (usually a neckbeard, moustache, or goatee), a short-sleeved button-down shirt and an anti-social personality:
It’s true, there’s a whole world of middle-aged white guys in cheap suits slaving away in cubicles. There’s also a movement to promote more diversity in computer science-related fields. Jessica Kerr (a.k.a. @jessitron) has written an excellent article called Geeks, Freaks, Nerds, & Programmers on the programmer monoculture and things we can do to break it. It’s important to challenge these preconceived notions about what kinds of people can become programmers. Coding has nothing to do with race, gender, or cultural background, so why do we always think of Milton?
If you’re interested in programming, then program – don’t let the Milton stereotype deter you from getting hands-on with code. I can’t speak to the corporate enterprise .NET side of things, but the open-source software world is full of cool people who are interested in sharing what they know. Find a local meetup, user group, or drink-up. Enjoy homebrewing, xkcd, French Press coffee, and all of the other geeky (yes, I just called homebrewing “geeky,” deal with it) habits so commonly associated with our profession if you enjoy them, but don’t feel pressured to pretend you do in order to fit in. Go home after work and play video games or train for a marathon; your hobbies and interests are not and should not be dictated by your choice in career.
This series very quickly turned into a dump of every piece of advice I can think of for new and/or discouraged programmers (it started off as a single post). Don’t be overwhelmed: take away what you find valuable and feel free to ignore what you don’t. You can also leave your own tips in the comments or, better yet, write your own blog post full of your advice.