Must remember to get bored

Pressure is on always.

I need to apply for jobs. I look at job postings. Employers want lots of skills.

I need to get more skills. I take online tutorials and follow blog how-tos. I do what they say.

I need to commit to GitHub every day. I need to commit something amazing that I have done on my own without a support group that looks like the next big thing.*

I have to make time to learn and do my own stuff. Do I focus on little skills (do this one thing) or bigger ones (libraries and frameworks)?

I decide to make something biggish. I want it to be mobile first and need to sketch it out. I need pen and paper. But I need to code. If I don’t code and prove it on GitHub, I can’t possibly be improving anything. So I wing it. I don’t like what I make. Looks unplanned. It is unplanned. It’s ugly, but the jQuery works or the component shows up. Whoo hoo!

I do this; I do that. I’m busy busy busy. Mornings with CSS. Afternoons with front and backend. Read best practices for UI. Read “The Art of Readable Code”. Ignore that lovely escapist novel you wanted to read. Again.

But where is the much-needed void? Where is the time I spend on the couch staring at the ceiling thinking of nothing until an idea enters? Where is my GitHub repo for that? No. I didn’t code today. I let my mind wander, and I got this great idea …

This is my problem. No one makes me do what I am doing. I am doing a great job working on getting (and remembering) new things, but I am not doing a good job of doing nothing and letting my mind go. I can’t combine this with running. I can’t stop and write ideas down by scraping notes in the sweat and sunscreen on my arms.

It’s time to let myself get bored. Do very minor code changes (make ES5 functions fat arrow functions, alter style, did I really want that colour?) and then do nothing impressive. Get bored. Wonder “what if …”. Think back to my classroom and what I wish I had an app for. Come up with a story for a VueJS book. Be unbusy and let ideas enter my brain.

Then write that shit down, woman!

Get over yourself. You love to code. You’re new, you need to learn more. But you love it. And you know you’ll love it even more when you’re building what you’ve thought of, so let that happen. Not typing div or this.sumpin=this.sumpin.bind(this) or transform: rotate(-45deg) every day does not mean I’m not a developer. Planning. Drawing. Designing. They count.

The pressure is on from people I don’t know, so why am I adding to it? I am my project manager (micro managing and stubborn), UI designer (clearly drinks too much), front-end developer (tenacious but a bit high strung at the mo), and backend developer (very green, might get the boot). I am also the janitor, cook, pet carer, housekeeper.

I’m not even close to being Mr. Torrence, but I’ve been staying away from the water heater.

 

*I know that isn’t true, but you know that this is how it feels.

Glitch, please.

Last weekend, I attended a Girl Develop It (ATX) meeting called Intro to NodeJS. I have a list of Node tutorials and am making my way through them. They are all helpful, but nothing beats having a human there to immediately notice a furrowed brow or a raised hand. Oh, but wait. There is something just as great: Glitch. Glitch is a Fog Creek baby, so it’s the baby sibling of Trello, FogBugz. (Trello is now part of Atlassian, so I still consider it a sibling, but an older one who got married into another family.) They have a look and style to their projects that is inherently playful. It is no surprise to me that the people behind those other projects came up with Glitch.

I come to software development from teaching. I still do teach. I hope never to fully leave it. I do not think kids or adults will learn as fast if you do not encourage copying, playing, breaking, and tweaking.

Copying? Heck yeah. Copying and saying it’s your own? No. However, you are foolish not to take something finished and excellent (for the most part) and copy it. Feel it being created with your own hands. For art, a child trying to imitate daVinci will probably not recreate the master, but she will look at how proportion is used. Maybe even realise that the eyes are not at the top of the head. In a forward to a collection of his favourite short stories, David Sedaris said that he used to type his favourite paragraphs to get the feel. There is a difference between copying to learn and copying to take credit. If you don’t know that difference, I don’t know how to talk to you.

In our tutorial, we used Glitch. We could see our changes immediately, remix (think fork) our own, add npm packages easily and not bother with installing, … When I’ve thought about trying something for Node as I learn, I kept thinking that everything had to be huge. It seemed daunting. All I want to do is practice with require, extends, Express, etc. I love my tutorials and can code with a parallel project, but what if I want to start from nothing. Where can I see it happen? Do I have to create a file structure I may or may not want to keep around? Glitch allows me to copy others by remixing and then from there I can adjust the code to see what breaks it or what changes where. What happens when I do this? Or that? I can even get code from GitHub that I like to play with on Glitch. (Full disclosure: I have not tried that, but it is something they say I can do.)

