Live data from Hacker News

Ask HN: learning web programming vs. tablet programming

news.ycombinator.com

1–10 of 26 posts

Ask HN: learning web programming vs. tablet programming

#1
I am 36 year old with a very well paid and well progressing business career and I am bored to death. The idea of going to the office 9-7 for the next 30 years kills me. And I really believe I have a great corporate job so I now that the issue is having a corporate job.

So I am learning to program, a bit for fun a bit to see if I can start something of my own. The original plan was to learn web programming since I imagined web applications were both fun to develop and the best shot at a start-up. I took up Python and developed a simple file sharing application on Google App Engine (you can see it at myfilesinthesky.com but you don't lose anything if you don't).

Well, thinking about the interface and implementing the programming logic was actually fun. And it took 10% of the time. The other 90% was spent fighting with browsers' quirkiness and with Google App Engine (if I skipped GAE I would have fought with sys admin so not better I suppose). And that was teeth-cringing.

So I am not really sure web programming is that fun after all and the next step would be now to learn javascript to start doing browser-side wizardry which from what I'm reading around looks like as teeth cringing as it gets (ok, cobol programming is worse, I am sure).

And then I read Paul Graham's essays on tablets - paulgraham.com/tablets.html - and I am thinking now that ipad programming can be still promising business wise but much more fun since you have full control of the device and building native apps. No more need to get crazy with browser UI and sys admin stuff!

Before I spend the w.e. of the next six months learning C, obj-C and Cocoa, let me ask you, what would you advise to an aspiring programmer, learn web programming or dive into tablet programming?

Re: Ask HN: learning web programming vs. tablet programming

#3
I would advise you not to go looking for what others think you should do but to start looking at this from a 'problem oriented perspective'.

Find something that you would like to have but that is not currently available and then build that, that in turn will decide for the platform and associated toolchain.

It is much better that way because you can't really make the case for what is 'better' for an aspiring programmer, web programming, tablet programming or any other 'kind' of programming per se. It all depends on what you want to achieve and programming is just a means to an end.

Also, under the hood all 'kinds' of programming are essentially equal (in spite of many religious arguments to the contrary), it's in the end just a way to very specifically tell a computer what you want it to do and in that respect any programming will serve as a way to get better at every other kind of programming.

The more you do it, the better you get, just like with every other skill.

Good luck!

Re: Ask HN: learning web programming vs. tablet programming

#4
I think the keyword here is "fun". You're "bored to death". You don't want a programming career that will too bore you to death.

If you don't enjoy web development, do something else. The tablet could be one way to go, but there are many many others, I don't want to give any specific advise, as different people are attracted to different things.

Find something you really enjoy (which in itself could take a long time - if you're not sure now, you could dive into one field for a while, see if it's for you. If not, move on).

It might sound odd (and people might disagree) but I say don't focus on what's business wise. Focus on finding something you love doing.

Best of luck!

Re: Ask HN: learning web programming vs. tablet programming

#5
First of all, congrats!!! Most programmers never actually release anything on their own. You should be proud.

>> Well, thinking about the interface and implementing the programming logic was actually fun. And it took 10% of the time. The other 90% was spent fighting with browsers' quirkiness and with Google App Engine (if I skipped GAE I would have fought with sys admin so not better I suppose). And that was teeth-cringing.

welcome to programming. programming is the gentle art of staying sane while dealing with the stupid choices of the programmers that have come before you (when you do this long enough, you will start to appreciate the difficulty in making good programming choices.) the deeper your knowledge of a given stack, the less pain you will experience. What's that old saying? "An expert is someone who has made most of the common mistakes in their field."

Some platforms are better than others, targeting one platform is always easier than targeting multiple platforms with the same codebase.

However, iOS programming is far less instantly-rewarding than web programming. It also requires a deeper understanding of the way computers work, because the resource-constrained device does not play well with high-level languages.

