Learning how to learn … again

I have learned many things. I have also forgotten many things. To avoid the latter, I pay attention to how I do the former.

One of the hardest things to learn how to learn is programming. German? Study. Flip those 1990 3×5 flash cards. Flip through that Duden. Do a junior year abroad in Germany and Austria. Read texts in German. Write to German-speaking friends. Workbooks. Texts. You know. Writing, editing, and proofreading skills? A little study and a lot of doing. Read. Know your style guides. Write a lot. Go over and improve your writing. So much rinse-lather-repeating. There was a lot of learning about < insert topic here > before engaging in < insert aforementioned topic here >, and even then I am learning as I do. I get feedback from those I’m writing to or talking with. I have decades of texts and journals to refer to and learn from. I’m in classes. I have several professors at once. All that worked for me with what I’ve studied before. It does not work for me as I learn programming and coding.

I’ve done two coding boot camps: one focused on front-end development, the other on the MERN stack in a full-stacky sort of way. Please. I hate the term “full-stack” as much as I hate “Renaissance men”. Look. Listen. Look and listen. You can’t be awesome at everything. No. You can’t. No matter what your online dating profile says. If I could, I would another. Why? It’s like cheap uni without the essays. I think of boot camps as flights. Do one. Figure out what you love. Focus. Do another. Isn’t that what we did at university? Go in with one major, take some classes, learn that you love this other topic or get more specific with your major, keep studying. I am not dumping a truck-load of coin at returning to university. Been there; done that. Boot camps were perfect. But like university, they do not last forever. Also, the living conditions are dreadful.

How do I keep learning on my own? I can’t just read my German texts, play Der Die Das games on my iPhone, and watch German language YouTube channels as I knit. It also doesn’t work to take handwritten notes while I watch tutorials. I don’t print out Medium articles to highlight and make notes in the margins. I tried that out of habit. I do think that writing notes by hand while I watch tutorials was incredibly helpful. Writing code by hand? Changing colors to focus my attention to what I need to remember. Or to see how one code block affects another? And just the slower pace of writing all of that down was incredibly helpful. It was also, however, so … stink … ing … sloooooow. Screw that. It helped me a lot, but at a pace that is not sustainable.

Now what? I think I’ve got it. One of my instructors told me that he learned by watching a tutorial three times: Just watch, follow and code along, do solo and refer back when stuck. Yes! Almost. But that works for me. And it helps me to do other things I feel that I miss out on while learning. I’ve put my spin on it. I’ll listen to the tutorial while I knit, fold laundry, chill with my eyes closed. Anything that keeps me listening but not watching. Focus on what is being said. Listen to the new terms. If I am knitting, I’ll just set a timer for 30-40 minutes. Listen to as many sections that fit into that time. Put the yarn away. Do some casual home squats, crack my knuckles, and go back to where started and code along. Do my own version after I’m done or in parallel. I sometimes listen to many sections. Other times I just repeat one until I know it by heart. It depends. Do I need a refresher and a dusting off of brain matter or do I need a deep dive (hello, JWT and PassportJS)? Either way, since I do not have a live human to go to for advice or have call on me when I raise my hand, I just like to listen and listen.

One bonus (or major problem?) is that I talk to them, imitate their voices, or say those -isms they have. Wes Bos has a few. My favourite is “That’s no way to live your life.” Andrew Mead has “How’d you do?” and “And that’s faaantastic!”. I don’t know. I think this repetition also leads to familiarity with the tutor, so they become someone I know and less of a 2D talking head.

I should add that there are some tutors I cannot listen to when I am tired. It is not that they are boring. Not at all. But some voices and talking styles put me to sleep. Lulling, not boring, me to sleep. For them, I have learned to listen while I get ready for bed. Repeat as I fall asleep. Do the work the next day while I have my coffee. I’m not naming that person. I make him sound boring. It’s not. He’s not at all boring; he has taught me a lot. His voice is just mellowing.

Now. Time to get cracking!

 

 

 

750 words: Stop with the tech-is-bad bs!

Possible ageism trigger warning.
I’m going to complain about older people. By older people, I also include people my age (50). It’s not about their age, but the generation and exposure to tech those generations had.

In 1987, I got my first Macintosh. At the time, I thought there’s be other apples to choose from. I was hoping I’d upgrade to a Granny Smith or Honey Crisp; however, Apple did not have my fabulous idea in mind. I was 19. I already knew how to touch type because my high school teachers made me take typing in order for them to read my essays. Some people were up in arms, thinking I’d head down the secretary path. First off, don’t be sexist. If I had become a carpenter, I’d have been praised for being tough, but a secretary? I think nothing is tougher than a secretary that has to put up with a sexist boss. I digress.

All through university, I used the computer and computer lab to print out my work. I have never gone back to pen and paper except for correspondences. I still write letters and postcards because I love stamps. I was not in a mass of people embracing the Mac and PC. Some refused. I think they had the same genes of those who thought that horseless carriage was craaaazy. The ratio of those who accept, embrace, and understand tech to those who are resistant change every year. Every year, younger people and more families get computers at home. I am thankful that the person who pushed tech on me was my mom, who is now 75 and killing it on social media, using reply all when CC-ed on conservative, scare-mongering emails, and changing her passwords frequently. She has had a mac every year since 1987, too. So the ageism here is a mindset ageism.

I am getting exhausted defending tech to older (mindset) people. Yesterday, I was paying with Oculus at a demo and enjoying going through a house to change the floors, cabinets, lamps. An older man (older than me by far) shook his head. “I don’t know. I just …” You know how this ends. I demoed a hands-free rubbish bin.
Our mini conversations:
“I would just use my hands”.
“Because you can, sir. Not everyone has both arms. Immunosuppressed people need to avoid germs as much as possible. A parent with hands full could use some help.”
WHAT IS THE BIG DEAL?!
“There’s a man at UT who has the code to 3D print a gun.”
“People are making affordable prosthetics in a tiny fraction of the time.”
I showed him the AR available with some companies’ apps where they can see their products in their home.
“Why not save time by knowing what will look good? Why buy something only to return it? Who has time for that? No one wants to go to a big box store more than once in a week.”

Darling, you can toss your TECH IS BAD at me, and I’ll fire back with tech is now and good. Keyhole surgery? How do they practice? AR and VR to train physicians? Yes, please! Programs to help Alexa understand sign language? Um. Yes! And truthfully, even older tech helped us. Did accountants really prefer pencil to paper over the speed of electronic spreadsheets? I am one who likes to handwrite letters, but that is another way of spending time with my friends. Handwriting out ledgers takes so much time, when Excel or Numbers could speed that up, save and edit without wasting time or paper so you could go outside with your family?

Look. Listen. Look and listen. Tech is no different than anything else:
TV. On all day or watch exactly what you want for the hour then turn it off. Watch fear and hate mongering news shows or watch a science show?
Books. Read hateful rhetoric or a playful fantasy novel?
Books, magazines, TV, movies, and tech are just those. Nothing more. They are good or bad, beneficial or harmful, a waste of time or great fun. They are made and used by humans. They are as good or bad as those who create and use them. To lump anything that is new as something bad is foolish, silly, and short-sighted. What is old and familiar to you was once craaaazy new. Germ theory? If you expect your surgeon to wash and scrub up before surgery, you’re embracing something that was once scoffed as new and crazy. Washing your hands before you eat? See above. Pretty much anytime you enter a hospital or doctor’s/dentist’s office, you need to shut up about tech.

It’s ok if it gets harder to learn. I get that. It sucks to get older. Our minds aren’t as sharp. Age gets everyone until death comes in. But our choices are to keep our minds sharp and open or to just close it and turn away. Maybe this is a message to me. Never be that person, Katy. As you get older and your mind gets duller, don’t repackage any wistfulness into jealousy. I hope to enjoy tech until I die and to use it for good. The only time I don’t want tech is after death. Just toss me into the woods for the wolves. I’m cool with that.

 

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

 

Gitty up with baby steps

I just read this article by Ariel Camus on FreeCodeCamp about becoming a Git Master. While I understand the need to have branches when working with others, I have been slack to adopt that process when working on my own projects. That is changing.

Slowly. Slowly because I have to remember to do it, not because I am resistant. Swiss cheese for brains.

I returned to one of my early assignments. I had completed a vanilla JavaScript Hangman in time, but I felt it could be better. Upon completion, it functioned as a hangman game and had a nice look to it:

hangman

I’d like to have the chalkboard and window closer, but the last thing I’ll change is the styling. The first thing I did was add Gulp to bundle and watch. There’s a branch. Next up was to give it better functionality. When I turned it in, it had a word bank that did not have words or phrases, so I had no desire to deal with hyphens, apostrophes, or spaces. Next I wanted to add more word banks. One for different themes and have the players choose a theme. Currently, the only theme is “pants”. Then I’ll deal with keeping track of losses as well as wins before ending this with styling.

Instead of touching the master, that was good enough as it was and possibly ruining it, I created my first branch: tests. I have since finished the tests and added that new function to the branch and merged. Next up, I checked out a word banks branch. This is where I am now.

Such a great habit to get into and it took me this long to do it? No. Not really. I have done it before, but I just forget to. When I realize I need to be on a branch, I’m already working on the master. It would not occur to me to work on the master when I’m part of a team, so why is this hard to remember when it is just me? Maybe I should just rip myself a new one so that mucking up the master is something that terrifies me. Put a mirror on my desk to really make the argument with myself seem real. Storm out. Apologize. Make up with ice cream. I see this as a win-win sitch.

 

 

My Brain Hurts: recursion with factorials

With pencil and paper in hand, I have no problem with recursive patterns. Fibonacci schmibbo-hotsytotsy. Factorials schmacks-Oreos.

“Write a recursive function to …” blah mork loopy loo let me leave the interview now so you can continue with someone better, and I can drown my sorrows in two scoops of ImNotWorthy. 

I know this because it was not until I was asked to demonstrate recursion in a mock interview (I requested this topic), that I saw that my comprehension was passive. I understood it when I saw it. … ish. Understood-ish. But there was absolutely no active comprehension. I could not do it on my own. No ish. Nuthin. Fear? Nerves? A pebble in my shoe?

It is that whole “snake eating it’s tail” that was throwing me. I could not recreate what was going on. There is no stack with pencil and paper. I can write it out and do them in my head until I needed a calculator, but even with a calculator, all I needed was a line:

5! = 5 x 4 x 3 x 2 x 1

I understood stacks in other terms (callbacks, pancakes), but the recursion was hurting my brain, until I made it a literal stack in my head. I was treating the part of the code block after the base case as a spiral when (for me) thinking about it as slapping 3×5 cards down. No wonder I didn’t understand the stack; I wasn’t treating it like one.

I’ve been playing with recursion and different tasks as I plow through books on algorithms and tech interview skills. Factorials and Fibonacci are the easier ones to grasp. Not easy. EasIER. Comparative. Like farts smell better than decomposing bodies. They don’t smell good, just better.

I wouldn’t say that I could whip out recursion any time, and I know that I wouldn’t want to with factorials (O(n2) and all that), but I’m getting there. I spent some time on JSFiddle and with my markers to play.

factorial_recursion

The code is old news.

const factorial = n => {
if(n===1){
return 1; //my base case
}
return n * factorial(n - 1); //my nut case
}

I did not set include checking to see that n is a non-negative integer. That was not the point of my doodling because checking for that was not the hard part. This post isn’t about a fully-tested function to return the factorial of a number; this is about me getting the recursive part.

CodePen Challenge: details

This week’s CodePen Challenge: details and her little bestie summary. I had no idea they existed, so chalk another one up to benefits of a challenge.

Confession time: I did not research too much about how to style the accordion function or even if I could. I did not find any need to with what I had chosen. Not this time. When I use details in a project, I’ll probably wonder more about the styling. When the week is up, I’ll peek at other people’s attempts.

I chose coffee types after looking at coffee graphics. I love posters that show how to make different espresso drinks. The theme announced itself. I had no choice in the matter. I’d like to style the cups more—maybe add a handle—and see if I could animate filling, but probably not for all of the drinks. Maybe the classic three: espresso, cappuccino, latte. Perhaps make an end-of-month challenge combo as a pure CSS entry.

We’ll see. Katy has big-idea-eyes and tiny-time-stomachs.

coffee_math

Pure CSS Images: Now what

Here I am so far. (I am using screenshots because my version is not responsive.)

mid-century modern prints
Original by Kerry Beary and my wip. (I believe she spells it -mellows and not -mallows because she’s punny.)

In terms of what is left to do that is furniture or furnishings, I have the lamp and interior of the pod. I can do those and stay pretty true to the original; however, when it’s time to do the cats …

What do I do? Do I make CSS cats that are not much like the original? There are limits with CSS. Do I make them in SVGs? I think if I do that, it feels too much like plagiarising. SVSs are a last resort. Or maybe just put a cat in the back and a person on the bench? Change it enough? I have no idea. Thankfully, I still have that lamp to do. I might animate that.

I’m exhausted.