So you want to be a Developer?

Everyone's talking about how we need more people in software, and it is a definite need.  We're hiring right now even!  But what does a career in web development mean, where does it lead, and what do I need to succeed at it?  First, decide the type of developer you want to be.  Software, front end, web, or mobile?  Software and mobile are pretty much the same anymore, complex backends or frameworks and a closely tied front end interface.  These tend to be the kind to consider themselves "true" developers, though pretty much everything is the same anymore.  Front end are the most underappreciated of the bunch and the work horse, since where we would be without front ends, phones that operate on the command line?  Web developers tend to be the jack of all trades, they do both ends though tend to be less focused because of this.

There are lots of ways to become a developer, the most tried and true way is college.  The reason why college has historically been good is that usually you figure out if you're the 50% of people that can think like a programmer or not.  Now I don't mean that 50% of people are special in some way, but the ability to understand assignment / sequence, recursion / iteration, and concurrency seems to be limited to a set group of people.  Basically a set group of people can or choose to think like a computer.  I'm not sure if that's a compliment or not, but it does tend to make them look like magicians ot the other group.  Now a college degree doesn't get you much these days and isn't the only way to get trained. You can also attend bootcamps, trainings, self learn and/or get certified but these tend to be looked down on by the community due to lack of filtering out of the populations which leads to lots of non-developers in the developer crowd.  The easiest way to stand out, even with a college degree is to be actively involved in communities and projects outside of college.  And there are a ton of open source projects begging for developers so there's plenty of places to level up and to prove your chops to any potential client or employer.

Where to work?  Corporate will tend to be a lot like class group projects, one guy doing all the work and the rest pretending to work.  Office space is real people.  It's steady and pays well though, so if you don't mind slowly dying inside then that's an option.  Startups are quickly dying inside from lack of sleep or sanity, and pay poorly, but they're like going to vegas you might hit it big eventually.  Single product shops have a lack of strict deadlines and allow you to really focus, but also are just one product and iterating on that and can get dull.  Multiproduct shops tend to have lots of deadlines and lack of focus, but there are some good ones that keep focused.  Or you can be freelance, but that's basically the same as starting a startup and most people fizzle out of that quickly.

Ok, so now you verified you're a developer, like development, chose a specialty, and got hired.  Now what?  Well that depends on if you have one important skill that we've overlooked so far, Emotional Intelligence.  Being a people person basically sets you apart from the herd again.  This allows you to move to either a leadership/management position, or a consultant/specialist position.  Without these, you can continue expanding your skill set and staying up to snuff on the newest everything, but you'll cap out at some point and just start moving around.  So I recommend at this point you focus on growing your people skills and becoming good at communication and at least self management.