I attended a full-stack SE boot camp. I'm glad I did. Here are a few things I wish I understood Day 1.
Tags: bootcamp, devjournal, beginners
Published: 2022-10-05 15:55:27

There are a lot of different types of learning boot camps out there. Before my experience with a 15 week intensive on-line live full-stack software engineering boot camp, most of the ones I had encountered, were a few weeks long at most and taught some niche technology/tools for your academic research domain or area of expertise. I have attended a few of those over the years and they are nothing like what I experienced during my SE boot camp (at Flatiron). 

## It's Going To Be More Challenging Than You Might Think But Less Than You Fear (Hopefully..)

The boot camp I attended had an entrance exam of sorts I considered it a screener. It was a timed adaptive computerized test, so as you get answers correct it shows you harder questions, much like the GREs, but only 20 minutes long. The test included basic math and logic, while the institution had a threshold score which you needed to pass to move on the interview process. Easy enough, killed the test and I felt the interview went great. Apply for scholarships (if that's your thing), do the paper-work get your cohort start date and away you go. 

I had a ton of pre-work to complete before day 1. Since they had people attending from all different backgrounds, with varying amounts of coding exposure, it was ensure everyone had a minimal same base knowledge to hit the ground running. This makes sense to me as someone who has thought about testing and learning in depth before, history is an important performance factor and the fact that they were taking that seriously made me feel better about my decision to attend. The pre-work was enjoyable and quite frankly pretty easy.   

Let me tell you a bit more about myself so that you can put the experience into perspective. I already had an advanced degree and unrelated domains of expertise from an academic research background, coming into boot camp. 

I literally had an advisor once give me a binder with printouts, forward me an IRB approval packet with study details, and send an email with product key for a program, which I had never heard of before, to build experiments of a type I had never conducted, during our second meeting (which took place in my first week of grad school). I also received instructions to build the study; recruit participants and make it work, in 3 weeks which is when we would start running paid participants in it; the name of another student who has used that program before; and oh yeah here is link to a forum if you need help. In case you are unaware in many academic fields your advisor is not only your boss for paid labor, they also have complete control over all aspects of your academic advancement and graduation, and because so many fields are niche they can also make or break your career with a word before you leave their office. Additionally most intuitions are set-up so that graduate student workers don't have access to HR or other workplace protections typically mandated for regular employees. So the pressure is intense and the power dynamics require a cultural overhaul but that is a discussion for another time. It was a nightmare, but I completed my task and with it got my first taste of the crazy hurdles that depending on circumstances might be presented to someone in a PhD program. 

Importantly, I would be withholding something vital if I didn't tell you that despite it being a nightmarish scenario, it was also deeply satisfying to complete it. I felt triumphant and couldn't wait until next time to make a new experiment, this time my own, with different and new features. Over time I have come to understand that I enjoy learning but it takes concerted effort on my part; am insatiably curious; love systems thinking and applying interdisciplinary approaches to solve problems; and believe in a growth mindset.

So I figured if I could deal with the above experience, get through qualifying exams, research and publication cycles, and defenses than I could do this boot camp. I mean how hard could it really be comparatively?  Despite feeling like past experiences and personal attributes set me up for success in boot camp, it was more challenging than expected and at times in ways that were totally unanticipated.   

I'm not certain how others would describe the experience but it was comparatively like taking several hard short semester classes (think 3 week pre- or post-session courses) back to back with each having testing along with a seriously intense group project as part of the curriculum. Then at the end you basically have 3 weeks to do close to a research Master's Thesis worth of work and present it. So while not at the level of PhD comprehensives/quals or defending your prospectus in terms of time, expertise, and labor, it is still very challenging in a number of ways some of which people might be surprised at. 

## It can be exhausting!



This is something where the cycle is intense learning, of what for many participants is brand new material, likely a new language to start with. Think lecture and labs from 9am -6pm with an hour lunch 5 days a week with 20-30 hours of homework and an exam at the end of 2 weeks. Followed by a week of practical application of what you learned in a remote group setting, plus researching and implementing anything extra you might need to complete your project: a working web app. 

Never coded before? Well now in your 3rd week you will be learning version control on git with other newbies while simultaneously making an app in just a few days! How to create branches, figure out merge conflicts on git, and lamenting the ever eternal existential question, "Why or why did I/you do that on the main/master branch!?", will just be a few of the fun activities you can expect to indulge in. 

Then the next week you start the cycle again with new information, testing and another project which is scaffolded to incorporate everything learned. 
 
So from a learning and memory perspective this is a situation which puts you under a significant amount of cognitive load. What does that even mean and why does it matter? It basically means that your brain has a limited capacity to the amount of data or information it can hold and manipulate easily when working consciously with information, particularly information not yet consigned to long term memory. The higher the cognitive load the more labor (i.e. energy) intensive doing things like problem solving and learning new things become. As to why this matters lots of things can effect your cognitive load and therefore moderate the level of effort required to do a task. Unsurprisingly, being exhausted is one of those things that does not help us in this area.


**What to do about it? Here are some things that either worked for me or where suggested by others and helped them.**

 1. Make a schedule that includes nights and weekends with blocks for your homework and practicing

   - This schedule should include definitive stop times so that you are actually getting the rest you need to perform more effectively 


  - Share this as needed with loved ones and/or housemates


  - If you are someone who has time constraints because of inflexible life circumstances (e.g. family responsibilities, chronic illness) know that this is going to be harder for you because you will just get less hours to complete your work. Making time management even more important for you.


 2. Attend to your basic needs...No seriously don't ignore what your body is telling you


   - Remember what I said before about your brain requiring more energy for sustained intense processing? That right, it needs nutrients and for you to be properly hydrated, not just caffeine to the rescue. Caffeine will sure keep you awake but without eating properly and hydration you won't be working efferently or putting out good work. 


  - A small mid-morning snack along with a short coding/screen break can refresh you and reset you to get back at it. The same thing in the afternoon. 


 3. Taking small breaks when you get stuck or have just been at it for a long time can help. 


  - If you are like me and might get lost in a thing, you can try setting a timer for every hour or two and check in with yourself on how you are doing. Are you eyes tired? Have you been mindlessly working over the same line of code without any new inspiration then take 5 or 10 minutes. Do something else.


 4. Optimize your workspace both the physical and virtual elements to ward off preventable fatigue.

  - Eyes getting tired staring at VS Code, change the color theme to one that feels soothing. 

  - We often don't realize that small discomforts over the course of the day slowly eat away at our energy and redirect our internal resources from where we want them, our coding, to ignoring the ache developing in your shoulders because you hunched over for so long. 

 
## It can be an emotional roller coaster


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s5cldroh9nt8q17l2932.jpg)

