

Got a web idea ,cant code weblangs: How to pick 'em up - sohamdas

Hey Folks,<p>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.<p>So lets say, I want to be self reliant and start coding on my own. How do I start? :)
======
merijnv
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.

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

~~~
merijnv
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!)

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

~~~
sohamdas
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

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

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

~~~
sohamdas
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?

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

