750 Words: Practice, Habits, Learning

(750words.com entry for today: 911 words, including metadata list,  stats)

To learn something (anything), one has to practice. The comic artist Sarah Andersen of Sarah’s Scribbles has a widely shared strip about what makes her great. It’s practice. No matter what anyone tells you, it’s practice. Practice is closely related to habit.

If I want to improve upon a skill, I need to practice often and then that becomes a habit. A good one. With ADHD, it is hard to get a habit going. Unlike what some people assume, the distraction for me is not TV—it is other skills. Let’s reference another wonderful comic artist: Allie Brosh, the genius behind Hyperbole and a Half and the much-memed “All the things!” drawing. I’m not distracted by bad things. I’m distracted by other skills and topics within skills. I’m distracted by the newsletters that inform me of new tutorials and tutorials that teach me new frameworks. If I’m trying to break into web development, I’m working on HTML5, CSS3, preprocessors, JavaScript, JS frameworks and libraries, Node, etc. I’ll be focusing on one when an idea for another pops up. That is, while making an HTML/CSS technical document page for a FreeCodeCamp project, an idea for a fullstack app comes to mind. It takes incredible will not to change focus. This little blog post was started when I was thinking about what topic to write about for that technical document assignment.

I should add that this is a problem when flying solo. It’s another reason I love having a boss. I may have ADHD, but I also have anxiety about not doing my job and doing right by my team and manager. Not a sycophant in anyway, but I don’t slack if it means another person will look bad. Right now, I’m flying solo. I am my worst boss. Now, to give myself a break, as I look up job postings and read about what I have to know to be considered, I can’t help but add to my “Learn all the things” list. And to learn all the things, I have to practice. Practice and practice. Lather and repeat. Forget rinsing. I don’t think that works when I want to retain skills. No rinsing. Just keep lathering.

Here are the skills and habits I need to build. There’s no order. I’m writing this as they come to me. There’s never any order!
Skill: HTML5 + CSS3 mobile-first responsive web design.
Skill: JavaScript frontend fun—focusing on ReactJS, not forgetting little jQuery, and getting to know VueJS.
Skill: JavaScript backend with Node—getting endpoints and routing down pat, getting comfy with noSQL as well as SQL, ExpressJS myself.
Habit: Planning app in advance vs creating on the fly.
Habit: Addressing build/Gulp and testing/Mocha-Chai in every project.
Skill: Python—make more of a priority
Skill: Game Maker Language—for fun and for OOP practice.
Habit: GitHub—not working on the master, branches for every new thing.
Habit: Jobs—apply daily!
Habit: Own up—Tweet daily the #100daysofcode and blog the process (do not blog daily)
Skill: German—Refresh it. Listen to a YouTube video every day.
Skill: Art—Doodle on Sketch App to illustrate my own apps or just do my own doodles. Wacom, paper?
Habit: Read—Read before bed. Read fiction! Escape.
Habit: Craft—Attack the fiber stash.
Habit: Exercise—C25k, gym, and/or cycle. August is awful.
Habit: Healthy eating—This would be better labeled “Don’t let ADHD’s impulsivity affect your food choices”, but that is too long.
Skill: Writing—I don’t care if it’s handwriting and dealing with my illegible script or getting a postcard out. Just write.

If I kept track of the above with a bar graph, there’d be tall bars on the tech skills and smaller bars on skills and habits that have some distance from the laptop. I blame the job situation. Hard to put down the laptop and tech learning to read or attack the yarn stash when I am underemployed. I am ok with that. I can’t have this even. Once employed, I know the other things will get more attention. Right? Yes. Right … RIGHT!

What about the ethics? This gets me a lot. To learn, I watch tutorials, but if I just do their projects, it’s just follow the leader. I have to do my own. Tutorials, therefore, take a lot of time for me. I watch, rewind, then do. I do this until my own idea that applies this skill comes to my head. I create my own repo for a new app. For example, I’m doing Brad Traversy’s fullstack social media tutorial. I watch and listen, I do what he does. On my own, I’m applying what I’m learning to make a social media app for adoption groups so that they don’t have to always rely on Facebook for their volunteers to connect. I’m writing down other ideas for social media apps with the hope of every new social media app I do, I’ll refer less and less to the tutorial. Is it ok to do this? Am I plagiarising? Or is this like taking various illustrations to trace and trace and trace, then build your own style doing your own thing? I do not know. I just know that I have to practice. I need to copy someone. I’m by myself. I am not in a classroom or workspace where I can flesh things out with instructors and senior devs.