Playing is the other thing I believe in as a teacher. Playing is a child’s way of manipulating. We don’t play on the streets. It’s not safe. We also don’t play with code by creating a file structure and installing every possible package just in case we need it. Just thinking about that stresses me out. If I know exactly what I am going to make, then I’m all about my Sublime, file structure, packages, and away I go. But when I just want to play and have no idea where I’ll go with it? Glitch, please. Need Lodash? Easy. Add a package and move on. Want help from friends who are ahead of me in what I’m trying to learn? Invite them to help and code with me. They don’t even need to be near me.

I still have a lot to learn with Glitch. I have not had all the time I’ve wanted to play with it, but I try to return to it daily to learn something new. During the week, I am so loaded to the nostrils with challenges that my weekends may be the best time for extended Glitch time. I think I’ll replace my Daily CSS Images challenge with a Sandbox Challenge and have an hour of Glitch and an hour of Codepen so that I can code with the freedom of screwing up.

All that praise aside, the best part is that it’s created by awesome developers to help the n00bs like myself get better. How stinkin’ nice is that?

 

 

 

What did I just say?

When I was at The Iron Yard in Austin, I struggled with using the language of coding language. It felt hokey. I was embarrassed to say things like “passed in” or “instance”. I felt like a poseuse. I also was nervous about being called out for it. Hear me out.

Language is often used as a way to exclude others. It is the secret handshake. Doubt me? Misuse a word that belongs to a certain group. I dare you to say “between him and I” (yes, Grammarly, I know. I’m making a point; don’t make me sic you). to a group of English teachers. Mispronounce “meme” to a teen. Tell a scientist that you have the “stomach flu”. How else can people better identify who is in and who is out? As a dual US-Australian citizen, I deal with this all the time when I choose to keep my Aus/UK spelling when I do my own writing. It’s my way of keeping my Australian identity while in Texas.

To protect my ego, I resisted. I can’t misuse the terms if I just don’t use them or if I use my own slangy terms. The problem is that the language is part of that culture. My instructors pointed out that if I want to be a developer, I have to use the right words. It stung. It felt like a criticism. Ok. It was. We need to not be so sensitive about criticism and using “critique” to soften it. I was not doing the right thing by me if I wanted to become a developer. If my instructors had let that slide, they’d have failed me. I got that. I was a teacher once and loathe letting things slide because it might hurt feelings. If seasoned developers laugh at me for using the word in the wrong situation, then they are the jerks. I had to let that go.

Still, new vocabulary doesn’t happen overnight. I had to hear the words, read the words, use and misuse the words until I didn’t realise I was no longer thinking about them. After I left the boot camp, newly minted and freshly scrubbed, I read coding blogs, logged hours in video tutorials, and talked to others about code. Somewhere along the way, these terms became a part of my own language. I noticed it when I was explaining functions to a middle school student. For some reason, after saying “passed in”, I paused. I don’t think the child noticed, but I had to take a breath.What did I just say? When did that happen? When did it become natural and not something I actively thought about? One day I hope to be the mentor to someone switching careers to become a software engineer. I want to be the safe person to practice speaking the language of code. Excluding is easy and all over the place. Let me not be that person.

Pure CSS fun

Because I needed another challenge …

I do not know why I signed up for the Daily CSS Challenge. All I know is that I saw someone’s 100-Days-of-Code tweet that had some cute image and this hashtag I had not seen before: #dailycssimages. What is that? I had been using CSS and CSS3 to place boxes of paragraphs and images onto my screen. What is this new tasty candy I see? I looked it up and found myself taking The Coding Artist‘s (Mike Manialardi) tutorial on making a pure CSS image. I was hooked. I signed up for the (week) daily challenge.

I feared that I would use this as a way to avoid other projects when they got difficult. I also worried that this would soon become something that was glorified doodling.

Wrongo, Falsetta von Falshenberg.

Here’s what I thought I’d be doing: making boxes, making circles, using background colors.

