To maximize our appeal to employers it’s about researching and understanding what they want, which is hopefully what we also want, but it is not always so. Therefore we must be aware of what we spend our time on learning so that we do not waste precious time and effort learning things that we will not use nor need when we are looking for a job.
We must also stand out above the competition. If we compete with the average, we are average, and there we will be stuck competing at the level of everyone else – not good! So we must become special in the eyes of the employer. And this does not mean that we have to learn everything, that we have to be gifted or be lucky. We just need some knowledge of what to do.
I am a senior programmer and I do interviews with developers, so if you could explain your reasoning of learning in a interview and how your strategy was to maximize the value to the company I would be extremely impressed! This would be something exceptional.
You will do great if you take inspiration from these ideas. The important thing to convince a potential employer of your worth is to focus on what they want and what they find valuable. That is what we will do today.
1. Be less dependent on third party libraries and try to understand the core language.
Knowledge of the core language will be extremely valuable and attractive to employers. A lot of juniors pick a framework, large quick-fix libraries and just go with it without getting an understanding of the actual language. This is making yourself a disservice.
Due to the increased bloat of bad, inneficient code moving into many JS libraries and the crazy size of hundreds dependencies we are seeing in many libraries we are seeing a move towards more home-developed libraries, or self-curated collections of focused libraries.
You should aim to understand ECMAScript 6 or fiddle with it as much as possible.
2. Focus on ONE framework (React).
To have the best appeal you should try to focus on learning 1 fundamental framework, such as React, Angular or Node.js.
One of them suffices and I would definitely go with React. It is what we use at my job, and looking at current job listings it’s the most desired by amount of work openings, so choosing React is logical for increasing your chances. React is also the most popular framework right now so there’s really no discussion here.
By focusing on one framework and not trying to learn everything you can target these job openings and do much better on technical interviews. The reason to not focus on Node is because this role is usually covered by a more senior programmer and it’s not expected for a junior to know how to setup infrastructure, networking, hosting etc.
So check out React, make a simple website, put it on Github and be absolutely sure to link it in your resume and on LinkedIn.
3. Rudimentary database knowledge.
SQL is more important now than ever since the hype of NoSQL has died down considerably. Thus older Relational Databases like SQL Server or hybrids such as Postgres has risen.
For some reason people are adverse to learn SQL and it’s paradoxically heavily demanded but the skill is rare. This defies logic because demand will almost always naturally drive up availability since people learn skills that everyone wants, but this is not the case with SQL. My suspicion is because there’s a misconception that SQL is old and dusty due to that the language has not changed considerably for decades – and the reason for this is simple – there hasn’t been any reason to.
Showing interest in SQL will thus mark you as almost unique and certainly someone that is worth employing. With databases being such a fundamental part of all software, and the skill being high in demand and rare, this is basically a free card for a job.
Getting databases to work in JS is a bit more complicated as we must avoid to use database on the client side. So I recommend using Express to set up a quick Node server and then fiddle around with MySQL or SQL Server. This would be an excellent complement to your React knowledge. Microsoft Azure provides free hosting for these so check that out if you don’t want to host it yourself.
If that is too much you can fiddle with some SELECTS and JOINS on a site like jdoodle. Just some fundamentals is impressive enough.
Unit Testing is to test a code on it’s own, for example a class or a function. Integration Testing is to test a sequence of functionality or an entire app, such as testing an API that connects to a database.
It’s very useful to have both. Having useful test coverage gives you confidence that the code works as intended and you can deploy with far less risk to messing up your production environments. It also increases safety and stability of the code when multiple people are working on a larger project since it’s impossible for everyone to know everything about a project and when you make a code change you might break something by mistake — and this happens to everyone. Properly testing a project can save you a lot of pain by mitigating mistakes and disasters!
I would recommend Mocha as a testing framework as it interacts naturally with React.