Microsoft Is Indoctrinating Children, Shouldn't We?
wildgift writes: "This is probably not news to some young people, but some of the older people here should be aware that Microsoft runs a wide ranging IT/Programming curriculum project, called Mainfunction, that teaches young people to program using Microsoft tools. The obvious issue is: is anyone leveraging the education-friendly Unix environment to create a similar program? This is a huge opportunity. So far, I've only found this Python article." If Microsoft is getting their tools in the hands of the programmers of the future, what can we do to achieve the same? Wouldn't it be much better if kids could take a look at development on several different platforms so that they can better use the technology when they are professionals rather than settling on "what they know"?
For beginning programming, I'd think UNIX would be a lot friendlier than any MS platform; they should be learning the basics, not API calls and cafeteria-style programming.
So what are the basics?
Assembly language?
Functions and variables?
Classes and objects?
Command line programming?
GUI programming?
Define the basics, and you'll find that your definition doesn't match everyone's.
For 'beginning' programming (presumably by which everyone here seems to mean command-line C apps), UNIX is no friendlier than MS's platform -- if not more unfriendly (this may change when the KDE IDE is finished) -- text-based debugging sucks ass.
For example:
Open MS VC++
Create a "Win32 Console App" project.
Enter:
#include
int main(char[][] argv, int argc) {
printf("Hello world\r\n");
}
Then hit run.
Hey presto! It works. Wow. That looks real different to Unix programming, doesn't it?
So what's the difference? Learning how to fork? socket programming? (not something that most people will hit until they're a bit more experienced)? What?
Or is it just that UNIX isn't Microsoft? Sounds like it to me.
Coming soon - pyrogyra
We don't need to worry - unix has the "natural appeal" for aspiring programmers. And, with unix,they get all the necessary tools for free. This microsoft program might teach programming to someone who will never really be a good programmer - good programmers are "natural" (at least they have the "programmers drive"), and don't wait for school to teach them something they would learn much earlier if they just bothered to read some books.
This seems kinda desperate. Is microsoft really losing ALL the interest among developers?
Save your wrists today - switch to Dvorak
There are multiple issues I see with teaching C (or any language) using Microsoft stuff. My main two beefs are:
When I attended a Computer Science program at our local University, I was excited when we got to a class on 68000 assembly (this was mid 80s). Since I owned a Mac, I wanted to learn how to program a Mac. Instead, we got a programming environment that when loaded, it turned the mac into some text-based machine with minimal I/O support. I was pissed at first, but understood eventually. The class was there to teach how to code assembly, not how to program a Macintosh. The environment guaranteed we'd concentrate on the language.
There are two ways to learn. Learn how to do something, or learn WHY you are doing it. I guess it falls down to the traditional argument of theory versus practical learning. Yeah, practical learning in a specific area can get you a job real fast. But let me tell you, this world moves real fast and because I understand programming as a concept very well as well as OS theories, I can pick up the latest programming tool on whatever platform and pick it up and become well-versed in very short time.
Still not convinced? I am 41. An old fossil in this industry but I can still quickly adapt to any technology that is current. While interviewing job candidates, I've found many of them have very narrow specific skills. This may be good if that particilar skill is still in demand, but once it's considered old (witness Microsoft dismissing Java for C# and .NET), you need expensive and time-consuming retraining.
To be fair, there are a number of advantages for a graphic-rich development environment, many that have already been mentioned. Editors that highlight or check syntax as you type (well, even emacs does this but...). Graphic debuggers can also be very helpful in showing how code gets executed and what can go wrong (although this should come later. People need to know how to manually walk through code too).
Bottom line, good programming skills can be taught in a Microsoft shop. One must simply know how to teach to ensure the student learns the best short and long-term skills. Oh, and run it all on a Windows Term Server for remote access! :)
If you are programming in a modern programming language like Python or even JavaScript, with a portable GUI framework like Tk, Swing or Mozilla, it really sould not matter what operating system you are using.
Rather than promoting "Unix for schools" we should promote "platform-independent software development for schools." We should stress that if you focus on that which works across platforms you come to understand better the universal themes of computer science rather than the specifics of an OS.
Once the operating system becomes more or less irrelevant, schools will of their own volition choose the operating system that is cheaper, more secure, easier to maintain programatically and so forth.
Paul Prescod
Comment removed based on user account deletion