Please tell me how to make a choice

i ask few people for what kind of programming language is for a beginner
and now i know programmimg can be list in 3
that is web development
Application Programmer
System level programmer

and i think my favorite would be application and web development
so there are some people told me that c++ and c is basic
learning other will be easy if based on c or c++
so my question is
1) i am beginner i should learn c or c++ or java ?
2) is there any book recommend so that i can buy one, from amazon etc
3) is there anysite or forum for beginner ? learning with each other
i decided to learn java, can anyone recommend me a book for a total beginner ?
i doesn't know any language at all, nothing at all
please recommend me a book that sell in amazon.com
You made some mistakes:
1.) You came on a C++ forum asking what language would be best to learn. C++ forums tend to collect lots of people who forget about what it's like to be a complete beginner at programming. (I, by no means, make this statement about EVERYONE I asked for help on here, but there are quite a few people I have talked to on here such that, the nicest response they can give to a beginner's question is none at all.)

2.) -Insert person here-'s opinion shouldn't be the determining factor as to what programming language should be learned first, or even what choice to make. People vary. Some people, such as myself, would recommend spending a few months (or so) in the land of "magic fairies of Python" (my teacher's way of describing Python) or with Basic (a high school love that I just completely forgot about). Then, I would recommend stepping into this realm of C++. (There is alot of stuff going on here that, without a proper introduction, would be -very- elusive.) On the other hand, there are people that argue that you should learn a detailed object-oriented language like C++ first. It's like martial arts, there can be hundreds of styles of the same parent style. And there is a vast variety of these parent styles such that they are categorizable into big groups. You just have to find your own :)

3.) If you want to learn C++, this IS a forum for that. (There are others like this one like cprogramming.com).

As for reading material, I would check out the following sources:
-C++ How to Program, Fifth Edition (or some earlier edition) by Deitel
-Programming -- Principles and Practice Using C++ by Bjarne Stroustrup (creator of C++)
-this online Python book: How to Think Like a Computer Scientist: Learning with Python http://openbookproject.net/thinkcs/python/english2e/
-Java How to Program by Deitel
A source for some parts of your CS journey: http://en.wikipedia.org/wiki/Programming_languages

I hope this helps (alot) and good luck on your journey!
Last edited on
Well I think C first is the easiest to understand of the 3 because of it's lack of OOP. C++ is a bit more complicated because of the introduction of OOP and templates, not to mention the backward compatibility to C. So you can still use C in your C++ programs which can cause some confusion what to use if you're not sure which is pure C and which is C++.

Lastly, Java may be ok to learn, but it would simply confuse a beginner because everything is object-oriented, and object variables are references so that might be somewhat confusing if you don't understand pointers. So there will be somewhat of a learning curve because of the things Java forces on you.
Last edited on
I'd reverse the order, to be honest. Java is easy because it hides all pointerbusiness. C++ allows you to avoid all pointerbusiness with pre-made containers and algorithms. Proper C will require understanding of pointers to get anywhere.
I guess that does make sense as well. Personally I find that most beginners find understanding the syntax first difficult, and since in C there is less syntax to worry about it usually helps beginners focus on what they need to know first.

For example, in Java a simple hello world program would look like

1
2
3
4
5
6
7
public class HelloWorld
{
    public static void main(String [] args)
    {
        System.out.println("Hello World!");
    }
}


It seems to me most of the problems beginners encounter and ask about that kind of program is what is the meaning of public, what is the meaning of static, what are the String [] args. If they can do without those things? Also certain concepts about the braces, most get that wrong and end up placing main outside the class instead. Then they start asking about the dot operators in the System.out.println. Most usually don't understand that the dots are important, and it's difficult to explain why they are necessary without going into more detail too. That's just my opinion though.
Last edited on
Topic archived. No new replies allowed.