Day[12] I think I’m…caught up?

It’s currently 2:45 and I…am done. Sort of. I’m sitting in the main room of Tech Elevator with both my pair programming exercise and my personal exercises finished. I could be working on my resume I suppose, but I thought I’d take the opportunity to have a little break and look around.

I’m sitting at a circular table with a plant in the center. Beside me, Matt, a German-born, deeply religious, workout enthusiast is eating a blood orange and trying to figure out how to write a command-line program about shipping packages and charging per mile.

Hugging the wall is a kitchen including an oven, a sink, a microwave, and an industrial coffee machine that is forever brewing a fresh pot. At an expansive counter in the center of the kitchen sits five other TE students. It’s the fast kids, so they’re finished too. If you ask them, they’ll say they’re working on their resumes, but they’re really talking video games, swapping recommendations like baseball cards. Or, to be more accurate to their tastes, Pokemon Pogs.

The ping pong table is empty for the moment, but soon two stressed out students will be battling, awkwardly backhanding the ball to their adversary, letting off the steam.

A prospective student sits on the couch, waiting for her interview with Caitie. She peeks over her shoulder at us as we throw around terms about classes and interfaces, abstracts access modifiers, pushing our commits. I wonder if we’re scaring her.

Through all of this, Tom the instructor walks, his easy-going gait sending his gray pony-tail back and forth like a tire swing. He asks the rooms at large if anyone needs help. Someone always does. He stops and explains with boundless patience, never even hesitating before answering.

It’s a clean environment filled with people trying as hard as they possibly can to learn something. I’ve never been anywhere like it, and I spent 16 years in schooling institutions.

Back to work. My resume is frightening and it’s not going to fix itself.

Day[11] Out of One, Many

I arrived this morning, grabbed a cup of coffee, and watched Drew and Jack battle it out playing Smash Brothers on Nintendo Switch.

These two are interesting and they have basically the same story. They’re nineteen years old, went to college, found it to be a waste of time, and enrolled in Tech Elevator. Jack writes code as easily as writing memorized nursery rhymes and Drew routinely falls asleep during the lectures only to rise from the dead to answer a complex question that invaded his dreams.

They’re easily the two best in the class. They are often giggling over video games while I still have hours to go on my exercises. This might sound annoying, but it’s not. Each of them is willing to help out and, more impressively, each of them remains grounded and humble. These two would have hated nineteen-year-old Sean. And with good reason.

Today, Tom covered Polymorphism, a concept where a programmer writes one line of code that can be used in several different ways depending on the subject on which it is enacted. It sounds more complicated than it is.

Again, I was paired with New York Will. We worked through our bit and then split off to do the individual exercises that we were also assigned.

I did really well on the individual stuff. It was difficult and there was a lot of it, but when 5:30 rolled around, I was finishing up. As we get deeper into Object Oriented Programming and farther away from straight logic questions, I feel my skills solidifying. I felt proud to be walking out of there at 5:45 with all my work finished for the next day.

Of course, Drew and Jack had been playing video games for hours at this point.

Day[10] Classy Inheritance

A magnificent feature of classes in the .Net Framework is inheritance. To inherit means that a programmer can create one base class with which to create objects–think generic things like “clock,” “person,” and “job.” Then, you can make more specific objects like “grandfather clock,” “scientist” or “lion-tamer.” Since grandfather clock is a type of clock, you don’t have to rewrite everything. You can use your old clock class and jazz it up with a pendulum, say, or a wooden dark-stained casing. All you have to do is link the two.

I can’t even tell if what I’m writing sounds confusing or not. That’s how far down the rabbit hole I am right now.

But even if my first paragraph is perplexing, let me tell you, it’s a heckuva lot clearer to me than the exercises from earlier last week. I was having trouble looping through arrays of words and taking out the two middle letters. But creating classes(think blueprints) and then making different instances of the classes–this stuff makes sense to me.

Instead of solo exercises, we were randomly paired up. I was joined with a budding programmer from Queens with a sweet ponytail named Will. We banged out our exercises, making several different bank accounts using the inheritance principal. We got through the work in short order, just a couple of hours, and then went over some of the exercises that were assigned over the weekend.