I suggest that you learn c, obj-c and cocoa because it will make you a well-rounded programmer. after 6 months, you will then know if you like low-level stuff or web stuff better. if you want to be doing the next thing for 20 more years, it is worth 6 months to determine what fits you best in an empirical way.

Check out http://www.phonegap.com/ you might like it.

p.s. In ui design for the web, put a link to do the thing whenever you talk abotu the thing. for instance, on your home page you say 1. Log in or sign up. you should have those words be the same link as in the upper right. similarly, when you say upload on the left, you could also just have a big upload screen if the user hasnt uploaded any files yet.

Re: Ask HN: learning web programming vs. tablet programming

#6
Well, thanks to software like PhoneGap and Javascript/CSS libraries like jQuery mobile (and many others), writing a "tablet app" is much the same as regular web development.

You can create an app with a native look and feel with pure HTML5/Javascript/CSS, and you can build it as native apps for iPhone and Android, and have it hosted on their app stores with the same codebase.

For platforms that doesn't offer app stores, you can just provide them with an URL to your app so they can use it in a regular browser (also using the same codebase). The development process can also be simplified, since you can do much of the development with a browser, compared to re-compiling for each iteration of development.

There are of course some applications that aren't suitable for being run in a browser, but in many cases you can, and being able to share codebase between all these platforms seems just great.

Arstechnica released their iPad app a month ago, based on HTML5/CSS/Javascript and built with PhoneGap, and they explain very well how and why they did it that way: http://arstechnica.com/apple/news/2010/11/introducing-the-ar...

I would definetely learn regular web development, and not lock myself down to a single platform. Especially with these cool tools like Phonegap.

Re: Ask HN: learning web programming vs. tablet programming

#7
I suggest trying to learn platforms and technologies that apply broadly, at least to start out. That typically means standards - HTML(5), CSS, Javascript, etc. If you create something of value, you will want it to run on the broadest set of platforms/devices possible.

Re: Ask HN: learning web programming vs. tablet programming

#8
Learn both of it. And C is something to know anyways.

Fun in programming is about doing different things, exploring technology and deliver a well-rounded project.

Also, you chose another field which is rather heavy on the GUI side - you will soon realize that ALL GUI done right isn't really something done effortless. It takes much work. Everybody wants to USE good user interface (be it GUI or command line or API-wise) - but few people really like to CREATE them...

And: Web GUI and developing for tablets/touch-based devices are really just two sides of the same medal - what if you need to make a tablet/touch-able Web GUI?

Accept that browsers are strange beasts and get it over with with good frameworks and you'll be fine.

Or choose the middleware or database-side of Web programming - also two good options.

And also learn that "6 months to learn X" literally means nothing in the programming world - there's ALWAYS a "6 months to learn X" ahead of you. Even if you already know a handful of languages very well, have 2 decades of well groomed experience - there's always a subject you know next to nothing about and 6 months isn't really a long period to learn something fundamentally new to you.

Those 6 month will never go away and there is no point you're working yourself up to and then just stop and "be a programmer" :)

Re: Ask HN: learning web programming vs. tablet programming

#9
Go for the tablet using ONLY native Objective C. Don't use PhoneGap.

It will be a good learning experience, you will be able to instantly test the code, and there are no two ways about it. Few hacks or tricky stuff. It's a pretty straightforward platform.

Also, you can easily earn money with this, and the money is purely passive. No server administration, etc. You can finish it, put it in the store and run off for the next year.

Also, you learn about memory management and device constraints.

If you want something even more interesting, consider a use-case like using a tablet to control some hardware (like a lightbulb).

Re: Ask HN: learning web programming vs. tablet programming

#10
Big share of 'fun' in programming comes from exploration (the other big thing, at least for me, is watching how something cool emerges from vast nothingness of void, even if my creature looks like Frankenstein's monster); be brave and courageous, try everything, have a look and feel of the bleeding edge of technology.

Other than that, avoid MUMPS :)

Post reply on HN