Tag Archive: Hacker School

Nothing Is Perfect: The Less-Good Parts

''The Mouth of the Beast'' from http://www.flickr.com/photos/amiebea/220479689/ by http://www.flickr.com/photos/amiebea/ {{cc-by}}

”The Mouth of the Beast” from http://www.flickr.com/photos/amiebea/220479689/ by http://www.flickr.com/photos/amiebea/ {{cc-by}}

One of my favorite people told me I sound like a superhero. The blog highlights all of the great parts of leaving my job and wandering the world, but none of the snags or tangles along the way.

I’m not sure I entirely agree. I’ve highlighted some of the ambiguous moments, like feeling stranded in Tuscany without a car, struggling with Internet outages and unreliable trains, and getting used to dark nights in farmhouse country. I’ve written about fear.

Partly, I’ve shied away from ungood stories because I don’t want to sound like I’m whining or ungrateful. On balance, this whole endeavor really is pretty great, and I’m happy I did it. I’m also grateful I was able to do it.

But to balance the scales a bit, this post will cover, in an anonymized way, several additional things that weren’t perfect.

1. Cat Bite, Initial Encounter. That’s what the hospital paperwork said when I was released from the emergency room. My roommate’s cat, which hates people but liked me, didn’t like it when I took her photo with my iPhone. It looked like a tiny scratch, but it got infected and my arm turned red. Seven days of antibiotics and stern warnings from my doctors to take all of them. I did.

2. Other Guest Roulette. With Airbnb, when I rent a private room in a host’s apartment, there are always other guests at some point. This has been true 100% of the time so far. Some of the guests were also from Airbnb, and some were friends of the host. Several of the guests were awesome and we became friends; others were less awesome. Only one made me feel truly uncomfortable, mainly because the hosts were also out, but we shared space for just a day and I locked my door while he was there.

3. Type-A, Nature-Lover Shock Therapy. I discovered I may not be cut out for life on vacation. That’s fine; I didn’t think I wanted to spend my life on vacation anyway. But I had more trouble than expected when I stepped away from an always-on, Internet-focused life. It was good for me to have this experience, but it wasn’t as easy or relaxing as I thought it would be. There were also beetles in the farmhouse that made a low, humming buzz that sounded like giant wasps. This terrified me until I figured it out.

4. My Right Foot. I sprained my ankle about 10 days before my scheduled flight to Florence. It wasn’t a bad sprain and didn’t hurt much, so I never bothered to ice it much or use a compression bandage. But I re-sprained it two days pre-flight; it collapsed while I was just standing still (perhaps a bad sign).

It still didn’t hurt much, so I purchased a compression sock and flew to Italy, then ended up visiting the ER the night after I landed. It turned out to be fine, thankfully, and the total bill was 31 euros. A week later, I re-sprained it again in the Cinque Terre, because I was starting to feel better and saw a hiking path near the water that I really wanted to explore. This time was worse — I felt like there was spaghetti in my ankle instead of ligaments and tendons. I finally accepted the need to take it easy. (It is getting better now, fingers crossed — I’m getting SCENAR therapy from my amazing acupuncturist and it is essentially a miracle.)

5. What Now Syndrome. My greatest fear is that I am like a zoo animal that, released from its pen, stands in the middle of a field and doesn’t know what to do. I can do anything, so I do a little bit of everything, and therefore I do nothing. I feel this fear more acutely as the learning-and-exploring phase of my adventures shifts into a do-something phase. I don’t think it’s bad for me to try several different things, and I think as long as I do some real work every day, I’ll figure it out, but it’s easy to feel overwhelmed by possibilities. I woke up this morning from a dream that I won’t be happy unless I’m working hard. I already knew that. And I woke up happy and ready to work.

I can’t help it even now. I’m turning this “Nothing Is Perfect” post into an “Isn’t This Awesome?” post. That really is how I think about the world. But nothing is perfect, and I’ve tried to give you a glimpse of that, to round out the picture and add more humanity to this adventure story.


Sabbatical Phase 2: Coworking and Bootstrapping

As I gear up for Phase Two of my adventures, I feel pulled in different directions. My primary goal is to make things that are helpful, useful improvements to the world. I’m conflicted about how and where to do it, specifically whether to try coworking, and how to bootstrap/fund until those things either succeed or fail.

Dilemma 1: Where to Work

On coworking, I’m an introvert. I enjoy meeting people, but a day in a noisy space leaves me needing to rest and recharge. I do my best work in focused, productive bursts, either alone or with a small team of people. (I’m also good at political wrangling and large meetings, but that skill is less useful for my current activities, at least right now.)

I’m not sure I see the benefit of paying money to sit in a noisy space that saps my concentration and energy.

