[ARCHIVED THREAD] - Any programmers around? (Page 1 of 4)
Posted: 2/17/2013 12:59:01 PM EDT
|
Dupe from team, but figured it's worth checking GD too.
I think I have finally decided on my major, computer science. I'm just posting to see if there are any programmers in team that could help me get started on doing c++, any guides/good information you know of, websites/etc. I have a teach yourself c++ book, which I've been reading here and there. What is a good compiler I should be using? Most of the stuff I'm finding is all out of date info posted at least a year ago. Thanks for any info |
|
I'm a software tester at a small programming firm, just starting to teach myself programming. Going back for a comp sci degree myself. Can I ask why C++? At least around here (Denver metro) and where my company is based (Kansas City), it doesn't seem like there's much development going on with C++. |
|
Quoted:
I'm a software tester at a small programming firm, just starting to teach myself programming. Going back for a comp sci degree myself. Can I ask why C++? At least around here (Denver metro) and where my company is based (Kansas City), there's not much development going on with C++. I'm just learning all the diff languages and I've been told to start with c++ or java. I'll be taking multiple programming languages through college, but I would like to work hard and get ahead any way I can. I am pretty ignorant to most everything when it comes to programming, I'm just now starting to read a c++ book and play around. |
|
Out of date? As far as I know the coding procedure hasn't changed in 25+ years unless you include C#.
I like the book I had to buy in college. I already knew C++ but had I not known it, it was easy to follow. It's around here somewhere. I know I used Bloodshed as a compiler. I've used some others but it's been years. BS worked well for me though. |
|
Quoted:
Quoted:
I'm a software tester at a small programming firm, just starting to teach myself programming. Going back for a comp sci degree myself. Can I ask why C++? At least around here (Denver metro) and where my company is based (Kansas City), there's not much development going on with C++. I'm just learning all the diff languages and I've been told to start with c++ or java. I'll be taking multiple programming languages through college, but I would like to work hard and get ahead any way I can. I am pretty ignorant to most everything when it comes to programming, I'm just now starting to read a c++ book and play around. I think C++ is a great language to learn. I would venture to say it's one of the most flexible when you know how to use it as you can manipulate memory address spaces directly. However, you can also end up picking up garbage from a memory cell or getting stuck in infinite loops too.
Pointers and Classes make C++ what it is. |
|
What do you want to do? Before delving into any specific language I'd read some general programming books to start laying a foundation for good programming practices. imho that's more important than focusing on a language. If you land in Corporate Amerika your language will likely change based on the needs of the company. I'm on my third language with my current employer and #4 is probably on the horizon.
Tinker with a few things. Try to decide if you want to do front-end stuff (not my cup of tea), backend/middlware (I love this), database stuff, web, mobile, etc. See what interests you before you commit. As long as you understand the basic concepts, though, you should be able to pick up most any language. |
|
Quoted:
What do you want to do? Before delving into any specific language I'd read some general programming books to start laying a foundation for good programming practices. imho that's more important than focusing on a language. If you land in Corporate Amerika your language will likely change based on the needs of the company. I'm on my third language with my current employer and #4 is probably on the horizon. Tinker with a few things. Try to decide if you want to do front-end stuff (not my cup of tea), backend/middlware (I love this), database stuff, web, mobile, etc. See what interests you before you commit. As long as you understand the basic concepts, though, you should be able to pick up most any language. Not sure, just don't know enough about anything yet. I'm reading "teach yourself c++ in 21 days" right now. |
|
Started out learning C-> C++ -> Java. I've learned a bunch of others along the way. Languages are simply tools in the tool box. If you cling to one or another you'll be making a mistake.
What are your interests? If you're interested in Hardware I'd say start with C. Interest in OSs go with C++. Software Development in general I'd go with Java(perhaps C# but the whole world isn't MS). A language like Java is very similar to C++ but for a beginner you won't get as frustrated with the things that kill you in C++ like pointers and having to understand compilers and linkers. You can still shoot yourself in the foot managing memory in Java but it's less frustrating there. A CS degree will teach you programming basics but in no way teaches you software development. Most folks don't learn that pain until day 1 in their first real job out of school. Along the way you should try to learn about software design and writing effective code. |
|
Visual Studio s free for students. That's your easy button.
If you really want to learn, download any BSD or Linux version, and get your GNU compilers installed and go from there, you can use Eclipse, Netbeans (both of which will also work on Windows), or even just write your code in VI, VIM, or Emacs and compile it manually. You'll learn a lot more about how computers work that way, but it will be a little more difficult. |
|
Quoted:
Visual Studio s free for students. That's your easy button. If you really want to learn, download any BSD or Linux version, and get your GNU compilers installed and go from there, you can use Eclipse, Netbeans (both of which will also work on Windows), or even just write your code in VI, VIM, or Emacs and compile it manually. You'll learn a lot more about how computers work that way, but it will be a little more difficult. thank you edit: with that download, it won't let me verify. keeps saying my email/pass is wrong.
The only problem with going my own route is that I literally am 100% new to all of this. I'm just looking to get a head start and try my hand at different programming languages before I take them for class. I wouldn't know where ot begin on any of that, as right now I'm just following my outdated how to learn c++ in 21 days book. edit: yes razoreye I tried it, and when I click compile nothing happens. edit again Opened a new project in bloodshed, but typing in the helloworld project exactly as it states in my book nets me a few different errors that the book doesn't mention. |
|
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff.
Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. |
|
Quoted:
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff. Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. How do I run a program once it is compiled etc in bloodshed? I was able to compile an exercise and went to run it and nothing happens. The book says to run it and see what it does. edit: after enough tinkering around got it to run victory is mine |
|
Quoted:
Software Development in general I'd go with Java(perhaps C# but the whole world isn't MS). I'd probably opt for Java. I've never used C# but from the horror stories I've heard around the company it blows goats. Then again it's most likely horrible programmers. I think Agile development left off the 'F' at the beginning. I've been writing web services in Java for a number of years. In 2012 we handled 7 billion transactions and we have sub-second service level agreements. The C# projects in the company are so fucked up that our group is been tasked with basically re-writing one of them from scratch. Of course mgmt is equally fucked in the head and they're forcing us to re-write it in C# even though everyone on the team is a Java developer. From my personal experience it's hard to discount the reliability of Java. And I say that not as a Java fan. I wish I could go back to Delphi. |
|
Quoted:
Quoted:
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff. Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. How do I run a program once it is compiled etc in bloodshed? I was able to compile an exercise and went to run it and nothing happens. The book says to run it and see what it does. Compiled it as a simple executable that runs from the command line? I bet two bucks, it's opening up a command prompt window and closing it before you can even see the results. Open up a command line from windows and navigate to the directory where your compiled file is saved. Run it from the command line, youll see the results. I think there is some option in bloodshed that will hold the command window open when executing the file. It's been since 05 since I used bloodshed, so I could very well be giving you bunk info. But that's my guess. |
|
Quoted:
Right now I'm having the hardest time finding a decent compiler. I've dl'ed 4 separate ones now and can't get any of them to work. I have my helloworld project done, but I can't get anywhere with it due to shitty compilers everywhere. ![]() Visual Studio Express should work great with C++, but it might spoil you. http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-for-windows-desktop#product-express-desktop |
|
Quoted:
Quoted:
Quoted:
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff. Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. How do I run a program once it is compiled etc in bloodshed? I was able to compile an exercise and went to run it and nothing happens. The book says to run it and see what it does. Compiled it as a simple executable that runs from the command line? I bet two bucks, it's opening up a command prompt window and closing it before you can even see the results. Open up a command line from windows and navigate to the directory where your compiled file is saved. Run it from the command line, youll see the results. I think there is some option in bloodshed that will hold the command window open when executing the file. It's been since 05 since I used bloodshed, so I could very well be giving you bunk info. But that's my guess. I got it to compile and run i would see the flash but I added a pause by typing in int z; std::cin >> z; and it held the window open |
|
Quoted:
Quoted:
Quoted:
Quoted:
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff. Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. How do I run a program once it is compiled etc in bloodshed? I was able to compile an exercise and went to run it and nothing happens. The book says to run it and see what it does. Compiled it as a simple executable that runs from the command line? I bet two bucks, it's opening up a command prompt window and closing it before you can even see the results. Open up a command line from windows and navigate to the directory where your compiled file is saved. Run it from the command line, youll see the results. I think there is some option in bloodshed that will hold the command window open when executing the file. It's been since 05 since I used bloodshed, so I could very well be giving you bunk info. But that's my guess. I got it to compile and run i would see the flash but I added a pause by typing in int z; std::cin >> z; and it held the window open Did I call it or what? |
|
I've been a developer for the past 20 years or so. I've also taught programming classes and have been a hiring manager for hiring developers.
For someone just starting out, I would recommend C++ or Java to learn. Once you've learned a strongly typed OO language like one of those, pick up a weakly typed OO language such as Ruby, Python or PHP. Whatever you do, do not try to learn programming using the Microsoft IDEs. It is too early to learn how to use the MS IDEs to make things work without really understanding the logic of what is going on. I've seen developers that could do great things in the MS IDEs, but when they would go to another project that didn't use MS languages, they couldn't code their way out of a paper bag. From what I've seen, developers that learned the theory and the logic by coding things by hand are almost always better programmers and can also pick up other languages much quicker. Here's a site that tracks the popularity of programming languages: TIOBE. It is good to check from time to time to make sure you have a good handle on the "hot" languages. |
|
Honestly, I'd go for something like Computer Engineering over Computer Science.
It'll open the door for anything Computer Science related as well as embedded firmware, low level software or software that runs custom hardware. The degree would be overkill for HI/UI or Web, but it'd get you there. As for languages.. start with C/C++ or Java. After that, you'll pretty much be able to pick up the syntax of anything in less than a week if you know those 2 well enough. C# is incredibly easy to learn, but don't make that your first language. Eclipse is a great freebie IDE. Visual Studio free through the MSDNAA is also a great option. Make sure to expose yourself to Linux development and understand that C/C++ does have differences when going between Linux and Windows. |
|
Quoted:
Honestly, I'd go for something like Computer Engineering over Computer Science. It'll open the door for anything Computer Science related as well as embedded firmware, low level software or software that runs custom hardware. The degree would be overkill for HI/UI or Web, but it'd get you there. As for languages.. start with C/C++ or Java. After that, you'll pretty much be able to pick up the syntax of anything in less than a week if you know those 2 well enough. C# is incredibly easy to learn, but don't make that your first language. Eclipse is a great freebie IDE. Visual Studio free through the MSDNAA is also a great option. Make sure to expose yourself to Linux development and understand that C/C++ does have differences when going between Linux and Windows. I've decided against engineering for a couple different reasons. I'm pretty decided on CS for now. I am enjoying programming thus far and am quite interested in it |
|
Quoted:
Whatever you do, do not try to learn programming using the Microsoft IDEs. It is too early to learn how to use the MS IDEs to make things work without really understanding the logic of what is going on. I've seen developers that could do great things in the MS IDEs, but when they would go to another project that didn't use MS languages, they couldn't code their way out of a paper bag. From what I've seen, developers that learned the theory and the logic by coding things by hand are almost always better programmers and can also pick up other languages much quicker. Amen. I think stuff like VB breeds mediocrity. Life is good while you're dragging widgets and wodgets around but when you have to actually understand what's happening behind the scenes most folks are lost. |
|
Quoted:
Quoted:
Whatever you do, do not try to learn programming using the Microsoft IDEs. It is too early to learn how to use the MS IDEs to make things work without really understanding the logic of what is going on. I've seen developers that could do great things in the MS IDEs, but when they would go to another project that didn't use MS languages, they couldn't code their way out of a paper bag. From what I've seen, developers that learned the theory and the logic by coding things by hand are almost always better programmers and can also pick up other languages much quicker. Amen. I think stuff like VB breeds mediocrity. Life is good while you're dragging widgets and wodgets around but when you have to actually understand what's happening behind the scenes most folks are lost. Can someone explain IDE's? still above my head. |
|
Quoted:
Quoted:
Software Development in general I'd go with Java(perhaps C# but the whole world isn't MS). I'd probably opt for Java. I've never used C# but from the horror stories I've heard around the company it blows goats. Then again it's most likely horrible programmers. I think Agile development left off the 'F' at the beginning. I've been writing web services in Java for a number of years. In 2012 we handled 7 billion transactions and we have sub-second service level agreements. The C# projects in the company are so fucked up that our group is been tasked with basically re-writing one of them from scratch. Of course mgmt is equally fucked in the head and they're forcing us to re-write it in C# even though everyone on the team is a Java developer. From my personal experience it's hard to discount the reliability of Java. And I say that not as a Java fan. I wish I could go back to Delphi. I haaaaate Java. I found C sharp to be just about the same, really, except way easier. Go figure? Funny part is, they both looked easier than C plus plus but I was so used the former that I got pissed at the latter. I really don't see the point in working in C when plus plus is the same except it adds a few goodies in. JMHO. Never used Matlab, heard of it and was always curious but I got outta the game. |
|
Quoted:
Quoted:
Quoted:
Quoted:
Quoted:
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff. Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. How do I run a program once it is compiled etc in bloodshed? I was able to compile an exercise and went to run it and nothing happens. The book says to run it and see what it does. Compiled it as a simple executable that runs from the command line? I bet two bucks, it's opening up a command prompt window and closing it before you can even see the results. Open up a command line from windows and navigate to the directory where your compiled file is saved. Run it from the command line, youll see the results. I think there is some option in bloodshed that will hold the command window open when executing the file. It's been since 05 since I used bloodshed, so I could very well be giving you bunk info. But that's my guess. I got it to compile and run i would see the flash but I added a pause by typing in int z; std::cin >> z; and it held the window open Did I call it or what? Yeah, I was thinking the same thing. I remember that happening to me. |
|
Quoted:
Quoted:
Whatever you do, do not try to learn programming using the Microsoft IDEs. It is too early to learn how to use the MS IDEs to make things work without really understanding the logic of what is going on. I've seen developers that could do great things in the MS IDEs, but when they would go to another project that didn't use MS languages, they couldn't code their way out of a paper bag. From what I've seen, developers that learned the theory and the logic by coding things by hand are almost always better programmers and can also pick up other languages much quicker. Amen. I think stuff like VB breeds mediocrity. Life is good while you're dragging widgets and wodgets around but when you have to actually understand what's happening behind the scenes most folks are lost. this! Screw 4G crap. |
|
Visual Studio Express is a good, free IDE (and compiler).
An IDE is an integrated development environment. Basically software the combines the compiler, editor, debugger, and whatever other tools it has into one package that is usually easier to use than 5 different programs for the same purpose. Most open source type IDEs are going to be a headache for a total newbie that wouldn't even understand how to set it up and get it working. Just go with Visual Studio Express and start learning programming. It installs like any program.. pretty idiot proof to get up and running. |
|
I used visual studio for a while but found it to be like most MS products, completely too complicated and generally a pain in the ass.
Now I use Bloodshed Dev-c++ http://www.bloodshed.net/devcpp.html It is nice and light, and I think it has a better debug, it also is easier to setup with source files than VS. |
|
Quoted:
Quoted:
Quoted:
Whatever you do, do not try to learn programming using the Microsoft IDEs. It is too early to learn how to use the MS IDEs to make things work without really understanding the logic of what is going on. I've seen developers that could do great things in the MS IDEs, but when they would go to another project that didn't use MS languages, they couldn't code their way out of a paper bag. From what I've seen, developers that learned the theory and the logic by coding things by hand are almost always better programmers and can also pick up other languages much quicker. Amen. I think stuff like VB breeds mediocrity. Life is good while you're dragging widgets and wodgets around but when you have to actually understand what's happening behind the scenes most folks are lost. Can someone explain IDE's? still above my head. Integrated Development Environment. You're using one if you're using Bloodshed. Basically it's where you can write code and compile all in the same place. Usually includes debuggers and shortcuts as well as other nifty features. What you're using isn't just a "compiler." You can do that without an IDE. Just like you can write the code without it. But life is easier with one.
|
|
Thinking in C++ 2nd Edition by Bruce Eckel
You can download it for free, or buy a hard copy. It's a very gentle introduction to C++. |
|
Quoted:
Quoted:
Quoted:
Quoted:
Not a fan of visual studio, too much crap going on in it. Especially for a first time user. I liked Bloodshed when I was doing pure C++ stuff. Last time I was doing C, I used AVR Studio. But thats for embedded stuff. All I do now, and for the past couple of years is Matlab. So I don't know whats the best for C++. Good gravy Matlab is so much better than C++ for any number of engineering applications. How do I run a program once it is compiled etc in bloodshed? I was able to compile an exercise and went to run it and nothing happens. The book says to run it and see what it does. Compiled it as a simple executable that runs from the command line? I bet two bucks, it's opening up a command prompt window and closing it before you can even see the results. Open up a command line from windows and navigate to the directory where your compiled file is saved. Run it from the command line, youll see the results. I think there is some option in bloodshed that will hold the command window open when executing the file. It's been since 05 since I used bloodshed, so I could very well be giving you bunk info. But that's my guess. I got it to compile and run i would see the flash but I added a pause by typing in int z; std::cin >> z; and it held the window open as long as you have using namespace std; you don't have to put the std:: before cin>> put this at the end before your return 0; system ("pause"); |
|
Quoted:
Quoted:
Quoted:
Software Development in general I'd go with Java(perhaps C# but the whole world isn't MS). I'd probably opt for Java. I've never used C# but from the horror stories I've heard around the company it blows goats. Then again it's most likely horrible programmers. I think Agile development left off the 'F' at the beginning. I've been writing web services in Java for a number of years. In 2012 we handled 7 billion transactions and we have sub-second service level agreements. The C# projects in the company are so fucked up that our group is been tasked with basically re-writing one of them from scratch. Of course mgmt is equally fucked in the head and they're forcing us to re-write it in C# even though everyone on the team is a Java developer. From my personal experience it's hard to discount the reliability of Java. And I say that not as a Java fan. I wish I could go back to Delphi. I haaaaate Java. I found C sharp to be just about the same, really, except way easier. Go figure? Funny part is, they both looked easier than C plus plus but I was so used the former that I got pissed at the latter. I really don't see the point in working in C when plus plus is the same except it adds a few goodies in. JMHO. Never used Matlab, heard of it and was always curious but I got outta the game. They are all great tools to solve different problems. They all have tradeoffs. Java is more of a platform than just a language. C has such low overhead that its ideal for embedded apps and real time apps. C++ is almost universal but has lots of ways to shoot yourself. MATLAB is very useful for solving engineering problems but its expensive and proprietary. Python is getting traction in that arena. |
|
Quoted:
Quoted:
Whatever you do, do not try to learn programming using the Microsoft IDEs. It is too early to learn how to use the MS IDEs to make things work without really understanding the logic of what is going on. I've seen developers that could do great things in the MS IDEs, but when they would go to another project that didn't use MS languages, they couldn't code their way out of a paper bag. From what I've seen, developers that learned the theory and the logic by coding things by hand are almost always better programmers and can also pick up other languages much quicker. Amen. I think stuff like VB breeds mediocrity. Life is good while you're dragging widgets and wodgets around but when you have to actually understand what's happening behind the scenes most folks are lost. And the key there is "most folks". Someone can write bad code in any language. VB was a great product, it filled a need, and there is still a LOT of VB code out there running. I've seen far more issues with Java than I have with C#. But again that's likely due to the developers (and the approach of the company employing them) more so than the product. I would agree with not getting bogged down in the MS IDE's at this point though. There's a ton of product out there which will just get in the way when you're learning the basics. Like they said above, it doesn't matter so much what you start out with, you're primarily learning concepts that you'll be able to carry over in large part to other languages. One thing to add, I'm continually surprised by the developers that while otherwise talented, can't write a moderately complex SQL query for shit. The bulk of development these days will involve taking data out of or putting data into a database in some manner. It $pays$ to be at least minimally proficient at SQL as well. A little data architecture knowledge doesn't hurt either. |
|
There are a lot of different ways to go, but since you said C++ vs. Java, I will weigh in with my $.02.
For most people programming is hard. If you're one of us fortunate few who is good at it, you can earn a pretty good living doing it. You're trying to start, and that's a good step. Asking programmers about which language to use is kind of like asking GD whether chili should have beans or not. About the only language programmers can agree on is profanity.
C++ is a good language to learn because it's harder than Java. If you have to do both, start there. I can't tell you how many Java programmers I have seen choke and die on pointers and operator overloading. Just keep in mind that C++ was designed to be backward compatible with C, so it has procedural and object oriented functionality (which you may or may not learn). Java is set up as an object oriented language. That means nothing to you now, but it forces certain design styles. In terms of how to start, I would go with whatever your school is going to use. Mine used Visual C++, so I learned that, but if you're going to have to deal with gcc and the command line, you might as well get used to it. An integrated development environment makes it much easier to focus on learning how to program--you install it, create a new project, add some files, build it, and execute. This lets you spend your time wondering why you are leaking memory, instead of worrying about how to get the switches for the compiler set to get Hello World to appear on your screen. Plenty of time for that frustration later. Others here are already lauding the drag and drop mentality that using an IDE fosters, and while true, I don't think it's a bad way to go. Yes, the magical wizard will leave you high and dry, and you'll have to figure out what to do at some point, but it honestly makes you a lot more productive. In terms of books, I would suggest an old one I have (you will probably need to get it used)--C++ From the Ground Up, by Herb Schildt. It looks like he has a lot of titles on Amazon that are newer, and one of them might be worth looking at instead. I found him to be a good author. |
|
Quoted:
There are a lot of different ways to go, but since you said C++ vs. Java, I will weigh in with my $.02. For most people programming is hard. If you're one of us fortunate few who is good at it, you can earn a pretty good living doing it. You're trying to start, and that's a good step. Asking programmers about which language to use is kind of like asking GD whether chili should have beans or not. About the only language programmers can agree on is profanity.
C++ is a good language to learn because it's harder than Java. If you have to do both, start there. I can't tell you how many Java programmers I have seen choke and die on pointers and operator overloading. Just keep in mind that C++ was designed to be backward compatible with C, so it has procedural and object oriented functionality (which you may or may not learn). Java is set up as an object oriented language. That means nothing to you now, but it forces certain design styles. In terms of how to start, I would go with whatever your school is going to use. Mine used Visual C++, so I learned that, but if you're going to have to deal with gcc and the command line, you might as well get used to it. An integrated development environment makes it much easier to focus on learning how to program--you install it, create a new project, add some files, build it, and execute. This lets you spend your time wondering why you are leaking memory, instead of worrying about how to get the switches for the compiler set to get Hello World to appear on your screen. Plenty of time for that frustration later. Others here are already lauding the drag and drop mentality that using an IDE fosters, and while true, I don't think it's a bad way to go. Yes, the magical wizard will leave you high and dry, and you'll have to figure out what to do at some point, but it honestly makes you a lot more productive. In terms of books, I would suggest an old one I have (you will probably need to get it used)--C++ From the Ground Up, by Herb Schildt. It looks like he has a lot of titles on Amazon that are newer, and one of them might be worth looking at instead. I found him to be a good author. good post, thanks. |
|
Quoted:
Dupe from team, but figured it's worth checking GD too. I think I have finally decided on my major, computer science. I'm just posting to see if there are any programmers in team that could help me get started on doing c++, any guides/good information you know of, websites/etc. I have a teach yourself c++ book, which I've been reading here and there. What is a good compiler I should be using? Most of the stuff I'm finding is all out of date info posted at least a year ago. Thanks for any info I wouldn't pick C++. I'd learn something like Adobe AIR (heh, I'm gonna catch flack from the anti-adobe peeps but I wrote MyGunDB using it and I wouldn't pick anything else if I did it again) which you can figure out pretty quickly if you know some Java, or use Corona for mobile development. It all comes down to exactly what you want to end up coding. Do you want to be doing server work? Or do you want to be making applications and/or games? With AIR, as an example, you can code for desktop and mobile with the same code base, for Linux, OS X and Windows, in a much easier environment when it comes to learning. C++ has it's uses, but you'll have more fun, and learn much easier, using something different, most likely. Save C++ for when in class. You might love C++. I personally like the idea of using a language that I can start making money with, while I learn. Hence Adobe AIR for me. :D MyGunDB was written while learning how to use the language, for example. |
|
Once you start to actually USE a language, get a copy of "Effective C++/Java/C#".
They are all done by different authors and printed by Addison Wesley. Effective C++ is by Scott Meyers, Effective Java is by Joshua Bloch, and Effective C# is by Bill Wagner. All are good references. They don't teach you how to code, they teach you how to write better quality code. You are likely to find useful tips for any level of programming, although you will get more out of them as you get more proficient. Basically, they outline good habits to develop for the language, and the reasons for those habits. The first time you find a Java programmer who writes getter/setter methods in C#, you can hit him over the head with it as an improvement suggestion. |
|
I have mixed feelings about C++. If you learn the language and are effective with it, you'll be much better prepared to approach other languages. Having said that, I think for most problems out there, you can find a better language to deal with them. Anyway, having said that, you asked a question, I'll give you an answer. Efficient C++ is a good book, but it's not a beginners book. Know standard algorithms and data structures. Know the basics of a computer. How is memory allocated? What's the difference between the heap and the stack? Why would you use a linked list over an array? What's a map? Hell, what's a red-black tree?
|
|
Quoted:
Out of date? As far as I know the coding procedure hasn't changed in 25+ years unless you include C#. I like the book I had to buy in college. I already knew C++ but had I not known it, it was easy to follow. It's around here somewhere. I know I used Bloodshed as a compiler. I've used some others but it's been years. BS worked well for me though. A lot has changed in 25 years. How about OOP as a common paradigm? Multi-core architecture ring a bell? What's common place now was incredibly niche 25 years ago. |
|
Quoted:
Quoted:
Quoted:
I'm a software tester at a small programming firm, just starting to teach myself programming. Going back for a comp sci degree myself. Can I ask why C++? At least around here (Denver metro) and where my company is based (Kansas City), there's not much development going on with C++. I'm just learning all the diff languages and I've been told to start with c++ or java. I'll be taking multiple programming languages through college, but I would like to work hard and get ahead any way I can. I am pretty ignorant to most everything when it comes to programming, I'm just now starting to read a c++ book and play around. I think C++ is a great language to learn. I would venture to say it's one of the most flexible when you know how to use it as you can manipulate memory address spaces directly. However, you can also end up picking up garbage from a memory cell or getting stuck in infinite loops too.
Pointers and Classes make C++ what it is. That's an incredibly superficial take on it. C++ offers lots, but I don't at all agree with your characterizations. OO languages are abundant, and that's not a feature unique to C++. C++ has advantages though: it's not interpreted. Yeah, you need to be looking at smart pointers and RAII, but you are must closer to the hardware. new and delete can be stupidly costly in implementation as well. If you need to write a large scale application, C++ isn't what I'd be looking at. Kinda like the 90s: write modules in lower level languages where performance is critical, but write the bulk of your application in a modern language. C with ASM modules in the modern era is C# with C++ modules. |
|
Quoted:
I have mixed feelings about C++. If you learn the language and are effective with it, you'll be much better prepared to approach other languages. Having said that, I think for most problems out there, you can find a better language to deal with them. Anyway, having said that, you asked a question, I'll give you an answer. Efficient C++ is a good book, but it's not a beginners book. Know standard algorithms and data structures. Know the basics of a computer. How is memory allocated? What's the difference between the heap and the stack? Why would you use a linked list over an array? What's a map? Hell, what's a red-black tree? each different person I talk to introduces 5 new terms and things to learn about in order to be a good programmer seems like one of the more steep learning curves i've encountered |
| C++ and Java...blah blah blah. Those are niche languages now and if you are really good in a highly desired area they pay well but if you want to maximize your job opportunities the best way to go is using Microsoft's languages and coding platform. Right now there is a shortage of .NET developers. That means if you know what you are doing and a little experience you will start out making more than your worth. You can also go to pretty much any large city in the country and find multiple jobs. |