Microsoft Visual C++ Version 6
(75 posts, started )
#51 - wien
Quote from Woz :Cant understand why void main() was blocked though tbh.

I wasn't blocked. It was never part of the language in the first place. Some compiler writers just decided to allow it anyway for some reason.
Quote from Woz :C# really is a far nicer language, all the benefits of C++ without all the crap that was layered over it.

I respectfully disagree, but I don't feel like going over this discussion again.
just forget about learning languages and try to learn coding first (ie put anything that starts with hello world away for now)
although ive never actually picked one up but books from donald knuth are worshiped in comp sci circles so theyre probably one of the best places to start
Quote from wien : ... (don't show them pointers and manual memory allocation before they know the standard library by heart) ...which is my main objection with all these older C++ books and DVDs.

Can one write a usefull program without that ? Learning pointers is important. Muddling through libraries doesnt help learn programming.
I dont know whether to do an exchange or refund because I am a visual learner so I learn better with it being shown to me, I don't know what disc to exchange it for though, a C++ DVD or a PHP DVD, I think there is a more up to date C++ on there, I dont know though, what one would you suggest for me to get as people here will know what to learn in C++ and PHP, obviously all of it but what you would suggest to start off with.

Links:
Internet and Web Design:
http://www.computer-training-software.com/inter.htm
Programming:
http://www.computer-training-software.com/program.htm
#57 - wien
I didn't say they shouldn't be taught. They are certainly important for the average programmer. I just don't think they should be prioritised ahead of proper usage of the standard library. There's just so much C++ code out there absolutely riddled with bugs and memory leaks because people for some reason feel they need to implement all these collections and algorithms form scratch instead of leveraging the ready made, efficient and heavily tested (bug free) standard library.

In my opinion this is mostly because that's how almost every book and programming class approach the language. They start you off implementing linked lists and string classes and then at the end they go, "but in a real application you'd use std::list and std::string". It's just completely backwards and I think they should do it the other way around. You can write extremely complex and efficient C++ applications without using so much as a pointer or a call to new, and education need to reflect that.
You can get Visual C++ Express 2008 for free IIRC.
What would you recommedn out of these, When I am older I want to be a software and Web developer but would like to make more software but a very successful website aswell, they are my targets for later on in life anyway.

http://www.computer-training-software.com/dreamweaver-8.htm
( I have put a link to Dreamweaver 8 because I also have a book here what teaches you also and it teaches you using dreamweaver 8)
http://www.computer-training-software.com/javascript.htm
http://www.computer-training-software.com/java-6.htm
http://www.computer-training-software.com/fun-cplusplus.htm
http://www.computer-training-s ... /beginners-web-design.htm
http://www.computer-training-software.com/cnet.htm
(Don't know if this one is too old or not)
Quote from wien :You can write extremely complex and efficient C++ applications without using so much as a pointer or a call to new, and education need to reflect that.

yes but programming is about solving problems not about being able to stick bits of lego together... if you teach it this way people will be at a complete loss when another languages becomes popular or when they really have to come up with something new
what you should be taught first and foremost is what an algorithm is what the difference between recursion and iteration is and complexity in both time and space

teaching programming isnt about creating an infintely large army of monkey hoping that somehow by chance something new and original will come out... and sure as heck those guys will never be able to come up with a good solution to multithreading and deadlocks
Anyone feel like answering what I put above, I need to get this sorted pretty quickly, so if people could help me out it would be great.
#62 - wien
Quote from Shotglass :yes but programming is about solving problems not about being able to stick bits of lego together... if you teach it this way people will be at a complete loss when another languages becomes popular or when they really have to come up with something new

How are pointers and memory management prerequisites for teaching algorithms and data structures? When I was taught these things, we didn't even use a programming language. They are high level concepts and to me pointers are unnecessary implementation details when you first start off programming.

Again, teach the abstractions first. If C++ is the chosen language, so so by example of the standard library. Explain the conceptual differences between the different collections and algorithms. Let people write useful applications using these. This gives students a useful way of seeing the concepts' importance in the real world.

When people are comfortable doing this, you jump in behind the interfaces. Have people implement sort algorithms using iterators (of which pointers are one kind). Then move on to data structures like lists and trees/graphs. This is when you introduce real pointers and memory management, because they are now more or less required to implement the high level concept (in C++).

Quote from sam93 :Anyone feel like answering what I put above

Frankly mate, your guess is as good as ours. I doubt anyone here has any experience with these DVDs. In general though I'd say go for one that covers the entire process of web-development rather than one that goes into the details of Javascript for instance.

Also; don't get too far ahead of yourself. You seem like you want to learn everything right now, and while that is admirable and proof of interest (which is everything really), it in your benefit to go slow and make sure you get the basics down before you move on. Getting a good grip on all of this will take years, so there's no point in rushing.
Quote from wien :How are pointers and memory management prerequisites for teaching algorithms and data structures?

Well for one any data is essentially a pointer and structures are even more pointers.
Also its impossible to really understand space complexity without having some idea of how memory works and what a call stack is.

Quote :When I was taught these things, we didn't even use a programming language.

Which might gloss over the details but at least it doesnt pointlessly teach you how to use libraries that will probably be obsolete by the time you leave uni anyway.
One thing I've learned from engineering is that what matters is how much of the fundamentals you understand; anything else is just a matter of being smart enough to figure out where you can find a good documentation.

Quote :They are high level concepts and to me pointers are unnecessary implementation details when you first start off programming.

Well yes and no. When I'm talking about pointers I'm more refering to the idea that anything in memory needs an address and something to tell the CPU what to expect there (think of Mel using codes as variables) not so much about the specifics of when to use an * and when not to.

Quote :Again, teach the abstractions first. If C++ is the chosen language, so so by example of the standard library.

Well using a language with a lot of library overhead at first is IMHO a bad idea anyway. Even C64 BASIC would be a better choice or anything else that doesn't require 10 lines of code just to print hello world.
I think I'd prefer the pseudo language you probably used to learn algorithms over any of the alternatives that have actual real world use. The requirements to something you can learn with and to something you can work with a vastly different IMHO.

Quote :Explain the conceptual differences between the different collections and algorithms. Let people write useful applications using these. This gives students a useful way of seeing the concepts' importance in the real world.

I really dont think its a good idea to teach entirely top down, especially if the students end up using things they don't really understand.
I think the best way would be start off with lectures on both hardware (von Neumann, registers, stacks etc.) and math (algorithms, complexity, endless strips of paper, halting etc) and then have those two slowly converge into something that both makes sense and is useable. With the right pseudo or 10-secs-to-grasp-the-syntax language to teach the math and some bits of pseudo assembly for the engineering related lectures this should soon paint a complete picture of how the machine works and how you can exploit it.
Quote from wien :Frankly mate, your guess is as good as ours. I doubt anyone here has any experience with these DVDs. In general though I'd say go for one that covers the entire process of web-development rather than one that goes into the details of Javascript for instance.

Also; don't get too far ahead of yourself. You seem like you want to learn everything right now, and while that is admirable and proof of interest (which is everything really), it in your benefit to go slow and make sure you get the basics down before you move on. Getting a good grip on all of this will take years, so there's no point in rushing.

Ok cheers, I dont want to rush I just want to make sure a pick the right resources, so you say get one what covers the entire process of web development, what DVD would that be the Dreamweaver 8 one or the Web Design one?
#65 - Jakg
What do you want to do - learn how to make a chair, or learn how to use a chisel?
Quote from Jakg :What do you want to do - learn how to make a chair, or learn how to use a chisel?

That good phrase actually, well I have made a chair before so I can use a chisel lol.
Basically I want to learn how to use a piece of software whilst learning how to code a website not just in HTML because I have nearly learnt that from another DVD from the video professor. So I think it would be best to go for the Dreamweaver 8 one wouldn't I?
#67 - Jakg
If you want to make a chair you might need more than a chisel so it makes sense to learn the general rules. If you can make a chair but want an over-view to a new chisel then go for the chisel.
#68 - wien
Quote from Shotglass :Which might gloss over the details but at least it doesnt pointlessly teach you how to use libraries that will probably be obsolete by the time you leave uni anyway.

Well in my opinion there is pretty good mapping between the high level concepts and their concrete implementation in the C++ STL. It's not 1:1, but it's pretty damn close. That's why I think modern C++ is a perfectly good learner's language.

std::list for instance is a collection that supports fast insertion at random indices, supports fast iteration forwards and backwards, but slow random element access. Just like the high level concept of a doubly linked list (which is what std::list is). You may be learning a specific toolkit, but by doing that you also get the high level concepts in through the back door. I'm not saying you should focus exclusively on the language and it's libraries, but rather use them as tools for using the theory in practice.

Now I can agree a special purpose pseudo language of sorts would be better if data structures and algorithms were the only parts of a programmer's education. They aren't though. More practical things like OO and application building by way of nailing library components together are also part of it, and for these you need to use a real language. Might as well try to connect theory with practice early on then.

Quote from sam93 :So I think it would be best to go for the Dreamweaver 8 one wouldn't I?

That would teach you how to use Dreamweaver. It probably won't teach you how to do a good webpage. A web-developer can work using nothing but a text editor (notepad) really. Applications like Dreamweaver are only for convenience.
Quote from wien :
That would teach you how to use Dreamweaver. It probably won't teach you how to do a good webpage. A web-developer can work using nothing but a text editor (notepad) really. Applications like Dreamweaver are only for convenience.

So what title do you think is best to go for? It would be a great help.
#70 - wien
#72 - wien
Sorry, I don't have the time to look into this in detail but by scanning the titles, that one seems like a good general choice. Just look through the samples and see if it covers what you want to learn. Simple as that really.
As linked to already, Microsoft's Visual Studio Express is free. One issue is that there's no windows.h or the windows library, so you're stuck with C++ code and not C based windows code. The standard template library (which is actually code that is included with your code at compile time, not a true library) is included though.

As far as learning goes, assembly might be good place to start, but not for an entire semester. A few days just to get an idea of how a computer works is enough. The first few programs you write for learning purposes aren't going to have a lot of functionality.

As far as Windows GUI code goes, most programmers will just start with existing code and modify it as needed, as opposed to writing stuff from scratch.
#74 - wien
Quote from JeffR :As linked to already, Microsoft's Visual Studio Express is free. One issue is that there's no windows.h or the windows library, so you're stuck with C++ code and not C based windows code.

You can download the platform SDK separately and use that. You just need to manually make sure you link against the required DLLs since you won't have the "Windows application" project file templates.
Quote from wien :Now I can agree a special purpose pseudo language of sorts would be better if data structures and algorithms were the only parts of a programmer's education. They aren't though.

But they should be for the first 1 or 2 semesters.

Quote :More practical things like OO and application building by way of nailing library components together are also part of it, and for these you need to use a real language. Might as well try to connect theory with practice early on then.

Well OO is just another way to look at data so unless you have an understanding at that whats the point of OO... actually what is the point anyway but i digress.
If you want something that has lists in it by default why not use Scheme?

Microsoft Visual C++ Version 6
(75 posts, started )
FGED GREDG RDFGDR GSFDG