Hacker News new | ask | show | jobs
Got a web idea ,cant code weblangs: How to pick 'em up
5 points by sohamdas 5557 days ago
Hey Folks,

I had been programming for quite some time, but I have coded most of the parts on C,C++ and Assembly(yes, assembly for ARM for coding crypto algos) So as you can understand, I dont have much experience in web based technologies.

So lets say, I want to be self reliant and start coding on my own. How do I start? :)

3 comments

Since you already know C/C++ I'm willing to wager you are able to pick up Python or Ruby in a few days if not less. Both have frameworks quite well suited to web programming (Django or one of the other WSGI frameworks for Python) and obviously Rails for Ruby. Personally I prefer Python's syntax and community, but other then that the differences with Ruby are fairly trivial.

I would recommend against going with PHP (especially) since you say you already have coding experience. As such the usual "PHP is easier to learn" argument hardly holds and I think the more consistent style of libraries is more pleasant for experienced programmers.

Thanks merijnv,thanks for the inputs.

To be frank,I never did start with PHP, but yes I did flirt with Perl. I know a bit of Perl,(though embarrassed to admit,I lost my patience with Perl midway)

As for Ruby, I strangely had the impression, that I can't attempt at it, without knowing PHP and others.

So anyway for RoR or Django, do I need to learn Ruby and Python respctively to start over, or can I jump straight to it. I have coded in C# and did some personal db work in MySQL . If that helps.

In my opinion it should be perfectly possible for someone with C# and C experience to start learning Python and Django at the same time (you can go over the tutorial at docs.python.org. in a handful of hours tops and that should be plenty to start), I personally have no experience with Rails, but I imagine the same applies.

(Also, the #python IRC channel on FreeNode.net is a truly excellent community!)

The way I started on PHP was choose a basic project, like writing a simple CMS or forum. This will give you basic database and (if you do it right) OO experience. Also, don't buy I book for PHP. I've working freelance PHP jobs for about five years now and I've never owned a book. There's more examples online that you'll know what to do with.
I am stunned. Is a simple CMS a basic project for PHP? I must admit I dont know much about it, but then Php looks incredibly powerful
PHP is powerful, it just isn't the new tool on the block, so it isn't as popular. Like what has happened to Perl.
This answer won't be popular here. If you're well-versed in C++, a jump to Java would be less of a cognitive leap than a jump to the dynamic / duck-typed languages that others have cited here.

Java has some excellent web frameworks. My personal favorite is Wicket, but there are many others.

You mean duct taped languages? Sorry for being pedantic.

Yes, I did hear many good things about Java as a programming language, right from my grad days. C++ is not a pure oops, java is a pure oops, and some other cool stuff.

As I understand, going to Java will be "grammatically" approach but Django and RoR will be a quick and dirty way. Am I right?

No, I meant duck-typed. A lot of languages popular with the HN ooh-new-shiney-language-of-the-month crowd use duck typing.

http://en.wikipedia.org/wiki/Duck_typing

Also, Java is not pure OOP in any real sense of the word. It still has primitives, and plenty of other reasons.

All I was saying that if you're accustomed to statically-typed languages with pointer/reference passing semantics and limited FP usage, the manner in which you think is likely to mesh better with Java. And in that sense, you'd probably be more productive out of the gate with it than with Ruby.

Or maybe not - learning about servlet containers and how Wicket overlays it, and Wicket's own component-oriented stateful approach could be fairly steep.

This is not an easy question to answer, and is almost entirely dependent on your experience and disposition.