All in all, a fun day.

Weekend Bits: My Morning Routine

I’m a morning person. I’m sorry if that makes you angry, but I am. I love getting up early. With my current routine, I wake up at 5:30 am.

Now, I don’t always hop out of bed when the alarm goes off and jauntily go about my business (sometimes I do, but not always). I often think “I can’t believe it’s time to get up already” or “I didn’t sleep well last night, I should reset for another hour.” It’s not until I’m up, drink a little water, and change into my exercise clothes that I start to feel happy to be awake.

As soon as I’m up, I start drinking a lot of water. I spend most of my day sipping coffee and trying to remember to stay hydrated, so the more I can ingest in the early morning, the better.

After I’m feeling hydrated, I go into the basement where my wife and I have cobbled together a shoestring gym made mostly from equipment that other people were throwing out. I do some light yoga-inspired stretching–forward fold to flat back to mountain a couple of times–and then I warm up by hitting a heavy bag. I do this for about five minutes and then get on the treadmill.

I run on the treadmill for a mile or a mile-and-a-half while watching boxing or MMA (I am an unapologetic combat sports enthusiast). Then I do some lifting–just a couple sets with dumbbells–or I do sets of push-ups and pull-ups (which I’ve always found to be much more effective than lifting weights, but not as fun).

I keep it light and don’t push too hard. In my previous existence, I’d often exercise much more intensely than this, pushing it a little further every day. But steady improvement of my body is not the goal while I’m attending Tech Elevator. My exercise at this point is intended to raise my energy levels and keep my mind alert. Pushing too hard physically can sometimes turn me into a zombie in the early afternoons. I can’t afford that.

Next, I meditate.

Yup. I do.

Or, at least, I have been since the program started. I’m not entirely sold on it. I’ve tried meditating in the past but I’ve never felt much benefit from it. Concerned about stress, I thought I’d try it again.

Basically, I turn off all the lights in the basement, set a timer for ten minutes, and count my breaths, one to ten, over and over again. When thoughts of the outside world creep in, I try to to refocus on the breathing.

I barely ever make it to ten without having other thoughts. Maybe I’m not so good at it. I’m going to keep doing it because my stress levels have been pretty manageable so far and I can’t say for certain that it’s not the meditating that’s helping.

After grasping at Zen for ten minutes, I take a shower and get ready for the day. I eat a bowl of high fiber cereal, eat a banana, and take a multivitamin. I live with the constant terror of getting a cold, so I make sure to take my multivitamin and I wash my hands like an OCD OR nurse.

I leave for Tech Elevator some time between 6:45 or 7:00. I start pounding coffee as soon as I walk in the door. Like, a lot of coffee. I should cut back. Class doesn’t start till nine, so I either catch up on work if I’m behind or talk shop with the other .Netters if I’m caught up.

And that’s it. I’ve been doing almost the exact same thing for every day of class. I feel it’s kept me organized and my energy levels high.

Day [9] A Panel of Survivors

Today we continued our exploration of collections and how classes can be created in the .Net Framework. Some important concepts that clicked with me today were the getters and setters involved with setting properties, the syntax on constructors, and the theory behind encapsulation.

But the most interesting point of the day was the Pathway Panel of Tech Elevator Alumni. Seven graduates, two from last summer, four from the fall cohort, and one from Cleveland who is now working in Pittsburgh. Caitie the Pathway director, asked them half a dozen questions like, What was the hardest week for you?, What do you wish you would have learned more thoroughly?, and What was the interviewing process like? It was fascinating to hear the answers from these people who had run and survived the gauntlet that I am currently being pummeled in.

Some interesting things that I learned:

  1. If this turns into a job, I’m definitely going to make a lot more money than I was making before.
  2. Not all interviews are technical. Many companies will send H.R. representatives to do the interviewing rather than a software engineer.
  3. A job as a software engineer at a large corporation will move at a much slower pace than Tech Elevator.

Overall, it was a confidence building afternoon. The graduates said that the interviewing process was daunting and difficult, but I suppose I already expected that.

After the panel, we sat back at the work bench and plowed through some exercises before hitting up a Friday happy hour at Beirs Tavern.

Week two in the books.

Day[8] Gotta Collect’em All

Today was my best day yet at Tech Elevator. Today, I had a lot of wins and everything began to make a little bit more sense.

To open the lecture, Tom put a picture of a small man standing on the shore looking forlorn as an unthinkably large tidal wave crashes towards him. He said, “You’re that guy. The tidal wave is the amount of information I’m going to throw at you today.”

He wasn’t joking.

The next three and a half hours flew by as Tom described how collections work. How we make classes, which are blueprints that we can use to make an infinity of objects, about properties of these classes that can be used over and over again in perpetuity, about the nature of namespaces and how they define the vast libraries from which we mine nuggets of genius which Microsoft has been burying in the .Net Framework for nearly twenty years. It was heady stuff.

It seemed overwhelming in the moment, and when the homework was delivered everyone fell into a slump: forty-seven tests. Forty. Seven. Forty-seven opportunities to press “Run Test” and have the obnoxious red banner of failure wag like a tongue from the laptop screen. Almost as one, we put our heads down and began to climb the mountain once more.

But something peculiar happened after the second class I created. It started to make sense. I started to see the logic. It started to become easy.

To be clear, nothing–absolutely nothing–has been easy for me during the last eight days of school. It has all been very, very difficult–either because it was hard to understand or because of the sheer mass of work assigned. But I flew through the collections homework. And, I would never admit this to Tom for fear that he might oblige, I could have done a few more.

Day[7] Keep Calm and Code On

After falling behind on Monday, I had a big recovery over Tuesday and today. Though exhausted, I feel pretty good.

There were two critical errors I was making in my code which was holding me back, but there was one more important error that I was making with my brain.

I like to think that I’m the type of person who isn’t easily rattled. People comment that I seem calm, even when things around me are chaotic. I’ve wrapped a bit of my ego up in this identity. Now, I’m not sure that it is entirely true.

Take these exercises I’ve been working on, for instance. After you think you have an answer to a coding problem on the homework, you press a test button. A thin (and secretly vicious) bar at the top of the screen thinks for a moment as the test runs. It turns green if you are correct and a murderous, vile red if you are not. All of last week, and especially on Monday, I would push the “run test” button and hold my breath. If it came back red, I yelled “Why!” and then did a lot swearing.

I came to realize that allowing myself to get this frustrated was not good for my logical thinking. Every time I flipped out, I became more prone to make mistakes. Over the course of five or six hours, I became so frustrated that my eyes hurt and I couldn’t remember anything I’d learned.

Today I forced myself to pause before pushing the test and say “No matter what, it will be ok. You’re not an idiot if this turns red, you just need to figure out what went wrong, make a note of it, and learn.”

I did pretty well on the exercises, getting ten out of twelve without much problem. But, more importantly, when I did run into trouble, I didn’t let myself get frustrated and I didn’t make mistakes just because I wasn’t thinking clearly.

Day[6] Marathon Man

Another long one. Maybe every day is a long one from here on out.

This morning was rough. I had eleven problems that I needed to finish before tomorrow morning. I was planning to knock at least eight out before class started. I arrived at 7:00 am and only finished three before class started at 9:00.

Frustrated over this, I missed several questions on the quiz that I shouldn’t have.

I understood the lesson pretty well, but when it came time for the exercises, I had to change my strategy. I was determined not to fall further behind. With the pace of the class, falling behind two days is basically a death sentence.

For the time-being, the .Net group splits up into two groups during exercises. The group that gets almost all of the questions without aid and the group that needs some help but gets many on their own stay in the class room, occasionally leaving to beg a hint off of Tom. The students that need a bit more help make their work-space in the main room where Tom sets up shop. Until today, I had stayed in the classroom.

We were given twelve questions with today’s exercise. So, with what I hadn’t finished from the day before, I had eight still remaining. For those of you keeping score, that’s twenty complex logic brain-busters. I was starting to feel like I was drowning.

