By Joyce Yueh Yueh Ling
In four months, a lot can change. Four months: A San Antonio winter, a long distance relationship, a college semester.
During my four months at Codeup, I pursued what felt like an unattainable goal and actually reached it. When I tell people that I’ve been coding less than a year and am now working as a software developer, people are usually impressed. But to be frank, I could never have done that without attending a coding boot camp like Codeup. It was a short four-month process that was like stumbling from a dusty, old wardrobe into Narnia: on one side, a clumsy and unenlightened beginner and thereafter being transformed by a completely new and fantastical world. Attending Codeup armed me with the experience and knowledge that allowed me to survive the harsh winter landscape that starting out from scratch as a software developer can be.
Now as I am working at my first real job, I’m grateful to Codeup for teaching me several things that allowed me to be better prepared for my career.
From beginning to end, Codeup placed a huge emphasis on group exercises. The beginning of the course was characterized by paired programming, a process in which one person is the navigator and one is the driver. As the names suggest, the navigator communicates with the person at the keyboard and directs them to type certain bits of code or navigate to specific elements on the page. Often, we would flip-flop between these roles so both students could get a crack at practicing one of two things: Firstly, we practiced how to communicate clearly and efficiently. Secondly, we learned how to take direction and ask clarifying questions.
At the time, I wasn’t sure what the big deal was with paired programming and why the instructors at Codeup had made it such an integral part of the curriculum. However, as I go about my everyday duties at work, I realized how often I engage in informal bouts of paired programming. Although we have a Wikipedia-style knowledge base at my work where we document our processes, a lot of knowledge is still transferred orally (not ideal, but we’re working on it!). What this means is that paired programming happens on a daily basis. If a developer is having a complex problem, it is usually easier for a coworker who has solved this problem before to sit down and walk them through it rather than try to explain things via chat or email.
Towards the end of the semester, we coalesced into group projects in which the primary focus was teamwork. This was where we got a taste of working independently but in a team effort. It was during the group projects that I discovered the importance of learning how to use a versioning control system, such as GitHub, that allowed multiple developers to participate on the same project without stepping on any toes. When I started my job at Armor, I realized how much more complex versioning control can get when you have potentially 50+ people contributing to the same repository at any given time. I had to relearn the fundamentals and be extra careful not to overwrite someone else’s work. Most mistakes are reversible, but the headache of figuring out what went wrong and how to fix it is usually a source of distraction from a developer’s daily duties and sprint goals.
2. Learning how to ask for help
Like Real Life
When I initially started at Codeup, I found myself wanting to ask the instructors questions as soon as I got stuck on something. However, I quickly realized that their resources were limited since there were only 2 of them (plus 1-2 fellows) in a class of 30. Although this wasn’t ideal, it actually did simulate a real-life scenario that parallels a professional working environment. At my work, there are probably only 2 or 3 lead developers. However, they are constantly inundated with requests by QE and other junior developers, code review, and demands from management. If you need to make a request, best make it quick and efficient.
Asking Questions the Right Way
I then remembered what instructors had mentioned during Codeup. They taught us that if you have a question, make sure you present it in a format such as:
- Describe your question/problem in detail.
- What have you already done to try and solve it?
- Why don’t you think your solution worked?
This made it so that students would actually try to figure out a solution before shooting their hand up every time they had a problem, only to find that they could have easily solved it with a little more digging. In my experience, most experienced developers are usually happy to help. However, it’s good practice to make sure to demonstrate you tried your best and that you’re not wasting their precious time.
3. Pushing through the doubt
“I’m not cut out for this”
Throughout the boot camp, it came to be a running joke that everyone would have an emotional breakdown at least once during their time at Codeup. You would see someone walk off and come back with teary, red eyes. Or for some, they would vocalize their despair: “I don’t think I’m cut out for this.”, “This is too hard.”, “I’m so frustrated!”, “Maybe I should just give up.” I myself broke down emotionally several times during Codeup and reiterated several mental self-doubts to myself: “Maybe I should have stuck to the arts. I’m too emotional to do well in computer science. I’ll never be good enough”. On some days, you would feel accomplished and confident in your abilities. On other days, the doubts would flood in unexpectedly and endanger everything I had worked so hard for. However, through the support of other students in the class, the instructors, and the encouragement of the staff, I was able to succeed throughout the course and completed my Demo Day project.
It Always Gets Better
All this is to say, Codeup taught me to have emotional fortitude and a confidence to believe in myself. Because to be honest, the first several months at my job also felt like an emotional roller coaster. I was thrown into an environment where I had to learn and adapt very quickly. I was constantly afraid and timid because I was the only female developer and also the most junior developer. I expected a lot out of myself, and when I was given criticism I would internally berate myself until my negative self-talk had multiplied the original piece of criticism in my mind ten-fold of what it actually was.
However, my experience at Codeup had taught me to push through in those moments of self-doubt. It gave me a thicker skin in order to ask for help, to learn quickly amidst a ton of ambiguity, and most importantly, a realization that it will always get better as long as I don’t give up
4. Learning how to learn
As you might have noticed, none of the points above are actually related to the technical knowledge I received by attending Codeup and how it affected my career. It goes without saying that Codeup provided me with the coding skills I needed to be succeed in my career. However, another point that our instructors emphasized was that Codeup was not a comprehensive coding academy or computer science degree. In some ways, it was like a tour bus that allowed you a brief overview of all the major stops in the area.
It allowed us to have the impetus and catalytic energy to start off a software development career. It also gave us the tools to quickly be able to pick up any technologies our companies were using.
“We’re teaching you how to learn,” they would say throughout the course. After starting my first job, I came to realize how true this statement was. I imagined myself trying to pick up the technologies at my job without having Codeup as a primer and it seemed near impossible.
Needless to say, Codeup was an essential experience I needed on the way to becoming a full-time software developer. I learned critical skills that have proved invaluable in my day-to-day and have allowed me to be where I am today.
Joyce is a full time software developer at Armor, a cloud security company in Richardson, TX. In her free time, she sings in a women’s chorus, plays electric guitar, rock climbs, and is starting a freelance writing business. Check out some of her work at thelusciousword.com.