It's all about Brain Science!
Why make your journey to become a programmer a struggle.
Together, we can ease the burden of learning with research-based time-tested techniques from academic research on learning as applied to learning to code.
Learning Styles are the brain’s preferred method of understanding and retaining new information. Everyone has a mix of different learning styles and this can vary based on the subject that you are studying. Learning styles grow and change as you become proficient.
Leveling up in programming can be downright infuriating, time consuming & expensive. Take the frustration out of the equation with these 5 basic brain science hacks that work for any topic you are tyring to learn.
To become a programmer, you need to have experiences that force you to move through a hierarchy of learning objectives. Doing so ensures that you can progress from simply recalling coding concepts to being able to develop your own original code. There are six objectives: Remember, Understand, Apply, Analyze, Evaluate, and Create.
Usually defined as thinking about your thinking, it refers to the brain's processes used to plan, monitor, and assess your understanding and performance. Metacognition includes a critical awareness of a) one's thinking and learning and b) oneself as a thinker and learner.
Verbal Linguistic
Strengths are reading, writing, and speaking. Can memorize easily. Has a great love of reading and prefers to read to get information vs. looking at a video or listening to a podcast
Auditory
Strengths include listening, linking sound with meaning. Prefer to listen to an audio book or podcast than read the exact material. Good speakers who can convey meaning through their tone and inflection.
Visual/Spatial
Reliance on images, pictures, media, and color. Use of graphic organizers to visually organize new information. Takes extensive color-coded notes. Creates diagrams to explain concepts.
Kinesthetic
We naturally learn by doing. Learning takes pace when you transform information into a working product. Test things. Break things. Put everything back together in a new way. That's learning by doing.
Logical
Strengths include problem-solving, simulations, and puzzles. Excellent at reasoning and finding patterns, particularly analysis of cause and effect. Logical learners understand hierarchy. Gamification appeals to logical learners.
Interpersonal & Intrapersonal
Interpersonal learners thrive on the social aspects of learning and like to have a support group and mentor. Intrapersonal learners focus more on self-reflection and prefer to work alone. They analyzis their own process to see growth over time.
Clever marketing will make you think you can learn Python in a day or JavaScript in a week. The truth is: you probably can’t, and that’s okay. If you are a beginning coder, there is a lot to learn. Sure you could memorize vocabulary words for key concepts, but there is no getting around the fact that it takes time to process the logic of writing programs and practice to make your code work. You have to start with reasonable goals, both short-term and long-term.
Your short-term goals might be to work through the Introduction to jQuery section of Code Academy this week or solve two Code War challenges over the weekend. Short-term goals are incredibly important because they give you a sense of accomplishment to motivate you to complete the long-term goals. Your long-term goal might be to complete the Front End Certificate for FreeCodeCamp in 8 months with a career goal of getting your first developer job in a year.
Be sure you give yourself a realistic timeframe to complete your goals. A timeframe keeps you on task, as long as it is sensible. If the Udemy course you are taking has over 40 hours of videos, an unrealistic goal is to sit at the computer for 20 hours over two days and complete it.
/p>
There are many different types of study skills including goal setting, memory strategies, time management, and note-taking. I have found for learning to code Graphic Organizers are the best. Because Graphic Organizers are used heavily in education, you can find many different types online. A graphic organizer is a visual display that demonstrates relationships between facts, concepts or ideas. A graphic organizer guides the learner's thinking as they fill in and build upon a visual map or diagram.
The resources that are available to learn code are vast!
I just looked at a blog post that referenced over 400 free courses to take in April 2018 alone! And that’s a good thing. With so much variety, you can afford to be picky. Not every course or project is going to fit your needs, so don’t try to force yourself into it. The result will most likely be frustration and the feeling that you just don’t have what it takes.
Always be conscious that the material in the course is presented in multiple ways so that you have a greater chance of understanding and retaining the information. This can be verbal (reading), visual (images, diagrams), and auditory (speaking). More importantly look to see if the course you want to take has a project that you build throughout. Working on real projects builds your muscle memory for basic skills. But don’t stop there. Once you learn how to build through your course, it’s time for you to create your own original project. That is kinesthetic learning, learning by doing.
When you are evaluating a potential class, always look to see if there are opportunities for you to solve problems on your own. That doesn’t mean that the course doesn’t offer solutions to those problems, but there should be opportunities for you to try out your skills. This is a self-assessment. If you aren’t able to solve these problems, you might want to go back and redo a particular section or two from the course.
If you don’t have a way to get answers to your questions in a timely manner, you will forget what you have learned and will be demotivated to move further. I make it a priority of only choosing courses that bring the community of students together for this purpose.This could be a FB group, Slack, Discord or other group chat applications.
Also, look to see that there are benchmarks for self-assessment. While this may seem like something you can overlook when evaluating a course, it’s actually extremely important to your mental health while learning. A sense of accomplishment does wonders for your psyche.
There is really no way around it. If you want to be a developer, you have to build.
Experts say that you need to practice a skill for over 60 days consecutively in order for it to become a habit, and it takes over 10,000 hours of practice to become an expert in something. In other words, the more you practice, the quicker you learn. The good news is, you don’t have to be an expert. You just have to be able to build and troubleshoot at the beginning. Here’s where goal setting is important — how many hours per week or month can you realistically set aside for building?
Once you have some coding basics down, you will naturally become inquisitive about how to do something on a website or application. Take those inquiries and make them a reality. One night out of curiosity, I looked up how to play audio files on a website, so I built a quick page with my top 5 list of songs to code to (here). It was a small, manageable project that used very beginner level code and took just a couple of hours to build. That’s what is amazing about being a developer. If you can think of it, you can build it. What are you interested in besides code? Are you a dog trainer? Or a ghost hunter? Maybe a ballroom dancer? Whatever it is, you can build something around it. You’re a developer!
My favorite part of the Harry Potter series is that Harry is not alone. Learning magic, like code, is hard, especially when the most evil wizard of all time is trying to kill you, but Harry’s friends Ron and Hermione give him strength and motivation, and eventually they defeat You-Know-Who. This makes sense from the theoretical perspective of social constructivism — that we construct our knowledge through interactions with others, where each of us has strengths.
That’s the goal of most study groups: to create a shared community of coders from various backgrounds with a variety of strengths. While everyone is generally working on their own projects, we happily help each other out when the need arises, and members love to collaborate on projects together. If you aren’t sure how to find a study group, start with some online groups and see if there is FreeCodeCamp chapter in your area. I attend their study groups regularly.
Study groups are one thing. Meetups are another. My local JavaScript and Python groups have monthly meetings with guest speakers that both teach and inspire with a range of topics and projects, and the JavaScript meetings always have food which is a plus! I also attend events sponsored by WomenWhoCode. They have great workshops, code sessions, speakers, hack-a-thons, and put on a fabulous 2-day conference in the summer, and they started social events! Who doesn’t want to see the next big superhero movie with 50 of your tech friends?
Join meetup.com and see what’s available in your area. Contributing to these groups is the best way to overcome imposter syndrome, the feeling that you are a fraud.