If you love writing code, do not become a "consultant". Become a developer.

^ This is my simple career advice to everyone who loves coding.

10 years ago, I was about to finish university. I've always loved writing code, but by then, I had the following misconceptions about being a software developer:

1. Writing software is just a lower, entry-level job.

2. There is not a lot of career advancement for software developers. To advance your career, you have to ultimately become a manager.

3. If you're still "just" a software developer when you're 40, you might be out of a job soon.

All three are wrong. Being a software developer is an amazing and rewarding career. If you keep your skills up to date and your passion alive, I guarantee you'll still
be in high demand by the time you reach retirement age. And chances are, you might not event want to retire but continue writing code. It's just so much fun.

My initial career choice out of university was to become a consultant. First, I worked as a management consultant for McKinsey&Company, probably the most glamorous
name in the industry. I spent 14-16 hours/day (yepp, really) at work, wearing a suit, sitting in meetings, digging through large spreadsheets, and preparing Powerpoint
slides. It was actually quite interesting at first: for instance, I worked on a large-scale ERP migration for an insurance company. There was one big problem though -
I didn't get to write any of the actual migration code.

In my next job, I worked for a technology consulting company. Their projects were about actually building things and writing code. Great! Well, I still had to wear a suit (mostly) and sit in meetings, and occasionally write status reports. But at least some portion of the job was really about firing up my IDE and writing and debugging actual code. The job was well-paid and the hours still occasionally were long, but mostly reasonable.

There was still a big downside though: quality didn't matter that much. Sure, the customer expected me to write good code and to meet deadlines. But really, there was
such a thing as good enough. The company I worked for didn't care if my code was well-designed and maintainable. They cared about revenue. And as long as the customer
was reasonably happy and would continue signing contracts, they were happy (and generiously return a portion of their cut as an annual performance bonus). Actually,
writing high-maintenance code would be to some extent be a good thing since those additional maintenance hours of course were billable, too.

If quality doesn't matter much, though, you're not gonna get a lot better over time. You'll end up doing the same mediocre things over and over again, working with mediocre people. That's a bad thing. Don't stay in an environment like that.

There was another problem: the only career advancement was to become a manager. So, I eventually became one. Only to (again) realize that I didn't like it as much as
writing code: I spent time in meetings, strategy discussions, sales presentations - boooooring.

Finally, after a few more years, I made my best career choice ever and became a full-time developer. I spent a few years at Microsoft as a "Software Development
Engineer" (SDE), then joined Stack Exchange a year ago. Having fun and writing and shipping code every day. Oh, and I haven't had to put on a suit to work for years.

If you're truly passionate about writing code, don't become a "consultant". Find a great company (for instance, on Stack Overflow Careers) and become a developer!

Discuss on Hacker News.

Written on December 18, 2013. Please subscribe to my blog.