Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is mostly geared towards learning complex things in my quest to getting my Information Systems degree, but any general information is welcome as well.

I would like to know what you use to help you learn these complex topics and understand them. It seems that while I am in my programming classes there are very simple things but I just can't wrap my head around how to do them. I know I am capable but it just doesn't click for me and usually takes a very long time.

Mind hacks, cool out of the box methods of thinking, etc..

All answers are welcome. I look forward to hearing what everyone has to say!

EDIT: After taking my first comment into consideration I've looked into some of the related questions, but none of them seem to be what I am looking for. The subjects may sound the same but the answers seem very far away from what I would like to see for my question.

share|improve this question
Hi Tyler, welcome on this site! Did you have a look at the related questions and answers, that already exist on this site? Many interesting links are presented as "Related" there -> on the bottom right of this screen next to your question. You could also use these to add to your question why this is not a duplicated of one of those, but a new question. – MostlyHarmless Feb 11 '14 at 6:14
Thank you for that I didn't see the Related section right away. Although some of these questions seemingly look the same, when I read through them they did not have the answers I was looking for. I do appreciate your tip though. – tylerjholmgren Feb 11 '14 at 12:06
In both mathematics and computer science one of the best ways to learn something new and complex is practice - a lot. Learning recursion? Great! After you do your homework look up some other problems that can be solved with recursion and write the code necessary to solve them. Eventually the concept will "click" for you and you'll be able to build on that understanding. – Benny Hill Feb 11 '14 at 13:20
@BennyHill should that be an answer, not just a comment? – thursdaysgeek Feb 11 '14 at 21:26
What kind of answers to this question are you looking for that you didn't see answered in the other questions Tyler? – Manuel Hernandez Feb 12 '14 at 7:05
up vote 7 down vote accepted

An interesting question - I often made the experience, that I did not really understand a topic during my studies and then it suddenly made "click" in my head many years (!) later... that can be frustrating at first glance, as you think "this was so easy - why did it scare me for years...".

Some ideas from me:

  • Choose good "teachers" - if they are able to explain things in a way that you understand it, that can really boost the process of understanding.
  • This also includes exchanging your experience with others, as they can share their "click" events with you and vice versa, e. g. in learning groups.
  • Create and use memory hooks to memorize things that you often confuse
  • Choose "good" learning media or tutorials that help you understand
  • Practice! - I think it is often easier to understand something by making an example than if you just try to understand the theory.
    In engineering or math that might mean calculating an example with real numbers instead of just looking at the formula,
    in programming, that could mean set up a simple example script/program and see how it behaves.
share|improve this answer

There are at least two keys to understanding complex topics.

The first is to understand the concept of complexity itself.

Wikipedia defines Complexity as something with many parts where those parts interact with each other in multiple ways. This is like a mind map. It is in fact a graph, a network of ideas connected by relationships.

It would help you to graph out these ideas and their relationships to each other.

One example of this is when law enforcement officials are trying to understand the workings of an organized crime syndicate. You may have seen those shows where the officer pins pictures of all known associates and attempts to draw lines between the associates to understand how they are related to one another.

This helps you see patterns and deeper understanding of the topic as a whole.

The second concept is the Ladders of Abstration

Ladders of Abstraction is the idea that in order to understand something, it helps to is to freely traverse back and forth from the highly abstract down to the concrete manifestation.

Abstraction helps you understand reason and purpose and concreteness helps you imagine, visualize and understand properties and relationships. I did this in explaining complexity in the example above. Albert Einstein reportedly imagined himself running alongside a beam of light in order to understand relativity. David Allen in Getting Things Done describes this as thinking along horizons of focus.

share|improve this answer

It's important to start performing the skill before you're ready to do so. That way when solutions appear in the material you'll recognize them as such.

For example: getting novice software developers to adopt a Test Driven approach forces them to adopt some sound architectural techniques before they might have the vocabulary to describe them. When they stumble upon the patterns material, they will be able to relate it to real problems they've experience in code instead of only in the abstract.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.