Relax and Debug

Some­thing inter­est­ing hap­pened as I worked on fin­ish­ing up assign­ments and clean­ing up projects last week: When I expe­ri­enced errors, I no longer expe­ri­enced panic.  Instead, I relaxed and remained calm  and debugged … and I found solu­tions in a frac­tion of the time.


The devel­oper tools that were so con­fus­ing in the begin­ning have now become sec­ond nature, although I’m sure I have more to learn.  Error mes­sages are no longer Greek; I can rec­og­nize what the prob­lem most likely is and quickly cor­rect it.  If it’s a new error mes­sage, I’m able to find help online quickly.

All of this progress is also mak­ing me more ambi­tious.  I want to try newer, braver things that could com­pletely fail and break my app, but I do it anyway.

Who is this pro­gram­mer I’ve become?

Where Are My Sunglasses? The Future Is on the Horizon

I can­not express how thank­ful I am to have a week off from cod­ing boot camp.  Not only was I able to rest and recharge, I’ve been able to catch up on so many things that had been put on hold due to the pace of the front-end engi­neer­ing program.

It was reas­sur­ing to look back at my notes and revisit past assign­ments and dis­cover how some things that seemed so incom­pre­hen­si­ble before, now seem like a piece of cake.  A few things required another round of debug­ging, how­ever, the sat­is­fac­tion that came from fig­ur­ing out those prob­lems was worth it.

I accom­plished what I had planned to accom­plish over the break, and what lies before me seems man­age­able, which isn’t some­thing I’ve felt since I started the pro­gram.  I’m enjoy­ing this place, because there were many nights I never thought I’d make it here.

Tomor­row, we have three weeks left in the pro­gram.  Actu­ally, it’s a lit­tle less than three weeks, because our demo days is on Thurs­day, Decem­ber 17–not that Fri­day.  Plus, we want to have our project com­plete a few days before demo day.  Daily lec­tures and assign­ments are behind us; now, we focus on putting every­thing we learned to the test.  I’m sure the next three weeks will fly by.  I’m sure the next three weeks will bring their own stresses, how­ever, I’m glad to have the last nine weeks behind me, and I’m look­ing for­ward to the future.

I Owe JavaScript an Apology

For the past seven weeks, I have held a grudge against cer­tain JavaScript func­tions.  We were given an assign­ment that gave me all sorts of hell.  I couldn’t fig­ure out why I couldn’t get my code to appear on the page, when I seemed to be writ­ing it cor­rectly.  After all, I could see it in the developer’s con­sole.  I still hadn’t fig­ured it out when it was time to move on to the next assign­ment, so I fig­ured the prob­lem was me and held a grudge against those func­tions until today.

Upon revis­it­ing the assign­ment, I dis­cov­ered the prob­lem wasn’t me or the JavaScript; it was due to some bug in my SCSS file that wasn’t updat­ing my CSS file, which meant the changes I thought I was mak­ing to dis­play the answers on the page were not being updated.

JavaScript, I’m sorry I doubted you.  It’s a good reminder to not take bugs per­son­ally.  There’s always a rea­son why code doesn’t work, but we need to be relaxed and objec­tive enough to find it.

Explaining What a Web Developer Does

So, what exactly do you do in school?” one of my adop­tive fam­ily mem­bers asked around the table at Thanks­giv­ing din­ner.  Since I moved from Texas, I have spent Thanks­giv­ing with the fam­ily of one of my friends.

Um, I develop web apps,” I said.  “You know, with HTML, CSS, and JavaScript.”

You mean like for your iPhone?” another fam­ily mem­ber asked.

Not exactly.  Web­sites have grown more com­plex than they were years ago.  Nowa­days, they’re often a single-page web appli­ca­tion that requires less time and resources to inter­act with a user.”

You mean like a drug user?” Another fam­ily mem­ber nar­rowed her eyes suspiciously.

No, a user would be any­one who inter­acts or uses a web application.”

So, you build those but­tons they say ‘About Us’ and ‘Con­tact Us,’ right?”

Well, the indus­try is now mov­ing toward build­ing web­sites with what’s called a MVC (Model View Con­troller) type, where you build a model of a prod­uct you want to dis­play and group them into col­lec­tions.  Instead of build­ing mul­ti­ple web pages, we build dif­fer­ent views of what needs to be dis­played, which are con­trolled by the, er, con­troller.  This way, instead of load­ing a new web page every time you need to access new infor­ma­tion, you can click on one area of a single-page web appli­ca­tion and only load the view you need for that area, which is faster and uses less resources.”

