You're Wrong: Learning Python is not an Infinite Loop


Federico Trotta - from Medium

July the 29th

Discussing the correct focus on how to learn Python

Hey friend,

if you're trying to get into tech to become a Python developer or a Data Scientist, I know what you're thinking:" There's too much stuff to know, I'll never do it. It will take a lifetime to know all of it!!"

Did I guess it right?

Well, let me tell you one thing: you're right and wrong at the same time.

You're right because today learning never ends. This is true for every profession you'll grab, but it's especially true in the IT field, which has been expanding exponentially in the last few years (and it will continue to grow).

But you're also wrong because you're not correctly focusing on your outcome.

Let me explain.

Your outcome has to be to get a job, and you need to understand what precisely you need to know to get it.

And I know why you're confused: HR often writes an infinite list of requirements you'll need to match to get the job, and this overwhelms you.

I'm I right?

So, let's get a couple of job descriptions: we'll analyze them and I'll help you how to read them, so that you can focus only on what really matters.

No more overwhelming descriptions in the future for you!

So, let's start with a job description, taken from the web, for a back-end Python Developer:

"BackEnd Python Developer

We are looking for a talented Software Engineer to join our core product software development team.

Responsibilities

  • Partner with product leads, designers, and engineers to develop reliable and well-tested backend and frontend software.
  • Provide mentorship and guidance to junior developers.
  • Create and maintain frontend and backend applications and systems.

Skills

  • 5+ years of experience in Software Engineering.
  • Working knowledge of Python and the Django framework.
  • Experience writing unit and integration tests.
  • Knowledge of HTML5/CSS3 and the Javascript language.
  • Familiarity with React ecosystem."

So, in the title is not specified, but this is a position for a Senior Engineer as it requires 5+ and mentorship for junior Engineers.

So, first takeaway:

  • To get your new job fast, you have to search and apply for junior positions, meaning the ones that require 0-3 years of experience.

Secondly, they require knowledge and experience with Django. So, second takeaway for you:

  • If you want to be a back-end Software Engineer, you need to grab some experience with at least one Python back-end framework. The most used are Django and Flask. So, grab a course and start getting experience on one of them.

Thirdly, they ask for experience with HTML/CSS and familiarity with React. So, third takeaways for you:

  • I worked for some months with Flask, and I have to tell you that some HTML/CSS is really required. But remember: you're focusing on an entry-level position, so a few weeks of experience in those will do the job.
  • Having experience with React is somehow something more focused on the front end. I would take it just as a desirable little experience, even for a Senior Engineer. But, anyway: this is a point that must be discussed during the interview.

Also, they ask you for some experience writing unit tests. This is a good software practice to learn because not so many software houses write tests, and then their code just breaks down. Learning unit tests in Python, after you have some experience in Django/Flask is a good investment: believe me.

Final and general takeaways for you:

  • Spend about six months creating at least two projects in Django or Flask to create a portfolio to show to recruiters when you apply for a position.
  • Do not focus on searching which one between Django and Flask is the most used: just grab one of the two. You can even get a job if they ask for Django, but you are experienced with Flask because, sometimes, it's just the mindset that matters.
  • Don't build one project in Django and the other in Flask, believing that a "multi-lingual" back-end engineer would be in high demand: this would require that a company uses both of them, but this is not the case. They just use one of them, so focus on mastering one for some months.

Now, let's focus on a job description for a Data Scientist.

"Junior Data Scientist

Minimum required skills:

  • Experience in all typical phases of a data science project (understanding of the business, hypothesis formulation, data transformation, analysis of metrics, predictive modeling).
  • Experience in Machine Learning and Deep Learning.
  • Practical experience in implementing and using major supervised and unsupervised learning models: regression, classification, forecasting, clustering, dimensionality reduction, recommendation systems, natural language processing, business intelligence.
  • Proficiency in data manipulation techniques: data cleansing, integration, normalization, anomaly detection, null imputation, and feature engineering.
  • Good knowledge of the following main tools: Matlab/R and Python (Pandas, Numpy, Scipy, TensorFlow, Keras, etc.).
  • Statistical analysis.
  • Signal processing.
  • Strong problem-solving skills.
  • Good command of spoken and written English.

Additionally, the following knowledge and/or documented experience are considered a plus:

  • Data Analytics, Big Data environments, and Cloud Computing.
  • IoT (Internet of Things).
  • Proficiency in C++ programming.
  • Computer vision."

Unfortunately, this is a typical example of a bad job description. And, unfortunately, since Data Science is a relatively young field, you'll find a lot of them.

