Hello everyone,

I'm a high school student highly interested in computer science in general. I've already taken two Computer Science AP classes, both in Java. I took the Computer Science AP exam last year and got a 5 on it, so I'm OK when it comes to Java. Not too long ago I started looking for a college major. Computer Science was definitely my choice, however because I got a tuition waiver from the school I'm going to, I decided to try Computer Security as well (Haven't added that yet. Was thinking about making a post to ask you guys what do you think I should add as a second major, so feel free to suggest. Thank you.) I looked deeply into both subjects and it seems like C, C++ and especially C#(in the future most likely) are widely spread and used. That's where the problem occurred. It's a good thing that I already have experience with pretty much everything when it comes to OOP. I'm well aware of pretty much everything that is essential to OOP: inheritance, polymorphism, abstract classes, structures, interfaces, enumerations and exceptions. I know I'm going to have some courses that will introduce me to those as well as .NET but I wanted to get good at it by the time that happens. Enough history, let's get to the point. What do you think I should start with? I'm definitely going to need a book to read from(and hopefully exercise). I know the ultimate tool would be Microsoft Visual Studio, but I'm not sure if I'm ready to spend that much money on something that I'm simply unable to take advantage of all its brilliant and complex features. So what do you think ? What book? What software? Where should I start? Any suggestion is tremendously appreciated. Thank you all.

Edited 6 Years Ago by aliskov: n/a

Download a free version of Visual Studio and look for the get started section. As for a book, so many good books on C# and .NET exist I could not tell you what is the best.

If you really like using Microsoft provided technology you can download their free IDE's , the visual express editions. I think you're pretty confident enough with your OOP understanding and technically speaking you should not have any problem jumping around from PL to PL if your basic is good. You just need to familiarized the differences of the PL you're currently using.

You need to decide what framework you want to master first if it is java or .net. If you're going with C++ I suggest you familiarized yourself with the Boost Library and GDK. Visit every major site provided by Microsoft , Sun and for C++ Boost and GDK to start programming with the PL they support and you'll find your way up from then on.

By the way I love the web cast provided by msdn and the expert advice from their videos.

If you really like using Microsoft provided technology you can download their free IDE's , the visual express editions. I think you're pretty confident enough with your OOP understanding and technically speaking you should not have any problem jumping around from PL to PL if your basic is good. You just need to familiarized the differences of the PL you're currently using.

You need to decide what framework you want to master first if it is java or .net. If you're going with C++ I suggest you familiarized yourself with the Boost Library and GDK. Visit every major site provided by Microsoft , Sun and for C++ Boost and GDK to start programming with the PL they support and you'll find your way up from then on.

By the way I love the web cast provided by msdn and the expert advice from their videos.

Thank you for the plethora of info. You do however mention C++ as it should be my primary choice? Isn't C# sort of a father to C++ and therefore by learning C# I'll be able to comprehend most of C++? I thought MS created C# using C++? Which one should I start with ? C++ or C#? As far as I'm reading, C# is " the new thing" for all of the modern and sophisticated software out there. Thank you.

I recommend you this book:

http://csharpindepth.com/

Thanks

I will take in deep consideration your suggestion. However, when I visited the website and read some of the info on there, the author states

The book takes a detailed look at C# versions 2 and 3. It assumes a reasonable level of knowledge on C# 1, which enables experienced developers to avoid wasting time and money on material they already know.

I understand where he's coming from, but unfortunately I am not, yet, "an experienced developer". Not even in Java, I would not say so, and light years away from being a C# one. I will definitely keep this book in mind though, just in case I happen to need a reference book in the future. Thank you.

Thank you for the plethora of info. You do however mention C++ as it should be my primary choice? Isn't C# sort of a father to C++ and therefore by learning C# I'll be able to comprehend most of C++? I thought MS created C# using C++? Which one should I start with ? C++ or C#? As far as I'm reading, C# is " the new thing" for all of the modern and sophisticated software out there. Thank you.

I suggested C++ as your primary choice so that you may understand why java and other .net language based their framework and why these languages restricts inheritance unlike with C++ and other stuff from function pointers to delegates and reference type. All of the things I said is more complicated in C++ way but you'll understand the reason behind it if you will dwell deep into programming with it.

It is true that modern language helps you with garbage collection and fancy technologies but that doesn't mean such technology is not available in C++. Rest assured that if you learn the in and outs of pl you'll then understand my reasoning.

Comments
Good points

I'll think about it and see what other people have to say. Thank you.

hi,
im taking c++ as my core subject now...
and im in the 1st year,so c++ is currently NEW for me..
how can i easily remember all those c++ languages?
the pseudocode....
cout<< cin>>??

I'd suggest getting Visual Studio 2010 [http://microsoft.com/express] and using that, for starting out with c++ use Dev C++, great free tool, fun to use, and helps with learning console apps, start with console apps to get an idea for the syntax and things like that, then gradually start to play around with winforms, its hard to throw a book name out there or website because these things are constantly being updated and I don't believe that c++ or c# are ever explained in books or websites well enough, to really understand something you must have a real life example, and to know the syntax, most books and articles show you syntax but dont explain WHY, and HOW to use it and give examples and things to do with it, and make sure when programming to check for errors, great way to help you out in school, anyone can build an app, but to make it efficient and usefull, and save memory, and check for errors to help the user out, thats a different story. remember to save memory and make effiecient code where ever you can because that saves memory, and as the cell phone age grows and grows the more and more things the cell phone will be able to do, and you will need to keep up with the "standard" of the day. cell phones are limited in memory so...conserve it and use wisely. I know I've gone out of my way to explain and give you this big paragraph, but, it will help you out i think in a way.
anyways, back to the point. starting from java, learn some c# too, and c# is the superset of c++, c++ came from c, and so on...
dont bother learning c, just learn c++.

Personally, I wouldn't stress over what "flavor of the month" to learn first ...

Learn the language you want to know, and will make you money.

Two years from now (ok, maybe 5), something completely different will be the hot programming language and we'll all be talking about how we just have to have it, and how someone isn't a serious programmer unless they know it.

While Microsoft just smiles and sells us books, compilers, and licenses at outrageous prices.

But we won't be able to plop the money down fast enough. :(

Edited 6 Years Ago by Zinderin: n/a

I personally learned to use C#, Java, ... not from books but from small examples I could find around the .NET.

But as Zinderin sais you just need to make a pick and go with it, not pick the most popular ones at this time as this keeps changing.

This article has been dead for over six months. Start a new discussion instead.