
What coding language should I start with? - SRSimko
I know this will sound like a real vague question but I'd like to learn a coding language.  I know a little html and CSS but really, not much.  What would be a good place to start?  I was considering LAMP or Ruby.  I know someone will ask what do I want to do with it.  Well, right now it's just to learn but I want something flexible that won't handcuff me.<p>Thanks
======
zedshaw
You can try my free book I'm working on:

<http://learnpythonthehardway.org>

Go through each less, spending a week or more on each one if you need to.
Contact me any time if you run into problems (@zedshaw on twitter is best).
I'm not totally done with the book, but you shouldn't run out of exercises for
a while.

~~~
chime
That looks like a great book. Thanks!

------
kls
If you are going to try to use it to earn money and you are looking for the
shortest return on investment, JavaScript hands down.

If you just want to learn programming and logic for the pure interest of the
subject, then personally I would go with C or assembly, and tinker with
embedded stuff.

OO Java or Python.

So as you can see, it really comes down to what you want to learn it for. I am
making an assumption that by mentioning LAMP and Ruby that you are looking for
web languages? If that is the case then Ruby, Scala or PHP will suffice.

But, take note, with the way web apps are moving JavaScript is your best bet,
as more and more people are dumping the server side web templating languages
and implementing their view logic in HTML / CSS / JavaScript.

Personally if I where starting out, I would learn how to build the front end
with HTML / CSS / JavaScript and then learn how to implement REST services to
supply data to that front end, in one of the aforementioned languages.

~~~
SRSimko
Thanks for the advice. I'm not really expecting to earn money working with it
as a job but more to tinker with on personal projects. Do you have a
recommendation for a good JavaScript book?

~~~
Daniel_Newby
JavaScript: The Good Parts <http://oreilly.com/catalog/9780596517748>

~~~
SRSimko
Thanks

------
M_Sanger
I'm learning how to code right now too and it's been frustrating to find
resources that truly start at the beginning without assuming you know things
from other languages. Right now I'm looking into using Google App Engine and
python and these are the best resources I have found:

-MIT open courseware offers a FANTASTIC introductory course using python with video lectures which are nice since I get tired of reading 600+ page books. [http://ocw.mit.edu/courses/electrical-engineering-and-comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/)

-Another resource that I found very helpful is a book called Head First Java, I'm not really into Java but the first few chapters give a great overview of Object Oriented programming. I wasn't sure what the difference between a class and object were, and I was unsure about other very basic questions. This book answered all of those questions, and it's written in a very entertaining style.

-I'm also reading a book called "using Google app engine" also starts from the beginning, and introduces all the technologies that go into Google App Engine. I found that book on gigapedia.org btw.

-I tried zed shaw's learn python the hard way book. I've only done the first few examples so I don't have an opinion on it yet. But so far I think it's a good resource for short little exercises to learn your way around python syntax, but I definitely needed more of a programming background which is where all the other resources I mentioned above fill in the gap.

by the way i would definitely recommend python over other languages I've
looked into because at least as a beginner, python syntax isn't complicated to
learn. But if you are interested in learning say Java, there is a Stanford
online course that might be good, so just look at their online course
offerings.

A final python resource which I found was Guido Van Robot where you basically
control a robot in a maze using python. I haven't looked at it too closely yet
but it seems entertaining and helpful for the beginner. If you're familiar
with Karel the Robot, Guido Van Robot is the exact same thing, except using
python. <http://gvr.sourceforge.net/>

~~~
SRSimko
For some reason it didn't occur to me to look at some of the resources avail.
through Universities. I will be sure to check out your suggestions.

For those interested in Ruby I did find a free book on Ruby and after glancing
through a few pages it seems to be written in an interesting way with funny
references.

[http://en.wikipedia.org/wiki/Why%27s_%28poignant%29_Guide_to...](http://en.wikipedia.org/wiki/Why%27s_%28poignant%29_Guide_to_Ruby)

------
SRSimko
Thank you all for your insights, I've basically learned that their in no right
or wrong answer. A big part come from just stepping up to the plate and giving
one a go and see where it leads. It sounds like it will lead to learning
different languages when I want to do different things. If I heard correctly
over time they all become easier to learn because you have the fundamentals
under your belt.

Yesterday I talked with a friend at Jaspin Interactive and he added some
insight into the open source vs commercial coding, pluses and minuses and
front end vs back end. Which helped a lot, because knowing what you plan to do
down the road most definitely will help your decision.

So here is my plan I'm going to learn the front stuff a bit more HTML, CSS and
JavaScript and then move to the back end. I will most likely go with something
opensource and see what sticks.

Thank you all for the help.

Scott

------
statikpulse
Since you are already working with HTML/CSS I would definitely start with
Javascript, like others have said.

From there, I would start by looking at what your goals are first. Why do you
want to learn? Do you want to build something for yourself, or others? Is it
just for fun or do you eventually want to get a programming job.

For example if you want a good job in my hometown, you end up working in
Government. So if someone were to ask me what the best language is for them to
get a job, I'd say look at the .NET framework (which is what the majority of
our Government uses).

Personally if I just had to throw out a language, I'd say Ruby.

------
donniefitz2
If you are teaching yourself a language, I think it's most important to gain
an understanding of the general concepts of software development.

So pick a language (I learned with PHP years ago) and stick with it knowing
that you can expand later.

Once you have a foundation of the concepts of software development, you can
move around and use different languages and you'll pick them up pretty easily
because you will then be working mostly with different sytax.

I wouldn't worry too much about being locked into the language you learn with
but I think PHP or Ruby would be good choices.

~~~
SRSimko
Thank you that sounds like good advice

------
atiw
I know I am going to get down voted probably here. But seriously, if you are
starting out, Java might be a very good thing to start with too. As a
language, it's very mature. The documentation is pretty good. I know setup
might be a a little tricky for a noob, but it's not that bad. Although, I
agree, if you are focusing on ROI, Ruby or python, or even PHP are more
inviting. And you can probably do a lot more faster that way.

But for learning things inside out, Java might be a very good choice. Good
books, great amounts of algorithms, in fact great algorithm books too. One
really good one is Effective Java, sEcond edition. Another algorithm related
(short but solid) book is Data structures and algorithm analysis in Java.

Now, don't take me wrong. I might be a little biased, because I find it easier
to do a lot more in Java on Eclipse IDE, than anything else.

Started a startup right after MS, didn't go so well. Still stuck in Dallas,
TX. Would love to move to CA, but immigration issues plus financial burdens.

I started out as a C++ job in my current company that hired me, with some more
AMPL (Mixed integer programming). Read Ruby on Rails book, Agile
programmingusing ROR or something by DHH (David heinemeir hanson). Loved it,
but found ROR a little limiting for what I am doing. But my day job ended up
being in Java. I do prolog hacking, although haven;t really done that in
while. And still for fun, and continuing my startup on side, and completing a
dream of solving a bunch of NP complete problems in seconds, still using a mix
of C#, Excel, PHP, Prolog. Very soon jumping onto Javascript or Jquery
probably, since I wanna move into making a real Web GUI, instead of a C# GUI.

So, yeah after all this, I found easiet and very helpful where C# on Visual
studio and Java on Eclipse IDE. Loved ROR, found it quite easy too, esp the
book is great. For PHP, I still am doing structural coding, although sometime
in future I am def reading PHP Objects, Patterns and Practices .

I wish that would help you pick one. Because you sound a lot like me, I was so
confused in college, no idea where the world is going. Personally, my research
and doing my startup later opened my eyes to the real world. Of course, Paul
Graham essays and HN were so much more helpful too.

Of that reminds me, go read PG's(Paul graham) essays first. I think you need
to understand programming in general first, the startups and then pick up a
language to learn.

Oh, Oh, MUST READ for you....I wish this came out when I was in high school or
early college.

This will give you a little more perspective.

<http://www.paulgraham.com/int.html>

~~~
SRSimko
Great link, Mr. Graham always puts things into perspective. My takeaway just
step up to the plate pick one and see where it leads and if change in
necessary, change.

------
vollmond
Ruby seems like a good choice, given its presence and popularity both in
webapp and desktop app niches, and reputation for being fairly easy to learn.

