How to do well at a coding bootcamp and how I approached my learning.
Honestly, I'm not merely surviving. I'm really enjoying my time in Code Fellows. I thought I would be scrambling and be more worn out and overwhelmed than I am now. Instead, I am currently about halfway through the CodeFellows full stack curriculum and really excited about what I am learning and building. Here is how I approached my learning.
Notes
Not everyone's situation, background, and learning styles are the same. I have more time outside of class and a more flexible schedule to work on projects than other people in my cohort. I also have the experience of building, designing, and troubleshooting websites using pre-built tools. Still, I hope that some of these tips that worked for me may be able to help someone else who is working towards becoming a developer.
Know yourself and how you learn
This isn't the first time I attempted to learn how to code. I took introductory coding classes at the University of Washington but didn't do well. I expected the courses there to be able to teach someone who did not know about programming at all but the people around me who succeeded already knew programming before they stepped into the classroom. So this time around I knew I needed to be like those people who succeeded. Rather than relying on the school to teach me everything, I decided I needed to also teach myself outside of the school curriculum.
Another insight I had from how I learn was that when I would go through online programming tutorials, I would always hit a brick wall and not be able to move forward with my learning but when I would come back to where I was at a later date, concepts that I could not wrap my head around would suddenly be easier to grasp which brings me to my next point.
So if you have never been exposed to programming and if you don't geek out about computers, I highly suggest starting to familiarize yourself, practicing and struggling with programming using other resources outside of boot camp first so that when you get to boot camp, certain concepts will not be as alien and overwhelming.
Rinse and Repeat.
Repetition is really good. The more I revisited some new concept and the less alien something was, the more I could understand things. But in order to do this, you also need to give yourself time. Here are some of the things I did that I think really helped me:
1. I took a nights and weekend version of our boot camp. The schedule fits my work and family schedule better but the pace was also actually slower, giving me more time to digest and more time to work and practice.
2. I would go through online tutorials like the ones from Treehouse (referral link), books and other learning on the side and if I could go over new items AHEAD of time, I did. When the same material was covered in class, the 'new' concepts would not be so new to me then and I also got the added benefit of different perspectives and different approaches to teaching and learning the same thing.
3. Having more time also meant being able to ask for more work. Yes, more work! Just like spoken languages, I can't just go through a few courses and expect to be fluent right away. I need the repetition and practice using the language to make good progress in my learning.
Don't Just Learn How to Code. Learn How to Solve Problems and Cope On Your Own.
Learning coping strategies when coding is really important. You often run into bugs or problems and if you don't know how to approach finding them, you'll just be stuck unless you can get help from someone who does.
Getting error messages can be intimidating or even frustrating when you are trying to make something work, but I actually found that not having any messages at all with non-working code can be worse. Also, having support to help you find bugs is great for when you are truly stuck, but if you rely on someone else to keep solving your problems, it takes away from your learning.
Here are just some coping strategies I use to get my code working:
1. Check my browser console for any errors and find where it says the errors are or where they might be.
2. Check the server logs for any error messages also if you are building a server.
3. Console log each step of what you are trying to do. Make sure the console log is labeled and has a clear purpose for what you need to find to see if your code is doing what you want it to do.
4. Don't skip ahead but build from the ground up and one adds one feature or functionality at a time. In our recent project where we built a full stack app from scratch, if we built good foundations first on our code, we understood what we built better and we struggled less with trying to make things work. Also, if we strove to add a just one functionality at a time instead of a bigger more complex one, then it was also easier to debug and get it working. For example, It is good not to jump to displaying what is going on on the screen right away. You can test if your function is working by using console logs or running it through the browser console first.
Help and Teach Others
I think this was really big in helping me understand what I was learning. This is like the 'Rinse and Repeat' strategy I have above with added benefits. Whenever I finished an assignment or project, I tried to help others with theirs if I had time. This helped me practice reading other people's code, solidify what I learned, and helped me get better at communicating and working with other people.
See my projects & connect with me on Github: github.com/amgranad
Atlassian Administrator / Developer
7yGood tips, Amber! I’ve found that coming from a science background has really helped when I have problems in my code. The strategy of going through step by step and checking to see if a smaller part of a function is working is really essential when you have lots of code and don't know where the problem is. I initially learned this approach troubleshooting scientific protocols, and it translates really well.