Skip to content

Latest commit

 

History

History
192 lines (143 loc) · 12.8 KB

README.md

File metadata and controls

192 lines (143 loc) · 12.8 KB

Learning Notes

I'm trying something new: re-learning how to learn. There's a ton of work that I need to get done and even more learning to do, but I'm finding conventional methods don't work for me anymore.

So, as an experiment, I've decided to document my new learning processes and create an archive of notes and tips for each certification / technology or subject I need to complete in the next year (2017 / 2018).

I've turned this into a project on Github as a form of accountability and possibly a way to get input from others about how you managed to learn more effectively while keeping track of what needs to be done and what has been done - an ongoing record.

Hopefully, this process would allow me to learn more effectively.

2017/2018 Certifications:

  1. AWS Certified Solutions Architect
  2. AWS Certified Developer
  3. Comptia Security+
  4. Oracle Certified Java 8 Programmer
  5. Certified Ethical Hacker v9
  6. German Language A1/2
  7. Comptia Project+
  8. LPIC-1 (Linux Server Professional)
  9. LPIC-2 (Linux Network Professional)
  10. LPIC-3 (Linux Enterprise Professional)
  11. Linux Foundation Certified System Administrator
  12. Neo4j Certified Professional

List of Courses:

  1. Ethical Hacking
  2. CASP
  3. Linux +
  4. Cloud +
  5. Security +
  6. PCI/DSS
  7. IT Forensics
  8. Pen Testing
  9. CISA
  10. Secure Coding
  11. Advanced Pen Testing
  12. Social Engineering
  13. Cloud Security
  14. CISSP
  15. Project Management
  16. Corporate Security Management
  17. Security Awareness
  18. Golang Web Dev
  19. Golang Training
  20. Saylor Software Engineering Track
  21. Mathematics for Machine Learning
  22. Java Programming and Software Engineering

Programming Languages / Frameworks / Tech:

  1. Java
  2. Android
  3. Golang
  4. Swift
  5. Rust
  6. Elixir
  7. Phoenix
  8. Gin
  9. Python
  10. Crystal
  11. WebAssembly
  12. Kubernetes
  13. GraphQL
  14. Lua
  15. PHP
  16. JavaScript
  17. Swift
  18. Objective-C
  19. C
  20. HTML
  21. CSS
  22. SQL
  23. Node.js
  24. Ruby
  25. Ruby on Rails
  26. Sinatra
  27. LaravelPHP
  28. Django
  29. Webpack
  30. RabbitMQ
  31. Chef
  32. GraalVM
  33. GTK+

Database / Storage Systems:

  1. PostgreSQL
  2. REDIS
  3. Neo4j
  4. MongoDB
  5. MySQL

Modern Front-End:

As we head to a future of Web components a few things are slowly changing for the better on client side development. Components help us reuse and modularise components/code to use on multiple projects and transfer them with ease and gives us the opportunity to improve/perfect them over time (fixing one fixes all). Until this is a native feature in all browsers we'll have to do with 3rd party libraries. Note that the landscape has and still does change quite a lot (Having a quick look at this will give you an idea) But components are definitely here to stay.

  1. Atomic design - A lot of the principles for component based dev and design systems are in this book.
  2. Vue.js - Just read up enough about it to have a general understanding for the next step.
  3. Now for some code/implementation single file components will give you a better idea on what components are and how it's implemented. React does something similar but Vue hands down has the best readability and is the better choice to start with.

Other Topics:

  1. Survival & prepping (you never know when zombies pitch up)
  2. Hand to hand combat
  3. Improved writing
  4. Investing & Wealth Management
  5. Sign Language
  6. Chess
  7. Personal Health & Fitness
  8. Machine Learning
  9. Nutrition
  10. Body recomposition
  11. Body Language
  12. Cryptocurrencies
  13. Morse Code
  14. Open Water Scuba
  15. Private Pilot License
  16. Paragliding License
  17. Keto

My Learning Method Summary

