Musings

In defense of doing it the “hard way”

When I first heard the idea of Codecademy and other online teach-me-to-code websites, my first reaction was to tell my friends “well, in a couple of months there will be a lot of disappointed people who thought it was a magic bullet, but still can’t actually write an app”.

Now I’m seeing tweets that prove it. The problem is that people got the impression that they’d be coding wizards at the end of the courses, and that’s not true. These sites are definitely a great way to see what coding is all about and to learn about some fundamentals so that when you do start building something, you have a good idea about where to start/what you’re looking at.

The only way to learn something properly is the hard way. The only way out is through.

The method that’s worked best for me, and that I recommend to anyone starting out, is to try to build something that you want to see made as your first project. You might fail, but you might also succeed. Either way, you’ll be learning in the real world, which is full of pitfalls, incompatibilities, and challenges, unlike parroting code back into a web browser.

I’ve been writing code since I was in 3rd grade. Basically, once I discovered programming, code became my LEGO blocks, and I’ve been building all sorts of (hopefully) useful apps ever since.

My first Ruby on Rails app was the first version of Hngry (which has now evolved to be an iPhone app with a Rails backend), back in 2006, and it took me crazy places. From that one app, I got job offers, flown to New York for meetings about it… it was crazy. I’ve released other apps to a whimper in the market. Sometimes you win, sometimes you don’t! Since then I’ve released numerous Rails, PHP, and iOS apps: http://shiftedfrequency.net and http://madewithsense.com hold links to most of them.

I didn’t do it alone, though. I was helped by kind people who had nothing to gain from helping me other than the good feeling of helping someone else. I had nothing to offer them.

I’d like to say thank you to a few of them:

Madeline Benjamin (primary/elementary school computer teacher, introduced me to the Apple IIe, IIGS, IIc and the Macintosh)

Ron Dupuis (high school computer science teacher, he pushed me further than anyone had before, and by the time I was a senior I was actually teaching the web development class at school)

Jeremy Cowart (now photographer to the stars, but then he was the co-founder of a web design/development company, he introduced me to…

Jeremy Pinnix, his coding counterpart at Pixelgrazer, who was very helpful in getting me pointed in the right direction as far as learning Ruby/Rails was concerned).

Erik Benson/Buster McLeod/Buster Benson (now at Habit Labs, when I “met” him he was over at The Robot Co-op, where he was a co-founder. His name has changed over the years, but he hasn’t seemed to, and that’s a good thing. Over an extended period, he patiently answered a ton of what were probably the simplest questions to him about Ruby/Rails, but that helped me greatly along the way.)

