Am I tech enough? A Python Revamp Plan
Tags: python, beginners, learning, programming
Published: 2024-03-14 21:05:44

## For someone who has worked in tech for years, I still find myself asking "Am I technical enough?" alarmingly often.

_I wrote this article before starting my DevRel job at Elastic over the summer. I finally feel "on track" enough about it to share._

## Tech and Doubt go hand in hand
In some ways this is a somewhat reasonable question - tech is an overwhelmingly large field, with constant developments and endless specialties and rabbit holes of knowledge, so it's quite fair to acknowledge there will always be gaps and unfamiliar territory.

At the same time, don't fall down the slippery slope of minimizing the parts you *do* know. Any skill seems less impressive once you've mastered it. Not to mention, as you advance in one topic, you tend to figure out 10 more related deep dives you need to get around to in order to *really* master it. And it goes on, and on, and on... Just because you're still learning doesn't mean you're not already an expert.

If this sounds familiar, you've probably also heard of "Impostor syndrome", which by now is a very common phenomenon in the field, especially for women. 

## So what do we do? 

In my experience there are two ways to deal with these kinds of thoughts: facing them head-on, or the much comfier favorite - avoidance. After all, you can't suck at something you don't try so that's a neat way out. 

Now - I've done my fair share of avoiding. Whether it's hiding in easier projects, branching out into different departments (hello marketing stint), or spending more time on non-technical techie-adjacent tasks (demos don't go into production!). Turns out you can avoid the scary tech climb in a multitude of ways. 

Well, it doesn't make the scary tech climb go away. In fact, the more time you "waste" without any progress, the scarier it keeps getting. And while not climbing at all is a perfectly reasonable choice as well, there's just something about that rush. 

Not a lot of other jobs are as exciting as solving technical puzzles and creating functionalities from scratch. 

We're left with one option. Just start climbing. 

## The solution?
Accept that change won't happen overnight. You'll be confused, out of your depth, uncomfortable, overwhelmed, and doubtful. For a while. But you'll be all those things even if you don't start anyway. So let's just take a leap of faith and trust that it will be worth it to make it to the other side. 

What does all that melodrama actually mean? 

For me, it means taking stock of where I am in my tech journey, where I want to be, and making a practical plan to try my best to get there. I feel like I had started to slowly distance myself from programming and development, in favor of creating more creative content or even... shudder... tech **sales**. 

And while I still love community engagement activities (here I am writing a blog about it); at the end of the day I want to have a stronger foundation to base my videos, articles, and talks on, and build more of my own solutions. 

So as an unapologetic type A person, I've put myself on a program to polish up the developer within. At the same time, as a community advocate and free-time tech YouTuber - I'll build content out of this whole journey to hopefully help out anyone else out there going through a similar crisis. 

Have you been wanting to get into programming and Python but don't know where to start? Maybe this kind of journey is the kick you need!
 
I'm gonna structure a 100-day transformation for myself to cover all the topics one should conquer to call themselves a (python) developer more comfortably. If you're completely new, or if you want to go back and give your foundation a nice pick-me-up - this is the guide for you!

I'm mostly tailoring this for my own interest, but I'll try to make it as general as possible as well so it can be a great guide to follow along to for non-Iulia readers as well. 

## What's on the schedule?
This will be a multi-part series. I won't be building all my own training materials but rather curate a structured path leveraging all the awesome (free) internet resources out there. 
The series schedule and content are subject to change, keeping in mind every new topic could lead to new questions to explore, so we'll keep it flexible!

# So what does it take to be a Python Developer?

## Part 1: Vanilla Basics
* Scope the journey - Making an action plan and deciding on your best way of working/learning + Resources overview - library of useful links
* Setup - Python installation & practical setup + Editors, IDEs
* Virtual Environments - Exploring packages, installs, requirements, scalability
* Python 101 - A refresher course of the Python programming language - concepts you should master before going ahead (syntax, data types, functions & classes, etc)
* Hands-on - Choosing a project to start building and improving upon throughout this series to put all the concepts into practice. → Building a simple tic-tac-toe game
* Version control & Github - Setting up version control basics, best practices
* Refactoring - Going over various iterations of our game - adding more and more layers of complexity to the program for more advanced functionalities as we explore more concepts


## Part 2 Data Science w/ Python
* Basics of Data Science & Machine Learning
* Essential Libraries (sci-kit learn, numpy, pandas, etc)
* Awesome Frameworks (HuggingFace, Langchain, etc)
* MLOps

## Part 3 Adjacent growth
* Python + Web Development - exploring libraries Flask and Django, HTML, CSS
* Docker - containers!
* Cloud - scaling up & down!


Stay tuned for part 1 coming out soon.
If you have any topics you think we should add to the exploration don't hesitate to comment!