You are on page 1of 2

5.

Database Design and SQL

As a software developer, working with a relational database is a


critical skill that you’ll need, and it will stick with you no matter
where you are in your career. Every company from small to large
uses a DBMS, so it’s likely that you will come across different data
models, type so databases (NoSQL and SQL), and dependencies
on various companies.

Knowing how to structure your data within a DBMS is critical.


Should you use an entity-relationship (ER), model? A hierarchical
model? A three-schema architecture?

The choices can be intimidating, but it’s good to know about the
different ways to structure your data as that when you switch
database vendors like from Oracle to SQL Server or PostgreSQL,
you can plugin with minimal hand-coding.

As a programmer, you should also know about SQL, not just the
syntax but also how the database actually runs your query and
how joins are executed, how to index are used, and the difference
between table scan, index scan, and index seek. These details are
not just important from the coding interview perspective but also
from day-to-day jobs.

If you need resources, I suggest you go through with Database


Design Fundamentals for Software Engineers, where you
will learn about the different concepts and techniques you can use
to structure your data and explore why you should use particular
approaches for certain problems.

6. Linux Commands and Concepts

Linux is the world’s most popular operating system for server-side


application and most of the cutting edge solution runs on Linux,
that’s why it's very important for you to know how to work in
Linux machine.

While Programming interviews don’t focus a lot on Linux unless


you are going for IT support or DevOps interviews, it's always
great to learn essential Linux concepts and commands.

At the bare minimum, you know how to find files in Linux, how to
check process status, write simple bash scripts and find the
process and kill it. Concepts like how Linux boots, concepts of files
and directories, permissions, etc are also important.

If you worked in Linux then you can easily answer those kinds of
questions but if you need a refresher course then I recommend
you to join Linux Mastery: Master the Linux Command
Line in an 11.5 Hours course on Udemy. It’s a great fun-based
course to learn essential Linux commands in quick time.

You might also like