Fortunately, I have alternatives. On Thursdays and weekends, I can visit the Hacker School space. This space is special: It manages to be quiet and focused for much of the day even while full of people, which astonishes me but also makes me extraordinarily grateful. As a bonus, it’s a great place to find lunch or dinner partners for non-work breaks.

Tomorrow, I’ll be trying free space donated by an incubator for Hacker School alums to continue working on cool projects. I love this idea and look forward to seeing how it goes, especially because it requires one-day-at-a-time sign-up rather than an ongoing five-day-a-week commitment.

About the only thing I don’t gain from these spaces is a permanent “home” for my work. What I would pay for is a service that provides office trappings without actually being an office. Things like a non-P.O.-box mailing address, faxing, copying and printing, supplies like envelopes and a receptionist and phone numbers (which I could forward to my cell phone), with conference rooms rentable by the hour for meetings. But no work desks — I could take care of that part by going to quiet-ish coffeeshops or working from home, wherever home is.

Does anyone know of a service like this?

Dilemma 2: How to Bootstrap/Fund

On the bootstrapping/funding side, I could continue without focusing on money at all — and it’s been a blessing to do that for the past six months at Hacker School and while traveling — but I feel like that might be short-sighted. I can extend my options if I earn money by freelancing, consulting, investing, fundraising or seeking fellowships.

One thing I don’t want to do is become too focused on making money at the expense of actually doing things and making things. So I’ll need to find the right balance, and that will be a process of trial and error. Ideally, some of the things I do and make will become sources of income and possibly allow me to raise funds or get fellowships. But I don’t want to force an outcome; I want to experiment, make useful things, and see what sticks.

I suppose I have a sabbatical bucket list. If I do a self-check, I’ve done some interesting things so far (though not all of the things on this list). Travel to places I’ve never been. Attend Hacker School. Make YouTube videos. Write a blog. Write an eBook. Make apps and plugins. Make websites. Make training courses. Be an e-tutor. Speak up on Twitter. Present at conferences and meetups. Attend different types of conferences. Try crowdfunding. Make or contribute to some real-world products.

This list sometimes makes me feel disorganized or scattered. But if I think about my mission statement, it’s pretty clear:

Experiment, make useful things, see what sticks. Keep doing the things that stick. Be myself and see what happens.

Hacker School Gratitude Journal

I’m grateful for everything about Hacker School and this summer.

I’m grateful for the people who made this experience possible. I’m grateful for the programmers who shared their knowledge and welcomed me to share mine. I’m grateful for the friends I made, and the hours I spent in deep concentration, and for the fact that these two things were not mutually exclusive.

I’m grateful for the chance to attend this magical place.

I’m grateful for the community that extends beyond Hacker School and makes the motto, “Never graduate,” a real thing, so I can keep growing and learning and sharing and participating in different ways over time.

I’m grateful for idealism winning out over realism, and making reality more ideal. I’m grateful that my Xcode plugin worked. I’m grateful that I didn’t overthink the idea before starting to try to figure it out. I’m grateful for the help I got from people in and around Hacker School. I’m grateful for brainstorming sessions, the comfy couch to sit on, the amount I’ve learned, and the feeling of being surrounded by lots of motivated, curious people.

I’m grateful for the lovely apartments I had to stay in, the noise of trains over the Manhattan Bridge reminding me that things are always moving and shifting, reminding me to keep pace and keep pushing and change things.

I’m grateful for my roommates and the wonderful experiences I’ve had with them, and I’m grateful that I took the chance to push out of my comfort zone and into the world of adjusting to others. I’m grateful for the occasional privacy that balances out my experiment in living more cooperatively and nomadically.

I’m grateful for the awesome people in my life, and for serendipity.

I’m grateful for my health. I’m grateful for the great food I eat every day and the opportunity to try anything. I’m grateful for New York City and its never-ending options, and I’m grateful for my ability to focus.

I’m grateful for persistence and creativity, which are only good together and have allowed me to do all of this — everything I’ve done for the past few years, leading me to this point of creating and exploring and learning and enjoying the world.

I’m grateful for the tough weeks and the easy weeks and the mistakes and the things done right, and the amazing summer that all these things combined to create. I can feel that I will look back on this summer with utter thankfulness, probably when I’m tired and stressed-out and working hard and struggling to sleep enough. So I thought I’d start now and say

Thank You.

Hacker School, Week 9 Postscript

I can’t believe week 9 of Hacker School just ended. Because of varying start dates for different Hacker School batches, batch lengths can vary. My batch is 11 weeks long, not 12, so week 9 is pretty far toward the end.

