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!

 

 

 

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.

Checkers did my head in

My current Pure CSS Image attempt is this gem from Kerry Beary.

I cannot tab in my code snippet, so just deal with it. (It even hurts my own eyes.)

@for $i from 1 through 7{
.#{rectangle-band}-#{$i}{
margin-left: 0px;
@if $i % 2 == 0 {
@for $i from 0 through 3{
.#{square}-#{$i}{
margin-left: $i*60px;
@if $i % 2 == 1 {
background: $evenband;
}
}
}
}
@if $i % 2 == 1 {
@for $i from 0 through 3{
.#{square}-#{$i}{
margin-left: $i*60px;
@if $i % 2 == 0 {
background: $evenband;
}
}
}
}
}
}

Iterating in Pug. Iterating in Sass. Nesting them. Checking for odd or even. ERMAGERD! But I did it.

Screen Shot 2018-05-07 at 1.38.12 PM

For now. But looking at it above, I see that the chair is too big. No. I’m not going to fuss. There are times to let it go. This is one of those times.

I have to get circles or semi-circles in there. That’ll be a new set of curse words. Let me just admire this for a second!

Ok. Done. Now I have to dry heave.

So I made a thing

So I made this thing:

charley_harper_calc

See the Pen Charley Harper Calculator (no fcn) by Katy Cassidy (@ihatetoast) on CodePen. Charley Harper’s style is very CSS-friendly. Hellur, geometry! These ladybugs were taken from the “Last Aphid” print.

Since it had been a while since finishing the pure CSS challenge, remembering what I learned was tough. I use Text Expander for Pug and Sass for-loops. That helped. I was hoping to use the for loops for the dots and buttons, but some needed specific help. I could loop through all 9 dots or just the odd ones, but eventually I had to pick and choose which dots appeared to satisfy the look.

There’s no functionality here. Nothing to add or subtract. I would love create a calculator with this as a design, but I’d use SVGs for the bugs. I thought it would also be fun if instead of their twitching, they’d skittle off in all directions on hover, but with the various levels and z-indices, it made for a lot of decapitation.

I am not disappointed in learning those limitations. It’s learning. I love making a purty thang, but I love even more that I learned something while doing it. So. What is next? I am thinking mid-century gravel art.

 

Tenacity

Almost nine months ago, I completed a (week) daily coding challenge called Daily CSS Images. I am about to embark on round 2. I say “about to” because I do not know if I am going to redo the challenge and stick to the old prompts or find others. If I decide to do my own prompts, I need to have 50 ready. I don’t want to spend half of the day deciding.

It is no surprise that I learned a lot about Pug/Jade and Sass in this challenge, but what I learned (or realised) the most was how daily practice improves a skill. I knew that, but that knowledge had become dusty. What I love is seeing the change.

Day 1: Bear Cub

Screen Shot 2018-04-27 at 12.43.00 PM

See the Pen DailyCSSimages Day 1: bear cub by Katy Cassidy (@ihatetoast) on CodePen.

Day 49: Dance Dance Revolution pad

Screen Shot 2018-04-27 at 12.45.23 PM

See the Pen Daily CSS Images Day 49: Dance Dance Revolution pad by Katy Cassidy (@ihatetoast) on CodePen.

Day 50 was Party City. It was ok. I’m not ashamed of it, but I think day 49 shows more of what I learned:  Daily CSS Images Day 50 – Party City by Katy Cassidy (@ihatetoast) on CodePen.

I code every day. That is not hard to do. Harder is not coding, getting up, stepping back, going outside. Oh, I love the outside. I’d code there if I could and if mosquitos left me alone. I’d moto to the hill country if I could trust reception or remembering to pack up and return home before sundown. Coding every day is not a problem. Harder is keeping a track going. Using my tenacity and my ADHD (which I call KatyHD) hyperfocus to stick to one or two themes. Depth over breadth. Do the thing, not do all the things. Do the thing and do it every day. Hard when one has a breadth of interests. Sigh. Sadly, this requires the S-word.

SCHEDULE

I know! Sent shivers down my back, too. Following a schedule is not the hard part. I can do that. Making it. Ugh. Making one will require me to let some interests come before others. How can I choose? It’s like choosing sad critter over all the others in the shelter. Alas, my tenacity requires such discipline.

 

Egads, woman. Stop.

I have not written a word (here) since January? I can say that I haven’t blogged since I was 49. No excuse. Not for a chatty Kathy like myself. I know that blogging my problems, processes, solutions has been helpful in the past, but I still won’t do it because I won’t stop coding. I need to remember that it’s okay—good, even—to stop coding.

Here is what happens when I do not stop coding:

  • I do not run.
  • I do not knit.
  • I do not put my Raspberry Pi together.
  • I do not go to movies or watch movies.
  • I do not read for fun.
  • I do not walk the dogs.

Basically, I become a boring cow. (No offense to cows with awesome personalities.) I’m full of do-nots instead of do-nuts. (Mmmm. Donuts.)

There really is no benefit to doing nothing but coding. We convince ourselves as newbies to code every day (cool, do that), but that doesn’t mean every hour of every day. It’s not good to deny ourselves our other passions. I can love JavaScript as I love reading, running, and rknitting. When I want to practice what I have learned with React, Vue, Node, etc., I’ll probably want to make something that supports another passion, but if I let those passions fizzle or think they cannot be nurtured alongside coding, I find myself doing nothing more than making another fkn to-do list.

Egads, woman. Stop. It’s not forever. Just stop coding to let yourself do some other things.

Things that happen when I do these so-called “other things”:

  • I think of solutions to the problems I encountered.
  • I come up with ideas for new projects.
  • I feel good about myself physically.
  • I have other things to talk about other than passing state down as props or mapping.
  • I attend Meetups.
  • I see movies.
  • I ride my motorcycle.
  • I start Couch-to-5k.
  • I start 750 Words.
  • I rest one part of my brain.
  • I exercise other parts of my brain.

I become more interesting. I return to being the person who, when asked “What do you do?”, returns with “What don’t I do?”

Today? I’ve prepared for teaching Python to a youngster, but I’m also starting my Couch-to-5K plan … again. A plan I keep quitting because I wouldn’t quit coding. Today I start with day 1 and will come home after that 30 minutes to work on my MERN HomeChecker app and a smaller React project. I can give up that time. Yes, I want to be a paid developer, but I do not want to become a boring blob.

 

Copying vs. Studying

Just swap “Node” for “you” below, and you have my life:

“Now you’re the reason that I can’t sleep at night and I can’t go home
I know it ain’t right, gotta leave you alone
But I can’t, whoa no
But I can’t, whoa no”

— Gary Glark, Jr. Can’t Sleep

I do not know if this is a good thing that I need to be proud of or a bad thing that needs to be fixed (and definitely not admitted to publicly), but I can’t go to sleep when I’m stuck on a problem in my code. I cannot just say “Tomorrow!”. I try. I shut off the laptop and go to bed, but then I grab the phone and hone my Google-fu skills.

Honestly, I used to think Gary Clark, Jr. was singing about a woman, but I don’t think he is. What is the point, really? Relationships end, and by the time any song is published, the man or woman who was so desirable at the time the song was written has long since been relegated to ex. Now code. Code is forever. Even Fortran is still out there. It won’t matter what language you use, the logic will be the same. If you need to iterate over an array, you’ll do so in Java, C++, or Next New Language. If you don’t use code, you’ll use your own mind. Grocery shopping with an app or in person, you’re scrolling or strolling. LOGIC IS FOREVER, MAN!

So right now NodeJS and Hangman are the reasons that I can’t sleep at night. I feel that this last homework has less time to plan, sketch the decision tree, pseudocode, find fault in my plan or missing bits, code than the previous homework did. I feel the crunch and therefore I my head does not feel the pillow. The beauty of code is that there are many ways to set up a game; the frustrating thing about code is that there are many ways to set up a game. Other ideas interfere as I plan. I feel like I’m shopping hungry and without a shopping list. “Oh, I’ll try that. Ooooh, and that. Or that. And that.”

The nature of homework is that I do this by myself for myself. This means I have no one to discuss this. Ok. I do, but since I am not working with my classmates, we rely on who is on Slack at the time you need help. The other option is Google-fu, but how much of that is too much. Hangman, trivia games, RPGs, tic tac toe (naughts and crosses) are all out there many times by those new or old to coding. When does research become a crutch? Right now my attitude is that if I find anything that is too similar to my homework, that I cover the keyboard with a notebook and use pen to write out what the person has done. Take their code and turn it into a decision tree. No cutting and pasting. No putting it on a screen next to my laptop and typing what they have written. I feel that this is ok. Like having the odd numbered problems answered in the back of the book. Check to see if you’re on target. If you see an answer you didn’t get, then work back. You’re given an answer, so on your own, try to get there.

I used to be a teacher. I have issues with copying or plagiarising. I hope anyone would. But isn’t some type of copying part of learning? Aren’t the notes we take a form of it? I know my students copied my examples. I know that they also copy Davinci in art to learn. I think as long as there’s no copying and pasting or writing in parallel, it’s not too slippery of a slope. Study. Learn from someone know knows something you do not, but we should try to make sure we are learning from someone and not copying. Ask ourselves questions as we study other people’s code. What is she doing here? Why did she do it this way and not this other way? How did he validate if it’s a letter? We don’t have textbooks. If we want the point of view from someone other than our instructor, we have only what appears on StackOverlord, YouTube, and other magical Google-fu results.

Since all of the code I could think of is already out there, I have to have my own form of honour code. It’s my loss if I copy and paste. It’s also my loss if I just look, say “Oh, I see”, and code while switching back and forth between screens. It is not my loss if I study, analyse, compare, and then try it on my own and return back to my coaches.

COFFEE: 1
ENERGY: 6
FOCUS: 6
HAPPINESS: 8
LOCATION: Tammy’s
STRESS: 9
AMPM: am AND pm
NONFICTION: t

750 Words: The challenge of challenges

This will be interesting. I could not sleep and started stressing about getting up in time to ride to the train station for the 7a train, so I gave up the ghost at 4a and just got myself ready for the 4:54a bus. I am not sure how coding on the bus will go. It’s not as smooth a ride. Jiggly lap => jiggly laptop => rando typos.

I have no problem coding every day. I do not need the 100-days-of-code challenge to get me to do it. All I do differently when I decide on doing it is owning up to my contributions on Twitter. I also become a more active Twitter participant when I start a challenge. I also make sure that I commit every day when I am on the challenge. For some reason, once I announce to the anonymous world that I am committing to 100DoC, I feel the “pics or it didn’t happen” threat is taken care of with the little green GitHub square.

So no. My problem is not coding every day; my problem is staying focused on one or two projects. That’s the ADHD without a boss or teacher issue. When the boss looks at me in the mirror, I’m less focused. MeAsMyBoss should never have hired me:
Me: I want to do a little CSS grid in between Node tutorials.
MeAsMyBoss: Don’t forget that you need to fix your portfolio, apply for jobs, do your homework, and correct or improve past homework.
Me: And maybe even plan a bigger full-stack project since I’ll be asked to do one soon.
MeAsMyBoss: I KNOW, RIGHT!?
Me: RIGHT?! Let’s deal with our excitement and stress by eating all the things!
MeAsMyBoss: EAT ALL THE THINGS!

MeAsMyBoss also is more of a delegator. She’s not someone I could go to when I get stuck. She doesn’t ask me what I think I should do. I also don’t have this desire to do right by her. I don’t care if she’s proud of me or impressed with anything I’ve done. In fact, when she is impressed, she makes me come off as a needy narcissist. Don’t get me wrong. I love MeAsMyBoss’s twin sister MeAsMyRoommate. I can do solo living. I don’t just talk to myself; I orate. I’d rather have OtherAsMyBoss. I love a good boss—one I respect and look up to. When I have OtherAsMyBoss, I procrastinate less and stay on task more.

Alas, I do not have OtherAsMyBoss. Or I don’t for coding and web development.

Until then, I have to stick with MeAsMyBoss. Maybe we can teach each other. Maybe she’ll keep me from going with a new idea: “Katy, let that one rest in your journal. GitHub can wait.” And maybe I’ll remind her that I need different projects to satisfy the different—OH CRAP! BUS TRANSFER POINT!
~~~
(and who is the boss of “shove everything in the pannier get off the bus get the bike find the next bay load the bike get on the bus and carry on”? ME! Fueled by Spokesman coffee and a jolt of adrenalin.)
~~~
See? I have to have different projects for the different time chunks available to me. I cannot do tutorials on the bus because I can’t hear the announcement. Tutorials are better for the train when every stop is predictable. I prefer longer tasks like homework for when I can have a second monitor set up. My available times do not suit one project. What can you do? I don’t care. What can I do? That’s better. I can find a happy middle between one project that I can’t do during some of my free time and too many projects that just mean I get nothing done. I also give myself a break. There’s a difference between having unfinished projects because I dislike them and having unfinished projects because I want to learn all the things.

But I do think I am done with adding more challenges. I have 100 Days of Code (very disciplined with), 750 Words a Day (medium as it is second to 100Doc), and getting back to the gym (necessary as I’m a stress eater and am pursuing a career that puts many people in 90-degree angles for hours at a time). I think I’ve maxed out I can’t even satisfy my “get to bed before 10p” challenge even once a week.

Stats:


Screen Shot 2018-01-08 at 6.08.21 AM

Screen Shot 2018-01-08 at 6.09.02 AM

 

Meta data:

COFFEE: 1
ENERGY: 5
FOCUS: 5
HAPPINESS: 4
LOCATION: on the bus
STRESS: 7
AMPM: am
NONFICTION: t

100 Days of Code III and Codie Jodie

After going 150+ days in the second round, I put this challenge to bed.

Until this year. On the first, I started the challenge over. I will adjust some of the rules as they’re rigid (to me). They’re better rules for those not taking classes and following tutorials. I am doing both. I won’t count classwork or homework as part of the challenge, but I will count any supplemental tutorials or mini-projects. In doing so, I hope to balance my days. If I’m learning NodeJS, then support that with a tutorial, but also keep the UI and frontend fresh with a small snippet, bit of research, or a little project.

Don’t we all need to keep our backend and frontend fresh?

My first few days have been dedicated to finishing Wes Bos’s Learn Node tutorial. This makes my fourth completed WB tute: JavaScript30, What The Flexbox, React for Beginners, and Learn Node. I am always working on ES6 for everyone. I start that one over all of the time to get the practice in. When he releases his CSS grid tutorial, I’ll do that one, too.

Learn Node is a large project that jumps into Node at the late beginning stages. No play in the terminal. Just starting off index and Express, requiring, exporting … He’s taken care of the project decision (a Yelp-like app) and the styling. While at first I felt overwhelmed, by the end, I felt this was a great way to see what it is like to come into a project other people have started.

Now I’m ready to do another that is more ground up. Hello, Andrew “Fantastic” Mead. Honestly, he says “fantastic” all of the time. I like to pretend he has to force himself to say “fantastic” or else he’ll end up saying “fucking awesome”. He’s also like a hot Pee Wee Herman.

Two different styles. I like them both.

But all of this Node is leaving my fronted out to get stale. Ha ha, Code Matey! Not for long. Every workday I have to look at horrible Secretary of State websites. They’re just awful. And you know what has happened. Some manager has dumped the web and online content management to someone who was good with email. Poor sod is already overworked and now has to build and maintain the website.

I do not want to be the person who laughs at ugly sites. They are the same people who love correcting other people’s grammar. Thou shalt not be a dick. Ever. Or we shall try not to, and we shall scold ourselves when we get high and mighty.

Instead of mocking the websites, why not use them as a way to learn and practice the CSS grid system and keep up with Flexbox? (Screw you, Bootstrap. You bore me and junk up my HTML!) The content of those sites is pretty boring. Or at least the section I have to visit. I’d have to keep it ipsummy loremmy. All I care about are the colours, layout, and responsiveness. We’ll see. It’s an idea.

As is Dressy Bessy or Codie Jodie! The doll, which I never had, seemed to have all the fun things: snaps, a button, zipper, laces. She was a shocking mess for fashion, but her purpose was to teach kids to zip, tie, snap, fasten, and whatever else you can do with clothing. Taking notes about the states’ SoS sites, I got to thinking about just the states in general. 50 states. About 50 weeks in a year with two for fluff time. Why not a state a week that had facts about the state, some decoration, enough boxes and divs to fill a page, buttons that did things, etc? Wouldn’t be pretty, but if the only goal is to practice frontend play, why not? Codie Jodie. She’s got buttons, a responsive grid, some css animations, jQuery plug ins, …

Again. We’ll see. I will need to have all things outside of the class and its homework be short and sweet. Not interested in losing more time.

Planning to plan. On it!

Commuter code: Day wun dun

I think I am onto something here. I will be taking the train 3 days a week, the commute is 40ish minutes each direction. Since there are two cycling legs in each direction, and the last leg is uphill and I’m carrying full panniers, I end up home and exhausted. If I get the laptop out on the train and work on only that project, that’s 80 minutes of work done. The train carriage has tables, and since I go against traffic, I get one to myself.

I’m having an “Ima jeenyis” moment: if I do nothing else—nothing—but come home so tired that I zone out and sleep, I got 80 minutes in. Granted, it’s not earth shattering code, but it’s required planning, problem-solving, and enough coding to make me happy. It is also a set time. No “Just one more …”. If I do that, I miss my stops. Another bonus for me is that before and after the train leg are cycling legs, when I can’t do anything but think, dream, and avoid motorized cages.

I hope as my body gets used to the new plan (What in slacker hell am I doing up at 5 and out on my bicycle at 6? And why does my bike suddenly weigh 25 tons?), I’ll be more productive at home IN ADDITION TO what I have done on the train. Right now I am spending some of my home-code time whining about my quads.

As I put 100 Days of Code to rest as I readjust my daily goals, this will keep me accountable for at least 3/7 days.