Not Having a Job… is a Job!

I was reading Deep Work by Cal Newport. He used the story about a consultant from academia responding to a big business executive’s question, “how are we going to do all of this?” by repeating the things they needed to do, but the executive derided the academic and told him “I asked you ‘how’ we’re going to do this, not ‘what’ we’re going to do.” This spurred the academic to write The Four Disciplines of Execution, or 4DX.

When I was reading this I knew I recognized the story from somewhere. When Cal started talking in length about 4DX I had realized this was the exact book we were tasked to read in my last job as a team leader for City Year Chicago.

This spurred me to action. The next day, remembering how much I liked 4DX for organizational use, and remembering thinking “I need to use this for myself personally too,” I sat down to determine my personalized ‘Disciplines of Execution.” First, a summary of what the Four Disciplines are:

  1. Have a Wildly Important Goal
  2. Use Lead Measures rather than Lag Measures
  3. Have a Scoreboard that calls you to action
  4. Have a cadence of accountability

A Wildy Important Goal (WIG goal) is one that, in an organization, everyone is aware of. It keeps you moving and gives you a guiding light through ‘the whirlwind’ of tasks and objects that don’t necessarily move you forward.

Lead Measures are sub-goals that actually move the WIG goal — these goals lead directly to ‘lag measures,’ which are indicators that you want to be true but that do not lead to progress. For example, a 10% increase on cheese production is a lag measure, whereas placing 1 additional cheese artisan per cheese shop leads to that lag measure and is then a ‘lead measure’.

A good scoreboard should be visible to everyone and show you by a glance whether you are ‘winning’ or ‘losing’ in your progress toward ‘the WIG’.

Having a cadence of accountability generally means you meet with your team on a weekly basis regarding *only* 4DX and *not* the rest of the whirlwind. You must declare your success or failure in your commitments to lead measure that week.

Making Personal Disciplines of Execution: The Wildly Important Goal

So I went about making myself some personalized 4DX goals. Here they are:

My WIG:

Complete 6 high-quality coding projects by November 2017

My Lead Measures and the Lag Measures they produce:

Update learning blog 4x per month → Projects are at the difficulty level to spur development (in the ‘zone of proximal development’) and maintain quality;

Plan ‘deep work’ sessions in an overview 1x per week → Projects contain ‘full’, ‘actual’, useful functionality and are not ‘tester’ or ‘tutorial’ projects;

Pair with or share code and discuss with 1 peer, 1 veteran dev 1x per 2 weeks → Code well-written, inspires all levels of programmers to code more, and overall -makes sense to outsiders

My Scoreboard:

The above should tell me whether I’m ‘winning’ or ‘losing’ as 4DX prescribes.

My Accountability System:

Having either a peer in my cohort of WDI at General Assembly (or down the road, someone who I’m coding with on a regular basis who’s also a junior dev) OR a veteran who has been coding a few years more than me who can really push me to improve my code.

So What?

You may be wondering why I wax business-like in a Python blog. Where are the haxxorz, Sam? Why are you not explaining the netcyberwebspace?

When I started the ChiPy Mentorship Program, I was not really sure I would be now. I had some lofty goals about placing systems my work used in neat Django faux-servers. At the time I had no idea how time would fly. I distinctly remember the first wall I hit with Python since joining the program. First I got amped up by following along a Youtube tutorial on Django. I watched 14 videos in a row and diligently logged other learning materials I went through. I reported back to Jordan and told him my progress. The wall flew up from beneath me like a trap door in a maze with fluorescent graffiti saying “you still don’t get it.”

If there is something I learned above all else during the program, it’s that you need discipline to get anything real done. If I hadn’t gone through ChiPy’s mentorship program, no way I would have known the pacing and type of learning I personally need to succeed as a programmer.

Now What?

So let this not be the end but a new beginning. Allow me to introduce the first of one of my Lead Measure requirements I have set for myself:

Learning Blog # 1

June has been a big month for me in learning to program, but it has not brought as much Python learning as I hoped. My thought on joining General Assembly was that I would be able to keep up the Python learning in some way, shape, or form, on the side. But it has been immensely hard for me to muster 10 hours per week of Python learning. Thus far, it has been a summer of transformation. I made some early attempts to take JavaScript 101 and flip it to the realm of Python. There is an elegance and simplicity to Python I never knew existed, since it was my first programming language:

//Check for number evenness in JS:
var evenCheck = function () {
for (var i = 0; i <= 20; i++){
if (i % 2 === 0){
console.log(i + " is even")
} else {
console.log(i + " is odd")
}
}
};
evenCheck(9);
evenCheck(8);
#Check for number evenness in Python
def is_even():
for i in range(0, 21):
if i % 2 == 0:
print(i, " is even")
else:
print(i, " is odd")
is_even(9)
is_even(8)
// Check for fizzibuzziness in JavaScript
var fizzBuzz = function (top) {
for (var i = 0; i <= top; i++) {
if (i % 3 === 0 && i % 5 === 0) {
console.log(i + " FIZZBUZZ")
} else if (i % 3 === 0) {
console.log(i + " FIZZ")
} else if (i % 5 === 0) {
console.log(i + " BUZZ")
} else {
console.log(i)
}
}
};
fizzBuzz(100);
#Check for fizzibuzziness in Python
def fizz_buzz(top):
for i in range((top + 1)):
if (i % 3 == 0) and (i % 5 == 0):
print(i, "FIZZBUZZ")
elif (i % 3 == 0):
print(i, "FIZZ")
elif (i % 5 == 0):
print(i, "BUZZ")
else:
print(i)
fizz_buzz(100)
// Basic beer song in JavaScript
var beerSong = function (){
for (var i = 100; i > 0; i--) {
console.log(i + " bottles of beer on the wall, " + i + " bottles of beer")
console.log("Take one down, pass it around: " + (i - 1) + " bottles of beer on the wall.")
}
}
beerSong();
# Basic beer song in Python
def beer_song():
for i in range(99,-1,-1):
print(i, " bottles of beer on the wall, ", i, " bottles of beer.")
print("Take one down, pass it around: ", (i - 1), "bottles of beer on the wall")
beer_song()

Not the most inspiring exercise of all time, I realize.

Linked below is my first major project in GA. It is a math game I programmed using HTML/CSS/JS and jQuery.

scrolfe.github.io/math_game

I have been considering ways to make the same game or a comparable game using Python, but I’m just not there yet. I’m sure given the time I could at least muster up a text game with the same premise, but as of right now it’s just not happening. Perhaps a worthwhile mission would be finding someone who claims they are “full-stack Python” and pick their brain about it. But even having started programming with Python, I still see Python as a backend language.

More on the Wall I Hit

I currently have a better grasp of what was going on when I saw the bright sign stating I ‘just didn’t get it’. This week we have been learning node.js, and in a way I’m back to where I started — node is a backend usage of JavaScript. By now, we have added Express to our chops and are therefore hitting the ‘View’ in ‘Model View Controller (the V in MVC). Next week, we will be hitting on the ‘M’. The wall I hit that demanded more comprehension was that of Django requiring its developer to use all three, which is exactly where I stumbled. I am thankful I ran into this. Now that we are approaching the same goal (RESTful web apps ((I know what that means now, peoples)) ), I am having a much smoother experience understanding it. Once we finish getting through MongoDB and bind together all the components of MVC in my current program, I am over-excited to give Django another try.

Finishing Off…

It’s hard to cap this one off because I’m really just getting started. But Python and ChiPy provided me a mega throat-punch of why I needed to dive headfirst into programming, and I need to respect that that stage of my learning is coming to an end. Although now I’m experiencing a JS/Ruby heavy program, I intend to make my programming career palindromic and dive back into Python to join the masters I’ve encountered here.

Coming to my mind right now is an actual Python stuffing a seemingly too-big-for-its-body animal into its mouth. That has been accurate to my experience with Python. By the time that poor Chinchilla has fully digested, I will be a flippin’ master. But until then, let me keep deepening my expertise in development overall. Stay in touch for more learning blogs :)

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.