So, let's break it into small parts to get some takeaways:

  • "Practical experience in implementing and using major supervised and unsupervised learning models: regression, classification, forecasting, clustering, dimensionality reduction, recommendation systems, natural language processing, business intelligence."
    Here they're showing the fact that probably don't know what they're searching for. First of all, it's unlikely that a junior Data Scientist can have experience implementing all of these solutions. Secondly, business intelligence is not something that has to do with implementing ML models; it's something like analyzing data for business, and, usually, it doesn't require applying ML models.
  • "Good knowledge of the following main tools: Matlab/R and Python (Pandas, Numpy, Scipy, TensorFlow, Keras, etc.)."
    This is another sign that they may not know what they're searching for. First of all, my advice is to avoid every environment where they ask you to know both R and Python. There's a diatribe in Data Science environments about whether it's better to use R or Python, but surely you won't need to know them both (even if in some industries, they're transitioning from R to Python, but this is not something that a Junior would do). And let's just skip on Matlab: it makes no sense to mention it.
    Finally, we generally use Tensorflow or Keras, so they should specify at least a preferred one: if you're a junior, you don't need to have experience with both of them.
  • "Signal processing".
    It's not clear what they need here. I assume is something related to the time series, which is another rabbit hole, meaning: a lot more stuff to know.
    But, you know: it's just a supposition.

So, some final takeaways for you:

  • Leave the diatribe on Python and R away from you. There are situations where R is better than Python, and others where Python is better than R. But R is a very specific programming language, so my advice is to focus only on Python. This way, you may also discover you like more programming than training ML models and can decide to be a Data Engineer or a back-end Engineer.
  • Today, being a Junior Data Scientist means not only having experience in Machine Learning, but also in Deep Learning. So, you need to be familiar with the following topics:
    - ML
    a) Regression vs. classification problems
    b) Features engineering & features selection
    c) Overfitting, underfitting, and regularization
    d) ML models: linear and polynomial models, KNN, Support Vector Machines, Decision Trees, Random Forest
    e) ML models, a plus: XGBoost, CatBoost
    f) Hyperparameters optimization
    g) Unsupervised ML models (clustering), but it's more of a plus.
    - DL
    a) What is a Neural Network and how it works
    b) What is an activation function, how it works, and which one to use in the typical cases
    d) Training of some neural networks with structured data
    d) Training of some neural networks in one of the following cases with unstructured data (it's a plus): Computer Vision, Natural Language Processing

And, yes: it seems that being a Data Scientist is a far longer path.

So: what is the knowledge you're missing? Answer this email and tell me everything you'd like to know about the topics listed above and I'll create the right content to help you create your career.


MY LATEST ARTICLES

  • If you're approaching Pandas, an overview of its superpowers is mandatory. Read "Data Analysis Made Easy: Mastering Pandas for Insightful Results" for free on CODEMOTION

That's all for this week.
I hope you like my advice. If you want to give me feedback on how this newsletter is helping you, or on how I could improve it, just respond to this email: I'd be glad to get some feedback from you to help you better develop your career! :)

Have a lovely weekend,

Federico


Unsubscribe · Preferences


Copyright © 2023 Federico Trotta, All rights reserved.

Federico Trotta: p.zza A. De Gasperi, 13. 52044 Cortona, Italy.

You are receiving this email because you opted in via our website.

Federico Trotta

Read more from Federico Trotta

Federico Trotta August the 26th Let's discuss what you can do with Python in terms of a future job. Spoiler: you don't need to become a Data Scientist or a Software Engineer. Hey friend, yesterday I saw that Microsoft is starting to integrate Python into Excel. And you know what does it mean? Well, two things for me: If you are a Python professional, the last environment where you want to use Python is Excel. AI prompts will become more important to use Excel, rather than Googling. Especially...

Federico Trotta August the 19th I'm telling you why you don't need another Python course (and what to do, instead, step by step) Hey friend, I'm sure you are what I have been for quite some time: a certificate collector. You took your first Python course. Maybe on Udemy. Then, you took another one. And then another again. You feel you're not learning that much and you're missing a learning path, but you need to show you learned something to your next employer. Also, you really want to learn...

Federico Trotta - from Medium August the 12th I'm telling you why you want to learn Python Hey friend, I am an honest person. Because honesty pays. Always. There are three main reasons why you want to learn Python: 1) You want to get a high-paying job. 2) You want a remote job. 3) You want a job that lasts, no matter the crises. Let's be honest: you want at least one of the three. Right?! We all have experienced the pandemic and the lockdowns. Another pandemic returns? Who cares? I can work...