Controlling the database can be that something extra that makes a junior frontend developer stand out from the crowd. But that’s not the only reason to learn how DBs work. Here are 5 reasons why.
First, Some background finding a junior frontend development position
Imagine you just graduated a bootcamp, learned to build websites by yourself or completed an online course(s) in website development. You are motivated and have your portfolio and a nice github account with sample project. You really want to get your first job.
A common question among junior front end developers, trying to find their first job is “What should I know to get my first job”. This is often answered by telling “You need to learn framework XYZ, that’s what hot in the market now” (XYZ can be React or Angular for example).
Then a followup question comes – “should I learn React or Angular”, which is the fuel for endless debates and posts in blogs, facebook and sites like quora. And then, you focus on one framework and dig in, and then move to the next one.
<side note>: comparing these 2 frameworks is NOT the subject of this post, but it is an interesting subject, that has a nice overview in this great blog. And if you are a ReactJS fella/lady, you can check out this step by step tutorial of how to build a hangman game using es6 and ReactJS from scratch. </end of side note>.
What’s the problem with this?
Although in today’s front end era (renaissance?) it’s important to know at least one major framework to get you a job, there’s something extra to be done to make you stand out among all other graduates in this situation.
In other words:
It will be great for a front end developer to know at least one NON-FRONTEND-ISH thing really well.
I suggest:
Be friends with the database!
Here’s are 5 reasons why:
1. Like it or not – it’s in the interview
Even you are applying for a front end development position, most likely that during the job interview you will be asked some variation of a question about databases.
Data bases (AKA DBs) are a fundamental part of modern software architecture. There are dozens of different DBs out there to choose from, which can be a challenging task even for great experienced architects.
The questions about the DB can be “on the way”, indirect, or a part of a bigger task during the interview.
Examples for questions that you might be asked during an interview an involve knowledge of DBs:
- When asked to design a system, you would probably to need a consistency layer using a DB.
- When talking about optimizations and performance issues of websites and\or entire systems, the DB is a valid place to look for bottle necks.
Oh, and if you don’t know the answer – say “I don’t know”
Don’t bluff, professionals can smell it.
Story time #1!
During one of the interviews I held for a junior developer position to my team, I stumbled upon someone that had mentioned “extensive knowledge in MongoDB” on his resume. “Great! We are working with Mongo, it is a real advantage for him over other candidates” I thought.
We started a little conversation about this subject, asking him about his previous experience with Mongo, does he think it was a good choice as a DB, and why.
Unfortunately, he knowledge was much less impressive than the resume. Instead of stepping back and saying that he had no idea, and explaining that he only wrote 1 query to the DB once, he explained very wrong answers in a very confident way. For me, that raised a flag for the rest of the interview. It’s possible we missed a great programmer, don’t know.
If you are asked “what are indexes”, “what is a JOIN”, “what about sharding” and this sounds like Spanish (unless you are Spanish), simply say “I have not experienced working with DBs in this level before, but will be happy to learn”. Voila.
Please please please, don’t guess. It will come back to you with a harder follow up question 🙂
2. Have an extra something in your resume (edge over other candidates)
From a recruiter’s perspective – it is very hard to go over all the resumes of junior frontend developers. Today there are many courses, institutes and bootcamps that train front end developers.
The problem is that many of the CVs are very similar. Similar background, same final projects, same technology stack.
If you feel that this is your case we are talking about, maybe you should consider adding additional knowledge to your resume in a different and more unique direction.
Not another framework to the list (React\Vue\Angular is enough for a start), but some knowledge in a different field of software engineering.
To be honest – this argument can be used as an excuse to learn almost anything, not only to why-to-learn-about-the-database.
Be different!
3. Have a foot in the door for fullstack positions
Many of today’s popular positions are fullstacks
I can (and perhaps should) write another post about the animal called a “fullstack developer”, let’s assume for now that this position is here to stay.
The classic full stack developer controls frontend and backend, and this includes working/querying/writing/managing the database.
If you are applying for a fullstack position it can be really valuble for the employer that you already have an idea of what a DB is.
There’s no need to know the bits and bytes of mongo’s sharding mechanism, or the optimal number of masters and slaves for example, but knowing the basic stuff can help you a lot.
4. It will make your dialog with the server dudes much better
You’re hired! YES!!!
Now it’s up to you to maximize your abilities and knowledge. One of the most important things for a software developer (IMHO) is the ability to communicate and have an honest and intelligent conversation with their co-workers.
The more you will know about your partners work the easier it will be for you to work together.
Story time #2!
One of the best front end developers in my team was a backend developer before she entered the FE world.
She worked with mySql in the past and understood the concepts of tables, relations, queries complexity, indexing and more. She is a pro.
Because of that (and her personality of course) it was a pleasure for the server guys to work with her as a front end developer on complex features.
The face she understood the limitations and strengths of the DB gave her an advantage, and made her an asset when working on complex features.
She can talk the language of her partners, that makes her an asset for the team. And it doesn’t matter that the DB was mongo and not SQL-ish one.
5. Convinced? Want to get started?
You can even start with a DB that uses javascript (mongoDB for instance).
There are great tutorials out there for any DB,
If you feel most confident in JavaScript, maybe you’ll find mongoDB’s syntax quite friendly. MySql is also a good choice to begin with. Both are very popular, according to this study – mySql is more popular, but mongoDB has greater momentum in usage.
https://db-engines.com/en/ranking_trend/system/MongoDB%3BMySQL
Although you can read about the differences between JOIN and INNER JOIN have the correct answer to this question, there’s no replacement for some basic hands on experience.
A baby project is a great way to do it, and if you don’t have time – google for a “SQL for beginners” tutorial (mongoDB is equally good IMHO).
This is an awesome online REPL for SQL – you can try it for free to play with SQL commands without the need to install anything:
https://repl.it/@roel_cantu/sql
Conclusion
Frontend development is fun, but entering this world without experience can be hard. In my opinion, having something a bit unique in your resume in addition to the standard front end libraries and expertise can be a great advantage.
You don’t need to be a DBA or data analyst in order to understand what a database is and how to use it. Just try.
One last thing
I am considering making a webinar about mongoDB. If you are interested please leave a comment with your email and I’ll contact you.