I scanned the blank faces sur­round­ing me.  Finally, one fam­ily mem­ber asked again, “So, you build but­tons, right?”

Real­iz­ing I had jumped the shark on try­ing to explain what web devel­op­ers do, I smiled and said, “Yeah, I build but­tons.”  Les­son learned …

Generosity of Spirit in Technology

One of the most delight­ful sur­prises about the tech com­mu­nity is how gen­er­ous they are.

I have been over­whelmed at the will­ing­ness of strangers to reach out to me on Twit­ter to share knowl­edge and offer assistance.

I have been moved by how for­mer stu­dents have shared their knowl­edge and resources with myself and my classmates.

I have been touched by how my class­mates have sup­ported oth­ers when we have become stuck and needed help.

Of course, my instruc­tors and the other staff at The Iron Yard have always asked if there is any­thing else we need from them; how­ever, it’s a bit like ask­ing your par­ents if you’re smart or pretty or hit a base­ball well.  It seems like a given, right?

Well, it’s expected, and, per­haps, that’s the dif­fer­ence that delights, because the other help was not expected.  I’m not pay­ing them tuition and they had noth­ing to gain by giv­ing of themselves.

I worked as a book­seller for ten years, and the sup­port from other inde­pen­dent book­sellers was just as amaz­ing.  Other peo­ple always seemed sur­prised that we were friendly with the other book­sellers in town.  They seemed to think they were our com­peti­tors and, there­fore, our ene­mies, which was not true.  When we saw other book­sellers, we lis­tened to one another and shared sto­ries that offered solu­tions that had worked for us, and, pos­si­bly, could work for them, as well.  We laughed a lot.

I’m glad the tech com­mu­nity is sim­i­lar to the book­selling com­mu­nity.  When oth­ers give with no expec­ta­tion of receiv­ing any­thing in return, it inspires us to give uncon­di­tion­ally, too.  In fact, it’s sort of an open-source generosity.

Sometimes We Break Things to Make Them Better

Yes­ter­day, I finally got a project to work that I had been work­ing on since the day before.  It had taken much more time than I had antic­i­pated, as is some­times the case, so I let out a whoop and a holler and there may have been sub­tle fist pump­ing before I remem­bered I was at Starbucks.

Once I was home, I decided I could improve my project by mak­ing a few tweaks and broke the darn thing.  All of my hard work from the pre­vi­ous twenty-four hours undone.

I raked my fin­gers through my hair, and sighed through grit­ted teeth.  Why hadn’t I left things alone?

I could have gone back to my orig­i­nal code, stuck a fork in it, and con­sid­ered it done; how­ever, I believed the changes I had tried to imple­ment would make my project bet­ter.  I could play it safe and only learn so much, or I could con­tinue to debug and learn so much more.  I opted for the latter.

Four and a half hours later, I fin­ished my project.  It was indeed bet­ter, both visu­ally and func­tion­ally, and I wouldn’t have got to that point with­out the obsta­cles that pre­sented them­selves and forced me to find cre­ative (and fun) solutions.

It was a good reminder that life gives every­one prob­lems and oppor­tu­ni­ties, but it’s up to us to choose which one we’ve received.  Atti­tude is everything!

The Challenge to Create More Meaningful Connections with Technology

It’s the Tues­day before Thanks­giv­ing and I’ve already received too many emails about Black Fri­day spe­cials.  Keep in mind, before I started the front-end engi­neer­ing pro­gram at The Iron Yard, I unsub­scribed from every unessen­tial e-newsletter I had been receiving.

In some ways, I’ve been liv­ing in a bub­ble the last nine weeks.  I’ve had to con­cen­trate on the assign­ment at hand, review­ing my notes, and read­ing the doc­u­men­ta­tion for every new lan­guage or library that has been intro­duced.  I’ve often found myself look­ing up and dis­cov­er­ing hours have past by in what seemed like min­utes, or not being clear on the exact date.

On one hand, it’s not unhealthy to dis­con­nect from the over sat­u­ra­tion com­ing from the media.  I mean, I had no idea Adele released an album last week or that the final Hunger Games movie started Fri­day.  They’re enter­tain­ing, yet meaningless.

On the other hand, I’ve become more aware of tak­ing breaks.  I’ve noted far too many times when a syn­tax error was right in front of my nose while I con­tin­ued to stare at the code for far too long before some­one else pointed it out to me.  Also, it’s impor­tant to stay in con­tact with fam­ily and friends.  Exer­cise and med­i­ta­tion are impor­tant, too, for get­ting out of our heads and man­ag­ing stress.

