Keep Calm and Code

A simple yet effective way to keep your cool while mastering fundamentals of software engineering at Launch School

Juan Palma
Aug 24, 2020 · 10 min read

Introduction

Bugs in programming are like bugs in real life: they are very annoying and sooner or later you are bound to be annoyed by them.

Since in programming and in life in general bugs are virtually inevitable, the question then becomes whether you end up losing your cool because of them or not.

And you might say, “well, if I lose my cool for a little bit and kill the bug that is, well, bugging me, then I can go back about my life like nothing happened”, and you’d probably be right. The problem is, what happens when you can’t “kill” the bug as soon as you expected, if at all? (…) Some bugs are easy to fix, but others can take hours just to be found.

But imagine for a moment that life is perfect and therefore bugs are never where you are — or in your code — to annoy you. Sooner or later you will realize that bugs aren’t the only source of frustration in life; when your phone freezes or the internet is just slow, when you’re stuck in traffic, or when you just have too many posts on your feed that aren’t memes, are just a few examples of this hard truth: like it or not, life doesn’t always give you what you want, and sometimes it definitely gives you what you don’t want.

If you decided to launch a career as a software engineer at Launch School like myself, this is especially important to keep in mind. At Launch School, we call the process of fixing a bug the burn. We call it the burn because, when you make a mistake (effectively creating a bug), all the hours you spend finding that bug and fixing it are so unpleasant, so annoying that you end up burning this experience to your long term memory so that you never make the same mistake again. You probably forgot what you ate a week ago for breakfast (I know I did), but odds are you’ll never forget this bug in the long run.

One of the main reasons you will probably never forget this bug is because of how it made you feel. Whether consciously or not, you want to avoid feeling like that ever again. And since bugs aren’t the only source of frustration in life, they certainly aren’t the only source of learning: if your internet is always slow even after your internet provider “fixed it” multiple times, switch providers; if you are always stuck in traffic when taking a specific route, avoid that route as much as possible; if your friends don’t ever share any memes, just find new friends!

But even after fixing those problems (assuming you can fix them), you are bound to feel more unpleasant sensations down the road; as I mentioned before, bugs — and other frustrating things in life — are inevitable. Therefore, if you can’t avoid them, then how do you keep your cool when unwanted things happen or when wanted things don’t happen, and what does that have to do with becoming a software engineer? This article attempts to answer these questions in the context of Launch School. If you are serious about the program, the information presented here will be of great help in the long journey ahead of you.

A Bit About Myself

I started Launch School’s free prep course in August 2019, and as of this writing, I am preparing to take the assessment for the JS210 course. It hasn’t been fast, it hasn’t been easy, but here we are.

It hasn’t been fast, because it’s been a year since I started the prep course, and I’m just over halfway through the Core Curriculum. It hasn’t been easy, because this whole time I’ve had a full-time job as a banker, and for a few months I even had a side job delivering food to make ends meet.

If you don’t know what Launch School is about, in a nutshell, it is a mastery-based, self-paced online school for software engineers that focuses on mastering fundamentals. What that means is that, unlike a bootcamp, you can only move on to the next topic when you ace the assessment of the current one, you can take as little or as long as you want to prepare to ace said assessment, and you must focus on things that don’t change. At Launch School, the staff makes sure there is no place to hide your lack of proficiency in an assessment; either you mastered the material or you didn’t. If you didn’t, you can’t move forward.

So, can you imagine waking up to study for a couple hours, go to a 9–5 job, then go to your other job, and then study some more before going to bed? That was my routine for about 3–4 months. The level of fatigue, saturation, anxiety and stress was at an all-time high during those months for me, and even though I don’t need that side job right now, Launch School’s Core Curriculum is still pretty demanding with a full-time job.

Back To The Questions

I decided to tell you a little bit about myself in order to provide you with some context as to what do I mean by unpleasant situations. Not everyone is under the same circumstances, and even if you don’t have any personal constraints that may hinder your path to becoming a professional software engineer, the information offered here can still be of great help because unpleasant situations are part of everyone’s life.

I’m going to leave the first question for later and focus on the second one for now: why does it matter to have an effective way of calming down while at Launch School? Let’s begin by looking under the hood to see what is going on when the mind gets agitated.

To simplify things — or rather, oversimplify — , let’s split the mind into two distinguishable parts: the conscious and the unconscious. The conscious, also known as the surface or intellectual level of the mind, is the part of the mind that allows you to think, move, speak, etc. at will. The unconscious, also known as the root level of the mind, is the part of the mind that, in a nutshell, has a will of its own: it digests the food you eat, it makes your heart beat, etc. Because of this fundamental difference, the conscious mind is mostly driven by reason (subjective or objective), but the unconscious mind doesn’t care about reason at all.

No wonder, then, that both of these parts of your mind are constantly in disagreement. In fact, this conflict between the conscious and the unconscious is so common in daily life: you know eating junk food everyday is bad for your health, but you can’t stop eating it; you know working out regularly makes you stronger and healthier, but it is just such a pain; you want to find and fix a bug, but it’s just so annoying. I honestly sometimes wonder how great life would be if Nutella tasted like broccoli and vice versa; sadly for all of us, that’s not the case.

This conflict generates so much tension, so much agitation in the mind, it takes a great deal of effort to do what’s reasonable, healthy and sustainable in a reasonable, healthy and sustainable way. To have a calm mind at all times is vital to tackle challenges like the ones presented by Launch School.

