Want a job in web development? Learn a framework.
WRITTEN BY GARETH DUNNE @DUNNEDEV
When browsing information about web development careers you might stumble upon junior or entry level developers asking about the correct way to get hired. Very frequently there will be advice given along the lines of:
- Learn pure JavaScript.
- Know the ins and outs of Vanilla JS.
- Do not learn a framework until you know the intricacies of JavaScript.
And while I think all this advice is coming from a good place, its not practical.
This is somewhat of a controversial opinion when looking at online forums such a reddit webdev or reddit JavaScript. But lets take a step back and look at the facts here.
You are a junior developer with basic knowledge of JavaScript, you look at job postings online, what do you see?
Well, nearly every frontend position is looking for you to work with either Angular, React or Vue and no position is seeking someone proficient in vanilla JavaScript.
So if you were being practical, you should jump into one of these frameworks and learn how to use your basic JavaScript knowledge within the constraints of that technology. Doing this alone could increase your employability significantly.
Frameworks Not Encouraged
But why is this considered a bad idea by the masses? Well it conflicts with the idea of what a good programmer should be about. The idea of what a web developer should know in order to give themselves the best chance possible to use deep knowledge that allows to debug and problem solve in the most efficient way possible.
But again, as much as I agree with this, its not practical for someone who has just entered the industry, is urgently seeking a junior position and who has possibly switched his/her career halfway through. This also applies someone who has just finished a bootcamp
Experts in the web development community have every right to demand high standards of programming, this is a highly skilled field that people devote massive amounts of time to and something they are truly passionate about it. But people entering the industry don’t have to brush up their JavaScript to the degree expected by most purists.
Why would someone in this position spend all this extra time going in depth in vanilla JavaScript when they can learn howĀ a framework works and be able to code inside the context of this framework and land themselves a job as soon as possible.
You have to remember this isn’t someone who wants to adhere to the best coding practises currently available, at least, not yet in their career.
The most likely situation is that this person will come to terms with someĀ of the key elements of JavaScript while working inside their chosen framework. From this point, he/she can then become proficient in the more in depth parts of the language.
Now let me stress, this is not ideal for the industry nor does it strengthen the quality of developers available to the workforce. But to deny that this isn’t the quickest surefire way to land a frontend entry position is foolish.
Abstraction
We can tie this back down to one of the most essential programming concepts, abstraction.
The latest of these in demand frontend frameworks give us a layer of abstraction to work within. This layer of abstraction is supposed to provide us with a new environment to work in, while hiding the previous complications behind the scenes.
This is exactly why a junior developer can begin learning inside the constraints of this framework, and improve their JavaScript while doing so.
Will they become an expert in JavaScript this way? No of course not, and this is the flipside of working in a abstracted environment. It hides the complexity that you could otherwise learn.
Another aspect that has to be consideredĀ is how the latest frameworks are integrated with the latest in JavaScript practises.
Frameworks like Angular, React and Vue have standardized the use of the latest fromĀ ES6. This further adds to the argument, that you can easily jump into these frameworks and learn current and key fundamentals of Javascript.
Features like ES6 arrow functions:
getInfo = () => { }
Ternary operators:
{ this.state.isLoading ? : null }
State Management in React:
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
componentDidMount() {
}
componentWillUnmount() {
}
render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
); } }
Anyone who uses these features will inadvertently broaden their knowledge of JavaScript and become more attractive to employers.
Recruiters
We also can’t ignore the dominance of external recruiters in the web development industry. I know from personal experience, as I’m sure many othersĀ do, that these recruiters are hounding individuals with specific criteria ie, which framework do you know?
And while normally I’m the one complaining about the lack technical knowledge that a recruiter has, this is something that someone at entry level can take advantage of and be fast tracked to an interview.
Learn a framework, build a few small projects and you’ve already launched yourself into better position than you rightfully should be. You have to remember that the application of a language will be almost completely be inside the boundaries of the framework. Everyone will tell you that you can’t learn JavaScript this way but disregard these notions as if you are in the start of your career its only logical that you will learn as you go along.
A lot of the community will disregard this idea and I myself can see how it initially devalues the quality of junior developers but I like to be realistic and practical about these things.
Simply put, specialising in what people are looking for fast tracks you to a job and at the end of the day, landing that initial job can be the first step in developing your technical ability.
Technical prowess will come later, launching your career is paramount.