Skip to content

Instantly share code, notes, and snippets.

@MichaelDimmitt
Last active September 25, 2023 16:05
Show Gist options
  • Save MichaelDimmitt/503c3defd8870231a23c9d04f44088b9 to your computer and use it in GitHub Desktop.
Save MichaelDimmitt/503c3defd8870231a23c9d04f44088b9 to your computer and use it in GitHub Desktop.
How I learned to organize my programming learning journey.

Disclaimer:

(This is a quick off the cuff post do not take as gospel. I could probably improve or add more research/accuracy.)

As I learned I came to a few conclusions that helped me a lot.

  1. Levels of difficulty of a task/learning
  2. Learning falls into different buckets
  3. Prioritize what you want to learn and have backup plans/objectives.

Levels of difficulty of a task/learning

  1. sleep (easiest)
  2. tutorial with working source code
  3. reading a book and not falling asleep (has structure)
  4. watching a video (structure usually harder to grasp)
  5. reach out for help at work on the assignment.
  6. completing an assignment at work. (you might change your approach as you go to make it easier)
  7. creating a personal project from scratch (hardest)

^ I find if I am struggling work on a personal project it is healthy for me to switch and read a book for a few hours and go back to the personal project the next day. (to mix it up)

Learning falls into different buckets

(you may spend a lot of time and effort, re-learning language fundamentals and never make progress. Then feel huge growth when you learn in a different area/bucket)

Prioritize what you want to learn and have backup plans/objectives. (this section needs cleanup)

aka. "how to get value out of a meetup or learning with others or a self learning session?"
think eisenhower matrix, but for work and then side projects and then show and tell.

My current order of priority when deciding what to work on first second and third, if not getting value in one I switch to the next item down the list:

  1. Work related learning needed to complete an assignment. (Work, for the boss)
  2. Work related items that bother you that you want to research and solve when you get a chance.
  3. Stuff outside of work that you want to work on, see Learning falls into different buckets
  4. Take a moment to see if you can teach sonmeone else and help them on their journey with your knowledge, this can be great for reinforcing your learnings and seeing what you mistakenly think you learned correctly.
  5. Bring a cool "thing" project to show.
  6. document Goals and their characteristics.

If you are working on self improvement. Or trying to have a conversation with others and see what areas you want to work on for growth. We default to our current highest priority. And since we are actively working on it we usually are in a state where we do not need help. A good practice is to run through this list to see if there are any other learnings you can glean aside from your current top priority.

Levels of difficulty of a task/learning (beefed out further)

  1. sleep (easiest)
  2. tutorial with working source code
  3. reading a book and not falling asleep (has structure)
  4. academic-assignment (easy/normal) (has structure, previously solved by others)
  5. completing a standard college class (has structure, has a knowledge track, finite length)
  6. watching a video (structure usually harder to grasp)
  7. completing an assignment at work. (has planning but potentially no known solution at start)
  8. creating a personal project from scratch (hardest, has no planning and no solution at start)
  9. tutorial with failing source code ... it does not work at the end and you need to fix alongside bad context/assumptions.
  10. academic-assignment (hard) (very few people have been known to solve and no access to solution)
  11. academic-assignment (impossible) (no known solution)

^ some problems are unsolvable and require a human to give up.
^ or write a proof on why it is not solvable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment