Jump to content

Learn a Second Programming Language

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
7 replies to this topic

#1
crazycaw

crazycaw

    Newbie

  • Members
  • Pip
  • 4 posts
I know C, and i want to continue developing skills so, what language you guys recommend?
I dont any fixed objectif or a project with this new programming language

#2
zoranh

zoranh

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 207 posts
I would suggest you to go straight to C++ now. But keep it ANSI if you can. Don't bother with platform-specific stuff, graphics, etc. at the first period, but concentrate on the core.

I would suggest you not to jump into Java/C# at this stage, as you will eventually find out that you lack fundamental knowledge, and that would hurt.

#3
abzero

abzero

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 217 posts
Do you know any other languages?

There are two directions from C, down and up. Down into assembler, Up into Higher level languages.

I would say, from C, learn somthing like Java, or maybe Scalar to understand OO. Then learn C++ to understand how you can merge C style with OO. Then from there I'd say try either Haskel or Prolog - to really blow your mind.

#4
crazycaw

crazycaw

    Newbie

  • Members
  • Pip
  • 4 posts
zoranh why not Java?
abzero only C, and why Java?

:P

and you do you guys think abou scheme?

#5
zoranh

zoranh

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 207 posts

crazycaw said:

zoranh why not Java?
abzero only C, and why Java?

:P

and you do you guys think abou scheme?

Java and C# protect coder from many low-level things (most notoriously: the heap). But also provide a lot of useful classes that in C++ you have to code yourself - hence the learning component is more accented in C++ than in Java.

For example, in C++ you will have opportunity to code arrays, lists, trees and other data structures, even though you can use some third-party library with those (like STL). If you get to coding GUIs in C++, you'll find yourself deep in the operating system calling APIs, handling OS messages, etc.

But in Java and C# you just won't have a motiv for all that plus many things will be effectively hidden from you, as huge frameworks come with the language.

#6
abzero

abzero

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 217 posts

crazycaw said:

zoranh why not Java?
abzero only C, and why Java?

:P

and you do you guys think abou scheme?

Pretty much for the same reasons as zoranh, but in the opposite.

You already know C, so most of the low level details you should be familier with. I.e. memory management etc.
So going two C++ will envolve two things, learning OO and learning how C++ implements it.

The problem is that C++ will allow you to program like C, and it's easy to start creating an 'OO' code which is really C code. So my advice would be to go learn Java (or as JCoder points out scalar which is very OO orientated) mainly to learn OO coding. Once you have that understood go back to C++ and learn how it implements OO concepts - (then read all the Meyers books on C++.)

Data structures, algorithm etc can all be done in C anyway so that's not why you need to learn C++.

Once your've learnt these to, try a completely different language like Haskel or Prolog - they are totally different to C variants and it's worth having a go.

#7
crazycaw

crazycaw

    Newbie

  • Members
  • Pip
  • 4 posts
and scheme with SICP book? is recommended?

#8
opwuaioc

opwuaioc

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 216 posts
My vote is also for C++, because it's so widely used and is great to build up to object oriented programming, whilst Java forces it on you.

What do you plan on doing?
Something witty here.