Advice On Beginning A Career As A Developer
Recently a young man who helped greatly with the Give Camp I ran back in 2011 reached out and asked if I had any advice for someone entering the field as a new developer.
After writing a fairly lengthy email, I figured other people might benefit from the advice as well and turned it into this blog post.
FYI: The young man is David Anderson and you should hire him if you need a hard-working, smart beginner.
These are my observations and opinions of course, so take them as such.
My Advice (For What It's Worth)
What kind of development do you enjoy? Web? Mobile? Games?
Which language stack do you prefer?
My observation is that you can group technologies into two groups (from a jobs perspective):
1) Ultra Cool/Cutting-edge
Used by start ups. Gets all the press. Relatively few jobs.
Used by established companies. Looked down upon by the cool kids. Lots and lots of jobs.
Oddly enough the pay tends to be pretty darned good for both.
Examples of the cool kids tech would be (at the moment: changes rapidly) Node.js, MongoDB, Angular, iOS, Android.
Examples of the boring guy tech would be (and has been for a while) Java, C#/.Net, SQL (SQL Server, MySQL, Oracle), Angular, iOS, Android.
There is some cross over.
My advice would be to figure out which kind of tech you want to work with and what industry you would like to explore.
At that point do some research to see which companies in the industries you like are using the technology you like.
I don't know your financial situation, but at your age I think I'd take a chance on a start-up.
The vast majority will fail, so save, save, save!
That way if the company you work for fails, you can survive to find another.
You might get lucky with stock options. However, never take stock options as salary!
Most stock options will be worth exactly zero, but IF you are getting a decent salary AND options, you might come out in very good shape.
If you don't want to go the start-up route, I'd try consulting. The opportunity to work on a series of projects, often with newer(ish) technology, can gain you experience quickly.
No matter what else you do, be mindful of the concept of personal brand. The old adage about "sell yourself" is more true today than ever. Not only must you sell yourself, you must market yourself.
Start a blog if you like to write. Contribute to open source. Join the user group community (hint, hint). Help people on Stack Overflow if you know the answer. Attend conferences. As soon as you feel confident, speak at conferences. Start by speaking at your user group(s).
At the end of the day BE VISIBLE.
Make sure that an employer who Googles your name finds links to work you've done and information you have contributed. Make damned sure they don't find anything negative (Woo-hoo! Spring break!).
Also, use side projects to learn new technologies. I've never needed a new blog engine, but I've written several to try out new languages or frameworks. I like the blog engine because I can measure what I create against known quantities like Wordpress.
If you combine that experimentation with a) blogging about what you're doing and b) possibly selling something (especially mobile apps), then you get a win-win. Possibly win-win-win.
People, People, People
Always remember that companies are made up of people. Some will screw you over. Some will help you. The trick is you won't always know which are which.
I have always tried to help those around me. My philosophy is that if I help someone today, they may help me (or someone else) tomorrow.
I hope this helps.