Photo by <a href="https://unsplash.com/@heyimsolace?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Justin</a> on <a href="https://unsplash.com/s/photos/roller-coaster?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
  

I knew going it that it would be stressful, that I would have struggles and I hoped triumphs. I underestimated how much the intense cyclical nature of boot camp can really run you through the emotional ringer. 

There were plenty of good points, feelings of satisfaction for solving a problem, just a good interaction with a cohort mate, pushing up that working code to git. There was laughter, smiles, frustration, and tears. I cried more than once during the experience and sometimes for things that surprised me. 


**What to do about it? Here are some things that either worked for me or where suggested by others and helped them.**

1. Accept that you will likely experience this and aim for management rather than avoidance


   - Emotional regulation is pretty complicated but there are a couple of things that you can easily do that will help give you the resources to ride the roller coaster instead of feeling like you are on the tracks. 


 - The most immediately impactful and effective things you can do to help provide emotional equanimity are wait for it... Pay attention to your body and meet your basic needs! Are you hungry, thirsty, tired, sick, in pain? Try attending to those needs and see how you feel in a little while. 


  - Practice some mindful breathing or mediation for a few minutes if you are feeling overwhelmed


  - Practice mindfulness of current emotions


2. Know that you are not alone in experiencing what you are experiencing


  - I've already fussed up to crying during my time at boot camp. However, it was the combination of having one of the mentors at boot camp openly tell our cohort that he went through the gauntlet himself and even cried, along with my cohort mates being pretty open about losses, that helped to validate my experiences.


  - Imposter syndrome is real. You should read this well-written and researched [blog](u) by Alie Brubaker about experience it in software engineering boot camps. 

  - Ask those questions anyway, even if you feel stupid or are afraid others will negatively evaluate you for not knowing. You don't need to struggle with course materials needlessly and add extra stress to your plate or fitter away hours that could be better spent on other coding related endeavors. This can be really hard to do particularly if you are in the grips of imposter syndrome. Gaining expertise in my experience has a few stages with the beginning and the end involving having lots of unanswered questions. At the start it's because this is novel material and as you actually move toward high levels of expertise its because you know that there is always more to learn and discover.  
 

## I'm Glad I Did It! 

If you attended a SE boot camp and have some additional things you wished you knew on Day 1 please drop them in the comments below. I hope you found this post helpful and happy coding!
 
references:
Brubaker, A. (2022). Experiencing imposter syndrome in software engineering bootcamps. Retrieved from https://medium.com/@findingalberta/experiencing-imposter-syndrome-in-software-engineering-bootcamps-d070e4032a35      

cover photo: Photo by <a href="https://unsplash.com/@ikukevk?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Kevin Ku</a> on <a href="https://unsplash.com/s/photos/code-on-computer-screen?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>