Here’s what I have done: learned how to use mixins, used box-shadow to make pixel pictures, become familiar with Pug, used for-loops in Pug and SCSS, improved my ability to animate features and coordinate the timing.

And I am not even done. I just found this YouTube account from following other people in the challenge: Eleftheria Batsou. Now that I am used to how I break ideas down into shapes and concepts, I would like to see how others do it. I can’t lose when I see what other people do.

I keep a bucket of my entries, but these are some of my favourites:

 

 

 

My inner toddler

Until I have a full-time job, my job is finding that job, and my day is broken into looking for it and preparing for it. In some ways, looking is easier. Writing a cover letter and fretting over a typo I may have missed exhausts me, but I am limited to the résumé and the cover letter. When those are done for the day, I look at a number of things I need to learn to back up those documents I send out.

To-do:

  1. Improve upon my current skills
  2. Learn more frameworks and libraries
  3. Learn more languages
  4. Don’t forget how to do the old stuff while you’re acquiring new stuff.
  5. Repeat this loop until 2090.

I’m no longer in a boot camp, so I do most of my learning, relearning, and refreshing with tutorials. I have a list of tutorial class names on graph paper. I colour in a square for every new lesson. These tutorials cover languages, frameworks, updates (ES6), UI to backend. As I watch the progress bars grow stall grow, I notice that my tutorial pattern is a lot like the eating habits of a finicky toddler: Nothing but ES6 except bite of HTML5 for a while, then vanilla JavaScript only with maybe a bite of ES6, then ONLY REACTJS!!!, then Python and node, BACK TO ES6!!, oooh, Flexbox. Nom nom nom …

This used to stress me out, but as long as I circle back, I’m good. If I never want to see a topic again, that’s also good. That language or framework is not for me. I need to know this. If I’m on a roll, why stop just to have balance? If I’m in a ReactJS mood, why deny myself that and force PHP on me because I should?

We are incredibly lucky to have the internet and the means to have online-tutorials, blogs, and challenges. We can sample and choose our style and pace. There is no right way to consume these new skills except what works for yourself. So if all you want to do are ReactJS tutorials, go for it, shuggatoots. The others will be there for you when you’re ready.

 

ES6 makes the Hokey Pokey easy

As I make my way through various tutorials, some topics stick out more than others. This is especially true for tutorials that cover change. These are different from those that are about a new (to me) language or framework. For those, almost everything is sparkly and sticking out like a neon porcupine. There are the ah-ha moments, short for “Ah-ha, so that’s why this framework came to be needed”, but that’s not the same ah-ha I get when I learn about improvements to something that exists.

I’m following Wes Bos‘s ES6 for Everyone and had to stop for a few days after the section on swapping variables with destructuring. My first reaction was THANK CHEESES! My second was “Srsly, it took them this long to find their inner hatred of var temp?!” I always found this not only to be a pain for the extra lines but also for just the logic. I am all about logic puzzles like the River Crossing problem, but your code shouldn’t be a logic problem. It should be a logical solution.

Out with the old:

let footOut = "left foot";
let footIn = "right foot";
var temp = footOut;
footOut = footIn;
footIn = temp;
"That's no way to live your life!" - Wes Bos (my favourite Bosism)

I hated that. I can see it, but it doesn’t flow when I type it, and it’s never become automatic the way other things have (for-loops, named and anon functions, etc.). If I have to think about it every time, my time is wasted. I majored in German. I can get my head around change like shoving a conjugated verb to the end of a subordinate clause. I don’t need simplicity. I need speed, Ms. Mead. I need a flow, Moe.

Thus spake JavaScrusthra:

let footOut = "left foot";
let footIn = "right foot";
[footOut, footIn] = [footIn, footOut];

Short. Sweet. Complete. If this doesn’t matter to you, imagine writing an app for the Hokey Pokey. Too much? Then a function for shuffling.

Or don’t change at all. Stick with var temp = “Edsel”.

 

A little ambushed by grief

When people my dad knew let me know that a cancer’s returned angrier, I am both sad from within as I think these people are terrific but am ambushed by grief as I know my dad would be sad as well. It’s odd. Of course, I miss him every day, but I’m surprised that part of missing him is wishing he were around to be sad about a dying friend.

I don’t know what this means. I’m just putting it out there. Ambushed.