I’m winging it.

I’m still learning how I learn, Vern.

COFFEE: 2
ENERGY: 6
FOCUS: 4
HAPPINESS: 7
LOCATION: home
STRESS: 6
AMPM: am
NONFICTION: t

 

Ok to be the good-enough dev? Yepsilon.

Oh, I just know that would raise some hackles. “Good enough” sounds like one is lowering the bar. If I want to be just good enough dev, then I’m ok with bugs, sloppy code, side-effects, untested code. But what is the next level up from good-enough? Better enough? Hardly. Not if you care about spoken and written language. Best? Who is best? Perfect? Riiiight. You keep telling yourself that, tiger. Perfectionism is not our friend, nor are those who think they are perfect. So let us be happy calling what is not perfect “good enough”. Ok? Are you with me?

If you’re too code-y dev-y, then think about epsilon and any approximation algorithms. I have been watching MIT’s Open CourseWare (if only I could stop calling it Online CourseWare or writing MITOCD), specifically 6.0001 Introduction to Computer Science and Programming in Python with Dr. Ana Bell. While going over the approximate solution for finding a cube root, I re-encountered epsilon (ε, or error. To find a cube root of a number that isn’t a perfect cube, I have to be ok with getting close enough. Good enough, not perfect. See? Ok. Good enough seems less lazy now, doesn’t it? Sure. You were ready to label me lazy until I mentioned “algorithms” and “epsilon”. The larger my epsilon, the less accurate my answer will be, but it is still epsilon.

I’m never going to be perfect. I will never finish a project if I worry so much about perfection. But I can be good enough with an epsilon of 0.1. And the next iteration of that project, theme, or tutorial assignment could be good enough with ε = 0.01. More learning and practice and repetition and repetition and repetition will lead to ε = 0.0001. But I will never be perfect. And that’s ok.

What I want to say here this morning is that “the devil” is the spirit of fear that drives us into rigidity and anxiety, which saps our good will and clouds our compassion. The spirit of Love is where our allegiance lies as good people, spiritual people, people who want to make the world better place. Love is always in dialogue with fear in our souls and bodies and minds. So when perfectionism is sharpening its claws in you, take some deep breaths, stop comparing your insides to other people’s outsides, remind yourself to be a good enough witch, and wonder — what would this whole situation be like if I had more love.

(from The Devil and Martha Stewart, by Meg “OMG I lurv her!” Barnhouse)

Train tanty & commuter coding

First, the tanty:

I’m earning a little coin doing some part-time work far away. Not quite in a galaxy, but damn near close to being one. To get there, I could drive. I have. It works. If I leave at 6am, I get there at 6:30 and workout, shower, and relax before I start working. The traffic is minimal and while it’s three times the distance from my house to Austin’s CBD, it takes less time to commute to this almost-galaxy at 6a than to the CBD at 8. But no matter how early I get up and how fast the commute is, it’s still driving. I’m also coming home in school traffic. I get nothing done. Who does? Who on earth gets anything done while driving? Oh yeah, the phone users. Let’s not start a rant about them.

I’ve sussed it out. I used to live in a city with a decent rail system (yo, Brisbane!), and have had to get used to Austin thinking it’s a city but having only one train. ONE! Two cars and running hourly on one route. I wouldn’t call this a rail system. I’d call it a functional amusement park. Austin, darling, you’re hardly weird by not embracing rail. Your hippies, hipsters, and pseudo “weirdos” are in cars (often solo) and clogging up your roads. It’s not Californians’ fault. We are backwards thanks to decisions made by people born and raised here. But go on blaming California. It’s more a sign that you’re bad at math.

Now the coding:

Now, to get to work, I cycle 30 minutes, take the train for another 30, then cycle 15 more. Coming home it’s slower due to the time of day and a serious uphill commute. I have 30 minutes in there to open up the laptop and tap tap tap. I could work on existing code and projects, but since my desk is my lap, and I have no space to write AND I have no give on the time I can unpack and pack, I thought the best thing for me to do is either read about coding, data science, and how-tos, blog about them, or do easy mini projects to keep my mind occupied on the train.

I initialised a repo on GitHub just for this. I have no general plan other than to commit whatever I’ve done. I may start and delete. I may copy something from one project over and take it back. I may just have little bitty things or one larger thing built in itty bitty steps. I think of this repo and 30 minutes (x2) as my version of train sudoku or crossword puzzles. It’s less about the final code than it is just to code. Anything.

I think my only rule will be to work on JavaScript (nilla or jQuery) bits that I can add Sketch App work to in order to balance the logic with the creativity.

And now I have spent this first chunk on a blog post that starts with a tanty ranty. Ah. Venting Tssssss. All good. My boat; my rules.

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.

100 DoC: hiccups

I had a plan, man. I’ll call the plan Stan. Stan had a plan: expan’. 

The project I was working on grew as other ideas came in. When that happens, I know it’s best to give it a rest. Let the ideas come in, take notes, do something else. I’m cool with that. My project; my rules. 

Part of the project required my drawing little things, so that takes more time than just building a wee code. 

Here’s my cursor to give you a hint of my fantastic art skills at work:

Part of having too much fun with code is letting it get out of hand. I don’t care. This is code, not a trip to Vegas. The fishy project will come soon. 

Still, I wanted to have a code done, so I cheated in a way. I returned to old homework to make it neater or add more to it. I started with my “vanilla to-do”. I won’t add a link. It’s not that fun yet. Just believe me (belieeeeeeve me) that I added check boxes for when I complete a task. When I get stuck on a DoC project again, I’ll return to this to-do list to add windows.localstorage. And once it’s all done, I’ll build a new one from scratch with Ajax and jQuery. 

Some days just are sluggish. This was one. I’m just glad that I didn’t find comfort in a pint of ice cream. Win! (not really)

100 DoC: Day One

Yesterday I walked from the Blanton Museum to my home, which is about 1.5 miles south of Ben White. I was going to run, but I was too tired. Will I count that as exercise? Hells to the yeah power. 

And I’m counting today as day one, too. I did not think I was going to start today. I was trying to get my portfolio set up (in a skeletal sort of way) and was running out of time to do a wee bit of code. Nearly defeated. Nearly. Until I had my “cotton-pickin’ moment” moment (often called a copimomo among the cool kids). Building the portfolio counts as coding. Walking 8 miles instead of running 3 counts, so fussing about with the portfolio, html, css, and Sass count. It wasn’t what I had planned, but there were blisters and sweat. Just as much. 

It’s a complete do-over. This 100 Days is a new repository. The older one has been renamed MinPens-WiddleFiddles, which will be for wee wee bits. We’re talking wee, weally wee. And they cannot count for 100 Days. If anything, they can be my warmups. My stretches. My kicks. Because I’m 47:

100 derps of code

Why not decide to commit to 100 Days of Code just before starting my final project? WHY THE HELL NOT?!? I’ll have all the time in the world. Sure, I can do it. Just wee bits of code. Nothing huge. A min-Pen here or widdle-Fiddle there. 

I’m the derp in purp:

Instead of starting where I left off, it’s time to recommit. And re-plan. My three months in a coding school are done. Everyday something new for the most part. Some topics feel like I learned them years ago. Do I start at the beginning? Start at a topic with A and go down the alphabet? Do wee bits or larger projects? Everyday the same or different days with different formats? Always digital or the occasional mind-mapping with crazy pen and ink? So many ideas.

I’m down to a few ideas. I’m going to commit by the end of tomorrow’s second cappuccino. You have no idea how that kind of commitment gives me the shakes.

100 Days of Code coming up, but tonight is day 0. zzzzz