Code

The Sweat Lodge by Nate Westheimer

This past weekend was my re-birthday, marking the one year anniversary of leaving the "Sweat Lodge" -- the first step on my important journey of becoming an engineer. Anyway, I need to get back to some pretty sophisticated engineering problem, but I thought I'd acknowledge the anniversary and repost the "Sweat Lodge" section of The Hope Manifesto:

The first key to learning anything is real commitment. How many people have taken years of Spanish classes but can’t speak a word? Meanwhile, we all know people who studied abroad and immersed themselves for a few weeks and came away with the ability to communicate freely (though perhaps difficultly).

Learning to code is no different. If you think you can learn how to code by going to a few classes, being “taught” or sitting down for an hour or so every so often, you’re 100% wrong and will waste your time. If you truly want to learn how to code (or learn any other new skill, for that matter) you must find some serious time to dedicate to the cause. And the cause is teaching yourself, not being taught.

I call this The Sweat Lodge.

When I left AnyClip, I spent a few weeks playing around with online tutorials and reading books about coding. Not surprisingly, I felt like I was as much of a NoPE after a few weeks of this as I did when I began.

My real education started the second to last week of October, when I took five days of my life and commited myself to Change.

For five straight days, I sat at my desk, from the time I woke up to the time I went to bed, and obsessed over my education. I barely showered. I ate at my desk. I obsessed.

I went into my personal Sweat Lodge a NoPE and emerged a HoPE. Did I have all the answers? No. In the weeks and months that followed that week, I’ve learned a huge amount more than what I learned in that week.

But in that week, I taught myself the most important, foundational lessons that allowed me to emerge a new person: the skill of self-sustenance.

So this is your first test: Are you willing to commit to The Sweat Lodge? Are you willing to take 5 days — at least! — of your life to go through mental hell? Do you really want to code or are you just saying you do?

Getting Good. by Nate Westheimer

It was 12 months ago last week that my friend Sam Lessin sat me down and gave me the kick in the rear that got me going down this road of learning to code. A year later, and I'm super excited about how good of an engineer I've become.

I got good.

Some day in the future I'll write Chapter Two of the HoPE Manifesto, and go into great detail about phase two of my education as an engineer, but today I want to write about the single biggest factor for "getting good" at something.

Just work.

Just say "no" to coffees, lunches, drinks, events, speaking opportunities, advisory board positions, calls, Skype chats, etc.

Let emails go un-replied.

Wake up at 7am every day -- at the latest -- and get back to working on getting good.

Test your relationships with friends (don't test them with your partner or family).

Be selfish, if selfish means spending more time mastering your craft.

Be generous -- always -- but especially if that means helping other people master your craft with you. You'd be surprised how much you learn teaching others.

The single biggest factor in getting good at something is true devotion.

For the past year, I've devoted myself to getting good as an engineer. It's the first skill I've ever truly devoted myself to, and thus the first skill I can actually say I have.

Lord knows I have a ways, ways ways to go, but today, I feel pretty awesome about how far I've come. And, I can't wait to see where I am one year of devotion from now. I think I'm hooked on this concept of "just work."

Sorry, Emails...

I'm Teaching a SkillShare Class: "Teaching Yourself to Code for N00bs and Product People" by Nate Westheimer

Ever since writing my "learn to code" manifesto, learning to code has been the number one thing people want to talk to me about at my Ohours or whenever I see people out and about. As it turns out, there are a ton of people out there who are just like I was 10 months ago: a n00b, a "product person," someone hopelessly looking for their "technical co-founder."

So, I'm joining the SkillShare revolution and teaching a class called "Teaching Yourself to Code for N00bs and Product People."

The idea of the class is not that you'll come away knowing how to code but that you'll come away from the class knowing how to learn.

Anyway, I'm totally excited about this class, and if all goes well I'll be making it a regular thing.

So, if you're interested, go sign up for my class, and if you're only kinda interested or the date doesn't work for you, follow me on SkillShare or "Watch" the class for when I do it again in the future.

My Love Affair with Forrst by Nate Westheimer

<% %w{Sunday Monday Tuesday Wednesday Thursday Friday Saturday}.each do |day| %>

<%= day %>

<% end %> <% 3.times do |week| %>

<% 7.times do |day| %>

<% @openings.find_all{|o| o.start.to_date.cweek == Date.today.cweek + week && o.start.wday - 1 == day - 1}.each do |event| %> <%= link_to event.start.to_formatted_s(:time_pm), opening_path(event) %>
<% end %>

<% end %>

<% end %>

See that code above? About 5 people collaborated to write it for Ohours.

As I've been hinting at -- and plan on writing extensively about -- I've taken the past two months and learned how to code.

The first thing I released was Ohours, and then in a crazy 48 hour marathon of coding I released Vote.NYTM.org just in time for the NY Tech Meetup elections.

I'm loving the ability to just to make what I want and it's hard to believe I ever existed in this industry without that ability.

Needless to say, I wouldn't have been able to make as much progress as I have without he support of several people, but the one person who has been invaluable in this process is Kyle Bragger and his amazing community at Forrst.

What is Forrst?

If you've never seen Forrst, go check it out (they just released Version 3 today!). Forrst is a community of developers and designers sharing the work their doing, giving and getting support, feedback, and general encouragement.

Forrst is NOT a technical help desk -- if you want that, head to Stackoverflow or the dozens of other places where you can find general technical help -- rather Forrst is a warm and welcoming community of people of all skill levels, sharing the latest code snippets and screenshots of what they're working on, genuinely looking for feedback.

Want an example? For Ohours, I'm trying to develop a calendar view of a particular user's upcoming Ohours openings (and next for their appointments). One major thing I've learned in my hacker education process is just to code and try to solve the problem, even if the code isn't the right way to do it.

And so I wrote the code and, as you can see in the screenshot to the left, the code was super long and verbose, but it worked. Nonetheless, before I went to bed, I shared it on Forrst, admitting the that code probably wasn't the best solution, but it was what I had and that I welcomed any feedback.

The next morning, I awoke to several comments, but one in particular from Kyle Slattery had a much more elegant solution to my problem.

After reviewing the code that Mr. Slattery offered up, I noticed that there was a small problem (it wouldn't show Ohours that happened on Sundays, since Ruby treats Sunday as day 0) and so I corrected his code, reposted it to Forrst, and continued working on my app.

What was amazing to me about this exchange -- and the dozens of other exchanges I've had on Forrst -- is the positive and supportive tone of the community. On the help-desk "communities" I referenced above, the tone is almost always of annoyance; somehow your dumb question is getting in the way of them getting "points" on the system. But on Forrst, people are excited for you and want to help.

And what's to blame for this amazingly vibrant community? Is it luck? As all should take note, this community is not due to luck, but due to Kyle Bragger -- and his wonderful team's -- relentless work building community.

So with the release of Forrst V3, I want to congratulate Kyle and the rest of the Forrst community for building something truly special. With this, I'll leave you all with a fun video from Kyle' (and my) past. If you didn't know, Kyle's blog is called "KyleWritesCode.com", which is a domain he bought after we made this silly video back in the BricaBox days (for my new readers, Kyle was my partner). I guess this video struck a cord with folks, because at the time it got passed around on a few local blogs and, well, the whole "I write code" thing stuck.

(PS: Forrst is invite only -- one of the ways Kyle helps keep the community growing at a healthy pace -- but I have a number of invites. If you're a practicing developer or designer and you think you'd be a positive member of the community, let me know and I'll send you an invite as long as they last.)