The Plot Thickens

Yesterday, my team met with the rails instructor, and he suggested we make some changes to what we’re doing.

After researching APIs, we decided the Open Movie Data Base (OMDB) would give us most of what we needed, whereas the third party APIs for Fandango and Netflix did not.  Furthermore, the other APIs had limits on the number of times we could access their data bases per second and day.  For the scope of our final project, we determined being able to tell users if a movie they searched for is playing at a local theater or available to watch on Netflix wasn’t viable.

The rails instructor, Britt, clarified that a simple friend functionality isn’t as difficult as we originally thought, so he suggested we add that feature back to our app.

We’re able to create new users, give them and authorization token, and allow them to sign in.

Since we’ve never built a search box feature that accessed information on this scale before, it’s daunting.  We’ve learned from API documentation that we can search by title and the Internet Movie Data Base (IMDB) ID; we were hoping we could search by title, genre, actor, and director.

We’re planning to meet with Tim this morning to discuss what changes we need to make to AngularJS organization.  Should we create a separate controller, directive, and service for the search function?  What about the friend function?  We’d like to clarify that before we waste precious time going down a path that leads nowhere.

In other news, I did find ten front-end engineer/junior web developer job postings to add to the Trello board Owings, the Campus Director, assigned to me.  We found out last night we have to present a narrative about one on Friday, possibly.  The portfolio still needs work, as well.

I keep thinking of that Erica Jong poem, “Near the Black Forest,” and the line about getting by on cups of borrowed time.”

New Type of Error, It’s a Pleasure to Meet You

If the front-end engineering program at The Iron Yard has taught me one thing, it’s attitude is everything.

With the program ending in less than three weeks, portfolios needing to be built, and home already given for the job search, encountering a new error in your code is a bit like discovering a bomb after you just gave that pair of wire cutters you never used to Goodwill.

Yesterday, I believe, I proudly shared how I’ve become comfortable with my ability to interpret an error message and quickly resolve it.  Yesterday, I received an error I’d never received before and it threw me for a loop.  (Who said God doesn’t have a sense of humor when it comes to cocky junior web developers?)

As I researched the error online, my tension and frustration increased.  Remember, we’re under the clock here, and we didn’t want to lose the momentum from the previous day.  When I finally asked my instructor to look at it, he even seemed perplexed; however, with a bit of file hopping and clicking on a link in the Chrome console, he soon figured out my problem had to do with referring to the server as SERVER in some places in my code and FILESERVER in other places.  Making that change did the trick.

In the past, I would have felt stupid, yet, yesterday, I felt excitement.  I realized what a great error it was to add to my experiential toolkit.  If I ever receive that error again, I’m going to know what it means and how to quickly resolve it for myself or someone else.

This morning, looking over my list of things to do, I can’t say I’m going to give any new error a hug; however, I think I can shake it’s metaphorical hand, smile, and say, “It’s a pleasure to meet you.”

One of the Smartest Things I’ve Done So Far … Until Proved Otherwise

Front-end engineers have a tendency to begin coding immediately.  It provides a feeling of accomplishment and the illusion one is ahead of schedule … until the obstacles from not planning begin to arise.

In every group project so far, no matter how much we planned, we still found areas where we could have taken more time with planning.  Part of it is a learning curve; part of it is an eagerness to get to the fun stuff.  Sometimes, it’s due to not fully grasping certain aspects of the project until one gets into the middle of and goes “Doh!”

Fleshing out the hackathon on the last group project revealed a few things we should have confirmed with the back-end that we were able to quickly solve and saved ourselves some time.

Harrison, Tommy, and I accomplished quite a bit yesterday.  We’re modeling a movie review website on Goodreads, so we went through the Goodreads website and evaluated their features, processes, etc.  This led to a discussion about what we would like to incorporate into our own app, as well as what new features it will provide.  We researched the available APIs to pull in the movie data we need to enhance our app and requested the appropriate API keys.  Finally, we had the heart-to-heart talk about what was possible based upon our skills, tools, and timeline.

Dreams for websites are like appetites: they always seem bigger than what is possible.  However, when I went to The Art Institute of Atlanta, I learned I could often do more with perceived limitations than when I had everything at my disposal.  It forces you to be creative and dig deeper, which often reveals a simpler and more satisfying answer.

We built the shell of the website, decided upon a color palette, fonts, and logo.  We fleshed out the readme as much as we can, which is quite a bit.  This revealed what information we’ll need from Harrison and the back-end.

