

The Joy of Coding - jfc

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.<p>So I signed up for O'Reilly's Safari bookshelf and added some books to it (several from Apress) and started reading.<p>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.<p>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).<p>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.<p>I gave coding an inch and that sucker took a mile.<p>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.<p>I wish more people understood the joy of coding.<p>JFC<p>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.P.S. I've built over 30% of my app at this point.
======
RiderOfGiraffes

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

The other 130% will take 50 times as long ... <grin>

~~~
jfc
Yeah, starting to see that.

~~~
RiderOfGiraffes
Some advice?

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

------
stevenbrianhall
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. :)

~~~
jfc
Appreciate the comment. Will definitely check out the podcast.

------
wallflower
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.

~~~
jfc
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.

------
JoshCole
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.

~~~
jfc
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.

------
raintrees
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.

------
jefe78
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.

------
cicatrix_manet
congrats, dude.

its turtles all the way down from here.

------
Cockbrand
Which of the books you read for learning iOS would you recommend?

~~~
kleinsch
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.

------
pavel_lishin
PHP is the gateway drug. Welcome aboard!

