Master any Programming Language with This Simple Trick

Roy Ben Yosef
CyberArk Engineering
3 min readFeb 7, 2023
Photo by Fotis Fotopoulos on Unsplash

As a software engineer, every now and then you start learning a new programming language or a technology. And part of being a professional (and part of the fun) is learning the nitty-gritty of the language and mastering it.

Most of the experience you get naturally comes from projects you work on: your day job, contributing to open source projects and working on side projects. But from my experience, this only takes you so far. To truly master a language (or any technology, for that matter), you must invest more: read more, learn the internals and so on. But sometimes, you can’t find the time or the energy.

I want to share with you a trick that helps me level up my mastering of the languages I work with.

(Short) Story Time

I always wanted to learn Python, master it and harness its power. But I never really got around to it. As fate goes, my team and I started working with AWS and serverless technologies using Python a few years ago, and I was ecstatic!

In addition to learning on the job, I read a bunch on my own time and learned everything I could, I volunteered to give Python sessions to my peers (a great way to learn is to teach), but I still felt I needed more.

Then I started doing a simple thing that really helped me level up.

Learn One Python Thing (Every Day)

Photo by David Clode on Unsplash

I scheduled a daily recurring task, and named it: “Learning One Python Thing” and committed to it.

This type of daily task shouldn’t be too big, but even on busy days you could find a couple of minutes to invest. But as long as you continue to learn even one small thing each day, you will level up your skill in your language/technology of choice.

This method cannot replace learning big topics and the internals of the language thoroughly. It requires meaningful time investment and is sometimes left behind due to everyday bustle. But you can complement this by learning one, even the smallest thing, every day.

A Few Examples of Short Tasks That I Do Daily

The day is going to be hectic, meetings galore! It’s 8:45 a.m., and these are my last 15 minutes of quiet.
Here are a few examples of things that I can complete in just a few minutes:

1. Rummaging around the Python docs

I love browsing around the official Python docs — it never fails to teach me something new every time.

My latest finding was getting all permutations of an iterable:

import itertools
l = [1, 2, 3]
>>> list(itertools.permutations(l))
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

# Permutations of length 2:
>>> list(itertools.permutations(l, 2))
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]

2. Finding random code snippets around the web

Just google around and you will find endless Python tips, tricks and blogs.

Here’s one of my favorites: Flattening a list with itertools:

import itertools
l = [[1,2,3], [4,5,6], [7, 8, 9], [10, 11, 12]]
flat = list(itertools.chain.from_iterable(l))
>>> flat
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

3. Solving challenges

I love solving challenges in CodeWars. It’s a great way to learn in short chunks and you can also see other users’ solutions, which is a great way to learn.

The Compound Effect of Daily Learning

Whether it’s finding challenges in CodeWars or random snippets around the web, committing to learning one small thing every day is a great way to complement your primary line of work and experience and ensure that you always keep learning no matter what.

It’s so trivial, but I was never doing this before. And when I started learning even the smallest thing each day, I saw how much it helped me.

I hope this helps you too. Happy learning!

--

--

Roy Ben Yosef
CyberArk Engineering

Sr. Software architect at CyberArk’s Technology Office. Into code, architecture and problem solving. Like to build and fix stuff. Usually late at night.