Code Girl Logo

It's all about Brain Science!

Dr. Faith H. Wallace is a former college-professor with expertise in educational psychology and language development turned Front-End Developer with an affinity for clean, classic design. Self-taught with the help of Toby Ho and FreeCodeCamp. Her expertise spans HTML5, CSS3, JavaScript jQuery, Python, Bootstrap, Firebase, React and complex problem solving with a keen attention to detail and more. Her passion is working with beginners stepping into the myriad programming resources using tools to be successful no matter what language, framework, or library they choose to study.

This website is a collection of resources, classes and conversations about best practices in learning code.



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
Learning Styles

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.

Brain Science Hacks
Brain Science Hacks

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.

Learning Objectves
Hierarchy of Learning Objectives

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.

Metagcognition
Metacognition (Self-Assessment)

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

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

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.

    Resources
  • Find Podcasts that go beyond just introductory topics. Try Syntax with Wes Bos and Scott Tolinski or review the list of Podcasts (by subject) at Simple Programmer. If you are new to programming try Learn to Code with Me or Code Newbie
  • Look for Video-based audio courses. These are more like lectures where the instructor explains the topics to you while visually illustrating concepts. Note that the best video-based courses also offer transcripts of the lesson. This is for more verbal learners and for those that need to review notes. Most people are familiar with the following platforms:
  • There are dedicated followers to resources like FreeCodeCamp where everyday programmers provide supplemental materialis like YouTube channels where they walk through sections of a particular challenge. I really enjoy Jose Moreno's We Will Code. There is something about his voice that makes the content click for me.
Visual Spatial

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.

    Resources
  • If you want to learn to program and are highly visual spatial, start with Scratch. You will learn all of the logic of programming in a way that make visual sense to you.
  • My favorite application for learning JavaScript in a visual sense is Grasshopper made by Google. There is very little verbal learning; it's all visual. You move chunks of code into slots to create a completed task that is usually animated.
  • One of the best programs out there to help you visualize the computer's thought process and encourages you to actively debug on your own is Python Tutor. Not a great name since it can be used with Python, JS, Ruby, and other languages.
  • Remember, I mentioned that there are dedicated followers to resources like FreeCodeCamp where everyday programmers provide supplemental materialis like YouTube channels where they walk through sections of a particular challenge. I really enjoy The Daily Programmer with Cody Seibert. He teases out the concepts on a whiteboard which allows you to naturally see relationships.
  • Visual "cheatsheets" can be very powerful in helping you remember key concepts. Here a few to get you started
  • Visually compare the differences between two files of code. Diff Checker.
  • Pencil Project Wireframe - FREE Pencil Project.
Kinesthetic

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.

Visual Spatial

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.

    Resources
  • Learn design patterns or coding patterns. For exmple, the accumulator pattern and state pattern. Take the Design Patterns in OOP YouTube course with Christopher Okhravi.
  • Solve problems on platform sites where there is gamification in levels, tokens, and unlocking honors:
  • Use your strengths to solve real-world problems. CatchaFire is a great place to collaborate with volunteers from all over the world working on socially minded (for social good organizations). Volunteers from every field, particuarly technology is needed. Similarly, get involved with Goodie Nation.
  • Learn strategis for debugging. Debugging School by Toby Ho is fabulous. Take the guess work out of debugging and use tools like the scientific method to debug your work.
Intra and Interpersonal

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.

    Resources
  • If you are an interpersonal learner, join your local meet ups based on what you are learning such as Python or JavaScript. But also join groups for women or other underrepresented groups. Definitely join Code for America and find a local branch. Code for America works on socially minded projects with all volunteers from students to senior developers. Don't forget to see if there is a FreeCodeCamp Study Group Chapter in your area. You'll be glad you did.
  • An interpersonal learner might also like the challenge of working remotely with developers from all over the world through Chingu Voyage Program.
  • If you are an intrapersonal learner, join a challenge that is based on your own productivity and let's you self reflect on your progress such as the #100DaysofCode Challenge and the #30Days30Sites Challenge. Also give yourself permission to work on an open source project. You don't have to work on team, just find a project that has an issue and fix it for them if you can. Try Code Triage. If you feel like you are struggling with motivation, try Super Better
Brain Hacks

Set Reasonable Goals

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>

Brain Hacks

Study Skills

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.

Brain Hacks

Choose the Right Resources

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.

Brain Hacks

Build Early and Often

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!

Brain Hacks

Get Involved

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.