There are many strategies for learning how to learn, but for me, it comes down to simplicity, understanding and immediate application:

  1. [F]AMILIARIZE Understand what you are about to learn
  2. [D]ECONSTRUCT Break it down into manageable pieces
  3. [O]RIENTATE See it visually - preferably an explainer video
  4. [P]RACTICE Hands-on real world implementation of what you are learning
  5. [E]NFORCE Follow it up with reading/text/research
  6. [D]IFFUSE Go to bed

It sounds strange, but the go to bed part is called diffused learning and for me, it's kind of like waking up the next morning with a new super power.

Understanding the larger concept of what you are about to learn is vitally important because you will likely be less intimidated and therefore more receptive. A simple way to do this is to watch either a quick or somewhat in-depth video about the topic you are attempting to learn. A 5000-mile view of the entire course or skill would be perfect at this stage. It help's by removing the unknown from it (there are no bad surprises - like geometry).

Since you will no longer be left spending energy on worrying about what you are not seeing or whats coming next, you can spend that time focussing on the actual learning at hand.

For adults to learn effectively, we need a pressing need and immediate application of the skill we're attempting to learn otherwise it will be forgotten almost as fast as we've picked up the skill.

I've performed numerous experiments on the subject of forgetting newly acquired skills and my conclusion is that it takes roughly 2 weeks for my brain to lose the newly acquired information if not enforced with immediate application. This process is not black and white, it happens in a gradual fragmentation - like a battery losing its charge until the point where no energy remains.

My Steps to Learning

Familiarization

This is a crucial step in the process of learning. Jumping right in to the meaty content of the topic you want to learn is much more difficult than it could be if you spend a day or two familiarizing yourself with the overall topic at hand.

The human mind is a scary place and we're wired to be afraid or at least apprehensive of the unknown (see where this is going?).

Deconstruction

It's important to break down the larger skill you are attempting to learn into smaller, more manageable pieces. Bite-sized chunks, if you will. The smaller chunks of work required will allow you to prioritize the parts you feel are important to achieving your goal.

I also use this deconstruction process to set a kind of progress indicator of my learning progress.

Orientation

Orientating yourself is closely tied to familiarization with the topic. They are generally performed asynchronously and are also inversely proportional to one another.

It can be quite trivial to watch a 10 minute video on Youtube about a topic you want to learn in order to get a sense of the requirements and outcomes that lay ahead.

The key difference between familiarization and orientation is this:

  • Familiarization: reading and researching on your own.
  • Orientation: watching a video where someone else is explaining it to you in their words.

Practice

Once you have started learning a topic, I find it best to immediate practice the skill and jump straight into the deep end. For me personally, it works best if I learn the basics and then jump straight to the toughest parts of the skill and then work my way backwards. Practicing daily solidifies the knowledge and also creates the visual anchor your brain needs to remember something by.

Most people think that you learn purely by repetition, but I find that to be a very shallow way of thinking about it. The practicing engages more of your senses and allows your mind to anchor the memories more efficiently.

Enforcement

Most people stop learning after the practice step because they generally feel "good enough" to move forward. The problem with this is that you have not yet challenged your own assumptions or received decisive confirmation about what you've been learning.

I find that this step of enforcing and acknowledgement acts as the backup or confirmation to the skill that you've been learning. It also adds a bit of theory to the physical skill and therefore a more complete picture.

What does it mean to enforce a skill? This might be different for everyone, but for me, it's the act of reading supporting topics, blog posts and alternative theories or angles relating to what I'm trying to learn.

An example would be when I was learning German, I would read a few articles about Germanic languages in general or try memorize the 1000 most used German words (this helped tremendously even though it wasn't part of the official German course I was on).

Diffusing

This would undoubtedly be my favorite part and requires no real effort on your part. It's well know that sleep is good for you, but what most people don't know is that your brain continues to work while you are asleep. Ever had one of those "aha!" moments first thing in the morning where you've managed to solve a problem you were struggling with the day before?

Well, this is called Diffused Learning and there's lots of research available online about the topic. The trick is to learn just before you go to bed at night.

I don't mean cramming it in one night before an exam because at that point, you've already broken all the previous rules mentioned above and effectively nullified any real ability to learn.