- Skill Up:A Software Developer's Guide to Life and Career
- Jordan Hudgens
- 727字
- 2021-07-15 17:03:32
Learn how to code faster
If you're like me, when you learn a new topic the first thing you'll do is either move onto the next topic or repeat the concept as quickly as humanly possible. For example, when I learn a new Ruby or Scala programming method I'll usually jump right into using it in as many different situations as possible. However, I've discovered that this may not be the best approach because it's very short-sighted.
Our default mind
When it comes to learning how to code, one of the most challenging requirements is moving knowledge from our short-term memory to our long-term memory.
Remember the last time you learned a programming technique. Do you remember how easy it felt when you repeated what the instructor taught? The syntax seemed straightforward and it probably seemed like there was no way you would forget how to implement the feature. But after a few days, if you try to rebuild the component, is it easy or hard?
If you're like me, the concept that seemed incredibly easy only a few days ago now causes you to draw a blank. But don't worry. This doesn't mean that we're incompetent. Instead, it means that this piece of knowledge wasn't given the chance to move from our short-term to our long-term memory.
Hacking the mind
So, if our default mindset is to forget what we've learned after a few days (or a few minutes), how can we learn anything? This is where our brain's default programming comes into play and where we can hack the way that we learn.
I'm currently teaching myself the TypeScript programming language. TypeScript is the language that is recommended for Angular 2 development, so I thought it would be a good next language to learn. However, instead of taking my default approach, which is to slam through training guides and tutorials, I'm taking a more methodical approach.
Slowing it down
Through my learning path, I'm going through a number of books and video series. And as I follow along with the guides, as soon as I learn a new topic I completely stop. I'll stand up. Write the new component on one of my whiteboards. And actually, write the program out by hand.
After that, I type the program out on the keyboard… very slowly. So slowly that I know I could go around 4-5x faster. But by taking this approach I'm forcing my mind to think about the new concept instead of rushing through it. When it comes to working with our long-term memory, this approach is more effective than simply flying through a concept because it forces our minds to think through each keystroke.
Bend it like Beethoven
I didn't learn this technique from another developer. Instead, I heard about how one of the most successful classical music institutions in the world, the Meadowmount School of Music in New York, taught students new music compositions. As a game, the school gives out portions of the sheet music. So, where most schools will give each student the full song, Meadowmount splits the music up into pieces.
From there, it hands each student a single piece for them to focus on. From that point, the student will only learn to place that single piece of music. They will start out very slowly. They won't rush through notes because they don't even know how they fit into the song. This approach teaches them how to concentrate on learning a new song one note at a time.
From that point, the students trade note cards and then focus on learning another piece of the song. They continue with trading cards until each student has been able to work through the entire set of cards.
By forcing the students to break a song into pieces they no longer will have any weak points in a song. Instead, the students will have focused on the notes themselves. From this point, it's trivial for all the students in the class to combine their knowledge and learn how to play the song all the way through.
From classical music to coding
So, can this approach help you learn how to code faster? I think so. The research shows that by slowing down and breaking concepts into small pieces, it's easier for students to transfer information from the short-term to long-term memory.
- Embedded Linux Projects Using Yocto Project Cookbook
- Dynamics 365 Application Development
- Mastering phpMyAdmin 3.4 for Effective MySQL Management
- Nginx Essentials
- Unity 2017 Mobile Game Development
- Oracle數據庫編程經典300例
- Python青少年趣味編程
- Python Machine Learning Blueprints:Intuitive data projects you can relate to
- Sails.js Essentials
- Hacking Android
- ArcPy and ArcGIS(Second Edition)
- Android應用程序設計
- JavaScript設計模式與開發實踐
- 秒懂算法:用常識解讀數據結構與算法
- Python程序設計