Today, we should receive the API keys we need to access data.  Harrison said we should be able to test user authorization today.  We’ll also need to determine which APIs we definitely plan to use and compare the types of data we’re receiving from them and what the keys are called.

Not bad for a first day.

And then I went home and worked five hours more on readme files for my previous assignments, other projects, and my portfolio.

Relax and Debug

Something interesting happened as I worked on finishing up assignments and cleaning up projects last week: When I experienced errors, I no longer experienced panic.  Instead, I relaxed and remained calm  and debugged … and I found solutions in a fraction of the time.

Progress!

The developer tools that were so confusing in the beginning have now become second nature, although I’m sure I have more to learn.  Error messages are no longer Greek; I can recognize what the problem most likely is and quickly correct it.  If it’s a new error message, I’m able to find help online quickly.

All of this progress is also making me more ambitious.  I want to try newer, braver things that could completely fail and break my app, but I do it anyway.

Who is this programmer I’ve become?

Where Are My Sunglasses? The Future Is on the Horizon

I cannot express how thankful I am to have a week off from coding 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 engineering program.

It was reassuring to look back at my notes and revisit past assignments and discover how some things that seemed so incomprehensible before, now seem like a piece of cake.  A few things required another round of debugging, however, the satisfaction that came from figuring out those problems was worth it.

I accomplished what I had planned to accomplish over the break, and what lies before me seems manageable, which isn’t something I’ve felt since I started the program.  I’m enjoying this place, because there were many nights I never thought I’d make it here.

Tomorrow, we have three weeks left in the program.  Actually, it’s a little less than three weeks, because our demo days is on Thursday, December 17–not that Friday.  Plus, we want to have our project complete a few days before demo day.  Daily lectures and assignments are behind us; now, we focus on putting everything 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, however, I’m glad to have the last nine weeks behind me, and I’m looking forward to the future.

I Owe JavaScript an Apology

For the past seven weeks, I have held a grudge against certain JavaScript functions.  We were given an assignment that gave me all sorts of hell.  I couldn’t figure out why I couldn’t get my code to appear on the page, when I seemed to be writing it correctly.  After all, I could see it in the developer’s console.  I still hadn’t figured it out when it was time to move on to the next assignment, so I figured the problem was me and held a grudge against those functions until today.

Upon revisiting the assignment, I discovered the problem wasn’t me or the JavaScript; it was due to some bug in my SCSS file that wasn’t updating my CSS file, which meant the changes I thought I was making to display 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 personally.  There’s always a reason why code doesn’t work, but we need to be relaxed and objective enough to find it.

Explaining What a Web Developer Does

“So, what exactly do you do in school?” one of my adoptive family members asked around the table at Thanksgiving dinner.  Since I moved from Texas, I have spent Thanksgiving with the family 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 family member asked.

“Not exactly.  Websites have grown more complex than they were years ago.  Nowadays, they’re often a single-page web application that requires less time and resources to interact with a user.”

“You mean like a drug user?” Another family member narrowed her eyes suspiciously.

“No, a user would be anyone who interacts or uses a web application.”

“So, you build those buttons they say ‘About Us’ and ‘Contact Us,’ right?”

“Well, the industry is now moving toward building websites with what’s called a MVC (Model View Controller) type, where you build a model of a product you want to display and group them into collections.  Instead of building multiple web pages, we build different views of what needs to be displayed, which are controlled by the, er, controller.  This way, instead of loading a new web page every time you need to access new information, you can click on one area of a single-page web application and only load the view you need for that area, which is faster and uses less resources.”

I scanned the blank faces surrounding me.  Finally, one family member asked again, “So, you build buttons, right?”

Realizing I had jumped the shark on trying to explain what web developers do, I smiled and said, “Yeah, I build buttons.”  Lesson learned …

Generosity of Spirit in Technology

One of the most delightful surprises about the tech community is how generous they are.

I have been overwhelmed at the willingness of strangers to reach out to me on Twitter to share knowledge and offer assistance.

I have been moved by how former students have shared their knowledge and resources with myself and my classmates.

I have been touched by how my classmates have supported others when we have become stuck and needed help.

Of course, my instructors and the other staff at The Iron Yard have always asked if there is anything else we need from them; however, it’s a bit like asking your parents if you’re smart or pretty or hit a baseball well.  It seems like a given, right?

