My first programming language was COBOL.* That was back in the day, when mainframes were all the rage. I was hooked by the buzz I got from seeing the computer do what I told it to do, even if that was “please spit out pharmaceutical sales reports on green bar paper.”
After a few years of designing and implementing enterprise software, I found my passion: designing software so that people can build enterprise business applications without writing code. Heresy, I know, but it is rewarding work. It opens new job opportunities for people without Computer Science degrees and without having to learn to code.
Class 1 started with Terminology and Tools. I already had one of the tools: Sublime Text Editor, and was excited to learn about Repl.it. Then, it worked us through building a simple HTML page with some text and a link, step-by-step. The link calls a function that calculates a lifetime supply of our favorite food (in my case, chocolate) and pops up an alert with the result. World-changing stuff, I know.
Again, I felt that familiar “Hello World” buzz: *I* made this web page. That alert is popping up because *my* If statement is correct. I’m *awesome*! (it’s possible that I did a little happy dance in my office).
In the morning, I interrupted breakfast to show my 8-year-old son what I made. His coding experience includes two hours of coding over the past two years. After his first hour, he leaned back with a confident air and stated, “I’m a coder.” And we’ve been talking about code ever since. He helped me tweak the CSS on my website (although after much consideration I decided to go with the blue of my Converse and not the purple and green he’d chosen). I really had to prove my dev cred to him, since he was such a pro.
“See I made this page, click on it!” He did and was rewarded with my alert:
He smiled and nodded (which in boy terms translates to “that’s cool”). I didn’t get a high five, but I think that with more practice, I’ll earn one soon enough. All I cared about was him being ok with me not tucking him into bed.
Feb 9th, the weather was what we call in New Jersey a "wintery mix" - this is a delightful combination of snow and rain and sleet and hail. Another sign from the universe that I should stay home?!
No. I was determined to go, and I had two coffee dates lined up (when you work at home, coffee dates keep you sane). So, I braved the weather and the subway, and I made it to class. I was REALLY glad I'd done the Class 1 work - without it, Class 2, which extended those samples to show us how to work with arrays and loops, would have made no sense. I gave myself points for discipline.
In class, my years of experience coding things incorrectly really helped me. I did a lot of debugging (coding is all about syntax errors: missing parentheses, typos in variable names, etc.). I kept up and was able to write a For loop to add items to an array that had 2 properties, and make new functions like nobody's business. I admit that I relied on Sublime's syntax helper to stub out the If statement format and the For loop format (of which it seems there are 2). But that’s what the syntax helper is for, right? It’s like spellcheck for coders.
The slides were very comprehensive, so I could have done this class from home and still learned the concepts, but I liked having someone right there who could look over my shoulder to help me find that missing semicolon. I also liked helping other women debug their code or understand a new concept.
To my right was a younger woman who had been tweaking web content at work, knew a little HTML and CSS, but had no background in coding concepts. She struggled with the conceptual hurdles like “what is console.log DOING?” I could relate it to "Print" statements I'd seen in other languages, but without that frame of reference, it was mysterious to her. She also hadn't done the work from Class 1 (just sayin'). Lesson learned there is it is really hard to catch up, and everything builds on everything else. It's like trying to do multiplication without understanding addition, or to conjugate verbs in Spanish without understanding the general concepts of Past, Present and Future tense.
In the morning, I told my son how I'd made a new link that displayed the names of my friends (who were all Peanuts characters). He was less impressed. Me too - I wanted to make something useful, like a game. I showed him the book and told him that was my next step. True to form, he confidently said he already knew how to make games (this was news to me). Turns out he'd read an article in National Geographic Kids about game design…so, now he’s an expert. Between the two of us, I’d say we're ready to co-found a startup...after I finish this course!
I’m at the halfway point now, which feels good. The concepts are clicking in my brain, I’m not just copying & pasting the answers (in fact, I type everything, even if it is on the slide and seems simple - I screw up every time, which forces me to learn a little deeper). We have to learn a whole new topic for homework, so I need to stay disciplined and make time for that. Homework is about manipulating the DOM (Document Object Model), which sounds intimidating, but also really exciting, and is the type of thing I’ll need to do with Lightning Components. I enjoyed talking with the two women I sat with, and I regret not being in the first class (where everyone introduced themselves). Next week, whatever the weather, I’m going to get to class early to meet some other newbies.
*Shout out to Grace Hopper (December 9, 1906 – January 1, 1992), who invented COBOL and retired at the rank of Rear Admiral in the Navy (which is no small shakes). To learn more, see this new short film, The Queen of Code, and for fun see this Letterman interview.