Profile picture

Want to level up your problem solving skills? I write a bi-weekly newsletter about programming, problem solving and lifelong learning. Join now

  1. May 19, 2023

    If we want to improve our problem solving skills, we will want to improve our ability to think visually. Visual thinking allows you to see the solution, or multiple solutions, to a problem before setting out to solve it.

  2. May 12, 2023

    If you want superhuman powers, learn to think in probabilities. Humans are not good at it and you will use this skill every day. You'll also be able to impress your friends with mind-blowing party tricks.

  3. May 05, 2023

    The Solution is a newsletter for problem solvers, lifelong learners, and programmers.

  4. April 28, 2023

    Learning how to form patterns is a key to innovation in any field. In this article, you will learn how to form patterns, how to build structure when learning how to form patterns, and how to manage the increasing complexity of patterns.

  5. March 31, 2023

    Expertise is a journey, not a destination. This article outlines three simple steps we can take to become an expert in any domain.

  6. February 24, 2023

    To set ourselves up for success when the future is uncertain, we want to become antifragile. We accomplish this with a barbell strategy, ensuring ~85% of our knowledge portfolio is safe bets and the remainder is risky investments with the potential to pay off and set us apart.

  7. February 17, 2023

    One of the best ways to measure our skill in any domain is by our ability to get in the zone, or finding flow. Being in the zone feels easy. Staying in the zone is hard work. This article explains how to reliably and consistently find flow and get in the zone.

  8. January 27, 2023

    It seems every day another tech company is laying off a large percentage of its workforce. But unemployment is low and companies are hiring. WTF is going on? What does this mean for someone recently unemployed or just setting foot on their career path? Here is advice on how to get a job in this economy from someone who has been on both sides of the equation, as an applicant and a hiring manager.

  9. December 30, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the permutations algorithm

  10. December 16, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to generate combinations in JavaScript and Python.

  11. December 02, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the Towers of Hanoi algorithm in JavaScript and Python.

  12. November 18, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the quick sort algorithm in JavaScript and Python.

  13. November 04, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the merge sort algorithm in JavaScript and Python.

  14. October 21, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the recursive Fibonacci sequence.

  15. October 07, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the recursive factorial algorithm in JavaScript and Python.

  16. September 26, 2022

    Curiosity is central to learning, but as we grow older we become less curious. This article outlines strategies for regaining and improving our curiosity.

  17. September 23, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the recursive greatest common divisor.

  18. September 09, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the binary search algorithm in JavaScript and Python.

  19. August 26, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the selection sort algorithm in JavaScript and Python.

  20. August 12, 2022

    If you want to think like a programmer, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing common patterns in software development. In this tutorial, you will learn how to code the insertion sort algorithm in JavaScript.

  21. August 12, 2022

    If you want to think like a programmer, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing common patterns in software development.

  22. July 29, 2022

    If you want to think like a programmer, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing common patterns in software development. In this tutorial, you will learn how to code the bubble sort algorithm in JavaScript.

  23. July 15, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the merge two arrays algorithm.

  24. July 01, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the array partition algorithm in JavaScript and Python.

  25. June 17, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the longest increasing subsequence algorithm.

  26. June 03, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the Sieve of Eratosthones in JavaScript and Python.

  27. May 20, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to convert numbers from decimal to hexadecimal in JavaScript and Python.

  28. April 08, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the Greatest Common Divisor algorithm.

  29. March 25, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the maximum value algorithm.

  30. March 14, 2022

    Your brain needs you to breathe. No oxygen, no brain. Lucky for us, our brains will breathe without our thinking about it, and we can also control our breathing with our brains! Here are some guidelines on how to breathe for optimal cognition.

  31. March 11, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the nth number in the Fibonacci sequence

  32. February 25, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the factorial algorithm in JavaScript and Python.

  33. January 28, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code the Linear Search

  34. January 14, 2022

    If you want to learn how to code, you need to learn algorithms. Learning algorithms improves your problem solving skills by revealing design patterns in programming. In this tutorial, you will learn how to code a swap algorithm in JavaScript and Python.

  35. January 13, 2022

    The Legend of Zelda follows the adventures of Link, a young hero who drops out of college to launch a successful startup in a Palo Alto garage and changes the world as we know it. How did Link succeed in his quest? He equipped himself with algorithms, data structures, and Big O.

  36. May 07, 2021

    Learn how to solve any algorithm using these simple and easy-to-remember techiques.

  37. March 01, 2021

    How do we become, or improve our ability to be, creative? By creating our own luck.

  38. February 26, 2021

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will learn the hash table data structure in JavaScript.

  39. February 08, 2021

    Creativity is the most important problem solving skill you can develop. But what is creativity? Why is it important? How does it work? In this article, we will define creativity, identify the traits of a creative person, and outline the stages of the creative process.

  40. January 25, 2021

    When learning something new, we want to create chunks. With chunking, we learn a concept then combine concepts to solve problems. If we encounter a concept that is too big to understand, we need to break it into smaller chunks, then recombine the chunks.

  41. January 11, 2021

    If we want to succeed in today's economy we need to learn how to learn, and fast. We can use the ultralearning strategy to design our own learning projects on our own timelines.

  42. December 18, 2020

    Keeping up with the changing pace of technology is part and parcel of being a web developer. Listening to podcasts is a great way to stay informed and give your eyes a break. Unless you are independently wealthy or a short sleeper, there aren’t enough hours in the day to listen to all of them. Here are the best podcasts for web developers in 2021.

  43. December 11, 2020

    How do you find motivation? How do you find motivation in a year like this? It's challenging enough to Get Things Done, so how do you find motivation to learn new skills?

  44. December 04, 2020

    Of the many great newsletters available for web developers, these are the 10 that I find give me a well-rounded perspective on current trends and must-know developments in our field with minimal redundancy and maximal entertainment value.

  45. November 13, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will learn the graph data structure in JavaScript.

  46. October 30, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement node removal in a tree data structure in JavaScript.

  47. October 16, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement search of a tree data structure in JavaScript.

  48. October 05, 2020

    The path to success in any field is to develop expertise. The first, and most important, step on that path is deciding that it’s possible. The second step is to make it a practice.

  49. October 02, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement traversal of a tree data structure in JavaScript.

  50. September 18, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement the tree data structure in JavaScript.

  51. June 19, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement the linked list data structure in JavaScript.

  52. May 29, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement the queue data structure in JavaScript.

  53. May 15, 2020

    There are 10 kinds of programmers in the world: those who can convert decimal to binary and those who can't. In this tutorial, you will learn how to convert a decmial to binary using a Stack data structure with examples in JavaScript.

  54. May 11, 2020

    To succeed in problem solving and programming, you need to learn how to build structure, whether those structures are software or mental models.

  55. May 08, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will implement the stack data structure in JavaScript.

  56. May 01, 2020

    Learning data structures will help you understand how software works and improve your problem-solving skills. In this tutorial, you will learn the array data structure in JavaScript.

  57. April 27, 2020

    Emotion is important for success in both problem solving and learning. Empathy sparks creativity, but to excel we need to be aware of our emotional blocks.

  58. April 24, 2020

    Is there a computer science topic more terrifying than Big O? Don’t let the name scare you, Big O is not a big deal. Learn the fundamentals in this superlative guide.

  59. April 24, 2020

    Is there a computer science topic more terrifying than Big O? Don’t let the name scare you, Big O is not a big deal. Learn the fundamentals in the Little Book of Big O.

  60. April 20, 2020

    The key to success in life and learning is to embrace difficulty. We need to be challenged to stay motivated and improve. As long as the challenge isn't _too_ difficult.

  61. March 30, 2020

    If we must fail in order to learn, then we must learn to fail better.

  62. March 27, 2020

    In this tutorial, you will learn the fundamentals of the two approaches to dynamic programming, memoization and tabulation. Dynamic programming is a fancy name for efficiently solving a big problem by breaking it down into smaller problems and caching those solutions to avoid solving them more than once.

  63. March 20, 2020

    In this tutorial, you’ll learn the fundamentals of calculating Big O recursive space complexity by calculating the sum of a Fibonacci sequence.

  64. March 12, 2020

    In this tutorial, you’ll learn the fundamentals of calculating Big O recursive time complexity by calculating the sum of a Fibonacci sequence.

  65. March 06, 2020

    In this tutorial, you will learn proof by induction, a mathematical method used to prove the truth of a statement. Proof by induction is useful for understanding and calculating the Big O of recursive algorithms.

  66. February 21, 2020

    In this tutorial, you’ll learn the fundamentals of Big O notation log-linear time complexity with examples in JavaScript.

  67. February 14, 2020

    In this tutorial, you’ll learn the fundamentals of Big O notation logarithmic time complexity with examples in JavaScript.

  68. February 07, 2020

    In this tutorial, you’ll learn the fundamentals of Big O notation quadratic time complexity with examples in JavaScript.

  69. January 27, 2020

    Big O notation is not a big deal. Learn the fundamentals of Big O linear time complexity with examples in JavaScript.

  70. January 20, 2020

    Big O notation is not a big deal. Learn the fundamentals of Big O notation, beginning with constant time complexity with examples in JavaScript.

  71. January 13, 2020

    Programming and problem solving are metacognitive activities. The key to success in both is learning how to think about thinking.

  72. December 16, 2019

    Keeping up with the changing pace of technology is part and parcel of being a web developer. Listening to podcasts is a great way to stay informed and give your eyes a break. Unless you are independently wealthy or a short sleeper, there aren’t enough hours in the day to listen to all of them. Here are the best podcasts for web developers in 2020.

  73. December 09, 2019

    Of the many great newsletters available for web developers, these are the 10 that I find give me a well-rounded perspective on current trends and must-know developments in our field with minimal redundancy and maximal entertainment value.

  74. April 15, 2019

    Scrum is the most popular agile process, and Essential Scrum by Kenneth S. Rubin is arguably the most popular book on the topic. The problem that Scrum seeks to solve is how do we empower teams to identify and solve their own problems?

  75. April 01, 2019

    From cave drawings and hand-carved flutes to CPUs and machine learning, we, humans, have always been hackers. Our evolution is technology. We didn't appear in the Garden of Eden and, upon being cast out, grudgingly pick up hoe and axe. Did we evolve to use tools or did tools evolve us?

  76. February 25, 2019

    Whether you are working with open-source or private repositories, you will want to learn the Git fork and pull request workflow. This tutorial will walk you through a real-world example.

  77. February 18, 2019

    The Git branch workflow allows developers to create branches of a project to test new features and fix bugs without modifying code in production. In this tutorial, you will learn Git branch workflow basics and best practices.

  78. February 11, 2019

    In order to learn Git workflow, you need to work with a team. This tutorial introduces the centralized model for collaboration and is designed for two to work through together.

  79. February 04, 2019

    Whether you're learning full stack web development, machine learning or something else entirely, you're going to need to learn Git workflow basics.

  80. January 14, 2019

    Resolve to learn how JavaScript Promises work this year. This tutorial will introduce you to the Promise object and the resolve, reject, finally, all and race Promise methods.

  81. December 17, 2018

    Considering a coding bootcamp? Already enrolled? Here’s my advice for coding bootcamp students to ensure a successful career transition.

  82. December 10, 2018

    When we teach adults to code, we ensure success by cultivating a growth mindset with problem-solving heuristics, articulate language and fun.