Image for post
Image for post
Photo by Wicked Sheila on Unsplash

You read books. You watch videos. You listen to podcasts. There is a firehose of high-quality information available at your fingertips.

But how much do you actually get out of your media consumption? How much do you remember? For a long time, my answer was “not a whole lot”. I was often shocked at how few key points I could recall from material I had read only days or weeks earlier.

To me, this is unacceptable. Why bother doing so much reading if I’m just going to forget it all? Sure, if reading for entertainment, then no big deal. But…


Image for post
Image for post
Photo by NeONBRAND on Unsplash

Want to commit key points from this blog post to long-term memory? You can access an Anki Deck here. Special thank-you to Andy Matuschak for pointing me to this paper.

Brief Overview of the Okita and Schwartz Paper

You have probably heard the advice that you should teach something if you really want to understand it. But does it really work, and if so, how?

Okita and Schwartz provide an extremely readable primer on the research behind Learning by Teaching and why it is so effective as a learning strategy.

They also explore a little-known benefit of learning by teaching called “recursive feedback” — feedback from watching your…


Image for post
Image for post
Photo by Isaac Smith on Unsplash

Ways to take advantage of this powerful and often-overlooked force for improvement

Ever wonder how successful people reach such heights? Think of a wildly successful person you admire. How did they get there?

The typical answers are hard work, innate gifts (personality, natural ability) and luck. These factors play a role, but one of the most important factor is left out: they leverage the power of compounding.

What is Compounding?

For compounding to occur, only two things are required:

  • Growth: Something must be growing by some percentage each year
  • Time: The growth process happens over multiple years

You’ve probably heard of a specific type of compounding: compound interest. In this context, compounding means that growing…


Image for post
Image for post
Photo by Christian Erfurt on Unsplash

A mental framework and 5 common failures

Whether you like it or not, you are faced with a barrage of decisions every day. Human beings are essentially decision machines, and the quality of your life hinges on these choices you make. The better you are at it, the better your life will be.

Some decisions are low stakes. Sometimes, the stakes are tremendous. What should I let my kids do? Where should I invest? Should I switch jobs? Should I ride my bike or take a car? Should I move to that neighbourhood? Should I reach out to the family member I haven’t talked to in ages…


Image for post
Image for post
Photo by Bonnie Kittle on Unsplash

The intermediate programmer’s ticket to advanced Python

You’ve been programming in Python for a while, and although you know your way around dicts, lists, tuples, sets, functions, and classes, you have a feeling your Python knowledge is not where it should be. You have heard about “pythonic” code and yours falls short. You’re an intermediate Python programmer. You want to move to advanced.

This intermediate zone is a common place for data scientists to sit. So many of us are self-taught programmers using our programming languages as a means to a data analysis end. …


Image for post
Image for post
Photo by Kane Reinholdtsen

Public speaking used to be a big sore spot for me. I was able to survive it, but just barely. I truly hated it to my core and it caused me a great deal of grief.

And don’t get me started on impromptu speaking — whenever something like that would pop up, I would feel pure terror.

A little over two years ago, I finally had enough and decided I needed to do something about it. I joined a toastmasters group my city. After a few months, I started to become much more relaxed. …


Image for post
Image for post
Photo by Jamie Street on Unsplash

Very often when building web scrapers to collect data, you’ll run into one of these situations:

  • You want to send the program’s results to someone else
  • You’re running the script on a remote server and you want automatic, real-time reports on results (e.g. updates on price information from an online retailer, an update indicating a competing company has made changes to their job openings site)

One easy and effective solution is to have your web scraping scripts automatically email their results to you (or anyone else that’s interested).

It turns out this is extremely easy to do in Python. All…


Image for post
Image for post
Photo by J-S Romeo on Unsplash

Here’s the situation: You’re doing a big data analysis in your Jupyter Notebook. You’ve got tons of charts and you want to report on them. Ideally, you’d create your final report in the Jupyter notebook itself, with all its fancy markdown features and the ability to keep your code and reporting all in the same place. But here’s the rub: most people still want Word document reports, and don’t care about your code, reproducibility, etc. When reporting it’s important to give people the information in a format most useful to them.

So you’ve got tons of charts and graphs that…


Image for post
Image for post

Lately I’ve been reading intensively on data engineering after being inspired by this great article by Robert Chang providing an introduction to the field. The underlying message of the article really resonated with me: when most people think of data science they immediately think about the stuff being done by very mature tech companies like Google or Twitter, like deploying uber-sophisticated machine learning models all the time.

However, many organizations are not at the stage where these kind of models makes sense as a top priority. This is because, to build and deploy these kind of models efficiently and effectively…


Image for post
Image for post
Photo by Kyle Ryan on Unsplash

Docker is a tool for creating and managing “containers” which are like little virtual machines where you can run your code. A Docker container is like a little Linux OS, preinstalled with everything you need to run your web app, machine learning model, script, or any other code you write.

Docker containers are like a really lightweight version of virtual machines. They use way less computer resources than a virtual machine, and can spin up in seconds rather than minutes. …

Mark Nagelberg

Professional data scientist. I write about data, programming, and learning productivity (esp. spaced repetition / Anki) https://bit.ly/38UyrDk

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store