Skip to content

CS50x Sucks / Automation For Knuckle Draggers

My coworkers have been looking for a good resource to "learn how to code"

...but there's an issue:
They are looking to automate.

Specifically, they are trying to solve problems that requires application first, not theory.

CS50x#

In my search for beginner resources, Harvard's CS50x kept reappearing.

HOWEVER, a major problem exist:
It is a COMPUTER SCIENCE class, not an INTRO TO PROGRAMMING class.

The Problem With Computer Science#

The working man's question is "How Can I Get This To Do ___?"
CS answers this about two layers too deep.
Here's an example of a common issue:
Layer 1 Problem: How do I sort this data?
Layer 2 Problem: What sort algo is fastest?
Layer 3 Problem: How do I implement the fastest sort algo?

The working man is most often concerned with modifying existing manual procedure into computer assisted procedure, which has an infinitely higher value on return.

As such, here is how the working man will sort data on Linux:

cat "data.txt" | sort

And on Windows:

cat "data.txt" | sort

Done, no need to learn what timsorting is or how to implement it. The problem is solved.

My Pragmatic Recommendation#

I have a three suggestions for learning to program:


  1. Document Procedure

Creating process docs is a more useful pseudocode. Consider:

  • Flowcharting procedure and conditions.
  • Chain of command.
  • Data preparation, transfer, and mapping.
  • Time / resources required.
  • Mapping of resources.
  • Reuseable email templates.
  • Shared notifications.
You will find things you can program / computer assist doing this.
You may be asking "Sure, but how do I code it?"

At this point, Google it and examine others' solutions, do what they did and tailor it.


  1. Inspirational Projects

If you can't figure out what program despite the above, I've found 2 books:

  • Automate the Boring Stuff
  • PowerShell for Sysadmins - Workflow Automation Made Easy

The above are substitutes for the absolutely bankrupt in creativity, they should provide useful projects ideas. You don't need to use Python or PowerShell, just skim the project ideas and implementations provided.

It should be said, I don't believe in reading books to learn programming. Do work instead.


  1. Fundamental Education

The two above resources and Googling should get you there.

If you need help with wrangling language, I recommend CS50 Python (not CS50x).

I'm not convinced doing the project work is a worthwhile use of time immediately, but it's good to know or skim for ideas to fix code or solve brute-forced code.

Closing Thoughts#

This post is short in length and tone for a reason, I'm more beating myself up for giving bad recommendations to people trying to solve real problems like I have.

I found having others figure out a segment of code / flowcharting to be valueable training.

Push come to shove, the answer to "learning how to code" for my office coworkers would be "What are you trying to do?" and sliding them some graph paper.