Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. No one teaches PROGRAMMING any more

No one teaches PROGRAMMING any more

Scheduled Pinned Locked Moved The Lounge
155 Posts 78 Posters 48 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G GoodSyntax

    Having risen through the college system and through the corporate ranks here are some observations: Colleges are not focusing on the fundamentals of programming, namely Systems Analysis, Workflow Logic, Structured Programming, the Low Level details of WHAT the code is ACTUALLY doing and finally the Human/Computer interaction basics (such as good UI design). I have seen a shift away from the detailed understanding of programming to a more high level practical understanding of the Framework/IDE that they are trying to teach. It seems this industry is trying to turn everyone into programmers by dumbing down the prerequisites and wrapping everything up in a shiny IDE that does a lot of the heavy lifting. This, ultimately, leads to lazy programmers who don't have the solid computer science and logical concepts to grasp what their code is doing at a low level. Unfortunately, we are creating a generation of script kiddies that can't code outside of an IDE that provides most of the programming structure/objects for them. For those who went through the Computer Science tracks during the 80's, I'm sure that you will agree that instructors were engaging in the same level of learning and discovery as the students. This led to a more inquisitive environment that made graduates more well rounded at both a conceptual and practical level. Many modern colleges have turned into maketing companies that tout courses in whatever the hottest platform of the day is (RUBY, .NET, etc.) and eschewing fundamental courses such as COBOL (don't laugh, even though it is an ancient platform, it is a great class for structured programming concepts), and C/C++ and even the more general Networking (TCP/IP) and Systems Analysis courses. Another observation, and this is more of a cultural phenomenon is that young developers today simply are not as driven to put in the hours to learn the details of their profession. Granted, I am broad brushing and there are A LOT of great programmers that recently graduated, but this Millenium Generation needs instant gratification and suprisingly lacks the dedication to their profession that previous generations had. Programmers from yester-year were enginneers first, always trying to make things better, to understand fully what was going on, to provide real value with the software that they created. Newer programmers are in the field because it pays well, has a high degree of job security and is relatively easy. Finally, and I mentioned this before, today there is a flood of IDE's, 3rd party c

    K Offline
    K Offline
    keyboard warrior
    wrote on last edited by
    #76

    GoodSyntax wrote:

    this Millenium Generation needs instant gratification and suprisingly lacks the dedication to their profession that previous generations had.

    oh yes, we can just sum this up with how awesome the generation was before the Millenium generation as you call it. that explains it all. everyone is just lazy and useless now and the world will probably self-destruct when whatever prior generations have all died away and can't save the Millenium.

    ----------------------------------------------------------- Completion Deadline: two days before the day after tomorrow

    G 1 Reply Last reply
    0
    • G GoodSyntax

      Having risen through the college system and through the corporate ranks here are some observations: Colleges are not focusing on the fundamentals of programming, namely Systems Analysis, Workflow Logic, Structured Programming, the Low Level details of WHAT the code is ACTUALLY doing and finally the Human/Computer interaction basics (such as good UI design). I have seen a shift away from the detailed understanding of programming to a more high level practical understanding of the Framework/IDE that they are trying to teach. It seems this industry is trying to turn everyone into programmers by dumbing down the prerequisites and wrapping everything up in a shiny IDE that does a lot of the heavy lifting. This, ultimately, leads to lazy programmers who don't have the solid computer science and logical concepts to grasp what their code is doing at a low level. Unfortunately, we are creating a generation of script kiddies that can't code outside of an IDE that provides most of the programming structure/objects for them. For those who went through the Computer Science tracks during the 80's, I'm sure that you will agree that instructors were engaging in the same level of learning and discovery as the students. This led to a more inquisitive environment that made graduates more well rounded at both a conceptual and practical level. Many modern colleges have turned into maketing companies that tout courses in whatever the hottest platform of the day is (RUBY, .NET, etc.) and eschewing fundamental courses such as COBOL (don't laugh, even though it is an ancient platform, it is a great class for structured programming concepts), and C/C++ and even the more general Networking (TCP/IP) and Systems Analysis courses. Another observation, and this is more of a cultural phenomenon is that young developers today simply are not as driven to put in the hours to learn the details of their profession. Granted, I am broad brushing and there are A LOT of great programmers that recently graduated, but this Millenium Generation needs instant gratification and suprisingly lacks the dedication to their profession that previous generations had. Programmers from yester-year were enginneers first, always trying to make things better, to understand fully what was going on, to provide real value with the software that they created. Newer programmers are in the field because it pays well, has a high degree of job security and is relatively easy. Finally, and I mentioned this before, today there is a flood of IDE's, 3rd party c

      D Offline
      D Offline
      Dan Neely
      wrote on last edited by
      #77

      GoodSyntax wrote:

      but this Millenium Generation needs instant gratification and suprisingly lacks the dedication to their profession that previous generations had.

      And exactly how is this accusation different that what was tarred against GenY and GenX in years prior (and probably earlier generations as well, but since they predate my birth...)?

      You know, every time I tried to win a bar-bet about being able to count to 1000 using my fingers I always got punched out when I reached 4.... -- El Corazon

      G 1 Reply Last reply
      0
      • R Ray Cassick

        They all teach application development, but not programming. When I started out you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper. Ah, where are those days again....


        FFRF[^]


        L Offline
        L Offline
        lbothell
        wrote on last edited by
        #78

        I absolutely hate to agree with you, but I have to. I was SO excited about a year ago to return to school to learn to be a web programmer (to build on web design skills and lots of interest). I was ready to take on all the classes, learn, program, etc. But! Many of the classes kept being canceled. There was no real overview of the whole field, and even intros into basic stuff like XML were canned. No PHP, no Perl, no QBasic, no C#. The tools needed to do basic stuff like learn SQL Server didn't work or the school's IT folks brilliantly decided to replace or dismantle servers the first week of the quarter. But worst of all, I came to realize after 4 quarters of 4.0 grades that there had been no series of really basic programming classes. There was one, with a really good instructor, but one was not nearly enough and most of the basics - well, let's just say I am having to find a way to teach myself. I was getting "A's" in ASP.Net without having basic programming background, and it was showing (to me) in how much I struggled in what seemed like basic assignments where the VS2005/2008 Intellisense and error messages intruded on basic work without providing any help but hindering me from doing simple stuff - all because, it turned out, I didn't have a grasp of most basic programming skills. A shiny new certificate - that means very little. Back to the drawing board for me. Here's hoping there's at least enough front-end work to keep me employed while I learn more on my own. . . DOES anyone here have a suggestion of 1-2 basic sites/tutorials (or series) that go over the programming BASICS with little assignments/examples, etc.? Thanks!!! :cool:

        _________________________________________________ Have a great day!!! -- L.J.

        K J 2 Replies Last reply
        0
        • W westicle

          I'm one of those people that has a development job (vb.net) and has not been taught programming. I got my job from working as a finance/payroll admin where I built a system to manage my companies Flex benefits using VBA and spreadsheets. I tought myself the VBA. I was moved into the development team (5 peeps) and sent on a course for people upgrading from asp to asp.net (!?!?!??!?!?). What's asp I asked. I've been doing this for 2 years now. I rely heavily on intellisense but no dragging and dropping. I tend to learn from asking colleagues, friends, reading books and google. I am well aware that there are some fundamental pieces of the puzzle that I am missing but I can build apps that achieve what they are supposed to do. If I had to go through the interview process for my job now I do not believe I would get it. The purpose of my post is two-fold 1. Does it matter that I am missing some coding fundamentals since I can build working applications? (don't get me wrong, I'm not kidding myself about my abilities) 2. Where and how do I learn these fundamentals? Should I turn off intellisense as a start? Do you all use intellisense?

          Westie

          C Offline
          C Offline
          cpkilekofp
          wrote on last edited by
          #79

          It is a mathematical fact that, for any given coding problem in any given language, there are an infinite number of solutions to the problem. One attempts to find a solution that as close as possible to the optimal solution (which, for some problems, may only be approximated). Computer science is the study of computing problems and of how to find optimal solutions. I am a M.S.C.S., and my course work and independent study placed me in a variety of programming environments solving difficult problems using general knowledge and specific instruction from my professors. The most difficult parts to grasp were how to look at the problem and decide, "Is this problem in a form I recognize, so that I don't have to scurry here and there slapping a solution together like a house of straw or twigs, but build it confidently in brick?" Only a computer scientist can teach this. Thankfully, many of them write excellent books. I can not recommend to you highly enough that you first study the trilogy of texts entitled The Art of Programming written by Donald Knuth. I think they are in their second or third edition now. To true programmers, Knuth is the gold standard: if you can solve half the problems and make an intelligent assault on the rest, you are a real programmer. I can. I also use Intellisense ALL the time, fewer errors that way for one who lost count of the number of languages both compiled and interpreted that he learned by 1997 (on bad days I type == in VB code, from my earlier heritage of C/C++ programming addled by extensive Javascript work recently). I don't expect to memorize every programming environment I deal with; I do expect (and usually find) excellent support via the WWW for finding specific techniques for dealing with environmentally dependent problems. It is risible to think that one must shun these tools, as if a Renaissance monk disdained printed books and all who used them because he with his "house of memory" didn't need written notes - it's a nice talent, but the rest of us can match the product of that talent with a notebook and readable handwriting at speed. I do study ALGORITHMS and DATA STRUCTURES and the tradeoffs with various implementations of these. You can do this by buying the books and reading them. Good luck :)

          K 1 Reply Last reply
          0
          • Steve EcholsS Steve Echols

            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. :) But, yeah, outsourcing hasn't helped the situation out much.


            - S 50 cups of coffee and you know it's on!

            A Offline
            A Offline
            Azad Giordano Ratzki
            wrote on last edited by
            #80

            Sound like you really know what your talking about...Steve-o... .NET is a great development framework. Programming languages do make it easy for people to think they know what they're doing...do you write your programs in assembly...oh wait that would still be a language. As for intellisense, it doesn't do anything except act as a reference for your code and any other classes you are working with, how does that substitute the actual use of those classes, methods, fields etc...? C++ is great so is C++ w/ .NET and so is C# and Java.

            Steve EcholsS 1 Reply Last reply
            0
            • C cpkilekofp

              It is a mathematical fact that, for any given coding problem in any given language, there are an infinite number of solutions to the problem. One attempts to find a solution that as close as possible to the optimal solution (which, for some problems, may only be approximated). Computer science is the study of computing problems and of how to find optimal solutions. I am a M.S.C.S., and my course work and independent study placed me in a variety of programming environments solving difficult problems using general knowledge and specific instruction from my professors. The most difficult parts to grasp were how to look at the problem and decide, "Is this problem in a form I recognize, so that I don't have to scurry here and there slapping a solution together like a house of straw or twigs, but build it confidently in brick?" Only a computer scientist can teach this. Thankfully, many of them write excellent books. I can not recommend to you highly enough that you first study the trilogy of texts entitled The Art of Programming written by Donald Knuth. I think they are in their second or third edition now. To true programmers, Knuth is the gold standard: if you can solve half the problems and make an intelligent assault on the rest, you are a real programmer. I can. I also use Intellisense ALL the time, fewer errors that way for one who lost count of the number of languages both compiled and interpreted that he learned by 1997 (on bad days I type == in VB code, from my earlier heritage of C/C++ programming addled by extensive Javascript work recently). I don't expect to memorize every programming environment I deal with; I do expect (and usually find) excellent support via the WWW for finding specific techniques for dealing with environmentally dependent problems. It is risible to think that one must shun these tools, as if a Renaissance monk disdained printed books and all who used them because he with his "house of memory" didn't need written notes - it's a nice talent, but the rest of us can match the product of that talent with a notebook and readable handwriting at speed. I do study ALGORITHMS and DATA STRUCTURES and the tradeoffs with various implementations of these. You can do this by buying the books and reading them. Good luck :)

              K Offline
              K Offline
              keyboard warrior
              wrote on last edited by
              #81

              cpkilekofp wrote:

              Only a computer scientist can teach this.

              this of course is just wonderful rhetoric from the many professors over the years im sure. chest thumping Computer Science faculty.

              ----------------------------------------------------------- Completion Deadline: two days before the day after tomorrow

              C 1 Reply Last reply
              0
              • L lbothell

                I absolutely hate to agree with you, but I have to. I was SO excited about a year ago to return to school to learn to be a web programmer (to build on web design skills and lots of interest). I was ready to take on all the classes, learn, program, etc. But! Many of the classes kept being canceled. There was no real overview of the whole field, and even intros into basic stuff like XML were canned. No PHP, no Perl, no QBasic, no C#. The tools needed to do basic stuff like learn SQL Server didn't work or the school's IT folks brilliantly decided to replace or dismantle servers the first week of the quarter. But worst of all, I came to realize after 4 quarters of 4.0 grades that there had been no series of really basic programming classes. There was one, with a really good instructor, but one was not nearly enough and most of the basics - well, let's just say I am having to find a way to teach myself. I was getting "A's" in ASP.Net without having basic programming background, and it was showing (to me) in how much I struggled in what seemed like basic assignments where the VS2005/2008 Intellisense and error messages intruded on basic work without providing any help but hindering me from doing simple stuff - all because, it turned out, I didn't have a grasp of most basic programming skills. A shiny new certificate - that means very little. Back to the drawing board for me. Here's hoping there's at least enough front-end work to keep me employed while I learn more on my own. . . DOES anyone here have a suggestion of 1-2 basic sites/tutorials (or series) that go over the programming BASICS with little assignments/examples, etc.? Thanks!!! :cool:

                _________________________________________________ Have a great day!!! -- L.J.

                K Offline
                K Offline
                keyboard warrior
                wrote on last edited by
                #82

                lbothell wrote:

                Many of the classes kept being canceled. There was no real overview of the whole field, and even intros into basic stuff like XML were canned. No PHP, no Perl, no QBasic, no C#. The tools needed to do basic stuff like learn SQL Server didn't work or the school's IT folks brilliantly decided to replace or dismantle servers the first week of the quarter.

                so in other words, you picked a crappy school to get a degree titled "web programming" ?

                ----------------------------------------------------------- Completion Deadline: two days before the day after tomorrow

                1 Reply Last reply
                0
                • R Rahul Ravindran

                  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 :)

                  D Offline
                  D Offline
                  DragonsRightWing
                  wrote on last edited by
                  #83

                  Being both a self-taught developer (currently) and tech support guy (in the recent past), there is an underlying problem: the ability to think in a reasoned and rational way is becoming a lost art. Customer Support, particularly technical support, has been reduced to simply following a flowchart of common problems and solutions. If a problem that isn't on that chart comes up, the modern 'help desk" is just helpless, because the 'analysts' haven't been trained to understand the system they supposedly support, and thus can't truly analyze anything. The same, of course, holds true for developers: understanding the process of problem solving is a large chunk of developing a robust application - but a developer who can't think critically will not be able to use logic to solve the design requirements. A test that would weed out those who only know the language, but do not understand logic, is the ability to write pseudocode to solve the problem first - a good pseudocode phase of design will then easily translate to just about any language, proving that the underlying understanding of the solution was sound. History is the interminable record of mass stupidity infrequently puctuated by accidental individual brilliance...

                  1 Reply Last reply
                  0
                  • D David I Hunt

                    .NET and Java are definitely the problem, though ignorance is the cause of it. People go to "easy" languages for two reasons. 1) They are stupid. 2) The Pointy-Haired Boss is stupid and forced them to use "easy" language. There are some people who are just lazy, but IMHO, laziness is a form of ignorance. Bjarne Stroustrup saw this problem appearing a while ago and is focusing his efforts on trying to get schools to actually teach programming again. For anyone reading this who wants to learn to code well... start with x86/64 assembly any work up from there.

                    I have nothing against VB or .NET per se. It just seems that some languages attract one echelon of programmers, and other languages attract a much higher echelon of programmers. :P

                    D Offline
                    D Offline
                    DragonsRightWing
                    wrote on last edited by
                    #84

                    I'll be interested to see the code for your Excel replacement written entirely in x86 assembler... History is the interminable record of mass stupidity infrequently puctuated by accidental individual brilliance...

                    T D 2 Replies Last reply
                    0
                    • R Ray Cassick

                      They all teach application development, but not programming. When I started out you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper. Ah, where are those days again....


                      FFRF[^]


                      Y Offline
                      Y Offline
                      yassir hannoun
                      wrote on last edited by
                      #85

                      Ray Cassick wrote:

                      you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper.

                      i m starting out with C# (almost a year) can u point me to a book that will help me do that ?? or any other resources ??

                      1 Reply Last reply
                      0
                      • R Ray Cassick

                        They all teach application development, but not programming. When I started out you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper. Ah, where are those days again....


                        FFRF[^]


                        J Offline
                        J Offline
                        JonathanVu
                        wrote on last edited by
                        #86

                        Here at San Jose State, we have a pretty good "Java" based Computer Science Department, but good luck asking anyone what a pointer is. I'm probably the only one that knows.

                        1 Reply Last reply
                        0
                        • D Dan Neely

                          GoodSyntax wrote:

                          but this Millenium Generation needs instant gratification and suprisingly lacks the dedication to their profession that previous generations had.

                          And exactly how is this accusation different that what was tarred against GenY and GenX in years prior (and probably earlier generations as well, but since they predate my birth...)?

                          You know, every time I tried to win a bar-bet about being able to count to 1000 using my fingers I always got punched out when I reached 4.... -- El Corazon

                          G Offline
                          G Offline
                          GoodSyntax
                          wrote on last edited by
                          #87

                          Touche! It probably IS the same gripe. On the other hand, I do notice that the newest generation tends to be more innovative in the application of technology in every day life. That's probably because technology was so ubiquitous while they were growing up. Again, I'm sure that the same comment was made against the GenY and GenX'ers.

                          1 Reply Last reply
                          0
                          • D DragonsRightWing

                            I'll be interested to see the code for your Excel replacement written entirely in x86 assembler... History is the interminable record of mass stupidity infrequently puctuated by accidental individual brilliance...

                            T Offline
                            T Offline
                            tstirewalt
                            wrote on last edited by
                            #88

                            As I recall a small Lotus123 style spreadsheet was a class project in CS302 Assembly Language Programming (1987 SIU-Carbondale). Of course it was on a much smaller scale and not nearly so pretty, but it was an assembly language spreadsheet for 3rd year undergrads.

                            D 1 Reply Last reply
                            0
                            • T tstirewalt

                              As I recall a small Lotus123 style spreadsheet was a class project in CS302 Assembly Language Programming (1987 SIU-Carbondale). Of course it was on a much smaller scale and not nearly so pretty, but it was an assembly language spreadsheet for 3rd year undergrads.

                              D Offline
                              D Offline
                              DragonsRightWing
                              wrote on last edited by
                              #89

                              My point was that .NET is not the problem, the misuse of a tool to cover a lack of understanding the principles is the problem. In the world as it currently is, .NET (or Java, or any of the other tools out there for writing highly advanced applications), when used properly are excelent tools for developing applications that would be prohibitively complex and prone to bugs if written without the aid of some type of framework.

                              1 Reply Last reply
                              0
                              • A Azad Giordano Ratzki

                                Sound like you really know what your talking about...Steve-o... .NET is a great development framework. Programming languages do make it easy for people to think they know what they're doing...do you write your programs in assembly...oh wait that would still be a language. As for intellisense, it doesn't do anything except act as a reference for your code and any other classes you are working with, how does that substitute the actual use of those classes, methods, fields etc...? C++ is great so is C++ w/ .NET and so is C# and Java.

                                Steve EcholsS Offline
                                Steve EcholsS Offline
                                Steve Echols
                                wrote on last edited by
                                #90

                                I program in binary - intellisense 0/1. :-D Wasn't saying that .net, intellisense, high level languages aren't great, just that they are allowing a lot of people who aren't programmers to enter the fray and give dedicated, professional programmers a potentially bad name, similar to what VB did in the 90's. Back then, if you told someone you programmed in VB, you didn't get much respect, even if you were a great VB programmer, used oop and the works. If you were a C/C++ programmer, on the other hand, people had a lot more respect for you, since they knew it required some level of skill. Now, it's a little grayer, since everything is .net, and the language doesn't make a damn bit of difference, but when people start pumping out slow, poorly designed, memory hungry .net apps, it's going to give the whole framework a black eye and take all the developers down with it, regardless of whether you're a "real" programmer or not. Dang, I'm turning into a grumpy old man, aren't I?! :)


                                - S 50 cups of coffee and you know it's on!

                                • S
                                  50 cups of coffee and you know it's on!
                                  Code, follow, or get out of the way.
                                1 Reply Last reply
                                0
                                • K keyboard warrior

                                  GoodSyntax wrote:

                                  this Millenium Generation needs instant gratification and suprisingly lacks the dedication to their profession that previous generations had.

                                  oh yes, we can just sum this up with how awesome the generation was before the Millenium generation as you call it. that explains it all. everyone is just lazy and useless now and the world will probably self-destruct when whatever prior generations have all died away and can't save the Millenium.

                                  ----------------------------------------------------------- Completion Deadline: two days before the day after tomorrow

                                  G Offline
                                  G Offline
                                  GoodSyntax
                                  wrote on last edited by
                                  #91

                                  jgasm wrote:

                                  everyone is just lazy and useless now and the world will probably self-destruct when whatever prior generations have all died away

                                  - Senseless hyperbole. What I am saying is that previous generations of software engineers, the same group that built the software and hardware foundations that we take for granted today, were intellictually inquisitive pioneers relentlessly driven to extract the maximum value out of the modest capabilities of the hardware and software of the time. They were the ones that invented, revolutionized and drove into the mainstream ideas and concepts that others were disparaging as senseless and infeasable. Many of those old-timers were severely undervalued financially or were simply dedicated hobbyists. There was a large percentage of the talent pool at the time that exhibited all of the above traits. Today, that percentage has shrunken immensely. There will always be superstars in every generation, but there are just fewer of them now. There is simply a change in the motivational drivers today - the differentiator is that for one group it's a job, for the other it is/was an obsession. Does that mean that the Mellenium generation us incapable of innovation, or will self-destruct as you say? No, as a matter of fact, I expect that this generation will revolutionize technology and introduce new ideas that will make electronics inseparable in every day life. This is the generation that was raised with technology, and so will be the ones that will find new, practical uses that other generations would never have though of. Laziness, not necessity, is the mother of innovation. Laziness brought us the remote control, and for that, I'm grateful.

                                  1 Reply Last reply
                                  0
                                  • Steve EcholsS Steve Echols

                                    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. :) But, yeah, outsourcing hasn't helped the situation out much.


                                    - S 50 cups of coffee and you know it's on!

                                    V Offline
                                    V Offline
                                    vertigo00oo
                                    wrote on last edited by
                                    #92

                                    Yes! I think the "here's a magical class that does stuff" attitude means someone doesn't HAVE to take the time to know what that magic is. I also blame academics for giving in to the whiners who complain that they got a B because their program compiles. Even worse, are those who pass a project when their project doesn't even compile! What would happen if the were harder on students? Would they drop out of the program and the programming work force die? I don't know...but I totally agree with everything being said on this thread. I got my MS in CS 3 years ago and I don't think things have changed that much.

                                    1 Reply Last reply
                                    0
                                    • R Ray Cassick

                                      They all teach application development, but not programming. When I started out you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper. Ah, where are those days again....


                                      FFRF[^]


                                      R Offline
                                      R Offline
                                      rubinstu
                                      wrote on last edited by
                                      #93

                                      I need to throw-in my contrarian points-of-view. I have met many university students in the last few years who have learned the fundamentals very well! I have been lucky to work with young people from very good American universities (not meant as a knock against other countries' schools, but just putting it context), so I cannot say this is 100% representative of the next generation of Engineers. My experience with Indian engineers on outsourced projects is that they are very capable of doing the work which they were contracted to do. Appropriately from an economic standpoint, they are well-trained for the task at hand, which is often high-level programming (as opposed to embedded or high-performance coding). We'll see if this trend continues. If the Indian and other off-shore (that is, not North America or Europe) countries begin to school their best and brightest in real electrical and computer fundamentals, and if American schools begin to lose focus of them and on hard-core science and math, then we (that is, American) technical industries are in trouble! The next generation will all be pushing frapaccinos to our Indian and Asian neighbors. The good news is that American Universities are still REALLY desireable places for the best foreign students around the world. Of course, our visa situation is horrible. We're basically encouraging students to come and study and then we kick them out to be our competitors. Rather, we should teach anyone who wants to learn the fundamentals, as well as the state-of-the-art and have an immigration policy that allows us to take advantage of the best young minds the world has to offer.

                                      C 1 Reply Last reply
                                      0
                                      • W westicle

                                        I'm one of those people that has a development job (vb.net) and has not been taught programming. I got my job from working as a finance/payroll admin where I built a system to manage my companies Flex benefits using VBA and spreadsheets. I tought myself the VBA. I was moved into the development team (5 peeps) and sent on a course for people upgrading from asp to asp.net (!?!?!??!?!?). What's asp I asked. I've been doing this for 2 years now. I rely heavily on intellisense but no dragging and dropping. I tend to learn from asking colleagues, friends, reading books and google. I am well aware that there are some fundamental pieces of the puzzle that I am missing but I can build apps that achieve what they are supposed to do. If I had to go through the interview process for my job now I do not believe I would get it. The purpose of my post is two-fold 1. Does it matter that I am missing some coding fundamentals since I can build working applications? (don't get me wrong, I'm not kidding myself about my abilities) 2. Where and how do I learn these fundamentals? Should I turn off intellisense as a start? Do you all use intellisense?

                                        Westie

                                        J Offline
                                        J Offline
                                        JasonCordes
                                        wrote on last edited by
                                        #94

                                        westicle wrote:

                                        The purpose of my post is two-fold 1. Does it matter that I am missing some coding fundamentals since I can build working applications? (don't get me wrong, I'm not kidding myself about my abilities) 2. Where and how do I learn these fundamentals? Should I turn off intellisense as a start? Do you all use intellisense?

                                        1. Yes. By missing coding fundamentals you are essentially writing "broken code". That doesn't mean your code won't work, but it may be very inelegant and extraordinarily difficult to maintain. In addition, by not knowing basic algorithmic concepts, you may be making your work harder than it actually is. 2. You can read about them. Any good programming text will do. Turning off intellisense will only help you memorize libraries of functions. While this is useful for speeding up your coding, it still won't teach you fundamental basics. I could recommend any number of excellent books to you. But my choices are highly language specific (I prefer books written in Java right now as it is my current language of choice). If you are willing to go with that, I strongly recommend Big Java by Cay Horstmann. This is a very excellent tome on the craft of writing software well (in Java). I disagree, however, about needing to know all that math Juju. While I am familiar with the math concepts and I can perform base-16 multiplication and division in my head, I don't think it is necessary to know that to be a good programmer. Knowing binary and boolean algebra is another matter, as someone else pointed out, you need to know that to construct well defined conditional statements.

                                        JPaula wrote:

                                        What you need is basic understanding of how a computer works and what goes on behind the "magic" of high level languages. You need to understand binary math in order to understand what is behind a conditional instruction in your current language. You need to understand what a pointer is, so you know what is going on when you pass a parameter by reference or by value or what happens when you do a "a=b".

                                        I also disagree with this statement, even though I agree with JPaula's other arguments. I don't think you need to know how electrons are moved in hardware to have a strong grasp of program construction. I assume by binary math, JPaula means boolean algebra...binary math is actually useless unless you want to create performance tricks like minimized data storage a

                                        1 Reply Last reply
                                        0
                                        • R Ray Cassick

                                          They all teach application development, but not programming. When I started out you could not get anywhere near a computer until you could count in binary, octal and hex and knew enough to run a small program on paper. Ah, where are those days again....


                                          FFRF[^]


                                          C Offline
                                          C Offline
                                          chash360
                                          wrote on last edited by
                                          #95

                                          I began with my first computer when I was 9 years old. A Radio Shack MC-10 8 bit computer with a whopping 16K of memory. All you could do is program a flavor of BASIC that only vaguely resembles what it has evolved to today. It had no non-volitile memory, if you shut it off, or had a bug that required a reset, you had to write it all over again. At the time I loved it, and I learned how to memorize lots of code, by the simple idea that form follows function. If I know what it needs to do, I can write it, and memorize it, regardless of how long it is. I have since self taught my self over a dozen languages, learned how computers work down to the electronics, I have worked in a wafer fab and know how every part of how a computer is designed and produced. In High School I could teach the the teachers, how to do things and gave them tips on how I developed my understanding. One of my favorites was the analogy between a checking books out at a Public Library, and the idea of a Semaphore. In college, again there was little real programming being taught, I truly believe that if you do not understand a computer at the assembly language level you can not fully realize your programming potential. Unfortunately in todays world, it seems true knowledge of programming is almost lost. With the knowledge of almost every Language, Platform, and OS, capable of the english character set (I am sure there are some Russian and Chinese systems I don't know), I have only been able to keep myself gainfully employed by avoiding the IT field. If you get into IT, you get outsourced almost as quickly. By keeping myself tightly coupled with hardware and other engineering disiplines, I have found my programming skills to be incredibly useful, even outside the relm of actual programming. Project planning and execution have so many parallels to programming, it should be required for project managers. I have watched the Internet from its infancy (Pre M$) to the present get completely corrupted. There is no excuse for the proloferation of malware, had some of these software vendors stuck with basic security priciples that were established for the Internet. The first principle is DO NOT EXECUTE ARBITRARY CODE FROM A REMOTE SOURCE EVER! Of course that was completely violated by M$ and the like with client side scripting, ActiveX, DCOM, etc. I do know the answer to the problem, but much like the Auto industry, a car that never needs maintenance will never be produced even if they could because that does not make them enough money. Software has n

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups