Kiteboarding, Coding, and the Epic Quest for the Holy Grail of Skill Transference

For a long time, one of my little personal mottos has been “Under, Over, Parachute in Behind.”  By this, I mean that whenever confronted with life’s inevitable challenges, there is always a way to get from where you’re at, to where you want to go, by countless, imaginative means – that you can go under or over the wall in front of you, or, if the situation requires drastic measures, you can even parachute yourself in behind.

Back in 2009, I failed miserably in my attempt to learn how to kiteboard – there were two particular times when David watched in horror as I launched, board strapped to my feet, 9m kite strapped to my waist, some 10 feet into the air off of Grand Traverse Bay, Michigan, before doing a super-man landing in the shallow waters.  Those moments cemented (for the time being!!!) my fear of the sport.  But, the whole experience also cemented in me the idea that the currently accepted methodology for learning a new skill is terribly flawed, and that there had to be a better way, a more precise, methodical approach to learning that would lead to greater success for both the instructor and student (see “My Kiteboarding Ah-Ha Moment”).

That's Jess

That’s Jess on the same trip

Since then, I’ve been researching and working on building out a language-based, fill-in-the-blanks, Mad-Libs-type skill transfer protocol that codifies the skill transfer process from an expert in any field to a novice who would like to possess that particular skill set.  And pursuing this project has required its fair amount of creative tactics to continue moving forward.

So, fear not, to all those brave souls who wish to pursue whatever great ends (for any pursuit worth pursuing is, indeed, great!!).  The road will, no doubt, be long and treacherous, full of obstacles, dead-ends, circling back and an endless number of heartbreaking setbacks.  It will be asking a million questions, and looking for the next answer and the next, over and over again.  But, if you employ all your creativity to surmount each and every one of those hurdles, you will be rewarded for your fearless efforts.

What follows is my little project’s history, and some of the crazy challenges I’ve faced and the digging, climbing, and leaps of faith to the backside of the obstacles in my path that have been made to get where I’ve gotten so far.  As I’ve relived this little saga, in the writing of it, I realize why yesterday, I was left sobbing, tears of thrill and disbelief, wonder and awe, as a major 5-years-in-the-making milestone was unexpectedly reached, after having started this journey, knowing nothing about anything at all.

There were several years where I did nothing but research countless topics, both mainstream and esoteric, just to get the lay of the land – I’m currently sitting on almost 300 pages of thoughts, ideas, notes, and theories as a result of all that research – be forewarned, there are many, many blog posts yet to come as a result!!

When it came time to test the very rough theory I had developed, I had to push and shove, contort and cajole the theory-in-practice through multiple iterations in Excel spreadsheets, expanding my theories with each version.

After a while, I realized I couldn’t keep the precise language consistent throughout the lessons, and had to take a complete detour (this is where the majority of my efforts have been for the better part of the past 2 years).  I knew I would need some sort of custom-built computer program to do the heavy lifting language work for me.  It was absurd!  I didn’t know the very first thing about getting a program built – I honestly didn’t even have a clue as to what questions to put into Google to start pulling on a thread of understanding – I remember sitting on the couch for 3 days straight, looking up one definition after another around computer programming just trying to understand something, anything related to what I was trying to do.

It felt impossibly, overwhelming large to think about figuring it out, all this programming…. stuff!  I wondered if maybe I could get someone to build the software for me.  Here’s where I ran into an economically unfeasible roadblock – I talked to a guy I’d learned of through the local business incubator, who was trying to get a similar type of program built.  My heart sank – his research indicated that I’d need in the ballpark of $40k to pay a programmer to write up the code to test out my theory.  Dumbstruck.  Stuck again.

Ok, different tact – well maybe I could get the software outsourced – I read, and read, and read – so many challenges.  I was so naïve, I didn’t know enough to even identify the title of the right person to be looking for.  And worse yet, even if I knew the role of the person I was looking for, I didn’t have the concepts or the verbiage to convey to that person what I wanted done.

As they say, back to the drawing board – I continued my research into the different kinds of programmers as well as the different programming languages that are used for different programming needs.  Somewhere in that process, I came across the idea of becoming my own “technical co-founder” (otherwise known as “glutton for punishment”) – basically, this is where a cofounder (of one, in my case) for a startup company buckles down and learns enough programming to be able to build out a rough, minimal viable product version of the software for the company to be able to quickly determine if there is or isn’t a market for the idea.

Awesome – I’ll do this, decision made.  Turns out, figuring out where to even start on this monumental task is its own challenge.  More internet research.  It seems that HTML/CSS are a good place to get your feet wet – the front-end language (ha – now I know where the front-end actually is!!  Lol).

I had to work through a beginner basic Head First HTML book – TWICE!!  This is when I start to get a sense of just how Everest-like THIS mountain is gonna’ be!!

Next it was trying to figure out which “backend” language to tackle.  Tons of research later, I read that PHP and Python are similar and so easy to learn the second one after you’ve learned the first one (like, what was I thinking there??  That this would be such a breeze that I’d be wanting to pick up a SECOND language?!?!?  Lmbo!!  I can only look back on my folly with utter disbelief!).  At the same time, I explored this “Meetup” group idea – and I found out that there’s a Python meetup where I live, so it seemed like there could be a possible place to go for help and interaction and community – running up and down alleys as fast as I can go to see what may or may not be of use…

As I dove into learning CSS “language,” I learned just how challenging things could get at the most minute levels.  My big, hairy problem one day involved a “{“  I cannot begin to count the number of things I did to figure out why in the world something wouldn’t work in my code.  I typed it.  I re-typed it. I copied in quote marks from another place in the working part of the code because I read on some message board something about invisible characters and I fretted that my international keyboard that I’m using for French accents was messing things up.  I ran it all through a validator (yes, I had to figure out how to use a validator) but couldn’t figure out what the error message was trying to tell me.  I researched the error message.  I went on the Head First book message board to no avail.  Finally, I looked up one line above where I thought the problem was, and there it was – a “{“ instead of a “}”.  The cool thing about coding – there’s no ambiguity – there’s immediate feedback, that I don’t get in my everyday life – immediate, precise feedback – but talk about maddening!!!!  And this one error taught me countless things that I wouldn’t have learned otherwise (this is how one justifies messing up – chalking it up  to “experience”!!).

After HTML and CSS, I dug out my Head First Programming book that teaches programming concepts through the use of Python and the Head First Python book.  Another monumental hurdle – what do you do when you can’t even understand the bare bones, basic material on a subject because the concepts are so stratospherically over your head, when basic isn’t basic enough, when learning Swahili sounds easier??  Well, of course, you go rooting around until you find a kids book on the subject!!  You take the ego hit that’s required when even THAT is stretching your mental capacity.  I downloaded a children’s book on making fun little games with Python and humbly buckled down and worked my way through and studied every page and example of the first 331 pages of the book, 3 times, just to get a rudimentary understanding of the most basic concepts.  Even then, I still had to have Google open at all times, just to understand!

Next, I found the CodeXX women’s coding meetup and went to my first meeting – great ladies; fun, sweet, intense.  At one point I said I was going to tackle Python programming, myself.  One of the women looked at me with big eyes, like maybe I’d lost my mind – then I started wondering if maybe I was insane!  Ah, emotional baggage challenge to overcome!!  Ignoring one’s own brain is the best way to go on these obstacles – just keep doing the work, putting one foot in front of the other, and ignoring just how long the trek is likely to be!!

Through it all, I was always keeping my eyes open for opportunities to make headway.  At one point, this led to a side-trip to an “Intro to Python” course.  I started realizing that in the world of computer programming, there is no such thing as “intro.”  Fortunately,  it did introduce me to the advanced topic of Object Oriented Programming (OOP) that I recognized, immediately, would be necessary in order for this project to work.  And by this point, I was grateful to get a modicum of validation for all my hard work– I saw that the only way I could have ever possibly followed what was going on in class was because I had studied so much.  And the other bonus – I met Anthony – he was willing to meet with me about this idea of mine.

Sooooo…..  my impending meeting forced me to mock up my first stab at what this whole thing would look like, from a user experience perspective, so I could talk reasonably intelligently to Anthony about it.  Printer paper and colored Sharpies were my best friend.  Dave made me up a huge 4’ x 8’ brainstorming board to use to flesh out all my ideas and interconnect them.

Software Layout

At my meeting, I showed Anthony everything I had.  He filled in some of the blanks in my mind and got me to thinking about the “full stack” that would be necessary to build out this tool.  Oh my gosh – what in the world is a “full stack” and what is the exact full stack that I need for this?  Yeah, I know, right?!?!  We’ll get back to this.

Somewhere in there, I tripped across a Udemy class for building a website – didn’t go through the entire thing, but practiced and practiced again recreating the BBC website in HTML and CSS – cool, then I tweaked it out for  RSTP, just so I could get a feel what a front webpage could be like.

Also, Anthony suggested HelloWebApp, a learning program that helped me flesh out the full-stack for the program I wanted to build.  What was this stack think about again?  Well, it’s the whole integrated group of tools needed to build a fully-functioning, web-based computer program – the HTML that creates the webpage and the CSS that makes the webpage look pretty for the user experience, the Python programming language that is used to develop the functionality of the program, the MySQL database that stores the user inputted data, the Django container that holds all the pieces together, and Heroku which is used to deploy the software on the web.  No mean feat to figure all that out!!  But I had something!!

Things get fuzzy in this time period – taking lots of paths simultaneously.  Somewhere along the line (before or after Udemy class?) I figured out how to wireframe (oooh, big computer words!!  I can do that now!!  😉  )  how I wanted this whole website and program to look and work – which forced me to think about the user experience of using this tool – I looked to things that already existed that I could tweak to my purposes, instead of recreating the wheel – ah ha – MS Project – that will help me structure this tool I’m building.  And what is this?  What is this thing that walks you through the process of creating an MS Project project?  I dig and dig, it’s called a Wizard – a tool to walk you through the process of creating something in a software program.  Now I’ve got this great mockup of how I want it to all work together.

I flip back to figuring out how to create a webpage that accepts data in fields.  Figured it out – it was exhilarating to get it to work!!  Life happens, and I get stopped out – it’s not a dead-end, but it was a very short path.

The unexpected consequences of all that studying – I could now speak fairly fluently about my needs for the software I needed built – I knew a lot of the right language.  So, I finally screwed up the courage to put together a job description for Upwork and post it – terrifying!!  People were coming at me within minutes – could I even answer their questions???  A guy from Canada wanted to Skype right off the bat – omg, what have I unleashed – I wanted to just hit the “post job” button and walk away for the day and soothe my anxiety – no go!  Then the guy from Germany.  Next, a guy from the Ukraine (I admit, I had to look up, where in the world IS the Ukraine?!?!) immediately started asking me questions, asking for additional information and screen shots of what I’d mocked up.  He asks me to give him a little bit of time to study everything I’ve sent.  He says he understands.  He’s nudging for the job – argh!!!!  Holy crap, what have I done??  I’m paying for this, out of my own pocket!!  Overwhelming!!!!!  I kept pushing him off, kept the discussion going for two days (Maksym – you’re a saint for enduring my newbie anxiety!!  😉 ).

And at last, I contracted my first-ever programming job out with my (thank heavens!!) persevering Ukrainian, Maksym –  I’ve started calling him “Maks” – I hope he doesn’t mind, because to me it’s so very fitting – all of us Maxfield’s have had the nickname Max at one point or another – we even named our sweet puppy dog Max – so now Maksym’s part of my family, and of the story that’s still unfolding.  I’m monitoring his work.  My studying prepared me to at least understand the broad brush strokes of what I’m reviewing in all of his work screenshots, seeing it in 10 minutes increments as its being built by him and his incredible mind!!

So yesterday!!!!  I’m sitting on my hands, biting my nails, waiting – because Maks has been off working for the past week-and-a-half and I have been too busy on other things to even check in and see what he’s up to – and now he’s telling me he’s ready to walk me through the program – but he’s disappeared for the past hour since he said that – I’m terrified – to much time to think!!  Have I set myself up for a fall?  Have I had unrealistic expectations of him?  Of this??  He tells me I have to sign in again as a new user.  With trepidation, I make myself a new account…

RSTP desktop

And there it is!!!  I started sobbing and laughing, uncontrollably.  There was the program I set out to have built, looking exactly like I had sketched out, looking exactly as I had envisioned it!!!  As I told a friend, I’ve never experienced anything quite like this before – to know how many millions of tiny baby steps have been taken, starting out from absolutely nothing, and there it was – REAL!!! EXISTING out in the world!!   IT EXISTS!!!  IT REALLY EXISTS!!!!!!!!  And, I have this kind, intelligent, generous new friend, 1/4 of the way around the world to thank, from the bottom of my heart, for making this crazy vision into a reality!!

Projects Page

Now, I have to remind myself that all of this hard work, this whole computer programming side-track, and the work that is yet to come on it, is just to get back to testing out my theories for a language-based rapid skill transfer protocol!!

Program

And that I intend to bring this round full-circle before this is all said and done, and tackle kiteboarding again, armed with a better approach, and armed with a shiny new program, next time (see “Kiteboarding as the Ultimate Validation Test”) – stayed tuned!!  J

If you’ve waded through all this, please, take this still-in-the-works saga for what it’s supposed to be – an example of the kind of process anyone must go through, blindly feeling their way each step of the way along the path less traveled in order to arrive at some STUNNINGLY SPECTACULAR PLACE, EACH OF OUR OWN CHOSING!!  Happy travels!!  🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s