I second that motion. What good is buying a kit to make an "X"....nothing you can make with it except an "X"! And god forbid you lose the diagram that tells you how to make the "X", or you can never do it again!
And don't get me started on the cost. Buy a nice little set with a whopping 30 pieces (pieces specific to building the "X" of course), and pay what...somewhere around $10.00 for it? C'mon! Make the big generic "bucket-o-legos" more available and bring the price back down!
I agree whole-heartedly. Anybody who learns about computers and programming under Windows using Java or such too-high-level languages is missing out on their educations. I'm 33 and have used Unix in some form since college (Purdue), and I have to say that I've learned TONS since I've been using/playing with Linux - it's a great learning/educational environment, and with all the open source, it's WONDERFUL to be able to learn by simply seeing how everyone else does things!
Linux & C/C++ is by far the best way to learn GOOD programming.
A follow-up question I've thought about is... Let's say I download the source to a particular package, finally decipher it myself - would it be considered "rude" to comment the code and send it back to the original developer in hopes that he'd include it in his next release? I suppose in the end it's up to who's code it is - and whether he sees it as helping him or insulting him.;-)
Hmm... maybe I just ain't so smart. I do at least a LITTLE coding in everything I do - fun or not - to help me remember what's going on next time. Doesn't take a lot of time provide a simple list saying what the parameters are, what they do, and what the return values are - sometimes I can't decipher whether a returned zero is good or bad!
I actually lost some sleep last night thinking about this one. True, things have changed since I was in college (86-90) - for example, then, nobody had a PC in their room (let alone internet access), C++ and OO were just emerging, and almost everyone at school (Purdue) were given userid's on common Unix systems (we're still earlier than X-windows here too!)
My personal feeling is that there is a short list of "vital" things that should be the focus of programming education:
- C, RCS, and makefiles - so much programming is dependent upon knowing the "basics" of how to program, and how to build, and how to share with others and not lose things
- C++ - Once you know the basics, you have to learn OO.
- Algorithms - again, more of the basics - quicksort, Dijkstra, etc.
- Data structures - hash tables, lists, trees, queues, and the whole lot
Maybe I'm tainted by my own "graphics-less" college education, but at the bottom of this short list of mine, I'd put GUI programming. GUI is nice and flashy, and the final interface between the program and the user, but the real heart of any program is what goes on under-the covers.
My last point gets me to issues like a professor forcing some particular IDE on the students. Deep down inside, the "core" of programming is totally independent of the IDE you are using. What an IDE locks you into more than anything is one particular GUI interface/API. Given that, then until the focus becomes the UI of the programs under development, then who cares what IDE is being used by everyone? What unnerves me, however, is that when the focus moves from the "core" programming the the UI, much of what is happening is highly masked by the IDE. As an example, I just developed an app using VC++ - and I could not even begin to guess as to what is going on under the covers with all the resource files and ba-zillion other miscellaneous files that are generated by VC++. The same app, simply using gcc, make, gtk/gnome, and VSlickEdit, is all layed out for me to see - I know everything that is happening in the program becuase I *wrote* everything (well, ok, glade helped - but I can read the source!).
So I say to the professors out there: keep it to the basics. That's what's important to make fast, readable, efficient code. Once you teach that, the language you use (C, C++, Java, whatever) and the GUI you use (VC++, Qt, Gtk, motif, etc.) are nearly irrelevant.
It'll never happen - if people start using their Tivo/ReplayTV, then the ad people will find ways for you to view ads one way or another - by adding their images/banners to the menu screens within Tivo/Replay, for example. - it's coming - bet on it. I recently got a Poll from ReplayTV asking my opinions on how I'd like my ads presented to me when I hit the "pause" button. - it's coming one way or another.
or will personal fuel-cell generators become wide-spread enough in the near future to start making homes and businesses more autonomous? I'm curious to see how the fuel cell generators like those from Plug Power work out in the next few years.
I second that motion. What good is buying a kit to make an "X"....nothing you can make with it except an "X"! And god forbid you lose the diagram that tells you how to make the "X", or you can never do it again!
And don't get me started on the cost. Buy a nice little set with a whopping 30 pieces (pieces specific to building the "X" of course), and pay what...somewhere around $10.00 for it? C'mon! Make the big generic "bucket-o-legos" more available and bring the price back down!
I agree whole-heartedly. Anybody who learns about computers and programming under Windows using Java or such too-high-level languages is missing out on their educations. I'm 33 and have used Unix in some form since college (Purdue), and I have to say that I've learned TONS since I've been using/playing with Linux - it's a great learning/educational environment, and with all the open source, it's WONDERFUL to be able to learn by simply seeing how everyone else does things!
Linux & C/C++ is by far the best way to learn GOOD programming.
Here is the definitive resource on the Aluminum Foil hats: http://zapatopi.net/afdb.html
A follow-up question I've thought about is... Let's say I download the source to a particular package, finally decipher it myself - would it be considered "rude" to comment the code and send it back to the original developer in hopes that he'd include it in his next release? I suppose in the end it's up to who's code it is - and whether he sees it as helping him or insulting him. ;-)
Hmm... maybe I just ain't so smart. I do at least a LITTLE coding in everything I do - fun or not - to help me remember what's going on next time. Doesn't take a lot of time provide a simple list saying what the parameters are, what they do, and what the return values are - sometimes I can't decipher whether a returned zero is good or bad!
I actually lost some sleep last night thinking about this one. True, things have changed since I was in college (86-90) - for example, then, nobody had a PC in their room (let alone internet access), C++ and OO were just emerging, and almost everyone at school (Purdue) were given userid's on common Unix systems (we're still earlier than X-windows here too!) My personal feeling is that there is a short list of "vital" things that should be the focus of programming education: - C, RCS, and makefiles - so much programming is dependent upon knowing the "basics" of how to program, and how to build, and how to share with others and not lose things - C++ - Once you know the basics, you have to learn OO. - Algorithms - again, more of the basics - quicksort, Dijkstra, etc. - Data structures - hash tables, lists, trees, queues, and the whole lot Maybe I'm tainted by my own "graphics-less" college education, but at the bottom of this short list of mine, I'd put GUI programming. GUI is nice and flashy, and the final interface between the program and the user, but the real heart of any program is what goes on under-the covers. My last point gets me to issues like a professor forcing some particular IDE on the students. Deep down inside, the "core" of programming is totally independent of the IDE you are using. What an IDE locks you into more than anything is one particular GUI interface/API. Given that, then until the focus becomes the UI of the programs under development, then who cares what IDE is being used by everyone? What unnerves me, however, is that when the focus moves from the "core" programming the the UI, much of what is happening is highly masked by the IDE. As an example, I just developed an app using VC++ - and I could not even begin to guess as to what is going on under the covers with all the resource files and ba-zillion other miscellaneous files that are generated by VC++. The same app, simply using gcc, make, gtk/gnome, and VSlickEdit, is all layed out for me to see - I know everything that is happening in the program becuase I *wrote* everything (well, ok, glade helped - but I can read the source!). So I say to the professors out there: keep it to the basics. That's what's important to make fast, readable, efficient code. Once you teach that, the language you use (C, C++, Java, whatever) and the GUI you use (VC++, Qt, Gtk, motif, etc.) are nearly irrelevant.
It'll never happen - if people start using their Tivo/ReplayTV, then the ad people will find ways for you to view ads one way or another - by adding their images/banners to the menu screens within Tivo/Replay, for example. - it's coming - bet on it. I recently got a Poll from ReplayTV asking my opinions on how I'd like my ads presented to me when I hit the "pause" button. - it's coming one way or another.
or will personal fuel-cell generators become wide-spread enough in the near future to start making homes and businesses more autonomous? I'm curious to see how the fuel cell generators like those from Plug Power work out in the next few years.