

After c/c++ what should I learn? - yearsinrock

I had c and c++ in my 2nd year's CS semester.
what programming languages should i learn after these.should i strengthen my skills in these languages again or should i try learning other prog languages?which ones are useful for web development?
What if i wanted to develop a small website all by my own ,then which languages do i require to learn?
======
jm4
Perl is a good language to know. Hear me out before you mod me down into
oblivion! I'm not much of a Perl developer. At work I use Java. For personal
projects I like to play around with the "cool" stuff like Python, Lisp or
Ruby. For me, Perl is great for all the stuff in between.

For my entire development career, no matter what language I'm using, I've
found myself using Perl on almost a weekly basis for little adhoc scripts.
Generating test data? Text processing? Quickly automating some tedious task?
Perl to the rescue. I guess if you know Ruby or Python you could do the same
thing with those, but Perl is almost everywhere and you have all of CPAN at
your finger tips.

Even though I'm not developing my applications in Perl I consider it one of my
most crucial tools that I can't live without. I think every developer should
have one of these and with its ubiquity and CPAN, a strong case can be made
for Perl.

It also doesn't hurt that there are plenty of jobs out there for good Perl
developers. We've all seen terrible Perl code and heard the jokes, but the
fact is there are some very large Perl projects (some very high profile) being
worked on by some smart people. Sure, Perl has its warts, but it's incredibly
useful and a little discipline will go a long way.

There's my case for a practical language... If you want to learn something
that will fundamentally change the way you think about programming then learn
Lisp. I read the PG essays, the Eric Raymond stuff, etc. and decided to take a
look. Eventually, things just clicked and it gave me a whole new perspective
on the languages I already knew.

------
Maro
In my mind, the three major branches of programming are imperative (C/C++),
functional (LISP) and declarative (SQL, PROLOG). A lot of people will tell you
to look at LISP, and they're right, but also look at PROLOG. It too will
expand your mind.

