I’ve made some progress on Assignment 2 of the Umea application (see previous post).
My goal this work week is to finish this drawing and start on my visual representation. Eek!
I’ve made some progress on Assignment 2 of the Umea application (see previous post).
My goal this work week is to finish this drawing and start on my visual representation. Eek!
So. Now that I’m ready to explore what I like to do, have quieted my brain, where do I begin?
[Cue tumbleweed and crickets chirping]
[Tumbleweed rolls off into the distance. Only the sad sound of sand blowing around remains]
This is going well.
OK, perhaps I shall start with a list of things I find exciting to learn how to do or to actually do. Not actual projects (yet!) but things that resonate with me.
I love lists, obviously, so here goes:
OK so that’s a very all over the place list.
Which obviously I made into a table.
And then added a “How” column to the side. Because I’m me. I can’t help it I’m a serial blog-starter and list-maker and quitter.
|Adobe Illustrator||Fun, Career||Online tutorial||YouTube||20 hours|
|Adobe Photoshop||Fun, Career||Online tutorial||YouTube||20 hours|
|Adobe InDesign||Fun, Career||Online tutorial||YouTube||20 hours|
|Art (drawing, painting, sculpting, more)||Fun||Art class Spring 2018||Folkuniversitetet||Feb – May 2018||22000||2 hours a day, 3 months|
|Writing||Life’s meaning||DIY||Home||3 hours a day|
|Design Thinking Process||Career||School||School|
I think we also have to add in *Swedish here as well. Mostly for career purposes, but also for fun (mainly because now I get to understand funny, feminist TV shows, Instagram accounts and um, my friends).
But to wrap things up with this post, the first thing on my actual real life to-do list right now is my application for the Umeå Industrial Design Intensive program which has the following requirements:
The goal of today is to finish the still-life sketch (Assignment 2) and to learn a little bit about Illustrator (Assignment 1) to see if I can’t make a visual representation of myself using digital techniques.
I’ve also thought/sketched a bit about Assignment 3 and started on Assignment 4.
So overall, work in progress!
I’m now off to learn a little bit of Illustrator until lunch-time and then setting up the still-life sketch for the afternoon!
Will keep you posted on my progress. Goodbye quitting, hello accountability (err…)
After my last post announcing my not-so-grand return to our blog, I wanted to spend this post providing a contextual background as to where I’m at now with my thoughts and feelings about this upcoming change.
The short narrative that I provide to acquaintances and colleagues about me quitting my stable job is as follows: “I want to do something more creative and leverage my experience in healthcare by becoming a service designer. I need to go back to school for this and for the applications, I need time to create a portfolio.”
Which I suppose is accurate insofar as that it’s ONE of storylines and the most realistic-sounding one. The truth, as always, is a little more complicated.
In one of our deep-dive unwieldy conversations on Skype with Ann a few weeks ago, I think I came up with the core of what it is I am doing which may not sound as career-oriented or clever or LinkedIn-ready or perfect narrative-wise, but is the simple truth.
I’m exploring what I like to do.
Breathe in. I’m exploring what I like to do. Breathe out. I’m exploring what I like to do. On repeat. Honestly, I have to repeat this to myself every single time my brain shifts into high gear grasping for a familiar story of a person who has direction, ambition, goals, focus.
Here is an excerpt from my email to Ann a few days ago as an example:
“I saw this bootcamp that they are having here… it’s a little expensive (55000 SEK = 6500 USD) but I was wondering if it might be worth it? Attached is the syllabus. The problem is that it overlaps with my art/Swedish class but … also maybe a good investment of my time to learn something useful down the line for UX jobs? It’s also a cool company that was founded by women who also founded a company called “Tjejer kodar (women coding)” http://www.technigo.io/about
Or is this me doing A Quitting Zany and flip flopping and signing up for something without even exploring it? I am just always so bedazzled by the idea of a Bootcamp and getting “stuck” into something, so maybe best to take a step back. And, I think they have multiple ones of these in a year (they are 12 weeks) so it’s not like if I don’t register now I’ll miss out. But in any case, just wanted to see your take on the syllabus and if it’s worth time/energy to even apply?”
Ann’s very wise response:
I am exploring what I like to do
For possibly the first time in my life, I’m going to let myself float around, enjoy the process of splashing in place rather than spending time, money, energy exhausting myself haphazardly trying to swim to a destination I’m not even sure I truly want.
So yes. Bring on the floating in place.
Or at least, I am. (Hi Ann!)
HELLO BLOG. HELLOOOOOOO!!!
IT HAS BEEN SO LONG SINCE I LAST POSTED. Thank you for taking me back into your loving and welcoming arms.
So, a few key updates since May 4th 2017.
I don’t know about you, but for someone whose commitment to her personal projects when things are unwieldy and uncertain is about as strong as a single strand of spider web on a stormy day, I think I need to start getting some of this accountability back, especially since my last day at work will be December 21, which is coming up soon. Ann and I have spent a lot of time Skyping and emailing, but I think I would also like to share my process out with the world in case it helps anyone else that has stumbled on to our blog!
It’s been a long time since my last post, so I thought I should give an update and close the book on my summer studies.
As I wrote about before, I decided to take a step back from coding earlier this summer and focus on learning Calculus. I am the long term goal of creating projects using computer vision, machine learning, and natural language processing. As I got deeper into the subject matter, I realized I really did need the math if I wanted to create my own algorithms rather than rely on libraries.
So I went back to the drawing board and re-learned Calculus over the last 5 weeks using MIT’s OCW materials. Two days ago I took the online placement exam at Harvard extension school and I’m happy to say I was placed into multivariable calculus. In other words, I successfully learned the course material for single-variable calculus. (Side note: the placement exams are free to take if you’re ever curious to get a quick assessment of your math, science, or writing skill level, you just need to sign up to their online system for access.)
I’m planning on taking multivariable calculus this fall for credit via the extension school’s online system. It’s pricey ($1600), but it was the best option I could find that worked with my schedule. (Community college would have been the best option as it’s in person and comparable cost-wise, but classes didn’t meet at a time that worked for me.)
My goal is to build up the pre-reqs I’d need to get into a CS masters program.
In the short term, I’m attending two residency programs – one for tech and art this fall and the second for programming in the spring.
Maybe I won’t end up applying to CS masters programs, but I’d like to at least give myself that option. And I’m sure I’ll learn a ton along the way!
In a previous post I talked about how I’ve started looking into new learning techniques to help me on my learning quest. I’m currently teaching myself math and programming, and it’s been tough. Progress comes in fits and starts, and I’ve been down several dead end paths.
For the past two weeks, I’ve been teaching myself Calculus using the amazing resources from MIT OCW and Professor Paul Dawkins’ online notes. I also bought a big book of calculus problems for additional practice. The first week was pretty good. I was chugging along and felt I was making good practice.
This past week has been less than great. On Wednesday when I sat down to do practice problems, I got every single problem I tried before lunch wrong. That means I spent four hours bashing away ineffectively at problems and feeling more frustrated and despondent as the minutes ticked by. I had been unwilling to move on from the work I was doing (applications of derivatives) to new material (integrals) because I wanted to master the first thing first. But it was clear this wasn’t working. I moved on, and found a groove again with integrals.
But it was clear that I was missing something. I wasn’t learning effectively. Something just wasn’t clicking and I wasn’t sure what. I had done calculus in HS and did well, I had done problems the day before and gotten them right. Why suddenly did it feel like my brain was mud?
I was reading through Professor Dawkins’ post on how to study math and it was obvious to me that I was in category 2 of students who don’t do well in calculus. I was studying for hours each day but not doing well on my problem sets. It was clear to me that I had inefficient study habits and unless something changed, I was just going to end up wasting more time.
Around the same time, I stumbled across this gihub community of Open Source Computer Science learners. And from there, I found the subreddit for the group, which led me finally to this QA mysteriously and intriguingly titled “looking for alternatives.”
And there, I found this amazing resource for a self-learning CS curriculum. What I love about this list is that it has a bunch of helpful resources for laying the groundwork for your self learning endeavor.
I don’t plan to go through this whole curriculum, but I did start with the learning to learn course on coursera and it’s AMAZING.
There are some things I knew or practiced when I was in school, but this time around because I’m older and feeling pressure to see results faster, I haven’t been doing, to my own detriment. Some of the key points:
Eep! And that’s all I have for right now. I’m sure I’m forgetting a lot. Will need to review tomorrow (as per the suggested way of learning!)
All of this is to say that I have a lot of bad habits to unlearn and new habits to form. Instead of going the Scott Young route and trying to cram a whole bunch of learning (ie a semester of Calculus into one week), I’m going to spread things out a bit more.
Starting this week, I’m going to concurrently do my algorithms, calculus, and linear algebra coursework. I plan to spend ~1 hour in the morning reviewing the material, and then dedicate the afternoon to practice problems or other study techniques (e.g. making flashcards, building my memory palace etc. 🙂
I’m not sure how this will go, but my rough goals are:
Lastly, while math and coding is fun, it’s important to give my brain a break and do something I enjoy!
I LOVE puzzles so another book I picked up is The Art and Craft of Problem Solving. It’s aimed at HS students (and teachers) who are interested in the math olympiads. While I’m definitely not in the right age group for that, it has a bunch of fun brain teaser math problems like the classic census taker problem.
A census-taker knocks on a door, and asks the woman inside how many children she has and how old they are. "I have three daughters, their ages are whole numbers, and the product of the ages is 36," says the mother. "That's not enough information," responds the census-taker. "I'd tell you the sum of their ages, but you 'd still be stumped." "I wish you 'd tell me something more." "Okay, my oldest daughter Annie likes dogs." What are the ages of the three daughters?
I’ve been thinking a lot about how to get the most bang for my buck out of my time away from work.
It took me a little while to find my feet and my path to programming.
Z and I were chatting the other day about recognizing our emotional / anxiety / stress cycles and something she said made a lightbulb go off for me.
I realized that every time I feel frustrated or down, I decide to start a company and/or get an MBA. It’s not because I’m frustrated by some big problem and have a brilliant idea of what to do about it. It’s because I’m frustrated with myself and think that getting the stamp of approval of an prestigious MBA or saying f-you to my job/crappy manager/whatever by starting my own company will be the panacea to my ills.
I wanted to be respected. I wanted to be successful. And I wanted to fit in.
I have a tendency to do what my friends do (a terrible, terrible habit!) due to a desire to fit in and gain their respect. I started out college as a math/bio major and then in my junior year switched to international relations since all my friends were history and poly sci majors. Math/science was considered dull and very un-hip.
I didn’t really enjoy the work, but I found a niche that I did enjoy – theory of technology – and exploited that the best I could. My thesis advisor senior year even asked me point blank: how is what you’re doing international relations? And to be honest I didn’t have a great defense.
Later, even though I felt I was on the wrong path and was unhappy with my job, I felt paralyzed from making any changes. In my early-mid 20s I still felt young enough to defer any difficult decisions to my older self (I hate my job now but by 35 I’ll be a wildly successful businesswoman.).
By the time I hit 29 the magical thinking stopped working. 29 to 35 isn’t a whole lot of time for me to start loving my work. However, I was worried I was too old to make a change and figured I should stay the course and find a way to make peace with my job. But I just couldn’t. I flip flopped between googling ‘am I too old to start over?’ and feeling young and exuberant and ready to take on the world. And, of course, all the while I was anxiously scouring the internet for hope time kept right on ticking by.
So it’s no shocker, with all this brewing, that when I finally took the plunge to quit my job in Feb to focus on learning to program, within a week I was researching competitors and interviewing potential users to validate an idea I had for a company.
I was scared. I was scared that I was suddenly on my own and that my friends would all think I was a failure. Saying I was starting a company made sense to people. Saying I was learning to program because I wanted to make art robots did not.
Luckily, I realized within a few weeks that I had no interest in being an entrepreneur. And with that out of the way, I finally recognized the cycle for what it was – my fear and need for outside recognition – and was able to move on.
Now that I had found my path and realized that I really did want to learn to program, I had to learn how to learn.
The next struggle was to tackle the feeling of being too late to the game.
I felt years behind where I wanted to be, and felt I needed to catch up. I had a million ideas of projects to build, but zero skills whatsoever. My first instinct was to dive in and start building projects, figuring that I would be driven to learn things in order to bring my ideas to life.
This kind of worked. But with each project I realized a bit more how much I didn’t know.
So next came a recalibration period. I learned what I didn’t know and how far I needed to go. But still I felt anxious at my slow pace of progress.
Was I actually getting better? I had no measuring stick. No way of knowing. And the more I realized I didn’t know, the harsher my inner critic became.
The second half of last week I felt pretty lost. I had a great tutoring session last Tuesday. I then spent Wednesday preparing for an interview for the Recurse Center on Thursday. After my interview, I felt a little deflated. I was off track with my Calculus and Algorithms classes, I had homework from my tutor, and I just felt all over the place.
I tried to get back into the next week’s Calculus lecture on Friday, but after I watched the videos I didn’t feel like I had truly understood the material.
I had planned on working over the weekend, but ended up taking both Saturday and Sunday completely off. I spent time with my family, went to an art show, went for a nice long walk, and just relaxed.
I thought a lot about what the next month(s) might look like. I heard on a podcast recently the quote by Bill Gates that people tend to overestimate what they can accomplish in one year and underestimate what they can accomplish in five.
I thought a lot about quitting. And how the reason the above is likely true is because we give up when we don’t see results as quickly as we’d like.
I thought a lot about committing to change. There’s a line in Dr. Tim Pychyl’s procrastination podcast that really hit home for me about changing habits being a lifelong pursuit and, if that sounds like too much to bother with, what is life if not the pursuit of bettering ourselves?
Finally, I thought about committing to learning. I didn’t just want to watch all the Calculus videos on 2x speed and pump out exams a la Scott Young. I wanted to deeply understand the material so that I could apply concepts from one area to problems in a completely different area. For example, I was recently trying to analyze the running time of algorithms by taking the limits of the formulas, but I was getting funky answers. I knew I needed to take limits (using my Calculus hooray!) but I couldn’t figure out how. The form of the equations for big O notation was different from the form equations take in my Calculus class and I was having trouble applying the concepts.
All this is to say that I decided earlier this week to really commit to learning. But, I wasn’t just going to do a lot of practice problems. I didn’t think that was the best use of my time. Instead, I spent a few hours researching learning strategies and formulating a real, achievable plan.
I also realized that mixing subjects just doesn’t work for me. In other words, doing Calculus for a day and then switching to Algorithms for a day doesn’t work. It was putting pressure on me to finish a week’s material in a day so I could feel that I had wrapped up a lesson before moving on. This meant I wasn’t taking the time to really dive into concepts since I was more focused on the output (getting a good score on the quiz, getting the right answers from the programming project) instead of the process.
I listed out some general concepts I didn’t feel I had a good grasp on:
I plan to spend at least 3 hours per concept. This includes writing out proofs, solving them by hand on my own, doing practice problems, and whatever else it would take to develop an instinct for the material. I want to get to a place where things just ‘felt’ right or wrong.
I listened this morning to this old Freakonomics episode about How to be great at anything. It dives into the idea of deliberate practice, and the story about the psychologist – singer is such a great example.
I used to approach learning as a goal-oriented practice. I wanted to learn concrete thing X which would then allow me to do concrete thing Y. The goal was to be able to do Y. Not to understand X.
Now I’m thinking of it more as a lifestyle. I’m committing myself to “slow learning” and mastery, and also to the knowledge that I may never get ‘there.’ No more of this learn X in 30 days BS!
This is not to be equated with lackadaisical learning. It’s not that I’m slowing down and only studying an hour or two a day. If anything, I’m ramping up and getting more intense. I’m reorienting my mindset and digging in for the long haul.
** If anyone is interested in trying Wyzant (reviewed below), please use my code and get $40 of tutoring for free!**
Sometimes going it alone is great. And sometimes you need help.
I’m still not 100% sure what I’d like to specialize in, but I’m leaning towards data science and/or AI. (Will write more on my love of cyborgs and why AI later…)
While the code I write works, I just know it’s ugly. It feels brittle and ungainly and while I wanted to fix it, I didn’t know how. One of my biggest fears about being a self-taught programmer is that my code might work, but it’ll be a hot mess and I’ll have locked in bad habits.
If I were in school, I’d be getting design feedback, but going it alone that’s hard to get. I’ve been submitting code snippets to codereview stackexchange and while that’s been hugely helpful it doesn’t go far enough.
I really needed someone to sit down with me, walk through my code line by line, and give me feedback.
After a week or two of fretting over what to do I finally decided to try an online tutor.
Ideally, you could ask a friend or coworker for help, but I don’t have any close friends that code and felt bad asking someone I didn’t know very well for such a big favor. Since I’m a beginner, I need a lot of patient explanation and I thought that was just too much to ask someone who wasn’t a close friend or family member.
I looked into various meetup options, but ruled them out for much the same reason. The ones I found were group study sessions where peers helped one another – basically stackexchange IRL.
So I took a chance in a tutor on Wyzant. I was worried about the cost ($40/hr for the tutor I chose), but since the first session is free I decided to try it out.
I met my tutor for the first time this afternoon. She was amazing! It’s incredibly helpful to have someone who knows what they’re doing walk with you through your code. I’ve done crit sessions with writing and art before, and I would put codereview closer to the crit side of the spectrum vs. the tutoring side.
We discussion some foundational CS concepts like layers of abstraction, scope, and the stack (and how/when it gets cleared out). She clarified a lot of concepts I had read about and vaguely understood. She also pointed out some problems with my code that I never would have noticed on my own.
For example, in my tictactoe AI when the user plays more than one game, I create a new instance of the board/AI objects for each new play. She told me that if a user were to play a whole bunch of games in a row, that my current setup would lead to stack overflow issues. This isn’t something I ever would have caught since I never played more than one or two games in testing.
All in all, it was great to be able to ask all the why questions that I never get to ask on online forums or when asking a quick question to a friend. When she first pointed out the issue with my tictactoe game, instead of just saying ‘ok, got it’ and fixing it, I asked why it was a problem. That led to a 10 min tangent on stacks and scopes, but it clarified the concepts I needed to know.
All in all, it was time well spent. I’m reworking the programs we looked at together now and am planning on making our sessions a regular (weekly?) occurrence. I figure $40 a week on tutoring is still waaaay less $$ than school and a worthwhile investment to learn to write legible and strong code!
Hello again world! It’s been a *very* long time since my last post and I apologize profusely for that.
Since I last wrote about my chrome extension, I’ve been busy jumping from project to project, chasing whatever captures my interest.
It all started with the Google FooBar challenge. Right after I published my chrome extension I felt listless. Anytime after a big project or event is finished I always feel a bit let down and lost. I wonder, now what? After days of waking up each day with purpose and direction, I’m back again at square one. Needing to find a new project to capture my interest, but not really knowing where to start. I keep a lot of notes jotted down with project ideas to avoid staying in these doldrums for too long, but it’s hard not to find myself there for a least a little while.
In any case, I was at the library googling around and trying to figure out my next move when I stumbled across the Google FooBar challenge. The challenge is a semi-secret easter egg that gets unlocked when you google a specific term. For me, it was ‘list comprehensions python.’ The search results page dropped away and I was invited to try this coding game.
The first level was quick and easy, a simple list comprehension. From there, I plodded my way through level two, and barely eeked by level three. I haven’t started level four yet as I know it’ll be a disaster. I’m waiting to build up a bit more knowledge before opening up that Pandora’s box. I won’t go into implementation details, but if you’re curious a few of my FooBar solutions are on my GitHub here.
My solutions aren’t always pretty, in particular the matrix transformations in doomsday fuel is embarrassing, but they worked!
The big side effect of FooBar was getting me into the backend of code. Up until that point, I had been mostly doing projects with a visual component. I hesitate to say front end since it was hardly that (e.g. a custom designed form with an automated backend, or a chrome extension that changed words on the page).
Alongside all this, I had been taking a MIT course in order to learn about state machines. I had wanted to do this in order to improve the performance of my robot.
I wasn’t loving the MIT course format so I wandered over to Udacity and began taking a class that covered many of the same concepts titled Artificial Intelligence for Robotics.
I got almost to the final project but was, once again, unsatisfied with the course format. The Udacity class provided the bulk of the code for each assignment, so I didn’t feel like I was actually learning the concepts. I could get the right answers on the quizzes and programming projects, but if asked to write the code from scratch I wouldn’t have known where to begin.
So I abandoned yet another course (so much for quitting quitting haha!) and tried instead an EdX course Introduction to AI. For me, this hit the sweet spot. The class was hard but not impossible. Some assignments provided startercode, but most asked you to write programs from scratch.
The course kicked off with breadth first, depth first, and a star search. Next, we were asked to program a 2048 solving AI.
While banging my head against the wall trying to figure out whether my implementation of minimax was wrong, or whether my heuristics were wrong, I took a little detour and coded up a tictactoe AI. Through this exercise, I learned that my minimax was just fine but my heuristics were terrible.
The long and short of it is, I have been negligent in my posting but I’ve been busy!
This post focused on the mechanics of what I’ve been doing. Next time, a bit about what I’ve learned about myself 🙂
(Oh, and I also took a glassworking class – photos of my terrible glass sculptures to come soon!)