Back to the Basics – An Article for Recent Bootcamp Grads

For those of us who are recent graduates (past 3 months or so) from Software Engineering bootcamps, or about to graduate… I’ve come to realize that no matter what we accomplished, there often seems to be a creeping sense of doubt about how good we really are, what we know or don’t. Perhaps this is what people refer to as “impostor syndrome”, but to think about it more optimistically, I like to think of it as “the awareness that: ‘we can always know more than we do’”, or to quote one of my favorite movie director’s…

“I like unformed characters. This may be because, no matter how old I get, I am still unformed myself.”

Akira Kurosawa

To me… this speaks volumes about not becoming entrenched with what we know (or don’t know), and always maintaining the flexibility to change one’s mind. Not in a “flip-floppy” way, but in a way that we can examine any situation anew (and hopefully/ideally make more out of it thanks to the additional context we’ve accumulated from our past experiences).

Upon bootcamp graduation, there often seem 3 paths for the bootcamp grad: 1) FORGE ON AND LEARN SOMETHING NEW FOR “THE STACK” (a new language, framework, perhaps even just diving deeper into what you already know and exploring the unknown quirks of Hooks, etc), 2) ONWARD TO DATA STRUCTURES AND ALGORITHMS, 3) REVIEW THE COURSEWORK TO FILL IN THE BLANKS.

Having pursued all of the above, and reflecting… if I could go back in time and do one thing for myself, make one recommendation… it would be this:

Colt Steele’s Web Developer Bootcamp 2020

Now, I hope that doesn’t comes of as “too salesy”, but let me explain why:

When I leapt straight into Data Structure and Algorithms, not only with a variety of Udemy Courses, “Grokking the Coding Interview” from Educative.io, and AlgoExpert.io, there was always a nagging feeling that while I pursued greater understanding (and mastery) of data structures and algorithms (the standard coding interview stuff we expect we’ll need to do), I felt I was missing something in terms of my foundational learning, or perhaps the tech stack that I had.

To “reward” myself for battling it out with DS and Algos, I began exploring “something for me”: DENO. Ironically, I realize that was not the most “marketable” tech (because it’s not widely adopted) and it didn’t much contribute to either my foundational understanding or stretch my coding interview muscles, and yet it seemed a natural pursuit (given that I was a bootcamp grad and still much in “learning mode”. I refactored to explore Node.js instead, but as I forged on, I soon realized that the level of mastery I was pursuing was only scratching the surface. And with time being limited, perhaps I’d be better off focusing only on JavaScript for interviews to maximize my time…

So back to Data Structures and Algorithms. And then somewhat neurotically, back to coursework and review, to see what I might’ve missed, for every hour spent struggling through some obscure problem felt like an hour of “forgetting how to build”. The whole thing become something of a cycle, or more of a hamster wheel where I felt that I was doing much work without getting anywhere fast; sure there was the illusion that I was getting somewhere, and likewise, I could tell I was getting BETTER… more familiar with JavaScript for Coding Interviews, but at the same time I was growing fear that I was neglecting other things I already knew. To the extent that I was getting better with JS, it was only because I was running so frantically on my hamster wheel that I managed to loosen the axle and roll forward a little bit.

So, bringing it back to Colt Steele Web Developer Bootcamp, how and why I picked it, what I’m getting out of it, and why I recommend it (as I go through it). Colt Steele is a top rated instructor on Udemy, but also something of renowned bootcamp instructor and curriculum designer in his own right. I believe he currently has something of a bootcamp experience offered on Springboard.

The pitch for the Udemy course is pretty straightforward: it’s the curriculum of a bootcamp without the bootcamp experience. I figured there would be lots of beginner stuff that I already knew, but I didn’t look at that as a time waster. I looked at is as an opportunity to reflect and improve upon many of the things I already knew (or thought I knew) and either reinforce or “regrow” them entirely. As an opportunity to highlight my weaknesses; after all, the stuff is supposed to be basic, if I didn’t know it, it would be an obvious objective/problem to solve. Also, having already gone through a bootcamp, I knew that I’d be able to burn through the course much quicker than the time listed on Udemy.

Having gone through HTML, CSS, and making my way through JS, I feel that the three paths earlier mentioned are ALL being improved upon. The reason being: this course is complete for all the basics, even if it doesn’t go into insane detail. It’s helpful for learning new things in that I have larger context and know where I can branch off to/from. I’m better able to see how everything fits together (probably because I’m able to compress time while reviewing all this stuff, so all the concepts seem “much closer”).

It’s also helpful for data structures and algorithms for a similar reason… when seeing how everything “fits together” in compressed time, you get a taste/flavor for “The Why and How”, and better perspective on the “flow” of a program; how and why the language was built. Also, getting an overview of the most important built-ins helps you differentiate when (and where) to use them which make you more “fluent” in code, allowing you to better translate a sticky problem into code; in other words, being well versed in the built-ins makes it much easier to translate articulated problems into coded solutions.

And finally to reiterate, compressing the review of a bootcamp curriculum into only a few weeks (and a curriculum different than the one from your bootcamp…) fills in all the blanks, helps you catch things you might’ve missed and build better mental connections. I believe this is better than just reviewing the material from the bootcamp you went to because doing the new course in accelerated time forces you to focus more on the forest than the trees, whereas meticulously reviewing a past experience seems to disproportionately provide greater detail of all the trees. Perhaps the worst part of reviewing difficult portions of something already done (in my opinion) forces you to reinforce past mistakes and misunderstandings, or at the very least cloud new understanding with struggles that loomed large in the mind as every struggle always has an emotional element associated.

While I do think it’s possible to battle through past mistakes and learn from them, I have the impression that it’s much more efficient to tackle a similar problem in a different context, in part because you have no concrete/emotional baggage to face (when retackling the problem), but also because the lessons you learned from your suffering remain abstract enough that you have some sense not to make the same mistake again. Lastly, because the problem is different, you can avoid falling into the same trap because the mind has no “repetition grooves,” no “emotional triggers” to lead you astray.

To bring this back to Akira Kurosawa and by way of analogy illustrate the above by different means… when writing a script, creating a story, you have the abstracts and the concretes. The abstracts are all the things you need to accomplish in your story/script, the individual scenes and what is written on the pages are the concretes.

Tying that to learning code, consider the concepts to be the abstracts and how you make use of them the concretes… Often times, a writer is able to get “stuck” on a particular scene, writing it over and over, tinkering and tweaking it. Sometimes even starting it from scratch. While it is possible for a writer to battle one’s way out of this situation, the easier/faster solution is often to step back and review the entire sequence in context. To reflect on what “needs to happen” and “in what order” as opposed to the smaller details/the parts which may have only negligible affect on the entire whole.

Thus, to be like Kurosawa, to remain “unformed”, to allow yourself to look at each situation anew (but through a lens of experience and context) allows you to “reform” yourself with a more solid foundation, that you are better prepared for any of the three paths mentioned above… and perhaps most important of all, by reviewing another curriculum in its entirety (one you expect yourself to be familiar with), you will become more assured with what you know, more confident in what you can do well, and simultaneously illuminate the areas that you truly need to work on.

Discover more from Comedy Tragedy Epic

Subscribe now to keep reading and get access to the full archive.

Continue reading