Do I need to know data structure algorithms
and competitive recording for data
science career?
When you're talking about data science
career there are four main roles- data
analyst, data scientist, data engineer, and
machine learning engineer. For data
analyst and data scientist role even if
you have basic knowledge of data
structure algorithms and competitive
coding it's good enough
because
as a data analyst... So let's say data
scientist you are building a model
you are doing some analytics but you're
not building an enterprise level big
software system.
So many times I have seen data
scientists will build this poc.
they will build
a model or small jupiter notebook in
dev environment or alpha environment and
once they have proven their story their
data story they will give the model and
their analytics to some software
engineers who will then integrate
that analytics into enterprise software.
Many times they will write data
scientists will write machine learning
model and they will handle machine
learning models
to software engineers and software
engineers will integrate
them into their big software enterprise
system.
So the role of data analysis and data
scientists is
mainly
having a dominant knowledge. They will
look at the given problem, they will come
up with some data story,
some analytics, some predictive model
and that's it they present it to
stakeholders
and then maybe they write some
servers around it, you know some http
servers
around the models but the remaining part
which is integration with main software
system
is being done by software engineers. And
for this reason as a data analyst, data
scientist, even if you don't have
in-depth understanding of competitive
coding, data structure algorithm it is
okay. I mean of course
you're writing code in Python you need
to know about dictionaries and
lists and some basic data structures but
during the data analyst or data
scientist interview I don't think they
will go too much in depth, you know. They
might not ask you questions on like
binary trees and all kind of crazy data
structures.
If you're applying for big companies
like Amazon, Google things might be a
little complicated and
there even for data scientists role they
might ask you competitive
coding related questions
but this I'm talking about major like 90
of the companies.
Now let's talk about data engineer and
machine learning engineer role what do
they do in their day-to-day life.
As a machine learning engineers I have
seen
in many companies they will be
writing code in C plus or Java they
might be building their own custom
models that suits their business needs
and for this reason
these people are building very
performant scalable
software systems and they need to be
good software engineer and whenever we
say you need to be good software
engineer which means you need to be
really good in
data structure, algorithm, and competitive
coding. So machine learning and data
engineer, machine learning engineer and
data engineer they are
basically software engineers
but
they are working in
as a data engineer. You're working in
like Apache, Spark, Hadoop and all those
you know big data systems whereas a
machine learning engineer you might be
working on computer vision or NLP
problem.
but you might be using c=C
so Java as a programming language they
use Python as a programming language too
but they have to be
very good not only in machine learning
and statistics but they need to be a
good software engineer and as I said a
good software engineer means a solid
knowledge in data structure algorithms
and competitive coding when you know
data structures and algorithms in depth
what happens is you can write a very
efficient software which performs really
well the kind of software which scales
well.
Talking about data structures, for
example, you want to find there is a
record you want to find unique elements
in it. You have to use set if you use
list
your program will work but it will not
be efficient. Now if you have a good
understanding of what's the difference
between list and set data structure then
you can use that sense of judgment and
you know use the appropriate data
structure which makes your program
more compact scalable and performant and
this is the reason why as a machine
learning engineer or a data engineer
you have to be good in these topics.
You can go through various job
requirements on machine learning
engineer data scientist, data analyst and
in the qualification you know you will
find that
sometimes many companies they say okay
we have a
position for machine learning engineer
but those guys are not really machine
learning engineers they might be doing
some one-off analytics or they might be
maybe data scientists
so
job descriptions might vary but all of
this i'm telling based on my own 17
years of industry experience I have been
interviewing for
last 10 or 12 years so far and I have
interacted with so many people through
my Youtube channel who have
interviewed and who have got a job. So I
hope these tips are giving you some
understanding of importance of these
topics in various career roles.
If you have any other question please
post in a comment below.