Bootcamp! My experience - Part 2 (Fundamentals)

Tags: codenewbie, bootcamp, beginners, javascript
Published: 2021-05-15 12:59:58

The excitement of passing the entry challenge and knowing that there is a date set to when everything will start was huge! I was given 3 weeks’ worth of pre-course material where it was mainly more katas to make sure I keep my learning, problem solving and logical thinking going. Some bits included learning how to use the terminal to start navigating through your files without using the operating systems UI. It’s that scary black box that IT people most of the times open up when there is an issue with your work computer and start typing letters in that don’t make sense to you. Little I knew, soon this became my most used tool when working on code and no longer is this scary thing I’ve never wanted to use.

During this time, I was able to connect with some fellow students and actually start new friendships. We talked about the logic behind our solutions of katas, shared tools and methods we had picked up and sometimes it was just nice to share the frustration about a challenge that was just too difficult to resolve at this stage. The most rewarding parts were when you were able to help someone get to the solution themselves by just giving little pointers or leading them to the answer.

Intro Week: The first week was basically an introduction to programming, where we went through most of the things we had learned already throughout the process of learning JavaScript and the pre-course material. We started talking about the logic of the whole programming world. How things work, why they work this way etc. All this new information just felt like it unlocked further knowledge and understanding as to what we’re typing and why some things work the way they do. Just think of a programming language as a way to communicate with a computer by giving it instructions. Depending on what you write the computer will execute your instructions. Computers think in 1s and 0s (binary) but programming languages are basically a language easier for us to read and write and then translated into binary code which simplifies our communication between us and the computer.

Week 2-4 - Fundamentals: During these weeks things got real very quickly. We got more into depth of the various methods we use in programming and started to apply those in Javascript. Here is also where Pair Programming became almost a daily thing. We are basically paired with a fellow student and work together on mini projects or challenges.
This was another great way of getting to know the rest of the colleagues but more importantly work together, share knowledge and bounce off ideas. Very often you have the solution right in front of you but you just can’t see it. Here is where pair programming comes in, by communicating what your thoughts are and just saying them out load you often get a step closer if not to solution itself. Let me just say, the feeling is just amazing when that light bulb goes on and you get to a solution together.
So we’re writing a lot of code but who can tell us if it’s right or wrong and if it does what we want it to do? Here is where TDD (Test driven development) comes in. Pretty early in this section we’ve learned how to test our code. This helped identifying issues and potential flaws in what we’ve written. It’s also a great way of thinking about the solution step by step and start from the smallest and easiest way of passing a test to the more complex way which then will pass all of the tests. Personally, during this part of the course Closures were basically the most difficult bit to understand at first. Just think of the movie Inception, a dream within a dream. This is basically a function within a function with access to the information from the function above and being able to manipulate information within. Possibly the worst explanation ever but I’ll leave you with a link if you’re interested in checking this out ([Closures](<https://en.wikipedia.org/wiki/Closure_(computer_programming)#:~:text=In%20programming%20languages%2C%20a%20closure,function%20together%20with%20an%20environment>)).

By the end of these 3 weeks the confidence level had increased massively. We had gone through, Testing, Values VS references, classes, recursion, closure, promises etc. 
The tutors are always there to support and listen to you when you feel low and you feel like things aren’t sticking in your head. Everyone takes their time go over the topic again until you fully understood. I always get the feeling that everyone believes in you and you know the answers. You just need a little push sometimes. When I look back and think about where I started and where I was at this point (4 weeks in). I had learned so much in such a short time and the learning was not going to stop here. There was more to come after we had covered the fundamentals. This is also where I started to think about, what if I wouldn’t have joined this bootcamp? Would I have learned all of this so quickly? Would I have known what to learn first? I put myself back to where I started and asked myself all these things.
Which is also a reason why I started this blog, I wanted to share my journey and give you my personal experience about joining a bootcamp and my thoughts on if it was the right thing to do or could I have learned all of this on my own? 

I will go through all this in the next part. In the meantime if you have questions or want me to talk about something specific please let me know.