I asked for help on two of the first four questions from today’s exercises. I picked up a few bits that I had been erring on over and over. Then, in about an hour, I ran through five questions without help, finishing nine of the twelve assigned.

Pleased with that progress, I decided to go back to the exercises from the day before and knock out what I could. I got some help from Tom and from some of the other students, but as I stand right now, I have three problems that I still have to do for 9:00 am tomorrow, and three that are due on Wednesday. Life is way more manageable than it was at six hours ago.

Day[5] Objects and Elevators

The first day of the second week started off well and ended up frustrating.

We began with a quiz which combined all of the info from last week. I scored a 100% on this, which was good, because I had two sub-par quizzes in a row and I needed a bounce-back. I spent a lot of the weekend working on my text-based adventure, which has basically nothing to do with class. Perhaps I should have stuck to the lessons, but the lure of game-creation was too much. Besides, everyone says it’s good to work on side-projects.

When I mentioned that I had started a role-playing adventure, two other .Net students confessed that they had as well. We swapped and chatted.

The lesson for the day was about Objects. Objects are at the base of the C# language and are basically the most important thing we will learn during the boot camp. I believe I understood the reading and the lesson pretty well and I look forward to the following lectures on Class which will shore up some holes in the knowledge.

After the lecture, there was a Pathway presentation about elevator pitches. The term is borrowed from the film industry and means that you should have a sales pitch ready that can be explained from the time you get on an elevator with someone until they get off on their floor. Basically, a thirty to forty second blurb about who you are and why someone would want to hire you.

I was happy with the bit I worked out during the presentation, but I look forward to the workshop on Wednesday where I’ll get to say it in front of people and get feedback.

Then came the exercises. It wouldn’t have been too bad had there been fifteen or twenty. But there were thirty. I worked from two until six-thirty. I finished twenty-three of the problems, but on four of them I have issues that still need fixing. I will be in at 7:00 or 7:30 tomorrow morning to knock out the remaining work.

It was a long one.

Weekend Bits: First Week in a Boot Camp

So I did it. I lasted one week at Tech Elevator, a coding boot camp in Pittsburgh. And, for the most part, it went really well.

Here is where I had successes and why:

  1. Prework, prework, prework. I can’t emphasize enough how impossible this week would have been had I been under prepared. TE assigned forty hours of prework, but, honestly, I would say double or even triple that if you want to feel confident. I studied for approximately 120 hours between September and January. A lot of things I went over twice.
  2. OOP. This stands for Object Oriented Programming. They say if you learn one OOP language that it’s not too tough to learn a second. Believe it. I’m in a C#-centered boot camp and for my months of studying I focused on HTML, CSS, and JavaScript. JavaScript is an OOP. I took this strategy of studying JavaScript instead of C# because it seemed to me that the resources for learning JavaScript were more readily available and clearer. Plus, from what I can understand, everyone should know a little JavaScript.
  3. Lean on your comrades. The teachers are fantastic at TE, but there are three of them and thirty-three students. Tom, my C# teacher, told us that it’s perfectly fine to look at the exercise solutions of others so long as we understand the logic behind it. Many of the lessons I learned this week came from my boot camp buddies.
  4. I cleared my schedule. There are a handful of people who are working in the evenings. I have no idea how they’re doing it. They must not be sleeping. My shortest day has been ten hours and my longest has been twelve, so far. I’ve gotten tougher over the last week, but I’m not sure I could go work a four to six hour shift afterwards. That’s bonkers.

Look, boot camps are hard. I know my blog over the passed week has been really positive, but there were certainly times where I felt frustrated and like I just wanted to go home. I had to push through that. I had to accept that the day should have been over, but because I couldn’t figure out this problem, I had to stay until it was solved.

Being super smart or super experienced will help, of course. The handful of students that have had tech jobs or who have grown up coding are killing it so far. I’m not either of those things. I have little to no experience with tech and I’m a high B, low A student through both high school and college. If you’re like me, there is only one way to look at approaching a coding boot camp. Steve Martin said it best: “Obsession is a great substitute for talent.”