Skip to content

Instantly share code, notes, and snippets.

@Luciaisacomputer
Last active December 31, 2017 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Luciaisacomputer/a0b217252446e4fa614099e3682a8e8c to your computer and use it in GitHub Desktop.
Save Luciaisacomputer/a0b217252446e4fa614099e3682a8e8c to your computer and use it in GitHub Desktop.

Staying Afloat: Keeping up with so much to learn

The JavaScript ecosystem is very large and still growing at an alarming pace. There is so much to learn it can seem like an endless race with a moving finish line. By the time you master one tool, another one comes out. Keeping up with everything can be a daunting task, and it is something that we all struggle with at one point or another. Fear not, there are many ways to stay up to date while developing deeper skills in the tools you already use. All it takes is structuring your learning in a way that yields maximum results without having to put in a lot of effort.

Know how you learn

Everybody has a unique learning style based on the types of learning that work best for us. These are placed into several primary categories including visual, auditory, reader/writer, and kinesthetic. Some people learn better in social settings while others tend to do better on their own. It's important to first understand exactly what style is the most effective for you and to embrace it.

The way in which you learn can also evolve over time. It isn't uncommon to have to change up your approach as your knowledge base in a subject grows. Books might not be enough and a more hands on style might be the next best step. A topic such as design might be better suited for visuals even if you aren't necessarily a visual learner. The key is to try a handful of materials and use what works best for the job.

This might all sound a bit obvious but it isn't always a concept that people are actively aware of. By being mindful of your learning style and that you don't have to learn any one specific way, you'll find yourself less frustrated. Many people give up when they are at the cusp of understanding, simply because they don't give themselves enough time to try several different methods.

Set Goals

It's very important to set a goal for exactly what you want to achieve. If your plan is too vague, you'll never reach your goals. Be sure to establish them as realistically as possible. For example, if you want to learn React your goals could look like this:

Goals:

Create a To-Do list application
Add Redux and use it to manage state
Create a database and an API to store To-Dos
Rebuild the application with React native

Setting goals helps you to look back and realize how far you have come, that way you don't feel like you have wasted your time.

Don't worry if you don't always meet your goals. Even if you fall short you should measure the amount of success you had and then figure out why you didn't quite make it. Knowing why you failed and finding a way to prevent it in the future is just as important of a skill as learning quickly.

It's who you know

One of the first things you can do to stay up to date is to follow the subject matter experts of specific technologies. Surrounding yourself with those who work on a daily basis with a framework you're interested in can help you learn all sorts of things like best practices, important new updates, and other resources that you can lean on to make your job much easier.

Go to meetups and learn about what other people are using. Sometimes a difference of opinion can lead to new discoveries that are useful to you even if they just validate the path you have already taken. Having others to learn along with can help ease the feeling that you are being left behind.

The friends you make at conferences, meetups, and other events are a great resource too. Following them on GitHub, Twitter, or Facebook can also be an easy way to keep up with what others are interested in and using. Don't hesitate to reach out and ask for help when you are stuck. You are more likely to find the answer to your problem faster with the help of a friend.

Find a mentor, and be one

Nothing can help you hone your skills faster than a good mentor. Finding one can be difficult sometimes, but there are plenty of people willing to take you on and teach you. They might be a friend from Twitter, a coworker, or even someone in your family who is also a programmer. The most important thing is that they have time to help you grow.

A mentor doesn't answer your questions, but instead helps you answer them on your own. What that means is that they hold your hand and help you think about your problem. After all, problem solving is really what we do every day. They can provide new ways of thinking, as well as pointing out errors in your code and ways you can improve upon it.

Becoming a mentor can be beneficial as well. Yogi Bhajan once said, "if you want to master something, then you should teach it." This is absolutely true when it comes to coding. Have you ever worked on a piece of code that works well but when your coworkers ask how it works, you fail to come up with an explanation? Did they look perplexed when you tried to explain your process? We have a tendency to assume we understand a concept after reading about it, but it isn't until we actually talk about it and teach it that we really start to grasp it.

Set aside time

Setting aside time is probably the hardest thing for many developers to do. We're already so busy that it can be hard to balance work life, family life, and finding time to learn. It's important to remember that you shouldn't have to sacrifice sleeping or eating to get ahead. Even taking 20 minutes a day can add up really quickly.

Track your schedule and start keeping a list of everything that you do throughout the week. Once you have an idea of where all your time goes you can start prioritizing it. Start with the things that matter the least like watching a TV show and bump them to the bottom of the list. It's actually pretty amazing how much time we waste throughout the day on unimportant tasks like checking social media, as well as how many tasks we can group together to do more efficiently.

When you finally have an idea of how much time you can realistically commit to learning, write it into a schedule. Putting it onto paper formalizes everything, and if it's helpful, have a friend or partner make sure you keep that commitment.

Keep a list

Keeping a list of tools, buzzwords, and tech terms is an excellent way to make a todo of things to learn. A simple checklist that you can mark off as you read about and apply a new concept can help show how much progress you've made. This can also be a list of blog posts to read as well.