I’m learning a lot. I feel like I’m on a march to get as much done as possible in the time allotted, though I know this is an artificial deadline. I’ll keep learning the next day after Hacker School ends, and the next, and the next.

Granted, I’ll be learning in a hammock on a farm in Italy, which will be a nice change of scenery and pace. Instead of going out for dinner when I’m hungry, I’ll pick tomatoes and bake some organic bread.

But I still feel pressure about the upcoming end of the batch.

One of the great things about Hacker School is its open-ended nature. “Never graduate” is their motto, and they mean it. I’ll still be able to visit the Hacker School space on Thursdays, nights and weekends after my batch ends, and I’ll be able to attend Monday night talks, which means I’ll continue meeting great people whenever I’m in New York.

But I won’t be in Hacker School. I’ve loved this experience for the pure learning-friendliness of it, and I’ll miss the feeling of shared focus. I don’t feel quite ready to leave, but at the same time it will be nice to find out what “post-Hacker School” means for me.

I’m putting together some lessons learned that I’ll post when I’m done and on my way.

Hacker School: Week 7

I’m in the second half of Hacker School, feeling short of time and not sure what to do about it. My only option is to keep showing up every day and getting things done. I sit at a long table in a huge room or abscond to my personal favorite work space, a living-room-like corner with a high ceiling, a metric ton of computer books, and a metal staircase leading up to a door that doesn’t open.

On a beanbag or couch in this corner, surrounded by books and people hacking on projects and a robot mural painted on the wall, I feel equally at home and unsettled.

After focusing on C for two weeks and then an Xcode plugin for a month, I’m switching my “learning” focus to JavaScript and node.js. I’m using the excellent Learn JavaScript Properly outline suggested by Richard of Stanley, and so far it’s going well.

Turns out I like JavaScript. A lot.

This is sort of a surprise to me, because I’ve heard JavaScript is weird. Inconsistent. Unreliable, even.

But I resonate with the C-based parts of the syntax, and it’s helping me understand the function-based parts that aren’t quite the same as Objective-C’s classes and methods. I’m learning from a solid base. And that’s reassuring.

I also feel like I can eventually build almost anything with JavaScript, and that’s motivating. I don’t feel like I’ll need to learn it for six months before I can do anything useful.

My “building/maintenance” focus remains on expanding and extending the plugin, so I have two tracks to switch between. This is my best mode of working, because even procrastination can become productive — if I get tired or burned-out on one thing, I can switch to the other. It also ensures I write code consistently and don’t get bogged down in only book-learning.

I’ll write a full-on technical post about the plugin soon.

Day 89: Victory

I cannot begin to describe how happy this makes me:

Terminal output from Xcode voice recognition plugin

And this:

Xcode voice recognition plugin

I went back to the voice recognition plugin. I thought about it differently. And it works.

It’s not perfect. Far from it. But the key bottleneck is broken. This basically means everything I want to build, from a functionality perspective, I’ll be able to build.

I’ve never actually experienced this in coding before. I always just had someone help me through the hard parts, which was good for productivity but meant I never really learned to work through a tough problem in code. It’s awesome.

Referencing the “Day 89” in the title of this post, it’s Day 89 since leaving my job. Day 31 of Hacker School.

Things Accomplished versus Distance Covered

I’m in week four of Hacker School.

It’s awesome. But I’m struggling with a dilemma: balancing the tough problem and the maximum ground.

I view Hacker School in terms of two metrics: Things Accomplished and Distance Covered.

Of course I want to accomplish some things. I have a whole list of things I want to accomplish, some while at Hacker School and some afterward.

But the whole point of doing Hacker School, for me, is to learn the maximum possible amount in the time given, so that I become a much better programmer for whatever comes next.

This means I also need to keep an eye on the Distance Covered.

It doesn’t mean I will abandon tough problems forever; but it does mean I don’t want to spend the entire 11 weeks on one problem without any guarantee that I’ll solve it in that timeframe.

Asking the Right Question

So I’m forced to balance things. The right question is not, “How long will I spend on a particular project?”

The right question for me is, “Given the rate of progress I am making, the amount of code I am writing, and the amount of learning going on, how long will I spend on a particular project at Hacker School?”

That’s why I’ve decided to set the voice recognition project aside for now and continue forward with my Hacker School plan by turning my attention to Swift for the next two weeks.

But I Love Tough Problems

I wasn’t too happy about this decision, because my experience has been that the projects and problems I delve into tenaciously and refuse to let go until I’ve figured them out always produce my greatest successes and joy. It was true with high-speed trading risk controls at my prior job. It was true with health issues that I defeated.

But those projects take years, not weeks.

I don’t have years at Hacker School. I have time to learn a lot about a lot, meet and enjoy working with great people, and build a base for tackling the really tough problems afterward.