Well, it’s expected, and, perhaps, that’s the difference that delights, because the other help was not expected.  I’m not paying them tuition and they had nothing to gain by giving of themselves.

I worked as a bookseller for ten years, and the support from other independent booksellers was just as amazing.  Other people always seemed surprised that we were friendly with the other booksellers in town.  They seemed to think they were our competitors and, therefore, our enemies, which was not true.  When we saw other booksellers, we listened to one another and shared stories that offered solutions that had worked for us, and, possibly, could work for them, as well.  We laughed a lot.

I’m glad the tech community is similar to the bookselling community.  When others give with no expectation of receiving anything in return, it inspires us to give unconditionally, too.  In fact, it’s sort of an open-source generosity.

Sometimes We Break Things to Make Them Better

Yesterday, I finally got a project to work that I had been working on since the day before.  It had taken much more time than I had anticipated, as is sometimes the case, so I let out a whoop and a holler and there may have been subtle fist pumping before I remembered I was at Starbucks.

Once I was home, I decided I could improve my project by making a few tweaks and broke the darn thing.  All of my hard work from the previous twenty-four hours undone.

I raked my fingers through my hair, and sighed through gritted teeth.  Why hadn’t I left things alone?

I could have gone back to my original code, stuck a fork in it, and considered it done; however, I believed the changes I had tried to implement would make my project better.  I could play it safe and only learn so much, or I could continue to debug and learn so much more.  I opted for the latter.

Four and a half hours later, I finished my project.  It was indeed better, both visually and functionally, and I wouldn’t have got to that point without the obstacles that presented themselves and forced me to find creative (and fun) solutions.

It was a good reminder that life gives everyone problems and opportunities, but it’s up to us to choose which one we’ve received.  Attitude is everything!

The Challenge to Create More Meaningful Connections with Technology

It’s the Tuesday before Thanksgiving and I’ve already received too many emails about Black Friday specials.  Keep in mind, before I started the front-end engineering program at The Iron Yard, I unsubscribed from every unessential e-newsletter I had been receiving.

In some ways, I’ve been living in a bubble the last nine weeks.  I’ve had to concentrate on the assignment at hand, reviewing my notes, and reading the documentation for every new language or library that has been introduced.  I’ve often found myself looking up and discovering hours have past by in what seemed like minutes, or not being clear on the exact date.

On one hand, it’s not unhealthy to disconnect from the over saturation coming from the media.  I mean, I had no idea Adele released an album last week or that the final Hunger Games movie started Friday.  They’re entertaining, yet meaningless.

On the other hand, I’ve become more aware of taking breaks.  I’ve noted far too many times when a syntax error was right in front of my nose while I continued to stare at the code for far too long before someone else pointed it out to me.  Also, it’s important to stay in contact with family and friends.  Exercise and meditation are important, too, for getting out of our heads and managing stress.

When I was a kid, Black Friday didn’t exist.  Sure, department stores offered special sales the day after Thanksgiving and people shopped, but stores were closed on Thanksgiving Day and no one lined up at the door of the store to buy a toaster oven for ten dollars.  Online shopping wasn’t even imaginable back then.

I recall retail sales for Black Friday were below the industry’s expectation for last year.  I found myself pleased by that information, because I hope it will deter retailers from continuing the trend of asking their employees to work on Thanksgiving instead of spending time with their families, especially since many people travel home for Thanksgiving, yet do not for other holidays in December.

As technology advances and begs for more of our time, it’s important we give attention to unplugging and remembering what’s it like to relating other human beings.  Although it’s true we can often experience meaningful connections through the Internet, it doesn’t replace the kinship from spending time in the physical presence of others.  It activates a different part of our brain and heart.  It’s similar to the way journaling on a computer produces different results from journaling with pen and paper for many people.

Over the past few years, and especially the last nine weeks, I’ve become aware that it’s important to me to find new ways to utilize technology to create more meaningful connections between people.

One fresh idea that exemplifies that philosophy is 5 for Friends, which was featured in a recent Hypepotamus article.  The app provides a way for friends to stay in touch in five-minute increments when they find they have five minutes available.  They can send a notification to the friend in their network that they’re available, and friend can call them and catch up before the five-minute timer runs out.  Thinking I don’t have longer than five minutes to talk has kept from contacting people I want to catch up with, and then my intention falls by the wayside as I get distracted by less meaningful things throughout the day.

What can you do to create a more meaningful connection with technology?