Function(ing) as a Web Developer

Today is Labor Day. It’s also the first day of Week 11 at The Iron Yard, for me.

I wasn’t expecting to be ‘off’ today, especially as we are in the thick of final projects, but I’m working from home today and before I jump into my project for the day, I thought I’d share a few things that I’ve found to be helpful to me as a developer:

  1. Keep a Schedule: I get up really early and go into school 3+ hours before classes start. I get a lot done in those extra 3 hrs every morning.
  2. Find Good Music: Music helps me concentrate while I code. I’ve found Taylor Swift, Mumford & Sons and Underoath help me the most in this area. Bonus: It’s okay to play air guitar, drums and dance while you’re listening. It will relieve your stress.
  3. Take Breaks: Sitting for long stretches sucks. Play ping-pong, go for a walk, take a quick nap, meditate, or do anything but programming for 15-20 minutes at least 3 times a day. It will help your productivity.
  4. Keep Learning: Don’t be afraid of what you don’t know. If a project requires you to learn a certain skill, take a day to learn it well instead of spending 3 days wasting time because you don’t know what you’re doing.
  5. Learn to Walk Away: This has maybe been the most helpful thing for me. I am usually at my Iron Yard campus from 6:00am to 5:00pm, and then I come and work at home for at least an hour. Do yourself a favor and go home early every now and then. Go home and don’t look at your computer and instead, go spend time with your wife, husband or friends. The code will still be there when you get back to it the next day.

How should I React.js?

I’ve already started this post with a pun, so you know it’s going to be good.

This post is coming at the close of week 8 at TIY Nashville,  (OHMYJONASBROTHERSWHEREDIDTHETIMEGO?!?!?!) and life is a whirlwind right now. We’re coming out of two weeks and some change of playing in Backbone.js and a brief hit on testing and this week we began learning React.js, a javascript library with the sole purpose of “building large applications with data that changes over time”, and so this week I want to talk about something I’ve learned about React.

I have mixed feelings about Facebook (I use it begrudgingly) but I love Instagram (and don’t use it nearly enough). Both are wonderful tools, but I didn’t know that they were built with and reliant upon React.js (and Facebook uses a PHP-Frankenstein). I might have guessed that if I was really pressed about it, but I wasn’t and so I didn’t. After we built a react app in class (an Instagram clone) it struck me just how powerful a tool that React can be, and hopefully will continue to be because of the way React was designed to function. (More on that here)

As I was reading the React Documentation, it was the simplicity that stuck out to me, and the differences between Facebook and Instagram. Instagram is clean and simple and elegant and strikes a chord with me because of its minimalism while Facebook is loud and boisterous and I want to punch it in the mouth.

I’ll close with this from the React Documentation about the simplicity of the React library.

Simply express how your app should look at any given point in time, and React will automatically manage all UI updates when your underlying data changes.

From a programming point of view, that is music to my ears.


Overall, this is how I feel about React.js
carlton1

carlton4

carlton3

carlton2

Week 6 Update

Six weeks have come in a flash, and I know that the next six will also. Six weeks ago, I could kind of work an HTML & SASS/CSS file ,and I could kind of understand very basic JavaScript functions, and now I’m in a group project that is building our own version of Twitter using Backbone.js. All of this is thanks to The Iron Yard.

My motives have changed slightly since I came in, and I wouldn’t be surprised if they change again by the time I’m finished here, but I did get some clarity in the last few weeks:

  • I know now that I’m not, nor will I ever be, the best developer in the world. And I’m okay with that.
  • I know that I like being in a leadership role, and so project management really, really excites me.
  • I have started looking at jobs and I could git cherry-pick (That’s a git joke. *sigh) my ideal role at a company, it’d be having my hands in design, building HTML/SASS/CSS, and working as a liaison between client and developer to fulfill the whole vision.

And that’s about it. Life is busy and the last two days, and I’ve had to force myself to concentrate on school while God is bending my heart afresh to the people of Adelaide and ministry there in Australia.

That’s all I’ve got for tonight.

Allons-y!


As is tradition, I’ve a .gif to share.

This morning, I sent a text to a developer friend of mine, and told him what I thought of Backbone.js.

Learning Javascript is like trying to run the Music City marathon after only training for a 5K.

Learning Backbone.js is much like MAD MAX: FURY ROAD.

fury3

fury1

Backbone.JS (or how I learned to terrify myself)

So, here we are five of my twelve weeks at The Iron Yard-Nashville. Today, I’ve had too little sleep since Sunday night, I’m trying to buy a new car,  in class this week we are learning Backbone.JS…and I’m terrified.

But a good terror. Kindof. Let me explain:

A few weeks ago at Comic-Con in San Diego, Joss Whedon did an interview with Zachery Levi at the NERDHQ panel and when answering a question about Joss’s creative process and implementing new technology in how he worked inside his craft, he had this to say:

Can I terrify myself? How can I teach myself a new skill and possibly fail? Those are the things I look for in life.” -Joss Whedon, NERD HQ Panel (Comic-Con 2015)

After being introduced to Backbone yesterday, I was reminded of Whedon’s quote, and in the midst of all of the hectic things going on in my life this week, that mindset brought a shred of relief.

So, what does a Joss Whedon quote have to do with what I’ve learned about Backbone so far? I’m glad you asked, and Im going to try to explain, although I know that I’ll fall far far far short.