But I digress. I’ve mentioned these people above because I feel like the best way to learn to code comes down to this:

  1. Have an idea.
  2. Find out what you’ll have to learn to build it.
  3. Ask people who have done it before what books they’d recommend. (For Rails devs, I’d recommend the latest version of Agile Web Development With Rails. I built the first version of Hngry while working through the first edition of that book.. I even got the co-author of the book and creator of Rails, DHH  to sign it when I met him at RubyConf, which was pretty awesome because that was definitely the book that taught me Rails.
  4. Work through the book(s) while you build your idea.
  5. Ask questions from someone who has done it before. They’ve been through it before and a lot of them are willing to help you out if you respect their time and ask direct questions. Don’t abuse the privilege, ask them when you’re really stuck, don’t understand a concept, and you’ve done the research.

 

I’d like to close with this: If you have a Ruby or iOS question and you’re at Step 5 above, hit me up on Twitter. I’m glad to help if I can. The people above helped me, and I try to help others in the same way.

The Nest thermostat, with additional intelligence?

I don’t own a Nest thermostat, which is weird for me. Normally I’m the guy who’s first in line to buy a new gadget, but v1 of a thermostat just didn’t push the right buttons for me. Now I’m glad I held off, mostly due to the problems I keep hearing that people are having with them. Not really sure I want the first-generation model of a product that has the ability to affect one of the largest monthly bills that I have if it malfunctions.

One issue in particular that was talked about at length by Marco Arment on Build and Analyze recently was the fact that the Nest tends to learn the wrong things sometimes if you do the same thing a couple of times in a row. I think that maybe it’s just because the Nest doesn’t have enough information. It knows time of day, what temperature you normally set at on that day at around that time, but what if the day is unseasonably hot or cold?

It seems like they could include a wireless thermometer that could find out the temperature outside and use that as a variable in their calculations: for instance, if the Nest knew that you normally set the heat to “on” and the thermostat to 74 when it’s below 70 degrees outside, but that you set the AC to “on” and the thermostat to 70 when it’s above 70 degrees outside, that would be a lot more useful. They might even be able to pull the current weather conditions from a weather API, because the Nest already has WiFi.

I know, I know, I’m armchair product designing here, but I’d love to hear about something like that in an update to the Nest, and find out how that works.

I hate calling tech support.

They’re such a waste of time for anyone who is technically proficient, because you have to make it past a series of inane questions/directions like, “Is there a router connected to the cable modem? Is the TV hooked up to a surge protector? Please check to make sure there are no loose connections. Please connect the TV to a different power outlet.” Generally, people pay me to troubleshoot things, If I’m contacting tech support it’s because I’ve researched the issue, went through the trouble of troubleshooting it, and what I need now is to talk to someone who can fix the problem or replace my device.

I understand that these things have to cater to the lowest denominator, intelligence-wise, but I think there should be an option to skip all of that if you’re a technical user. Just give me a checklist and ask if I’ve already done everything on the list, then let’s skip to fixing the problem, pretty please?

Steve Jobs, man.

Since rejoining in 1997 to the day he died, Steve Jobs did not sell a single share of Apple stock.

Talk about putting your money where your mouth is.

There will never be another Steve Jobs, and that saddens me to no end.

Mission Impossible 4: The future is now.

POSSIBLE SPOILERS

The day after Christmas, my family wanted to go out and watch a movie. Everyone agreed on Mission Impossible 4. Some of us were more excited to see it than others (I am pretty much against everything that has Tom Cruise in it these days), but I was pleasantly surprised. It was a very watchable movie and I forgot for awhile that Tom Cruise is Tom “Crazy as Hell” Cruise. It was Brad Bird’s (director of Pixar’s The Incredibles, Ratatouille, The Iron Giant and others) first turn behind the wheel of one of these movies, and he did a great job, managing to throw in more than a few A113 references and make a movie that seemed at least somewhat grounded in reality, unlike MI:2.

JJ Abrams couldn’t direct this time, but he did manage to get some veteran Alias writers to write this script, and I’m sure that helped a bit too. He was listed as a producer though, which is probably why I noticed at least one reference to 47 in the movie.

The thing that stuck out to me more than anything else though, was the use of real-world gadgetry. In spy films and even just general tech-based films in the past, they would contain some sort of fake technology that looked futuristic but which was completely fake, especially to anyone who uses gadgets every day. That wasn’t the case here. In MI:4, they’re running around with MacBook Airs, iPhones, and iPads, and they’re using the real interfaces on these devices to flip through blueprints, make phone calls, listen to secret messages and project video (I’m sure that bit with the moving hallway would be a bit of a drain on an iPad2′s 1Ghz processor, but even that tech (where a video image tracks your eyes in real time and adjusts your view in 3D) is within the realm of possibility now). Crazy.

The future is now.

About

I'm Richard Felix. I have been making fun and useful things on and off of the web since 1996. These days I'm one half of Sense Labs and I do my own thing at Shiftedfrequency.

Why is this site named accidental/ninja?
I'm a pretty quiet person and I have a tendency to walk into a room, not be noticed and then begin talking to someone who didn't know I was there and scare their pants off.

like a ninja, but accidental.

Instagram


Tweets

  • @WizardWorld Any idea when the Patrick Stewart VIP tickets for New Orleans will go on sale? Right now, link broken: https://t.co/kpS5MU02
  • I really dislike blog posts that summarize the blog post they're linking to.
More Tweets →