The Nights-and-Weekends Compromise

I discovered that the voice recognition project is 100% doable — it just requires a lot of work. More work than I have time to dedicate to it at Hacker School.

So, my compromise is to make it a nights-and-weekends project, while spending my time in the Hacker School space completing my Hacker School plan.

That means Swift for the next two weeks and then a shift to JavaScript and node.js.

Meanwhile, I’ll be mulling the voice recognition project in my spare time, which is probably the best way to tackle tough problems that are at an impasse. I will figure it out. But I will also accomplish other things and cover the distance.

Say What? My Voice Recognition Dilemma

I tried Mac Dictation this week. My goal was to get a few simple sentences to appear in a text editor. Initial experiments were not successful. The full sentences I attempted were garbled beyond recognition when they appeared on-screen, so I fell back to word-by-word communication.”Make.” Made. “Maaaaaake….” Mate. No. Try again. “Maaaaaake….” Made. No. “Create….” Create. Aha. Victory is mine! “An.” In.

I progressed word by word, slowly and carefully, and my text editor dutifully showed the words on the screen with numerous errors. This was not production-ready. No one wants to talk as if they’re scolding a recalcitrant pet.

To be clear, I’m not a marble-mouthed mumbler. I’ve recorded books on tape for Recording for the Blind and Dyslexic (now Learning Ally), and I know I can enunciate well. But Dictation couldn’t understand my voice.

I knew that if I couldn’t get text to appear on-screen, I couldn’t complete my project. I’ve started coding the next part and it’s feasible, so I really want this to work!

So, I Googled for my options:

1.) Try to improve Dictation’s performance by improving my computer setup;

2.) Buy Dragon Dictate and hope it runs on my underpowered 2011 MacBook Air and has better accuracy than Dictation.

3.) Abandon OS X entirely and do the project in a Windows virtual machine with Dragon Naturally Speaking for Windows.

4.) Try using OpenEars to build an iOS app that does the same thing.

Only the first two options really get me to my initial goal; the last two are pivots that require adapting to different platforms and approaches.

So, tomorrow I’m buying a USB headset to eliminate ambient noise and provide a clearer dictation experience. I really hope this improves Mac Dictation’s performance by leaps and bounds. If it does, I’ll be off to the races. If it doesn’t, I’ll be installing Dragon Dictate on a machine not made to handle it.

I’m heartened by the discovery that once I get the text on the screen, my goals can be accomplished. I’m discouraged by how difficult it is to actually get the text on the screen. But discouraged does not mean “gave up.” It means I’m thinking hard about the options.

Hacker School, Day 3: Xcode Plugins and C

Kicked off this morning by writing an Xcode plug-in that loads correctly and sets a custom menu item. The next step is to make it function, and I fully realize the hard work lies ahead. I like that the goal of the plug-in is increased accessibility.

I also made slight progress in understanding C, which may be helpful since the iOS stack of Swift, Objective-C and C likely will coexist for a while.

I came home and researched Xcode plug-ins, Sublime Text, and iOS note-taking apps for hours. I know where I want to go, and I’ve specced out functionality, so it’s a matter of figuring out implementation details. I’m enthused and have a plan for tomorrow and Friday.

And I really do intend to learn C somewhere along the way.

I’m not tired at all, but it’s time for sleep anyway.

The Explorer’s Dilemma

Exploration is much harder and much easier than it once was.

Physical exploration is much harder. Humans have swarmed across the planet, marking territory, discovering caves, streams, mountains and seas. Aside from the deep seas and the magma lakes below Earth’s crust, little remains to be discovered. I’m immensely fascinated by northern Canada, which remains sparsely populated, especially in places like Baffin Island.

Intellectual exploration and innovation are exponentially easier. The Internet has made huge quantities of information available to nearly everyone at fast speeds. And it’s easier to find people to work with on projects and problems, because they can be next door or on the other side of the planet.

I’m engaged in this type of exploration at Hacker School. I spend all day in a room alongside other skilled people with various backgrounds and interests, and we try to learn a lot rapidly and solve interesting problems.

Today I made good progress: I brainstormed approaches to a speech accessibility project; worked on Learn C the Hard Way, including a pair programming session on C switch statements; and attended sessions by resident Mel Chua on learning styles. Learning styles aren’t destiny: They reflect personal preferences and natural tendencies, but it’s possible to become comfortable in a non-innate style.

My personal learning style is somewhat reflective, extremely intuitive, evenly visual and verbal, and somewhat sequential. I’m constantly seeking connections between different ideas, then piecing them together in a logical way toward a goal.

What’s great is that thought patterns and ideas are not a finite resource. They’re endless, endlessly renewable, and endlessly interesting.