An example that stands out is the transition away from the factory-based education model we all know into Mastery-Based Learning, or MBL for short. Like most changes at the beginning, it is very hard to prepare your mind for MBL and all the difficulties it entails: since there is no classroom, it is a solitary learning experience; since it’s self-paced, there can be a lot of pressure from friends and family who have never heard of an education program that has no defined end date; also, because there’s no time frame, your anxiety may start kicking in at all times, just to name a few. So, knowing how to deal with unpleasant situations isn’t only relevant to be able to sit down for hours trying to find and fix a bug; it can help you make your journey to become a software engineer a lot easier and smoother.

What Has Worked For Me

Now that you know why it’s important to have a way of tackling Launch School’s slow, hard journey, let’s go back to the first question and focus on the how:

  1. Start a healthy, sustainable daily routine and keep it up. I can’t stress this enough: Launch School is not a race but a marathon. If you don’t get to a pace that you can reasonably keep up, stop what you are doing because you’ll most likely won’t make it. If you do, it will have been at a higher cost than you had to pay. This tip includes, but is not limited to, what and how much you eat, how long and how well do you sleep, if you work out or not, how you learn, and any extracurricular activity that helps you unplug and renew yourself in order to be fresh for the next day. Beginnings are always the hardest, but once you get in the habit of applying this and the rest of the tips outlined here, over time you’ll find that the journey becomes easier and easier.
  2. Slow is fast, and fast is slow. This may seem counter-intuitive at first, but I have found it to be true. If you don’t take your time with the exercises, with the projects and with the material, you won’t master them. If you don’t master the material, you won’t succeed in the assessments. And if you don’t succeed in the assessments, you will have to retake them. Then again, by going faster than you should, you end up going slower than you have to, so patience pays off big time. If anxiety kicks in, and it will kick in, remember that even though sometimes it may seem like the program is never-ending, it is finite, so if you put one foot in front of the other, taking it one day at a time, you will certainly make it. When you feel overwhelmed, and you will feel overwhelmed at times, remember to focus on today and not tomorrow because tomorrow isn’t here yet.
  3. Always remind yourself why you’re doing this. Motivation is key throughout this journey. If you have a clear goal always in mind, putting deadlines aside, the path will be way easier to walk on.
  4. Have fun. There is no better way for time to pass by fast than having fun. Launch School does a great job at structuring the material in a fun, beginner-friendly way. Trust me, before Launch School, I had no prior exposure to programming at all. None. But if you don’t take advantage of the care Launch School put into engineering the curriculum and enjoy the present, you are going to burn out and maybe even end up resenting software engineering. This path is supposed to be fun! Always keep that in mind, and you will make your life easier without sacrificing proficiency.
  5. Meditate. This is the backbone of my healthy and sustainable routine, and the key to be able to take my time with the material by staying in the now, keeping my cool and having fun every time I get the chance. In fact, this tip is so important it requires its own section.

The Importance Of Meditation

To meditate, in a nutshell, is to focus your entire attention on something; what that something is determines the type of meditation you are doing. You can focus your attention on a mental image, a song, etc.

While it’s true that, when it comes to your body, there are things you can control at will and things you can’t, there are others that fall in between. A great example of this is your respiration. If you want, you can control your breathing right now and make it shallower or deeper, faster or slower, or you can even hold your breath in or out for some time. But what happens when you fall asleep? Who controls your breathing then? You guessed it, your unconscious mind!

Respiration is always available, it’s free, universal, and it’s a great tool to calm the mind since it can work as a “bridge” between the conscious and the unconscious part of the mind. When you get agitated, your unconscious mind can make your respiration heavier and faster without you even noticing. However, if you focus your entire attention on your natural breath for a set amount of time — say, ten minutes — without trying to control it, then you will find that your mind calms down, and your respiration eventually goes back to normal. In turn, this increases your problem-solving ability, your mental clarity and your energy. Therefore, you don’t end up with ten minutes that went to waste, but ten minutes you invested in keeping or coming back to a calm and clear mind.

And observing your natural breath for ten minutes with no interruptions sounds so easy though. However, just because something is simple doesn’t necessarily mean it’s easy. I started meditating in December 2014, and I still think it is one of the hardest things I have ever done. If you give it a try, you will agree.

For best results, I suggest you don’t try it by yourself, though. For proper guidance, visit this page and play the second audio for meditation instructions that last 10 minutes. The instructor may mention a couple of terms you are not familiar with, and that’s OK. Visit this link if you want to know more, but the observation of natural breath is what you should focus on.

Meditation is not the end-all, be-all solution to becoming a professional software engineer, but, as you saw, it does make the journey — and life in general — a lot easier to deal with.

Conclusion

Agitation is part of life because unpleasant situations are part of life. As you progress on the slow path to mastery of fundamentals in order to become a professional software engineer at Launch School, you will realize more and more how important it is to have a simple, yet effective way of dealing with these unpleasant experiences in order to keep agitation at bay.

If you’ve decided to become a professional software engineer at Launch School like myself, I am happy for you and I wish you nothing but success in the long journey ahead of you. If you haven’t, you can still benefit from the information outlined here to live a better life in general. Having at least some way of dealing with life’s obstacles is so important, yet so overlooked.

Bugs in programming are like bugs in real life: they are very annoying and sooner or later you are bound to be annoyed by them. However, next time a bug annoys you, come back to your natural breath, apply the rest of the tips above, and agitation won’t bug you anymore.