When I was a kid, Black Fri­day didn’t exist.  Sure, depart­ment stores offered spe­cial sales the day after Thanks­giv­ing and peo­ple shopped, but stores were closed on Thanks­giv­ing Day and no one lined up at the door of the store to buy a toaster oven for ten dol­lars.  Online shop­ping wasn’t even imag­in­able back then.

I recall retail sales for Black Fri­day were below the industry’s expec­ta­tion for last year.  I found myself pleased by that infor­ma­tion, because I hope it will deter retail­ers from con­tin­u­ing the trend of ask­ing their employ­ees to work on Thanks­giv­ing instead of spend­ing time with their fam­i­lies, espe­cially since many peo­ple travel home for Thanks­giv­ing, yet do not for other hol­i­days in December.

As tech­nol­ogy advances and begs for more of our time, it’s impor­tant we give atten­tion to unplug­ging and remem­ber­ing what’s it like to relat­ing other human beings.  Although it’s true we can often expe­ri­ence mean­ing­ful con­nec­tions through the Inter­net, it doesn’t replace the kin­ship from spend­ing time in the phys­i­cal pres­ence of oth­ers.  It acti­vates a dif­fer­ent part of our brain and heart.  It’s sim­i­lar to the way jour­nal­ing on a com­puter pro­duces dif­fer­ent results from jour­nal­ing with pen and paper for many people.

Over the past few years, and espe­cially the last nine weeks, I’ve become aware that it’s impor­tant to me to find new ways to uti­lize tech­nol­ogy to cre­ate more mean­ing­ful con­nec­tions between people.

One fresh idea that exem­pli­fies that phi­los­o­phy is 5 for Friends, which was fea­tured in a recent Hype­pota­mus arti­cle.  The app pro­vides a way for friends to stay in touch in five-minute incre­ments when they find they have five min­utes avail­able.  They can send a noti­fi­ca­tion to the friend in their net­work that they’re avail­able, and friend can call them and catch up before the five-minute timer runs out.  Think­ing I don’t have longer than five min­utes to talk has kept from con­tact­ing peo­ple I want to catch up with, and then my inten­tion falls by the way­side as I get dis­tracted by less mean­ing­ful things through­out the day.

What can you do to cre­ate a more mean­ing­ful con­nec­tion with technology?

Code and Recipes Aren't So Different

Last night I had din­ner with a friend, Craig, who loves to cook.

I men­tioned I was look­ing for­ward to learn­ing more about the sci­ence behind cook­ing once I com­pleted the front-end engi­neer­ing pro­gram at The Iron Yard.  I shared with him I was con­sid­er­ing read­ing one of Mark Bittman’s books or tak­ing a class at The Cook’s Warehouse.

Craig men­tioned he enjoyed read­ing a par­tic­u­lar cook­ing mag­a­zine that tested cer­tain recipes and con­firmed whether they would pro­duce the desired results as is, or whether adjust­ments needed to be made.

After cook­ing for many years, Craig said he had reached a point where he could read a recipe and know if it would work or not, just by review­ing the ingre­di­ents and under­stand­ing how they inter­act with one another the the cook­ing methods.

I had an a-ha moment, because I recalled when I started to learn how beat­ing ingre­di­ents too long can add too much air and affect the out­come of the dish.  Depend­ing upon whether but­ter is taken straight from the refrig­er­a­tor or left out to warm up a bit can pro­duce dif­fer­ent results, as well.  These aren’t things I learned overnight; they were learned by trial & error, lis­ten­ing to oth­ers, and reading.

Recipes and code are very sim­i­lar, as they’re both a list of vari­ables (ingre­di­ents) and steps (expres­sions, argu­ments, state­ments, etc.) that pro­duce a desired end result (dish).

At the ATL Angu­larJS meet-up last week, I dis­cov­ered that I under­stood all the code shown dur­ing the pre­sen­ta­tion.  Even though we had only been work­ing with Angu­lar for a week, based upon the pre­vi­ous eight weeks of study­ing code, I knew what each piece did and what would hap­pen when it ran in a browser.  It may have seemed like it hap­pened after only a week, but the skill had devel­oped over lec­tures, assign­ments, and self-study over the pre­vi­ous eight weeks.

Although it may seem like a small accom­plish­ment, for me, it is huge and very sat­is­fy­ing.  Just imag­ine where I’ll be in another eight weeks …

Hindsight Is Indeed Twenty / Twenty

My main goal for the Thanks­giv­ing break from the front-end engi­neer­ing pro­gram at The Iron Yard is to fin­ish all of my incom­plete assignments.

