The Joy of Coding

38 points by jfc ↗ HN
Last year, I thought of an idea for a mobile app and decided to code it myself. This is significant because my prior programming experience was limited to some PHP, along with HTML and CSS. I hadn't worked with Objective-C before and I am a self-taught programmer--I knew I was in for some work.

So I signed up for O'Reilly's Safari bookshelf and added some books to it (several from Apress) and started reading.

Next thing I knew, I was building some basic-level apps. This gave me the confidence to build more complex apps, so I tried my hand at some more challenging tutorials. I was so engrossed in coding that I would routinely look up to find that it was 1 or 2am. In the morning I would wake up, make sure my laptop was charged and get cracking.

This went on for 2 weeks (mostly over the holidays) and then I realized that I had other matters that needed my attention. After missing an important phone call because I was so distracted with coding, I wondered if I should set up an Automator task to remind me of appointments (I eventually caught up with the person and everything worked out great).

These days, I am reading up on OOP and writing up use cases. And I'm still coding. All this in addition to the work I normally do.

I gave coding an inch and that sucker took a mile.

I guess the point of this is to say (and of course you all know this already) that coding is awesome. On some level, I knew this from my previous programming efforts, but OOP has opened my eyes to a whole new world of coding. Now that I've gotten started, I can't stop.

I wish more people understood the joy of coding.

JFC

P.S. I know that coding, like everything else, has its downside, but let me enjoy my coding honeymoon for a little while longer, okay?

P.P.S. I've built over 30% of my app at this point.

16 comments

[ 1.4 ms ] story [ 42.2 ms ] thread

  > P.P.S. I've built over 30% of my app at this point.
The other 130% will take 50 times as long ... <grin>
So true. "We're 90% done, with 90% to go." :)
Yeah, starting to see that.
Some advice?

Pick a date and release it whatever state it's in.

I've been at this for about 10 years now, off-and-on.

These past two weeks I've been stuck in the grind with a mountain of projects, just growing tired of clients and growing scope and blah, blah blah.

Seeing your enthusiasm is helpful to me. It reminds me why I started in the first place. I do love what we get to do, and I hope you file what you've written away and look back on it from time-to-time to remind yourself why you're doing what you do.

Merlin Mann and Dan Benjamin have a great podcast out called "Back to Work" (http://5by5.tv/b2w), and Merlin had a great part around 20 minutes of episode 4 where he talks about getting bummed by deadlines, and by how much work he has to do, and how hard it is, and then he says:

"Then I caught myself and said 'waaitaminute', I dick around on the internet for a living and write about whatever I want. Oh my God, I am so not allowed to be that sad about this. If I can't figure out how to be happy doing what I'm doing, I might as well give up."

Good reminders. Thanks for posting, and for your enthusiasm. :)

Appreciate the comment. Will definitely check out the podcast.
One thing I like about coding is the projects that are hard that you actually finish. I struggle with these, not understanding, fighting bugs, and just going slow in general. But I keep at it. At some point I look back and I see I've actually coded something that very nearly works like I wanted it too. That is very satisfying.
Ditto. It's a great feeling to see an application that I've coded actually do what it's supposed to do. My second favorite thing is when an error message disappears.
congrats, dude.

its turtles all the way down from here.

I agree. I run a service business, but am constantly learning new languages, recently using Python to script access between Endicia (US postage app) and Fishbowl (inventory/ordering app).

And unlike surfing, a crowded field can be useful, so no need for a "coding sucks, don't try it" bumper sticker.

The more you code, especially in mobile, the more you realize that there is a better way of doing things. It's ok to throw away old code and start over. That's part of the fun. Otherwise, we'd be copy and paste monkeys. I've personally gone through six or seven iterations of how to deal with UITableViews.

Watch the WWDC sessions. Or if you do Android, watch the Google I/O sessions and study their methods. It's fascinating and interesting to learn from people whose main passion (and day job) is making app code more efficient, more responsive, or a better user experience.

WWDC10 session #104 "Designing Apps with Scroll Views" is an amazing look into how Apple's own Application Engineers make iOS apps. You may not ever work for Apple (most people aspire but probably won't) but engineering code like they do will be a subtle way to differentiate your product from the unwashed apps out there.

The more you learn about design, the more valuable you will be. The best coder I know is a better designer. And that is saying something. Strive to be a better designer than coder and eventually things will balance out. Anyone can code - that is a commodity - but being able to code and craft a beautiful user experience - that is something quite rare.

Good luck and keep going, do it for the journey not for the paycheck! Even if you don't get paid, it's an investment that will pay off.

Appreciate the advice and resources. Really good call on the WWDC sessions; am planning to watch a few of them later on. I've got alot to learn, but it feels good trying.
Which of the books you read for learning iOS would you recommend?
I've tried a couple of the books. First used Beginning iPhone Development, from Apress, then looked at some others in a bookstore. The problem I found with all of them is that they teach you a few specific things to accomplish common tasks (clickable button, lay out data in a table, etc) but once you want to get more complicated, you're digging into Apple's documentation to figure out how to do it. Once I got to that point, I realized that Apple's documentation is actually pretty good, so I've given up on the books and started just using Apple's stuff. Once you get used to the official documentation, when you want to go back for more details you're going to the master source that has all the information, not just a book chapter with some high points. You have to be a registered iOS developer to have access, but if you want to release to the App Store you're going to have to anyway.
If you love the language you're coding in, the honeymoon may never fade. Get me working on some old school C or Python and I'll have the same problem. "Crap, its 3am...did I eat?"

Keep at it! I hope you keep enjoying it.