I am what some may call: A newb, a newbie, or a newbie cake. If this information offends you, please turn back now!
So, just a few weeks ago I got interested in programming. I decided I would start off by learning a programming language and see where that went. Unluckily, the only language I could recall off the top of my head was C++. I found a few tutorials online, one of which had a 21 day course that was extremely helpful. I'm about 1/3rd of the way through the course and I can already program VERY basic programs using my Microsoft Visual C++, which I discovered I already had downloaded onto my computer.
I now know that C++ is a terrible starting point when compared to other programming languages such as python. I was wondering:
A) Should I continue with C++ since I have already put in the effort to start learning it?
B) If not, which language should I learn instead?
C) Whether I should use some sort of Unix system vs my crappy windows laptop.
D) If so, How in god's name do I get that to work.
E) Any other suggestions, tips, or pointers you could give to a newbie.
4 replies to this topic
#1
Posted 17 June 2011 - 06:19 PM
|
|
|
#2
Posted 17 June 2011 - 10:06 PM
Quote
I am what some may call: A newb, a newbie, or a newbie cake. If this information offends you, please turn back now!
Quote
A) Should I continue with C++ since I have already put in the effort to start learning it?
Python can do more per line of code (more or less), although is a scripting language rather than compiled. You could learn a lot about algorithms for example without worrying about hard to form loops and data types in C family of languages, although it is a lot farther from the core of the system and is more limited (although it really depends on the application you intend if it matters.)
Quote
B) If not, which language should I learn instead?
C++ does not have a native threading/networking (yet) or GUI library so you will have to look to external APIs such as Windows API which can be concern for portability. There are however cross platform GUI libraries for C++ such as WxWidgets, Qt, Gtk+, Gtkmm, fltk (you take your pick.)
With Java utilizing classes for many simple data types, you could do someString = someInt.toString() for example to convert a number to a string, instead of in C++ an implicit conversion such as string << someInt which will convert it for you less clearly. There are many methods to each data type or structure.
C# is Windows related and a good option between C++ and Java, although is Microsoft specific and not a good idea if you were to develop on other platforms, at least not out of the box.
Quote
C) Whether I should use some sort of Unix system vs my crappy windows laptop.
You may very well benefit from using a Linux related operating system, for example easy setup of programming environments and command line access however it is entirely possible in Windows. I would recommend you use maybe MinGW compiled (a port of GCC which is very well known) and has great compatibility with GCC on Linux or Mac, so you can write more portable applications especially as Visual C++ (MSVC++) has its own standards and may have slightly different ways of doing things. An IDE of course is essential to replace Visual Studio, Geany, jEdit are a few to name among many others.
Quote
D) If so, How in god's name do I get that to work.
Ubuntu us a great choice, the current graphical window manager for Ubuntu is not that friendly in my opinion although you can easily change it, it should install nicely along side an existing Windows installation and provide an operating system selection before you choose Windows or Linux.
Feel free to ask in our Linux forums about each operating system, and how to install it (that is if you cannot yourself, its installation guide is fairly friendly.)
Be sure to read the updated FAQ! || Health is achieved through the same 10,000 steps.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.
#3
Posted 18 June 2011 - 03:33 AM
I would challenge your claim that C++ is not a good first language. It's not the easiest first language, but you will also end up learning a lot of concepts that will serve you well as you learn other languages. C++ is about as close as you can get to C while still having object-oriented programming (there's also Objective-C). It is the language that most large applications are written in, including MS Office, Blizzard's games, etc. There are dozens of GUI libraries for it, including those offered by Visual Studio.
For right now, I would suggest you keep doing what you're doing: learning C++. You have an investment that will pay off. Just don't think it should be your last language, as well.
For right now, I would suggest you keep doing what you're doing: learning C++. You have an investment that will pay off. Just don't think it should be your last language, as well.
#4
Posted 18 June 2011 - 10:39 AM
I would second winged panther :) and well, being biased i am offended by the comment that c/c++ (let's take them together for now) being first language is not a good thing.
I believe it was the best thing that ever happened to me in terms of education. The only possible equal / better thing could be Scheme / Lisp taught at beginning programming course at MIT for mainly the reason that the syntax is covered in as much as one lecture and throughout you learn how to program actually rather than the miseries of getting through the compiler.
But a subtle point is, what is your goal with learning programming? Are you just a passer by who wants to know here and there quick things to get his little needs done. Then yes! it is better to learn a high level language which is easier, quicker (as in number of lines required to do a task already explained by Alexander) and is more enjoyable to work with (initially) because you can quickly produce tangible output to appreciate and feel good for yourself.
On the other hand c like languages i believe are something which make one a computer scientist. That is what distinguishes me from some body who learned x,y,z high level langauge in 2 months crash course out of some institute vs my tiresome 4 year BS.
Don't get me wrong. I am not saying you can only do better at CS if you go to college though it certainly helps.
You actually develop a much deeper understanding of how programs, computers and almost every major concept in Computer Science actually works.
On the other hand if you learn a "Learn Visual X in 21 days". You would be able to develop a working software fairly quickly and will be able to accomplish most of every day software tasks too. But nothing beyond.
Also, from a curriculum point of view, students work the hardest in my opinion in the initial years of college. If the begin with C and learn assembly almost immediately afterwards then they can latter learn and use any language in life. Where as it is very hard that you let some body program for a few years in .net / python with much ease and then get them to learn c in latter part of course. It is just not right and many people who would have learned otherwise had they been taught in the first year are likely to think it is just too much for them and would simply skip away.
I believe it was the best thing that ever happened to me in terms of education. The only possible equal / better thing could be Scheme / Lisp taught at beginning programming course at MIT for mainly the reason that the syntax is covered in as much as one lecture and throughout you learn how to program actually rather than the miseries of getting through the compiler.
But a subtle point is, what is your goal with learning programming? Are you just a passer by who wants to know here and there quick things to get his little needs done. Then yes! it is better to learn a high level language which is easier, quicker (as in number of lines required to do a task already explained by Alexander) and is more enjoyable to work with (initially) because you can quickly produce tangible output to appreciate and feel good for yourself.
On the other hand c like languages i believe are something which make one a computer scientist. That is what distinguishes me from some body who learned x,y,z high level langauge in 2 months crash course out of some institute vs my tiresome 4 year BS.
Don't get me wrong. I am not saying you can only do better at CS if you go to college though it certainly helps.
You actually develop a much deeper understanding of how programs, computers and almost every major concept in Computer Science actually works.
On the other hand if you learn a "Learn Visual X in 21 days". You would be able to develop a working software fairly quickly and will be able to accomplish most of every day software tasks too. But nothing beyond.
Also, from a curriculum point of view, students work the hardest in my opinion in the initial years of college. If the begin with C and learn assembly almost immediately afterwards then they can latter learn and use any language in life. Where as it is very hard that you let some body program for a few years in .net / python with much ease and then get them to learn c in latter part of course. It is just not right and many people who would have learned otherwise had they been taught in the first year are likely to think it is just too much for them and would simply skip away.
#5
Posted 18 June 2011 - 08:38 PM
I'd like to thank everyone on their valuable inputs! I've decided to continue with C++ because from what I've heard from you all and a variety of other places, it is a good language to learn what the program is actually doing. I think it'll be tough, but worth it in the long run when learning other languages. I definitely plan on looking into python and java later on as second and third languages though. At this point in time, I would just really like any advice you can give to a newb programmer because I'm pretty much going into this blind for the most part.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users


Sign In
Create Account

Back to top









