DEV Community

loading...
Cover image for Coda 2 Coder - Boot camp

Coda 2 Coder - Boot camp

Kev Morel
Musician/music tutor turned developer. I love languages and collaborative work.
ใƒปUpdated on ใƒป5 min read

Dev Journey Introduction

Boot Camp Weeks 1 & 2

JavaScript Foundations

Backend Block



Hi again ๐Ÿ‘‹. Thanks for coming back! Read on to find out about my first couple of weeks of boot camp @ NorthCoders...

Last few weeks in a paragraph (or two)...

The last two weeks have genuinely been the busiest of my life, serious life-juggling required! ๐Ÿคน๐Ÿป My kids are beautiful, but high maintenance to say the least. My garden is beautiful too, but at this time of year, it's also pretty high maintenance. ๐ŸŒฑ ๐ŸŒฟ The weekdays are crammed full of learning, which I love, but it does mean that the weekend is for catching up on all the general stuff that I can't help with during the week: Plenty of cooking, ๐Ÿฅ˜ cleaning, and general family business ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง
Boot camp is a combination of hard work, mind-blowing concepts, ๐Ÿคฏ and amazing people. ๐Ÿคฉ The enthusiasm and support shown by the tutors is both appreciated and essential. The other folk on the course with me are a wide mix of personalities, from mixed backgrounds, but we are all united in the desire to learn. ๐Ÿ“– ๐Ÿ–ฅ By the end of week two, it seems that most if not all of us have had our brains ๐Ÿง  melted several times. United by the groups' combined 'brain-pain', Friday zoom get together was packed with laughs and comradery. ๐Ÿ’ป ๐Ÿพ

Purple and yellow viola from my garden

What did I get from the last two weeks of JS...

Paired programming. This is the reason I know I am going to love the job, whatever company or role I end up in. It seems that this kind of work is common practice. There is a navigator, responsible for the macro-level thinking (planning and general direction) and the driver for the micro (the coding). It is really great to be able to concentrate on only one of those at a time, and swapping the role is done regularly. The surprising thing for me though was the complexity of problems it is possible to solve when working in a duo: Definitely more than the sum of our parts. Shout out to 'Lightning Jack' and his mock function work!

TDD (test-driven development). Get used to this one, as I understand from friends and family in the industry that we will be doing it all the time. At first, it does slow you down a bit, especially with simple functions. However, it really does teach you to learn to love the red light as much as the green. Once you start to understand your error messages, the red lights are the best route to the green. Also passing the simplest test first, then concentrating on passing the next simplest test case, can lead to some really great solutions to complex problems. Jest seems to be the testing tool of choice right now and after some initial head-scratching, most of us seem to have a decent understanding of it. EDIT: I should state that while TDD should be employed as standard practice, I have been informed by more than one junior dev that it is sometimes skipped due to workload. Expect to be busy!

The execution context diagram. Get used to this one too! At first, it is a little complicated but not too hard to wrap your head around. It does really help to understand some of the various 'interesting' behaviors of JS, some of which lead to an infinite world of possibilities. Also, it gives you the opportunity to sound like a pro when using terms like 'global variable environment' and 'call stack'. It's not a big stretch to go from shouting out 'local execution context', to actually knowing what that means.

Mock functions, and the first day my brain really got fried. At some point when you hit the foundations of functional programming, it all starts to resemble 'Inception', but twice as confusing! Instead of dreams within dreams, its functions being called or even created within other functions. It starts to get hard to track where you are or even what you are doing. Just when we thought it was already complicated, we hit the at first unfathomable 'mock functions'. These can be used to test various things, for example, it could test to see if a function called by another actually got called, how many times it was called, etc. Mainly this was confusing for me as the syntax just felt a bit unfamiliar and I had thought I could speak 'JavaScript' pretty well. I felt like someone who speaks Spanish but got dropped in the middle of Portugal. We got the testing to work though, and I am sure it will become natural quickly.

Closure, the COVE (closed over variable environment), or if you really wanna sound clever, the persistent lexical scope reference. This seems to be one of the most important concepts to grasp in foundations and it is pretty easy to see why, once you understand its basics. It is however a subject that seems to inspire fear in many. I guess it isn't the concept of closure that is so confusing, rather the implications of this behavior and the complex functional programming which follows hand in hand. I won't go into too much detail, but basically, it is a behavior that allows you to attach a 'backpack' of memory to a function and therefore be able to do many wonderful things. A simple example is a function that is capable of tracking and limiting how many times it allows itself to be run. Over the next 12 weeks, I expect to come across many uses for this behavior, but for now, me and my comrades on boot camp were just happy to get some of our tests to pass, although I honestly could not explain how or why in at least a third of the cases.

NorthCoders staff are awesome! ๐Ÿ˜ I deliberately haven't filled this second blog post with links for a reason I talked about on the intro page... GOOGLE! If you are reading this with the interest of becoming a full-time dev, then hopefully by now you are used to searching for your own solutions! I did however put the NorthCoders link on this page three times so far, for a reason: I have been really impressed with the tutors/mentors on so many levels. They have been friendly, supportive, entertaining, mind-blowing, generous, and have displayed a deep understanding of both the subjects and teaching. So far these last two weeks have been up there with the best, and that is thanks to my fellow JS newbies and the fantastic tutors. I may have melted, but I am really looking forward to doing it all over again next week ๐Ÿ˜Ž

Fractal art Image by Ralf Kunze from Pixabay

Coming up in part three...

Imposter syndrome: What is it and what can I do?...
Will any of us still be able to talk after a week of recursion? (Functions that call themselves.) And will anybody manage to draw anything better quality than Harry's duck in Friday Pictionary? Only time will tell...

Dev Journey Introduction

Boot Camp Weeks 1 & 2

JavaScript Foundations

Backend Block

Discussion (0)