------
smono
for me, python is still the most fun language - and it gets you into webdev
via django nicely (used in <http://code.google.com/appengine/>)

------
sanj
Scheme, using SICP. It'll stretch your brain.

------
andrewparker
Learn the guts of an OS (preferably *nix). Build an OS yourself in an OS class
if your school offers it. You'll be surprised how important this knowledge
will be in building/scaling web services. And, this skill set will be more
valuable than just learning the same paradigms you already know in a new
language.

------
lpgauth
I think it's a great thing you did some c and c++ as I only skimmed over c in
class and mostly done all my classes in Java (writting a compiler in java -
gah!). Did you like it? I have done a little c++ on my own and there is so
much to learn I was overwhelmed by all the libraries you need to know if you
don't want to be writing c in classes (boost , std, etc).

As for web language I love ruby (and rails as a framework) so I'm kind of bias
but try learning python or ruby or if you feel like suffering (I find it too
old school (I'm not trolling)) some perl (which as a huge community - CPAN).

Also, try looking at a functionnal language if you haven't in class (I learned
Standard ML). It really helps to graps some concept that are harder to
undertsand with `clunkier` languages.

I kinda went off track but hopefully this helps.

------
gravity
Pick one that's generally associated with web stuff. That's pretty much Ruby,
Python, Perl, Java, and PHP these days. Take a look at all of them on the
surface level to see what's interesting to you, and just pick one and go.

Given that you already know C and C++, I'd learn Perl, Python, or Ruby, since
they're a very natural extension of C and C++ and can be used very easily in
problem domains where you wouldn't want to use C or C++. Learning more than
one of these may prove useful if you want to hack on a variety of different
open source codebases, so whichever one you pick first isn't so important as
picking one and having it in your toolbox.

------
alexk
Learn LISP - read SICP.

------
biohacker42
Expand your mind, learn Lisp.

~~~
yearsinrock
what do u exactly mean by expand u r mind?

~~~
icey
I need to give you a lesson that is going to be far, far more valuable to you
than another programming language.

If you want to go far in life, use words like "you" and "your", instead of
things like "u" and "u r".

People will never focus on your linguistic skill for being correct, and
they'll always secretly question your intelligence for using the latter.

~~~
PieSquared
And sometimes not so secretly, too. Good advice, good advice.

------
noodle
this is a toughie to answer. it really depends a lot upon your situation.
first, its always good to become more proficient with the tools in your
toolbox.

i'm assuming that, by posting here, you're looking at web development. here
are some languages useful for web dev: python, php, ruby, perl

if you're looking to expand yourself as a student and coder, consider looking
into these: lisp, ocaml, prolog

if you want to graduate with a decent corporate job, take a look at these:
java, pl/sql, cobol

~~~
yearsinrock
thanks for the classification

------
andr
If you are looking for a language that will expand your programming horizon
try Scala (closer to C/C++), Lisp or Scheme (both very different from C/C++).

------
vineet7kumar
In my opinion, as a student, you must concentrate on subjects like Data
structures, Algorithms and Operating Systems (If you have already done a
course in these then go for advanced levels). They are the foundations.
Moreover a semester is way too less for C/C++ . Once you have a good grasp on
C/C++, learning most of the other languages will be fairly easy.

------
omouse
I wanted to say Lisp as well, but if you want to tackle web
development...there's this web "framework" called Seaside that's written for
Squeak Smalltalk and there's a one-click package meaning that you click, it
loads up and starts a web server and you start messing around with it.

<http://seaside.st/>

------
globalrev
yous tudy CS and only studied programming in the 2nd year?

What languages do you know more?

Id say go functional, entirely different, mindexpanding and might be very
important in the near future because of concurrency/parallellism.

Erlang, Clojure, Common Lisp, Scheme.

~~~
yearsinrock
no i had other subjects like comp org,data strucutres,microprocessors
,graphics.

------
xenoterracide
depending on what you want to do dev wise you should strengthen your skills in
these by working on actual apps in them. Get involved with a favorite open
source project in on of these languages. School doesn't generally teach real
world coding in my experience.

------
j2d2
pick up emacs or vim while you're learning a new language!

------
ahold
Learn language which can be easily extended by c/c++, say python, php or ruby,
so you can continue to improve your skills in c/c++ and learn new language at
the same time.

------
kingkongrevenge
It is unlikely that you know C++ to a professionally useful depth from one
semester. It's also fair to say C++ expertise is more employable, and in more
diverse and interesting domains, than the dynamic languages.

As best I can tell Perl, Python, and Ruby are all practically equivalent. All
equally suited to web development. Just pick one. I don't think it's
unreasonable to claim that Perl is still the most likely to be professionally
useful.

I never got the lisp propaganda. I invested some time with scheme and didn't
get much out of it. Yes, I wrote macros and used call/cc. The most useful
idioms are in fact already available and used in the so-called scripting
languages. IMHO, your time is better spent completing good projects with rock
solid libraries than futzing around with the language fetishists. Maybe there
are some deep insights from Haskell I'm missing, but I seriously doubt it.

------
sarvesh
That would depend on what you would want to work on in the future. In my
opinion you should try getting hold of 8085 Kit and do a bit of assembly. You
should also try one of the functional languages(Haskel, LISP or XSL
Transforms). If you want to do web programming you should look into Python and
C#(ASP.Net).

------
Allocator2008
Java is the language for a lot of web-based "portal" applications. You might
go to a book store in the computer science section and look around for books
on Java and web portals. This topic includes related technologies such as XML,
and XSLT.

~~~
yearsinrock
and how is ruby

~~~
ashleyw
Ruby is a nice language, its known for not being the fastest language, but its
still very nice...its currently my favourite web language.

Or maybe even PHP? The problem with PHP normally is people jump in without any
previous programming experience and say they have mastered it in 6 months -
when in fact they know barely anything. You obviously have a good programming
background and would use it properly.