Backbone.js isn’t quite a library and it isn’t quite a framework. It’s a bit of a hybrid (at least as far as I understand it. Honestly, it does both) and it reminds me a bit of the Indominus-Rex from Jurassic World this summer. It’s big and it’s fierce and makes me want to run away in terror because I don’t quite understand it just yet. But that’s okay. In this instance, terror is a good thing. I hope.

From the videos I watched for class that dealt with Backbone these things gave me some clarity. This won’t be amazingly in-depth, but I hope to revisit this blog about a week from now and explain more about what Backbone does and is and how I’m using it.

  • Backbone has three parts: Models, Views & Controller
  • Models contain all of the data and the rules that govern how the data can change. (truth)
  • Views are how the data is presented (HTML, CSS) (perception)
  • Controllers…I’m still fuzzy on, but i’m still trying to understand it.
  • In Backbone .model is a constructor that allows you to create objects to encapsulate truth and .view generates the projection into user visible space.

Okay. That is really really cool and really powerful because it allows me to build and manipulate my HTML markup and my CSS styling straight from my javascript.

Mind.Blown.

There is a lot more to Backbone that I want to dig into, and I’ll revisit it next week. For now though, I think I’ll settle into my terror and soak in all I can with Backbone.


I can’t not add these gifs:

Backbone (Indominus-Rex)

Indominus_Rex_(40)

My reactions to the power of Backbone:

 kramerfreaksout

kramermindblown2

Mind.Blown:

barny_mb

Colbert_MindBlown

How I’m embracing the terror of Backbone:

doctorstrangelove

Allons-y!

Conjunction Junction, what’s your function()?

We’ve spent the majority of the last 10 days at the Iron Yard in Javascript. Until today, I felt like I was barely hanging on, but today I finally wrapped my head around the crazy that is JavaScript. (Seriously, I’d rather try and understand time travel and interdimensional travel than try to learn JavaScript again).

As homework for tonight, we have to go through and give examples of functions. So, here we go.


//_.compact
var x = [0, 17, 322, '', 2354];
var newX = _.compact(x);
//newX is [17, 322, 2354]
// Usefulness: In a massive program, im thinking like bank numbers or credit-card numbers, something like _.compact would be useful because it could discard numbers that were typed incorrectly.
//_.compact removes things from an array that equate to false, null, NaN, etc. and makes them easier to read.
//_.union
var x = ([1, 2, 3, 4, 13, 25, 64, 101],[1, 2, 13, 6, 1, 25], [2, 4, 4, 101]);
var newX =_.union(x)
// newX = [2, 4, 101]
//Usefulness: I think that _.union could come in handy when doing things like statistics or in finding averages.
//_.union is used to combine repeated numbers in multiple arrays into one array
// _.once
function agreeToTerms() {console.log('I agree');}
var newTerms = _.once(agreeToTerms);
// newTerms(); Logs 'I agree'
// newTerms(); noting happens
//_.once is used to create a new function that only runs one time. i.e. a Terms of Service agreement.
//_.compose
var greet = function(name){return "Hello: " + name; };
var exclaim = function(statement){return statement.toUpperCase() + "!"; };
var welcome = _.compose(greet, exclaim);
var output = welcome('jordan ' + 'wilhite');
// logs Hello: JORDAN WILHITE!
// can be used as a login prompt
//_.keys
var x = ({seven: 7, twelve: 12, thirty: 30});
var newX = _.keys(x);
// ['seven', 'twelve', 'thirty']
//_.values
var x = ({one: 1, two: 2, three: 3});
var newX = _.values(x);
// [1, 2, 3]
// _.keys and _.values work in similar fashions. _.keys takes looks at both the id and the number and logs the id and ignores the number. _.values looks at the id and the value and logs the value and ignores the id.
//_.random
var x = '';
var newX = _.random(0, 800000000);
//newX = a random number each time it's ran. For instance, for me, it logged 159212083, 330480747, & 667582456 on three seperate occasions.
// _.random logs a random number in the set range.
//_.now
var x = '';
var newX =_.now();
// newX = 1437536189241
//logs the interger timestamp

view raw

functions.js

hosted with ❤ by GitHub

As a bonus, here are a few gifs to accompany how I’ve felt about JavaScript thus far:

Until Today:

tubing

epic fail

Today:

I Get It

And a little School House Rock because I feel like it.

JavaScript: The Good Parts & TIY Nashville Week 3 Video Lecture

This probably won’t be the only blog post this week. Maybe. More on that later this weekend.

Today in Will’s absence, we watched an hour-long video called ‘JavaScript: The Good Parts”, a Google Tech talk for 2009 by Douglas Crockford. He is also the author of a book of the same name. Before going into the hour+ video I had one question racing through my head, and it was simply “Is it really? Is this monstrous thing REALLY good?

I’ll admit that 4ish days into JavaScript I still feel like I’m lost in the woods. Maybe I’m not, but it sure feels that way.

And then the video began and despite my doubts, I saw a man who has drunk deeply from the well of JavaScript and has returned to the village (we endeavoring at The Iron Yard) to tell us of it’s goodness. And that was encouraging.

In class as well, Will talked about Object Oriented Programming (OOP) and despite a sinking feeling at the beginning of lecture, I found myself grasping and finally conceptually realizing the beauty of Object Oriented Programming.

Grasping OOP and hearing and understanding Crockford talk about Object Literals and that it was part of the thing that made JS so wonderful served to reinforce again that my time here at The Iron Yard is worthwhile.

I think that this is going to become a tradition with me, but here is a gif to sum up my feelings for the week.

drowning

Allons-y!