No one teaches PROGRAMMING any more
-
Steve Echols wrote:
I blame .net, intellisense and languages that make it easy for people to think they know what they're doing. I've seen a lot of drag n drop kiddies in the U.S. as well.
Imagine the power of Intellisense and such tools to those of us who DO know what we are doing, eh? -CB ;)
Yeah, we have some pretty sweet tools. I don't mind the intellisense when I'm exploring new classes or trying to use classes I don't use that often, but for the most part they get in my way, so I turn it off and use Ctrl+Space, Ctrl+Shift+Space. Is it me, or is C#'s intellisense way better than VBs? Just imagine how fast we could code if we had all the classes/functions/parameters memorized and didn't have to stop to read! ;)
- S 50 cups of coffee and you know it's on!
-
Yeah, we have some pretty sweet tools. I don't mind the intellisense when I'm exploring new classes or trying to use classes I don't use that often, but for the most part they get in my way, so I turn it off and use Ctrl+Space, Ctrl+Shift+Space. Is it me, or is C#'s intellisense way better than VBs? Just imagine how fast we could code if we had all the classes/functions/parameters memorized and didn't have to stop to read! ;)
- S 50 cups of coffee and you know it's on!
Hey Steve,
Steve Echols wrote:
Yeah, we have some pretty sweet tools. I don't mind the intellisense when I'm exploring new classes or trying to use classes I don't use that often, but for the most part they get in my way, so I turn it off and use Ctrl+Space, Ctrl+Shift+Space. Is it me, or is C#'s intellisense way better than VBs?
Hmm ... very interesting. I personally find VB's Intellisense better - it generally appears earlier. I also prefer the incremental compiler in VB - it really makes finding errors much quicker. In C# you generally have to compile everything before you find most of the errors. They're both fine - but I prefer VB.
Steve Echols wrote:
Just imagine how fast we could code if we had all the classes/functions/parameters memorized and didn't have to stop to read!
Heh ... yeah, but OTOH, I'm to the point where I've done this for so long I'm glad I don't HAVE to memorize things any more. Just knowing where to look for 'em suits me fine! -CB ;)
-
T-Mac-Oz wrote:
Leslie Sanford wrote: B-trees[^] are rather non-trivial, aren't they? Depends on the requirements: Leslie Sanford wrote: a simple b-tree is little more than a linked list (though with two "next" - left & right - nodes instead of one). A self balancing b-tree (actually useful as more than just an academic exercise) does take a bit more work.
I'm thinking an array for faster access time. And binary trees are actually quite trivial if you've actually built one before. An experience I highly recommend, by the way.
There's a difference between a b-tree and a binary tree. Look 'em up: B-tree (Not to be confused with Binary Tree)
-
There's a difference between a b-tree and a binary tree. Look 'em up: B-tree (Not to be confused with Binary Tree)
azonenberg wrote:
There's a difference between a b-tree and a binary tree. Look 'em up: B-tree (Not to be confused with Binary Tree)
how odd, I have never heard of them before. It is kind of like a tree of priority queues, weird. Looks like I have a coding project for the weekend now :)
-
Ray Cassick wrote:
Ah, where are those days again....
I hear you, Ray. I'm surprised at the number of developers who hold a CS degree who've never written a compiler, never programmed in assembler and haven't had more than an introductory course in operating systems. :sigh: /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Well I guess I'm in the minority then. I'm 17 years old and will be entering a CS program at a major university this fall. I wrote my first C program in 1999 and was learning C++ before my tenth birthday. I've written a bytecode compiler and interpreter for an object-oriented language based on C++. I not only wrote a complete Windows GUI application (albeit a simple one) in x86 assembly, I actually enjoyed doing it. I've never had a formal course in operating systems, but that will be coming soon...
-
i agree. i think it's because when WE cut our teeth on the stuff, computers were something you could understand more easily. back then it was assembler, turbo pascal and ms/dos. maybe c64 and basic. maybe Amiga and C. You could figure it all out yourself and the OS was not a huge monstrosity like windows or unix that we have now. Well, ok, the Amiga os was starting to get monstrous, but ms/dos? Easy. The languages were simpler, the OS was way simpler. What's simpler than load"*",8,1 ?? That was the whole c64 os right there :) Ok ok, well, screen memory for text, graphics mode for pixels, nice simple sound chip. Not too bad. I'd say, to teach programming now adayz, your best bet is with slackware linux and straight c. You don't program by plopping in a prebuilt class into a java dev environment. For cryin out loud, you should know SOME assembler coming out of college.
You should know assembler coming OUT of college? I'm 17 and will be a college freshman (CS major, obviously) this fall. I wrote the code snippet below off the top of my head, using no references but an ASCII table (to look up the value of '0'. It doesn't do anything complicated - just outputs the numbers 0 to 9 inclusive - but it proves my point.
main: xor eax, eax ; initialize loop loop: mov ebx, eax ; convert to ascii for output add ebx, 30h push ebx ; print it call putc add esp, 4 ; unwind the stack inc eax ; bump loop counter cmp eax, 9 ; time to stop? jle loop ; no, keep going done: ret putc: ; implementation not shown - print character at top of stack to screen ; using __cdecl calling convention
modified on Tuesday, May 13, 2008 7:28 PM
-
I have to agree. But, you have to consider this much: the software developer that KNOWS the underlying hardware (as well as the business stuff too) is going to be the one who comes out smelling like a rose. That is, if outsourcing doesnt choke us all first. While it may be true that they dont teach carpenters how to make tools anymore, those who know how the tools are made and the history of the tools themselves, are at an advantage... Some of the best carpenters were able to devise their own tools because they knew tool-making as well as carpentry.
I don't really agree. It would be comforting to think so being a person that learned from assembly on up, I could say "I am better" but in the trenches it's a minor advantage in rare cases at best. Hardware is dirt cheap, it's far cheaper to simply spec higher level hardware than to pay developers to spend a month optimizing something and the majority of software is written for a virtual machine these days anyway. Your tool analogy might be applicable to craftsmen that are hand making furniture, but a run of the mill carpenter not so much. Society has made it's choice: faster and cheaper. Few care about quality these days, just "is it good enough". That's one reason why I have my own company, I couldn't work in a cubicle all day on something I know is simply "good enough" day after day.
"The great pleasure in life is doing what people say you cannot do." - Walter Bagehot
-
You should know assembler coming OUT of college? I'm 17 and will be a college freshman (CS major, obviously) this fall. I wrote the code snippet below off the top of my head, using no references but an ASCII table (to look up the value of '0'. It doesn't do anything complicated - just outputs the numbers 0 to 9 inclusive - but it proves my point.
main: xor eax, eax ; initialize loop loop: mov ebx, eax ; convert to ascii for output add ebx, 30h push ebx ; print it call putc add esp, 4 ; unwind the stack inc eax ; bump loop counter cmp eax, 9 ; time to stop? jle loop ; no, keep going done: ret putc: ; implementation not shown - print character at top of stack to screen ; using __cdecl calling convention
modified on Tuesday, May 13, 2008 7:28 PM
azonenberg wrote:
You should know assembler coming OUT of college?
well, i think i said "at least know..." or something to that effect... Not sure why you're trying to prove to me you know asm... Looks kinda like an answer to a short quiz... Not code i'd likely have written. your labels are a little lamely named. your comments should say "printing out the string 0123456789 instead of "bump loop counter" and won't it print a character beyond 9 due to your cmp?
-
El Corazon wrote:
There are more than enough jobs, and more than enough people to fill them.
Can you explain to me exactly what this means? Aren't these mutually exclusive states?
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"How do you find out if you're unwanted if everyone you try to ask tells you to go away?" - Balboos HaGadolBalboos wrote:
Aren't these mutually exclusive states?
Not really. If there is no intention of hiring someone local, then you simply leave the job open, turn away all 300+ applicants, and then outsource the job to India. Or you simply never offer the job locally, and determine behind the scenes that you need to hire n number of people from India, and then never check their qualifications. You get them cheap, so what does it really matter right?
------------------ John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."
-
-
Well I guess I'm in the minority then. I'm 17 years old and will be entering a CS program at a major university this fall. I wrote my first C program in 1999 and was learning C++ before my tenth birthday. I've written a bytecode compiler and interpreter for an object-oriented language based on C++. I not only wrote a complete Windows GUI application (albeit a simple one) in x86 assembly, I actually enjoyed doing it. I've never had a formal course in operating systems, but that will be coming soon...
Very cool! :cool: /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Ravi Bhavnani wrote:
ROFL! That's why love MIT's brief but effective differentiator[^].
Funny. For a second, I thought I was reading the synopsis of the CS department where I went to school - their approach was pretty much exactly the same. Little or no emphasis on languages; little or no emphasis on application development for its own sake. Lots of emphasis on algorithms and data structures; lots of emphasis on math. Incidentally, my degree was in Engineering, but there's alot of overlap and I took alot of CS classes.
It has become appallingly obvious that our technology has exceeded our humanity. - Albert Einstein
Patrick S wrote:
my degree was in Engineering, but there's alot of overlap
For sure. At MIT, the EE and CS curricula blend into each other. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Walking backwards. :) /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Being from India as well and undergoing my college course (1st year), I completely understand and agree with cpp.samurai. I think you are overestimating C++ in India. Forget "new" and "delete", my teacher barely understands what pointers are which naturally spills over to the students as well. In my opinion, I find programmers in US, UK, etc are vastly superior. Obviously, I am judging by the people *I* meet which happen to be teenagers. I just don't find that kind of spirit here. Out of the 60 students in my class for my course ("Computer Science and Engineering"), the rest 59 can barely do a "Hello World". The problem lies in the root. Ask anyone in my class, they chose Computer Science simply because thats where the demand is not because they actually like the subject. I doubt outsourcing has any effect on programming worldwide. Its more of customer support, etc thats being outsourced, monotonous work. I don't think you can apply the same sort of teaching pattern for other subjects to programming. Ironic actually, you spent more time writing code in your book than a computer. I do agree, a certain amount of theory is required for programming as well but the usual grinding and mugging up can never be applied to coding. Sadly, it happens. Most of the students in my class can write basic programs but when it comes to pointers and stuff, they actually byheart the code and the examinations don't ask any questions beyond your textbook. I just don't get it, how can anyone just memorize a program. "There is no teaching, only learning." Programming is the best example for the quote :)
-
UD wrote:
25 years of development and, not only head-down/hands-on development, but business experience (across hospitality, accounting, financial, utilities, medical and machinery to name a few). I can read and understand a balance sheet and speak business as well as developer talk in one breath. I would consider myself a true hybrid. Yet, most dont care and the ones that do are waning quickly.
If you're located in the Midatlantic States of the US, you need a few good recruiters to help (check out Indeed.com as well, it will explain itself nicely). Right now they're asking me to slash my rates or else they go to India, China, Vietnam even Lithuania!! And by slash rates I mean from $100/hr to less than $30, some even less than $20. After I take out healthcare, mortgage, car(gas), food and simple business expenses (software, internet, etc), there is nothing left from $25/hr. Nothing. Its crazy. Um, this was a subtle but important point of what I said: they want you IN HOUSE. $100/hour consulting work is dying rapidly as a result (one of the jobs I recently interviewed for was to sepcifically avoid retaining a consultant any longer than I needed to jumpstart my own project). They'll pay part or all of your benefits, but they want you as theirs, not shared, and right now salaries in this area are running $60-85k with benefits. This won't support your current lifestyle, I'm guessing, but it beats the heck out of $12000/year or "may I take your order, please?". However, you're not going to get rich doing it.
You sure are right. Some ways of doing the business are changing, but the need for talented software developers is not going away.
-
Pete Appleton wrote:
RTFM. That's how we learnt.
I "learnt" before there was any manuals to read. ;) Back in the late 70's working for Quadram I had to write device-drivers for PC's running DOS 1.1 before there WERE any "how-to" books on the subject! You had to take the Microsoft (or IBM) documentation and provided source-code examples and learn the difference between the types of drivers and how to code them. Before that it was writing FORTRAN IV on a PDP-11 and CDC Cyber-74. RTFM? No M to RTF! mov ax, 4C00h int 21h -CB :)
The documentation you're talking about was the FM I was referring to ... previously came in the form of large, ring-bound dead trees much of which just said "This page left intentionally blank" but now comes in various electronic formats that decay faster. IE - the FM, not one of the zillion "If you can't be bothered to RTFM, this explains it" books there are now. Yup, I learnt back at that time, too! Part of my learning actually came from reverse engineering CP/M :-D .loop ld bc,0003h ld hl,[2600h] int 21h djnz .loop
-- What's a signature?
-
Why is that? Because some developer in India told ME to stop whining the other day. This is how he put it: "An average developer in India earns the equivalent of $1000 USD a month, gross pay. If you want to match or beat that then I would be willing to bet you'd get the contracts in America. Otherwise, you simply wont". So....... thats what we're being reduced to people. We're being reduced to $12,000 a year employees. People in WALMART make about that. Mc Donalds. Borders. And they dont have 1/10th of the pressure. So, yea, I too am looking for a new career. This one has been pulled from under my feet.
Well you should not. There are a lot of good positions for someone with CS skills. No matter what, there is a limit to what can be sent abroad, and the shortage of trained people in the us is and will remain acute. So I think your views are quite exagerated. Do a little research, and you'll find companies who need in-house people with decent skills.
-
Bottom line, those of us who know not only how to code, but to write elegant code will always be in high demand. There are plenty of jobs in companies that use proper interviewing and weeding to find the diamonds in that mountain of sand that apply. I've never had a problem when I wanted to make a move.
Interesting..... Reading this has made me realise how much Google has destroyed my ability to really write code that I understand (in the sense that I wrote it from scratch after researching a book). I started with USCD Pascal on an Apple ][e, then to VAXes in univ. and thens to PCs (C, and now degenerated to VB.NET...), so I've been doing it long enough to remember gopher.... It's been a long time since I looked at a book to figure out the way to code something as against Googling to see if somebody else has done it already. D. -------- The Good Old Days - Fast FTP to a site with a huge collection of GIFs.... hold on....
-
The documentation you're talking about was the FM I was referring to ... previously came in the form of large, ring-bound dead trees much of which just said "This page left intentionally blank" but now comes in various electronic formats that decay faster. IE - the FM, not one of the zillion "If you can't be bothered to RTFM, this explains it" books there are now. Yup, I learnt back at that time, too! Part of my learning actually came from reverse engineering CP/M :-D .loop ld bc,0003h ld hl,[2600h] int 21h djnz .loop
-- What's a signature?
Pete Appleton wrote:
The documentation you're talking about was the FM I was referring to ... previously came in the form of large, ring-bound dead trees much of which just said "This page left intentionally blank" but now comes in various electronic formats that decay faster. IE - the FM, not one of the zillion "If you can't be bothered to RTFM, this explains it" books there are now. Yup, I learnt back at that time, too! Part of my learning actually came from reverse engineering CP/M
Programming sure was fun back then, wasn't it? It's still OK - but back then it was more of an adventure. Later! -CB :)
-
...Or math, which is where I think the fundamental problem lies. I work at a University and teach a couple of classes and our computer science classes have been getting smaller from enrolling freshman, but the real eye opener is the transfer from Computer Science to Digital Media (web development, graphics design...). Basically, kids are saying, "I like games and love browsing the internet, I think I'd like to learn about computers." They quickly realize Calculus 1 is way over their head and shift over to a degree that requires no math, but still has everything to do with computers. So, in summary, I don't think our pre-collegiate schools (high school, middle school, elementary school) are preparing our youth for Math like we were 10 years ago (and I'm only 27).