As someone who tends to mentor and talk shop with people wanting to start a career in software development, the most common question I hear is “What language(s) should I learn to land a job?” It’s a question that makes sense if you think about it. From an outside perspective to the industry, picking the right language seems like it could make or break your career. The reality is, that there are plenty of things more important than what languages you know. In an effort to not overwhelm people, I usually stick to 3 things that are far more important than picking a language.
Show you have the ability to learn
Being a software developer is by and large about being flexible and being able to shift with the trends and changes in the industry. Not just at the human level, but at the code and platform levels as well. Things can be the hot new platform one year, and replaced the next. It’s just the way it works. Because the ecosystem is ever changing, so must we be as developers. The funny thing about development is that while syntax changes from language to language, the overall concepts and patterns are very similar between them. Prove that you can learn quickly, and have the willingness to take it upon yourself to learn by taking on role that enable this.
See my suggested reading for anyone in software development
Deploy and/or Contribute
This all starts with one thing, showing your overall understanding of development. These days, it’s so easy to do with services like GitHub. The ability to quickly and easily share all the work you’ve published publicly is an often overlooked asset. You can have as many years of development that you want, but if it’s all private has only been for your own private use, it’s hard to consider that ‘experience’ when applying for jobs. By contributing to other open source projects on GitHub, or putting your own work up for collaboration, you can easily show your abilities.
One of the other things people typically fail to recognize is that writing code for yourself, and writing code for production, typically corporate, environments are two completely different things. There is a level of ‘error handling’ that typically goes into production code. The ‘happy path’ isn’t the only solution and performance is scrutinized.
Does that mean personal projects aren’t wroth anything? By all means, no! It just means that when a company is looking for developers, they want to see that they can produce for other companies similar to theirs. Haven’t gotten any other paid gigs? That’s cool, contribute back to open source somehow. Show that you’ve got the ability for your ideas and code to make it into a popular open source project like WordPress or some Node Modules.
If you are new to contributing to an open source project, it can be a bit intimidating, but I wrote a few tips on some things to keep in mind.
It’s ok to be wrong, or not know
There are two things that any good developer can admit:
- They don’t know everything.
- There are bugs in their code, somewhere.
The first of these is super important. You’re never expected to know everything there ever is to know about development. That’s just asinine. The important part is how you respond when confronted with a question or task that you don’t know. Some people simply shut down and in some cases deny it’s possibility. After many times of being the fool, I learned one thing.'I don't know, yet' is a perfectly acceptable answer. Click To Tweet
Someone in a position to ask a question that would warrant this type of answer will be perfectly happy waiting for you do research and answer the question accurately. And most importantly, the word “yet”. This implies a willingness to learn. It’s ok not to know everything immediately, and again, leads us back the the first point of showing you can learn. Funny how it always ends up back there doesn’t it? The crazy part is…you are never alone in learning. Using crowd-sourced sites like StackOverflow aren’t cheating, they’re learning. You don’t have to sit in your bubble all day and struggling trying to solve a complex problem alone. Posing a question to the community, or finding an existing question that suites your needs is a completely acceptable solution these days.
So you can see, so much of being a good software developer is more about how you can grow and produce good work, than what languages you know. Much like any other skill, the more time you spend doing it the right way, the better the end product will be.