Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Skill Up: A Software Developer's Guide to Life and Career
  • Toc
  • feedback
Skill Up: A Software Developer's Guide to Life and Career

Skill Up: A Software Developer's Guide to Life and Career

By : Jordan Hudgens
4 (2)
close
Skill Up: A Software Developer's Guide to Life and Career

Skill Up: A Software Developer's Guide to Life and Career

4 (2)
By: Jordan Hudgens

Overview of this book

This is an all-purpose toolkit for your programming career. It has been built by Jordan Hudgens over a lifetime of coding and teaching coding. It helps you identify the key questions and stumbling blocks that programmers encounter, and gives you the answers to them! It is a comprehensive guide containing more than 50 insights that you can use to improve your work, and to give advice in your career. The book is split up into three topic areas: Coder Skills, Freelancer Skills, and Career Skills, each containing a wealth of practical advice. Coder Skills contains advice for people starting out, or those who are already working in a programming role but want to improve their skills. It includes such subjects as: how to study and understand complex topics, and getting past skill plateaus when learning new languages. Freelancer Skills contains advice for developers working as freelancers or with freelancers. It includes such subjects as: knowing when to fire a client, and tips for taking over legacy applications. Career Skills contains advice for building a successful career as a developer. It includes such subjects as: how to improve your programming techniques, and interview guides and developer salary negotiation strategies.
Table of Contents (5 chapters)
close
4
Index

Chapter 4. How to Study and Understand Complex Topics?

When I was younger I used to struggle learning a new or difficult subject, and over the years and about a decade of university and grad school have helped me put together a strategy for how to study and understand complex topics. Typically, I apply this learning system to subjects such as algorithms and software engineering; however, it can be applied to any topic.

While there is a near infinite set of study strategies out there, I like this approach because it utilizes a divide and conquer strategy, focusing on breaking a complex topic into easy-to-understand components, and putting the pieces back together at the end to see how they all work together.

A system for how to study

Let's take a case study example: understanding how logarithms work. Logarithms are used throughout the fields of mathematics and computer science; however, unless you use them regularly it's easy to get rusty on them:

  1. The first task that I will do is take a piece of paper and write Logarithm in the center and circle it.
  2. Next, I'll go to a comprehensive post on the topic, such as one on Wikipedia. When reading the first sentence, I come across a few terms that are a bit fuzzy:
    • Inverse operation
    • Exponentiation

    I will stop reading the logarithm article and go and read those two articles until I feel comfortable with what they represent. After I feel good about those two items, I write them as their own circles that connect to the Logarithm circle. I will also add any examples that will help me understand what the terms mean if necessary.

  3. Next, I'll go back to the original Logarithm post and keep going through the article repeating this process until the entire page is filled with a mind map that explains each component that makes up logarithms and how they work together. This may include base case examples, such as:

    64 = 2^6 is the same as log 2 (64) = 6

If this seems like a dead simple approach to study…it is. The goal of studying is to learn a topic, and one of the easiest ways to understand a complex subject is to break it into easy to comprehend components. For example, if you're trying to understand an advanced algorithm in computer science from scratch, you may feel a little intimidated.

However, if you break the algorithm down into small enough components you'll see that it's essentially a process of steps made up of connecting simple modules such as loops, manipulating variables, and using conditionals. A problem is only hard when you try to think of it as a whole. However, any concept can be understood if you simplify it down to easy to comprehend pieces.

Obviously, the more complex the topic, the longer it will take to deconstruct; however, I am a firm believer that anyone can understand any topic assuming they dedicate themselves and put the work in. I hope that you can leverage this mind mapping process to understand complex topics and that it will help you learn how to study properly and truly learn.

bookmark search playlist font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete