Day by Day

Day 46: I Wrote This on My iPhone and It Was OK

I started writing this post on a smartphone at lunch and finished it in my hotel room. I’m not used to typing on a smartphone, but I got tired of losing the thoughts that slip through my head while walking, eating, and people-watching.

I wonder why each person is here, in Quebec City, as they walk past — who he is, if she is on vacation or on sabbatical, if they work here or study at a university or travel, with one foot in this city and one in the next place.

I love this city. I haven’t been super-productive, choosing instead to enjoy the Summer Music Festival and my family’s company for the few days they also were here. Today was different — I read for five hours and then stepped out for lunch. Later, I’ll read and write for five more.

Low-Level Hardware-Software Interaction

I’m learning about low-level hardware-software interaction — the stuff that happens when mouse clicks and typing are translated into machine instructions that whiz between the central processing unit (CPU) and the memory and back. My vehicle for learning these things is a great Coursera course, The Hardware-Software Interface by University of Washington professors Gaetano Borriello and Luis Ceze, complemented by Zed Shaw’s Learn C the Hard Way and Bill Dudney’s All the C You Need to Know. Even though Objective-C is going away, I think it will still be a good idea to understand it and the C underlying it, so I can make maximum use of Swift alongside those tools (since I think they will coexist for a couple of years at least).

I learned Objective-C as my first programming language (and I love it, despite its to-be-deprecated status), so I’m in a bit of a weird spot. I think it’s a sweet spot: I understand enough about low-level programming to learn the guts and internals of machine language — so I’m taking that opportunity because I think it will make me a better programmer. I also understand enough about high-level programming that I’m able to comprehend Swift fairly well and expect to grasp JavaScript/node.js when I dive into it later this summer.

For now, I’m having lunch on a street in Quebec City, watching people pass by.

Goals and Productivity

On last week’s goals:

  1. I fixed the search functionality in my flashcard app. I also identified ways to improve it.
  2. I implemented swipe-up functionality. The card doesn’t disappear yet after the swipe, but I’m working on fixing that.
  3. I read part of the Swift book, but then got distracted by the Coursera Hardware-Software Interface course.

This week’s goals are:

  1. Fix the swipe-up functionality in my flashcard app so the card disappears after the swipe.
  2. Delve into low-level programming topics and struggle through what I don’t understand, including the C underlying Objective-C.
  3. Finish creating questions for my flashcard app database.
FacebookTwitterGoogle+Share

Day 38: Onward and Sort of Upward

I passed the NASM test. It was a comfortable pass, which gives me some confidence in the study method I used. From the flashcard app perspective, my initial user acceptance test of one succeeded.

I added about 250 questions to the flashcard app database — slightly fewer than my goal of 320 but enough to make the app robust and functional. I’ll add more later but wanted to leave some space and time between the exam and that task. Exams change, and my goal is for my app to help people master the material regardless of exam questions — internalize key concepts, understand the overarching principles and connections between concepts, learn this stuff inside and out, upside down and sideways.

I also fixed the app formatting and added a search function, which worked pretty well. Then I broke it. Sigh. I’ll re-implement it this week and try to figure out what went wrong.

That’s the process. Move forward. Achieve. Break. Sigh. Fix. Try again.

Major goals for this week:

  1. Fix search functionality in my flashcard app.
  2. Implement swipe-up functionality.
  3. Swift book (again). 100 pages.

I’ll be on the train for a full day, so all of this should be doable.

One thing I won’t be lugging around is the NASM textbook. I’m leaving all 5 pounds of it at home. Travel light.

Day 30: Check-In

It’s been a month.

I gave notice and then left work on May 23 and it’s been a month.

I went almost immediately to AltConf in San Francisco, a free developer conference, to indulge my hobby of developing iPhone applications. Not only did I have a great time, I drew a clear line of separation between Before and After.

I did it on purpose, to get a clean, clear jump into all the new things I want to try, without wallowing and feeling useless for a couple of weeks.

I spent some quality family time with my dad for Father’s Day, a few more days back in New York socializing with friends and then relaxing at a meditation event.

Amid all of this, I got a lot of work done.

I finished the NASM book last week. I populated the back-end question database for my flashcard app with 80 questions (a good start, but I want to add at least 320 more this week). I read some of the Swift Programming Guide (not 200 pages, but 50).

I had a balanced week. I made progress without obsessing over how much progress. I stayed in the West Village, a neighborhood I always wanted to live in when I lived in New York full-time. I took time for myself, time for friends, and time for work.

I had some great ideas and some not-so-great ones. I wrote blog posts for future dates. I bounced ideas off of people I know to zero in on which ones might be worthwhile. Three get a very consistent positive response, which is heartening.

I know not every week can be like this. But it was a much-needed, pleasant interlude as I prepare to go all-out in the next few months — traveling, learning, improving and finding the right path.

Major goals for this week:

  1. Add 320 more questions to the flashcard app database.
  2. Fix the formatting and add a search function to the flashcard app.
  3. Pass the NASM test.

It’s been a month. But it feels like an epoch.

Day 22: Concentration and Its Discontents

I take work less seriously when staying with family.

This is an inconvenient truth, because I love spending time with my family and intend to do so again.

But this week, given all the time I needed, I accomplished fewer goals. I appeared to be working intensely for 12 hours a day, since I toted my computer around the house, hoping to be productive.

In reality? I worked for about 4 or 5 hours each day.

Here are the major goals I accomplished:

  • I read 275 (not 200) pages of the NASM textbook.
  • I worked on my flashcard app, making useful additions and cleaning up the user interface.

Here are the major goals I did not accomplish:

  • I did not do any work to build out my flashcard app’s back-end question database.
  • I did not read any of the Swift programming guide.

I made myself feel better about this by procrastinating productively:

I realized, somewhere between surfing Hacker News and watching House of Cards, that when I pay rent like I did last week, stakes are higher and my productivity is correspondingly higher. When I’m with relatives, not paying rent, stakes are lower and my productivity drops.

Like I said, I’ll keep spending time with family because I love them. But I need a plan to establish momentum for future visits. So here it is:

1.) Wake up. Open Xcode. Every day. (Virtual guarantee of a productive day.)
2.) Work in the office room, not on the couch.

It’s not a complicated plan. I start tomorrow.

Major goals for this coming week are:

1.) Build out my flashcard app’s back-end question database and finish the user interface.
2.) Finish last 75 pages of the NASM textbook.
3.) Read 200 pages of the Swift programming guide.

* I activated my Facebook account in March. I came late to social media and am trying to figure it out as I go.

Day 17: Back to the Grind

Back in New Jersey. It took a little while for me to adjust. Back to family, and home, and distractions. Even when distractions are good, they’re still distractions. So I need to schedule blocks of time when distractions are okay, and blocks of time when they aren’t.

Today, I carved out the after-dinner period for coding. I made  progress on my flashcard app, building on what I learned last week at AltConf and from my Thinkful mentor. I worked for a solid four hours.

A funny thing is that’s not good enough. I just typed, “I worked for a solid 12 hours,” and felt really great about it until I realized:

IT WASN’T TRUE.

I typed what I wanted the truth to be.

Tomorrow, I blocked out the entire day for working.

My major goals for this week are to: Make significant progress on my flashcard app, including entering back-end data; read at least 200 pages of the NASM book; and work through at least 200 pages of the Swift book, highlighting important points and follow-up questions.

I do have peripheral goals, but if I went into each week with all of them competing for space in my head, I’d set myself up for failure. With three major goals, I aim to accomplish all of them. And when inevitable procrastination strikes, I take it as an opportunity to tackle some peripheral goals.

I also have overarching goals, which can’t be accomplished within a week. Those are the big life things, like health and wellness, long-term career development, and purpose.

I don’t count them, because counting them is not important.

I sleep on them. I dream with them. I move toward them, step by step, goal by goal.

Day 7: Goals Accomplished

I registered for the NASM personal trainer test. I read 100 pages of the NASM book (200 down, 300 to go). I worked on my flashcard app and struggled — am still struggling* — with UICollectionViews. I blogged four times and drafted a post for Medium.

I also established a Twitter account for this blog, ate somewhat better, slept a little more, spent time with family, met with a few former colleagues, finished reading Effective Objective-C 2.0, finished reading Apple’s Mobile Human Interface Guidelines, and booked a vacation stay in Italy.

Somehow, amid all of this, several people told me I look more relaxed.

I’m happy to hear it.

I do feel relaxed, in a productive-flow way. When I’m in the zone, working on something I enjoy, I’m happiest. That’s why it’s vital for me to stay productive even when I’m ostensibly relaxing and traveling. I’m always finding my way to what’s next.

* UICollectionViews are basically places that hold content within an iPhone or iPad app screen. They can be small or large, and you can scroll through the content in them and choose one or more items. The difficulty for me is in correctly setting up sizing and scrolling, although I’m making progress.

New Adventures, Day 2: A Little Procrastination, a Little More Action

Day 2 started well — I read 60 pages of the NASM textbook, which I need to finish so I can take the personal trainer exam by July 1. After that, I relaxed for a few hours and then went to a Memorial Weekend barbecue.

When I came home, instead of reading the Apple Mobile Human Interface Guidelines or working on my flashcard app, I booked a trip to Quebec City. I did need to book the trip, but I needed to get the other things done more, in advance of tomorrow’s session with my awesome Thinkful mentor.

I also noticed that my Coursera Intro to Marketing course had a hard deadline of May 26 (tomorrow) on the first quiz, so I dedicated an hour to reviewing the slides and passing the quiz. Luckily for me, I watched the videos last fall, so this was a review for me. Nonetheless, it was procrastination.

Now, at midnight, I am reading the Mobile Human Interface Guidelines at last. I’ll spend another half hour reading, then go to bed and finish tomorrow morning. Not ideal, but I will hopefully pull some inspiration for the next iteration of my flashcard app, which I need to implement before 9pm Monday. It’s a self-imposed deadline, but an important one for me to feel continued forward motion.