ok here i go on QB..
#1
Posted 13 September 2004 - 07:56 PM
#2
Posted 13 September 2004 - 08:09 PM
#3
Posted 13 September 2004 - 08:13 PM
#4
Posted 14 September 2004 - 02:39 AM
Pascal was also invented to help people learn programming, and imho it does a wonderful job.
#5
Posted 14 September 2004 - 03:58 AM
#6
Posted 14 September 2004 - 07:24 AM
#7
Posted 14 September 2004 - 08:10 AM
And I'd have to disagree with Nick. Don't start with C, as it is imho, one of the ugliest and less esthetically pleasing languages out there. When you start off, you don't want to go too "low level".
For free compilers, try gcc/devcpp/devpascal (for c/c++ and pascal)
Anyways, I think my first "program" was in TI-Basic, some 7+ years ago =')
#8
Posted 14 September 2004 - 08:34 AM
So my advice is to go with pascal for a short time till you learn what's going on and then move to the 'C' type languages(C, C++, C#, Java, D, etc.)
#9
Posted 14 September 2004 - 10:00 AM
#10
Posted 14 September 2004 - 10:11 AM
[ 32Bits.co.uk - Coding for real people! ]
#11
Posted 14 September 2004 - 11:11 AM
NeZbiE said:
And I believe you absolutely have to start as 'low level' as possible. At my university, the primary programming language is Java. It's a good language, but not for beginners. They understand absolutely nothing about programming after their first few lessons. I've known students who, after a full semester, still didn't fully understand execution flow. Syntax errors were their worst nightmare.
In my opinion, the first programming lesson should be in assembly. This sounds crazy, but really isn't. Teaching someone how add, mov, jmp, etc. works isn't harder than using a pocket calculator. They will instantly understand execution flow and even pointers. You don't have to teach anything about advanced instructions or complex addressing. Just one or two hours (practical excercises) is sufficient. Give the students a simplified list of what the basic instructions do.
Stepping to C is really easy then, it's just like using the basic assembly instructions, but with expressions that look like mathematical formulas, that are executed one operation at a time. They will appreciate C's features, and understand syntax requirements. It's also the perfect time to let them look at the (debug) assembly output. They will instantly understand what a compiler really is, and how to debug an expression if the C debugger doesn't give them enough information.
Then you can step to C++. Execution flow is harder to understand here, but you can teach them how it saves you from some tasks, and how to organize data and functions in classes. Again they will appreciate every new feature, and won't fear the syntax. They will instantly understand that constructors/destructors are just like regular C functions, but implicitely called by the compiler, they will understand that virtual functions are just function pointers.
They would simply know how things work, instead of thinking of Java as some magical language spoken by all processors. Working bottom-to-top will keep them excited to learn new things, and they'll never ask how something can be broken up into simpler steps they can understand, they'll already know. Trust me, everybody I know who became a good C++/Java programmer in a short time, started with a very 'low level' language.
#12
Posted 14 September 2004 - 12:00 PM
Thankfully I get to learn C++ as part of my course. I did C last year, and would have gotten a Distinction if not for slightly misreading some of the instructions for my assignment :) It just makes logical sense to me. Most of the rest of the class were struggling with even the basics though. And by and large, those were the people who'd done Visual Basic the previous year (owing to the fact that I'd previously passed a few modules, I was learning VB, C, and Perl at the same time :)). I guess once you've had your hand held for a bit, it's hard to understand when you're left on your own.
#13
Posted 14 September 2004 - 12:10 PM
No matter the language used, it’s easy for any programmer to be lazy and not give much thought into their design / programming. I’ve downloaded and used quite a few API’s to date and I haven’t been pleased with any of them. Too few people look at the big picture and to many look at the low level details.
I agree with Nick on learning lower level stuff first. When I learnt about memory (RAM, stacks, heaps, cache, etc…) it improved my understanding and use of pointers/references, function stacks, and memory heaps so much better. Knowledge like that comes in handy.
#14
Posted 14 September 2004 - 12:36 PM
TheNut said:
Quote
I agree with Nick on learning lower level stuff first. When I learnt about memory (RAM, stacks, heaps, cache, etc…) it improved my understanding and use of pointers/references, function stacks, and memory heaps so much better. Knowledge like that comes in handy.
#15
Posted 14 September 2004 - 12:51 PM
going down to asm helped me HELL OF A LOT to understand how it all goes on.
i don't think it's that nececary to really learn much asm. a pseudo-asm in a virtual pc could be enough (a small pc, where you can visualise registers and all, would'be fun). then, you can move upwards..
but the other side is, i too often have the feeling of writing code that doesn't fit well to asm when coding in c++, knowing too many of it's language pitfalls. i'm quite happy with c# now to not need to care about that anymore.. still, the design from lowlevel is in the background. and it helps..
still, it's more than 5 years now since i started programming.. it takes time to learn, espencially understand. the chess-rule.. you can learn the language/logic fast. but really understanding, mastering it, can take long.
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#16
Posted 14 September 2004 - 12:55 PM
#17
Posted 14 September 2004 - 01:11 PM
Quote
funny... my university has no windows machines at all for the students... maybe a few with NT4.0 ? nobody uses them anyway :)
at my university we only learn java because we share the first two semesters of comp.sci with the more media orriented computer courses (probably web designers or something along those lines :)). it's exactly how nick describes it. most of the people have no clue at all what they are doing. it's like they don't grasp what's happening behind the curtain of java. i think starting out with C and running a little assembler course on the side would be great. in my courses we covered assembler briefly (on a virtual MIPS processor) but we only had to come up with one program
#18
Posted 14 September 2004 - 01:57 PM
i have this in my it business, others have it while learning how to plant flowers, and others again while operating on your heart, lungs, or what ever. just be sure YOUR doctor CARED about what he learned! :D
most don't. but thats normal. everywhere.
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
#19
Posted 14 September 2004 - 04:36 PM
edit: though fortunately in many other proffessions it doesnt matter that much and the end user has an easier time to be discerning. When I am buying tomatoes, it is easy for me to pick out the bad ones even though I do not grow them regularly.
#20
Posted 14 September 2004 - 04:45 PM
-Loving a Person is having the wish to see this Person happy, no matter what that means to yourself.
-No matter what it means to myself....
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