Create a document with a list of blog posts to read. Write notes about each article, that way you can reference it later on if needed. It will save you some time when you go back and only really need the key take aways.

The 80/20 rule

It's not very often that even the latest and greatest technology does something so completely different that it is truly unique. Because of this, you can apply the Pareto principle to get the most out of your limited learning time. The Pareto principle states that 80% of the effects come from 20% of the causes. When applied to programming, what it essentially means is that you don't have to know every little detail, but rather only the 20% that makes a certain language or framework different.

If you can answer the question, "What problem does this solve?", you can narrow down what you need to learn to several pieces. React, for example, helps simplify creating UIs with a functional approach to component based architecting. First, you'd want to learn what functional programming is, along with what a component is. After understanding those terms, the next focus would be understanding props and the render() method. With just that bit of information you should be able to build a couple of basic applications and slowly start to grow your understanding of React.

Take Time Away

Even if you have plenty of time to spend honing your craft, it is important to take time away from your learning routine. Having other hobbies, especially hands on ones, which are creative can help you reset your brain and offload everything you have learned. Spend time with the family, walk the dog (or cat), take a mini-vacation. Whatever it is, just make sure to stay completely disconnected.

Numerous studies have shown that the brain goes into a "cleanup" mode when you are in a restful state, especially when you are asleep. That's why it is so important to not get into sleep debt. You'll have an easier time remembering what you learned and applying it when you get enough rest.

Go forth and learn!

Staying up to date can be remarkably challenging but it doesn't have to be. With the right strategies to put up to date knowledge in front of you and finding the correct method to learn with the limited time you have you don't have to burn yourself out. When you apply a well laid out process for learning, you can ensure you'll never fall behind and might even find yourself ahead of the curve.

@mattr-
Copy link

mattr- commented Dec 29, 2017

Hi! This is looking really good! I've quoted sentences below and provided feedback on those specific sections. The code blocks are just to call out explicit sections of sentences so that you can get a better idea of where a change needs to be made.

My apologies in advance for the various grammar nitpicks. I've spent some time as a technical writer/editor in prior positions and so I tend to focus on those things.

Please let me know if you have any questions!

It's important to first understand exactly what style is the most effective and to embrace it.

I think this sentence will sound better if you add for you between most effective and and to embrace it. It pulls the reader in more by making them think that you're talking directly to them.

By being mindful of your learning style and that you don't have to learn anyone one specific way, you'll find yourself less frustrated.

Could you remove the one between learn anyone and specific way and then split the word anyone into two words?

Many people give up when they are at the cusp of understanding, simply because they don't give themselves enough time trying several different methods.

I'm not sure about this sentence. Perhaps the end should read because they don't give themselves enough time to try several different methods?

If your plan is too vague you'll never reach your goals, so be sure to establish them as realistically as possible.

Could you change the sentence structure here a bit. It feels a bit run-on-y. Something like If your plan is too vague, you'll never reach your goals. Be sure to establish them as realistically as possible.

For example, if you want to learn React a good goal would be creating a To-Do list application.

Perhaps you could use a code block here to highlight what the goal should be?

"For example, if you want to learn React a good goal would be: Create a to-do list application"

Don't worry if you don't always meet your goals, even if you fall short you should measure the amount of success you had and then figure out why you didn't quite make it.

Let's split this sentence in to two pieces, as it's a run-on right now.Don't worry if you don't always meet your goals. Even if you fall short...

Knowing why you failed and finding a way to prevent it in the future is just as important of a skill as learning quickly.

❤️❤️❤️❤️

Following them on Github, Twitter, or Facebook can also be an easy way to keep up with what others are interested in and using.

Please make sure you capitalize the H in GitHub.

Start with the things that matter the least like watching a TV show and bump them to the backlog.

Could you write bump them to the bottom of the list instead? It keeps the nomenclature consistent by using list all over the place instead of interchanging list with backlog.

Reading the docs

I'm not sure that this section needs to remain as it feels too much like a veiled "RTFM" statement and those types of things often come off as insulting. Perhaps fold mentioning the docs into "Know how you learn" section when talking about how books might not be enough? "Books and the official documentation might not be enough..."

React for example, helps simplify creating UIs with a functional approach to component based architecting.

React, for example, helps... Two commas here please. 😃 #grammarpolice 😉

First you'd want to learn what functional programming is, along with what a component is.

First, you'd want to learn...

After understanding those terms the next focus would be understanding props and the render() method.

After understanding those terms, the next focus. A comma is definitely appropriate here between terms and the. #grammarpolicestrikesagain 😂

Even if you have plenty of time to spend honing your craft, it is surprisingly important to take time away from your learning routine.

I think you can take surprisingly out of the sentence here to let the reader decide whether or not it's a surprise to them that it's important to take time away.

Having other hobbies, especially hands on ones which are creative can help you reset your brain and offload everything you have learned.

Could you add a comma between ones and which here?

Staying up to date can be remarkably challenging but it doesn't have to.

Looks like there's a missing be after to at the end of the sentence here.

@emilyfreeman
Copy link

Y'all are amazing! Getting this ready to go today. Happy New Year!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment