Self Improvement | 2023 Personal Goals

Upskilling in Public 2023

Positioning myself to succeed this year and beyond!

Drew Seewald

--

2 Champagne flutes, half full, in front of a background of gold glitter and confetti. To the right, black fancy font says Happy New Year, new goals ahead.
It’s a new year, let’s make it the best one yet!

Intro

With the new year, I’ve been thinking long and hard about what kinds of goals I want to set for myself. I came to the conclusion that I want to take some steps to set myself up for success in a career in machine learning. I asked myself how I could do this while keeping myself engaged while learning new skills and creating a portfolio of projects to show off the cool things machine learning can achieve. How can I continue to move the needle in my professional career while bringing exciting machine learning projects to the world? The answer is learning in public!

Learning in public

Black text saying learning in public on a light purple background with a curving white line going through it. On the right there is a stack of books with ladders leaning on the sides. On top of the books is a black graduation cap and rolled up dipoma paper.

What is learning in public? It’s something I stumbled across on LinkedIn a couple years back. I saw people in my network were uploading videos and stories of themselves just working on coding problems and learning new skills. The idea baffled me when I first saw it. Who would want to show off all the things they don’t know in front of their entire online network?

It turns out, this is actually a great way to learn, help others, and demonstrate your problems solving skills. It holds you accountable because there are people out there following up on the projects you’re working on. Sometimes they are offering advice on how to fine tune a section of code you had trouble with. They might point out something incredibly simple that makes the entire thing run 100x faster, helping you learn a very useful method for solving future problems.

How does showing off what you don’t know help others? Nearly everyone has some skill that they are just a bit better at than someone else. One of the most insightful things I’ve heard about teaching is that you don’t need to be the best at something to help someone else learn. As long as you’re learning how something works and distilling it into a simple format for someone else to learn from, you’re helping raise everyone’s skill levels.

You don’t need to be the best at something to help someone else learn

To a prospective employer, the benefits of learning in public are two-fold. They get to see how you work through a problem, solving smaller problems along the way. How do you break down complex tasks into simpler ones? How do you handle unexpected issues while working on a coding task? They also get to see that you are willing to learn, take feedback, and improve yourself while working with others. The highest performing workers aren’t worth much if they give up the second they come across something they don’t understand or they meet someone who they don’t see eye to eye with.

Learning in public is a way for me to stay up to date with cutting edge technology like large language models and exciting visualization techniques. It’s a way for me to work on sharing what I’m learning with others and to show how exciting machine learning can be while applying it in ways that they never would have thought about. I have some ideas of how to apply machine learning to create tools to help teachers and even create unique gifts for friends and family. Learning in public is how I will stay motivated and learning to make these projects a reality.

So learning in public has some serious potential upsides, but how do I plan to do it?

Sharing My Code

Glowing white text saying sharing code. There are purple lines above and below the text. To the left, there is a code tree surrounded by a purple circle. The background of the image is dark with a hand on a mouse next to a gaming keyboard.

First up, most of the projects I intend to tackle over the next year will require code. Lots of code. Where does code go? A version control system like GitHub, of course!

I will be updating my GitHub to be a friendly home for all my projects. Something easy to navigate that doesn’t look too intimidating for someone who doesn’t necessarily want to dive into all the code. This will let my projects live somewhere organized. If any of my projects grow into something bigger than a one time effort, others can collaborate on them there as well.

Another benefit of GitHub is being able to move my projects across platforms. I have two desktop machines that I like to do my work on, one running Ubuntu and the other running Windows 10. GitHub desktop runs on both platforms and makes it really easy to keep code up to date, even if I’m switching platforms halfway through a project. I’m going with GitHub desktop over a command line interface (CLI) because well designed GUI’s are just easier to understand exactly what’s going on. CLI’s have some benefits, but at the end of the day I don’t want to be struggling with a tool that isn’t even my end product. Saving and sharing should be a painless process and a git CLI just isn’t the way for me to get there.

Working on a project that needs to run well on multiple machines setup very differently is good preparation for working in industry. I originally installed Ubuntu on my main computer to gain more experience working with that platform, but there are still some tools that are easier to work with on Windows. Having experience working with both is something worth having.

So how am I going to make my GitHub approachable?

Notebooks!

As much as I hate to say it, a large portion of the code in my GitHub will probably be in Jupyter Notebooks. In the past I haven’t been too impressed with the standard features of Jupyter Notebooks. My preferred tool for development is a full featured integrated development environment, or IDE, like Spyder that has debugging, variable inspection tools, and other useful features.

One of the strengths of Jupyter Notebooks is they allow both narrative text and code to live side by side, with beautiful code output and visualization included in the end product. This perfectly suits my needs to not only do projects and write code, but to explain why I’m making the choices I am and the struggles I had along the way. Jupyter Notebooks are a great tool for telling learning stories.

Another option with Jupyter Notebooks that I have yet to truly explore is extensions. I’m used to a highly customized text editor like Atom (I know, I’ll switch to VS Code eventually) or an IDE like Spyder that has all my little creature comforts. Jupyter Notebooks can add a lot of functionality like code completion and desktop notifications. I just need to sit down and spend the time to find extensions that make me not miss my other editors.

With my notebooks and code storage needs met, I need to figure out what to put in these notebooks.

New Technology and Courses

To stay relevant in the ever changing data and programming landscapes, I want to pursue some new skills. I wanted to learn things that are not only interesting, but help to build a foundation for other projects I want to work on. I pulled a job description for a data analytics engineer at AirBnb, some highly rated machine learning courses, and some cool visualizations I found on Twitter. These served as the inspiration for some of the skills I want to pursue learning this year and building projects with.

Here’s a preview of some of the skills I want to learn and course I want to take in the coming year:

  • Apache Airflow — Apache Airflow is a platform that helps programmatically author, schedule, and monitor workflows. Since Airflow is used at some of the largest companies to solve some very large data problems, knowing how to use it felt like a must. Setting it up on a spare machine I have laying around at home will help support my future projects by giving me an automation platform to build with, but also position me to work with it in a future job.
  • Stable diffusion — Large language models started to have their moment last year, with stable diffusion being one of the coolest projects to me. Unlike competitors like Midjourney, stable diffusion models are available to everyone free of charge. While I don’t consider myself much of an artist, AI art creation tools could be used in a pipeline to create some really cool projects this year.
  • Deeplearning.ai — Their courses are highly rated and the Machine Learning Engineering for Production (MLOps) Specialization especially should provide some better ideas for how to deploy projects and what best practices are for my personal and professional projects.
  • Datacamp Courses — While courses can’t teach you everything, they are a good way to get more exposure to new concepts. I want to make progress on Datacamp’s Machine Learning Scientist with Python career track this year to pick up some new skills in the space.

Courses by themselves are just the foundation for the ultimate goal in my GitHub, projects.

My Project Philosophy

Projects are where the real magic is going to happen this year. This is where I’m going to really demonstrate my abilities while bringing some cool concepts to life. I could just do Kaggle projects and take online boot camps all year, but that would fall so short of proving anything. A lot of Kaggle projects have been done to death (titanic, housing values, etc.). Many of them provide easy data to work with, barely requiring any preparation to apply machine learning to. No, the real magic is in original projects.

Original projects require much more real world problem solving and work. They require defining your own requirements, gathering and combining data sources, building out pipelines, and testing different approaches to find something that works. The courses are the starting point to learn concepts, but my own projects is where I want to synthesize those skills into something bigger.

Which projects I choose is going to be determined by several factors. I want to do projects that force me to interact with people who don’t think in the programmatic way that I do. I want to work with people to help them understand how they can benefit from machine learning. Synthesizing my skills and the domain expertise of non-data experts has been a large part of my professional career and that’s where I see the most value. I want to help people understand the crazy leaps in technology that we are seeing today and how they can be applied in new places.

Sharing My Output

Obviously none of this is possible without sharing with the world. That’s really the whole point of this upskilling and learning in public journey. My guides and project struggles are going to be shared on Medium like they have been. My hope is to launch some video content this year, but I don’t have concrete plans for that yet. Condensed versions of the Medium content will likely go up on Twitter and LinkedIn like normal, along with anything visually appealing that lends itself well to those platform.

A big part of putting my content out there is the potential benefits others can see from it. Maybe they find it entertaining to see a wacky project I’ve completed or they learn something from it. If I can produce content that entertains or gets people interested in the machine learning space, I’ll consider that a success.

Conclusion

I’ll be the first to admit, these are some big plans for 2023. I found a job description that I wanted to pursue somewhere down the line and tailored my courses and learning for the next year towards things that would me in a good position to take on fun projects that will also get me closer to something in the machine learning field. Everything also overlaps with my personal interests in new and exciting machine learning projects, which should help keep me motivated to keep working at it for a long time.

All this being said, the best laid plans require a lot of work and can still go awry. At the very least I have a vision for where I want to take my career long term and plenty of ideas for the steps to take to get there. Thanks for reading and good luck to all of your plans for 2023 as well!

--

--