You Landed Your First Developer Role - Now What? (Part Three)
Landing the first role as a developer seems like the hardest thing to do. Then you realised it's just the beginning. What do you do to become a professional developer?
In part one of this series, we looked at the first two actions you can take; those being learning from others, and that a software career's about more than just code.
In part two, we looked at the next two steps; those being, that you must never stop learning, and that you have to get involved in projects.
Here in part three, we round out the series with the final two. Read on, and leave your thoughts in the comments.
5. Learn How to Program Before You Pick a Language
I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. Maslow's Hammer
When I was in my final year at university, a host of classmates and I had a roaring conversation with our operating systems lecturer - a man who was a legend at software design. We were all talking incessantly about which programming language was the best and why.
We argued that the one we loved was better than all others, attempting to prove it by discussing the minutiae of the constructs, language features, tooling, and so on.
The lecturer quietly looked on, smiling that knowing smile, waiting for the moment to pounce. And when he did, it hit home - hard.
He told us we were all missing the point, that what was truly important weren't languages, but the understanding of the craft, of the fundamentals, of software development itself.
We were taken aback.
Here we were, all lost up in language-specific features, options, and benefits, unable to see the proverbial forest for the trees. We saw applications as a language choice, not as a tool to do a job. We were, almost literally, putting the cart before the horse.
How hopelessly blind we were.
When you want to become the best developer you can, you need to start by learning the craft of software development, before you begin contemplating languages.
Learn the fundamental concepts of how programming works, learn the common lexicographical constructs, how they work, what they designed to do, why they're there, their strengths and their weaknesses.
Learn about the greater ecosystem of programming, such as commonly accepted patterns, and perhaps more importantly, why these patterns came about, what the problem is which they're best designed to solve.
Step back, perhaps to 50,000 Ft, and look at it from there. Understand where programming fits in to the greater mix, then take that knowledge and make the best use of one, or several, languages.
Don't start with a language, or become too caught up in it. Never forget the earlier proverb, that when the only tool you have is a hammer, everything looks like a nail.
6. Know Your Worth
Perhaps lastly, but definitely not least, know your worth.
Keep a regular eye on the industry and know what your skills are valued at. What's the standard pay for the skills you have, for the types of work you've done, for the location you're working in.
Know the difference in rates between full-time and freelance/contractor. Contracting and freelancing isn't for everyone, but it's not wrong to say that these two, when done well, always pay much more than a full-time position. It's worth considering them, even if only for a moment.
There's a number of ways you can do this.
- Use Pay Review Websites: Try out Payscale, Indeed, and IT Jobs Watch. These aren't always the best source, as they're often so generalised, but they're worth a look
- Talk to other developers: and see if they'll share their experience and knowledge with you
- Talk to senior developers: Often these have the best stories and advice
- Get in touch with companies: From the boutique to the corporate, and ask them
- Get involved in groups on LinkedIn
- Participate in Reddit threads
Now when I said know your worth, I wasn't just talking about dollars, euros, yens, and pounds - as there's so much more to career satisfactions and growth than the financial. Look at a range of criteria, such as expected working hours, turnaround times, ability to invest in your education, and so on.
Keep your finger on the pulse, and stay in touch with the wider community, so that you know if and when it's time to move on, to ask for a raise, to assert that you should have better working conditions, to be sent to a conference, and so on.
Knowledge is power, and so it is with a software development career.
And That's Just the Beginning
I can't hope to cover all of the things you'll need to know to build a long term, ultra successful career on. But if you at least take action on these 6 points, then you'll stand yourself in good stead for a career you can be proud of.
Over to You!
Are you at the start of your career, not sure of what to do? Have you struggled in your career, and overcome it? Share your experience in the comments. I'd love to get your thoughts.