Because of the fast-pace of the pro­gram, it’s easy to get behind if you have some­thing unex­pected hap­pen on a school night or over the week­end.  Some­times you just need a break from the assign­ment because you’re too close to the prob­lem to see the solution.

As I’ve been work­ing through the hand­ful I have left, I’ve noticed that the major­ity of mine fall into the “too close to the prob­lem to see the solu­tion” category.

For some rea­son, jQuery and Under­score still seem hazy to me.  I real­ized we cov­ered them when my dad broke his back and his doc­tors were try­ing to deter­mine the extent of his injuries and the course of his treat­ment.  In my mind, I thought I had a healthy con­cern for the sit­u­a­tion, yet I was able to sep­a­rate myself from it to focus on my stud­ies.  No wor­ries: I read through my notes for jQuery and Under­score, read the rel­e­vant sec­tions in the Jon Duck­ett book, and will watch jQuery and Under­score tuto­ri­als on to get up to speed.  I may even include a port­fo­lio exam­ple that incor­po­rates both.

How to Build a Portfolio

Sarah Lodato, Direc­tor of Cam­pus Onboard­ing & Train­ing, pre­sented an overview of how to cre­ate our port­fo­lios yesterday.

Although I cre­ated a port­fo­lio when I grad­u­ated from The Art Insti­tute of Atlanta, it was inter­est­ing to see how the phi­los­o­phy of port­fo­lios has changed.

Over­all, most of the infor­ma­tion I already knew, but I was encour­aged that my own idea to design a port­fo­lio that could weave my per­son­al­ity into the rel­e­vant infor­ma­tion is impor­tant.  Employ­ers want to make sure they will enjoy work­ing with you as much as you are tech­ni­cally qual­i­fied for the posi­tion.  The rule of thumb for hir­ing man­agers has been: Would I be com­fort­able being stranded at an air­port with this person?

Includ­ing exam­ples of my work is a given, how­ever, choos­ing exam­ples requires con­sid­er­a­tion.  I do have my assign­ments and group projects, yet I want to show exam­ples that show a broad range of my skills.  I also want to high­light some of my per­sonal projects that show­case my own ideas and inter­ests.  Sarah advised to present three to six exam­ples.  I ini­tially thought I’d strug­gle to find three, yet I’ve real­ized I can prob­a­bly include six.

Some of the other stu­dents were sur­prised when Sarah empha­sized the need to include con­tact details.  After work­ing in human resources for a num­ber of years, I can attest job seek­ers often for­get to include a phone num­ber or email address.  I would also add be sure your email address is pro­fes­sional, usu­ally or some­thing sim­i­lar.  If you have a pro­file pic­ture attached to your email account, please ensure it’s professional.

I laughed when Sarah clar­i­fied an engag­ing biog­ra­phy should not read like a dat­ing pro­file, because I remem­bered read­ing resumes where job seek­ers included per­sonal and unnec­es­sary infor­ma­tion with their cover let­ters and resumes.

Sarah shared an inter­est­ing point about resumes: You want to include two resumes.  The resume vis­i­ble in your port­fo­lio should be a sum­mary of the most impor­tant details an employer will want to know.  Keep in mind, a hir­ing man­ager will be skim­ming through many port­fo­lios and resumes.  Also include a full resume as a down­load­able PDF.  Believe me, I always appre­ci­ated a resume that gave me just what I needed to decide if I wanted to know more about an appli­cant and infor­ma­tion on how I could retrieve more infor­ma­tion.  These appli­cants always stood out to me, because they put more thought and atten­tion into the resume and how it would be processed.

The final piece in Sarah’s five keys to a suc­cess­ful port­fo­lio is to include some­thing that sur­prises and delights.  It should be some small, cre­ative detail that is unex­pected, yet not dis­tract­ing.  I’ve had some ideas, yet none have over­whelmed me.  I’m sure some­thing will come to me.

Some stu­dents will get hung up on the visual design of a port­fo­lio, how­ever, the func­tional and per­sonal style should also be con­sid­ered.  An out­stand­ing port­fo­lio requires a healthy bal­ance of all three areas.  I’ve always been a fan of min­i­mal­ism and sim­plic­ity, which explains why the single-page app port­fo­lio appeals to me.  I haven’t ruled out some­thing more tra­di­tional, though.  In the end, a port­fo­lio should be intu­itive and allow an employer to eas­ily find what they need.

Hmm, while writ­ing this blog post, I think I dis­cov­ered some things to include in my engag­ing biography …