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 154 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.
  • T T Mac Oz

    Patrick S wrote:

    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.

    With the exception of the math, that's the way I gather most CS faculties were oriented through at least the 80's & early 90's (if not the whole 90's). Lots of stuff (who remembers the name of that notation/language used for proving the logic of an algorithm?) that most graduates will never even think of again unless they land in some highly specialised area like NASA, DOD or purely academic CS. Most CS graduates were useless for the first couple of years while they learned how to actually apply the useful stuff they were taught & forget the arcane. I do wonder if it's gone too far the other way now though, too much reliance on pre-existing frameworks is bound to stifle innovation in some areas but with the ever increasing complexity of computing environments it is a practical option. Personally I'd like to see more emphasis on problem-solving & design, which has historically been (in my experience, first as a student, later as an employer) a bit light-on in CS faculties. As an employer, I'd rather hire someone who can conceptualise a solution, then find the best tool(s) for the job as opposed to someone who can make a specific RAD environment do backflips but I think I might be in the minority on that one. Also schooled in Engineering (though combined with CS so I saw both sides :) ), I might be a bit biased :) .

    T-Mac-Oz

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

    T-Mac-Oz wrote:

    Personally I'd like to see more emphasis on problem-solving & design, which has historically been (in my experience, first as a student, later as an employer) a bit light-on in CS faculties. As an employer, I'd rather hire someone who can conceptualise a solution, then find the best tool(s) for the job as opposed to someone who can make a specific RAD environment do backflips but I think I might be in the minority on that one.

    Maybe, but I'm finding shops that are looking for older progammers who have some familiarity with the bleeding edge but have lots of familiarity with solving problems. Then again, that's to whom I target my resume. My MSCS program was about to drop the Math course requirement after I joined, but I was able to use a math course due to a "grandfathering" rule. The course I took was Mathematical Modeling, which taught a bunch of techniques but was primarily aimed at teaching you how to start solving a problem by building models and checking them againsts reality - this made it the most effective "problem solving" course I took.

    1 Reply Last reply
    0
    • D daChiefrocka

      Hi, I'm a regular user of CodeProject's codebase and saw this interesting post. I'm a master's student finishing up this term in robotics. The CS (we call it course 6--my school loves numbers for some reason) department at my institution is pretty rough and produces some pretty good programmers, but we don't take classes in programming. A point was made that managed languages like C#/Java/Python/etc. make it easier for people to just get by. IMHO, I think spending higher education time learning languages is a waste of money. The concepts of application development should be taught, and it should be left up to the student to experiment with different languages to find the best fit for their application. I guess what I'm trying to say is that no class has ever taught me programming, coming up with implementation for B-trees (without ever having seen one) and the like I think can only come from hardened experience in coding up a wide variety of apps over several years. This leads me to believe that the misconception here is that these "programmers" that keep applying for these jobs might not necessarily need to take classes in programming, maybe they just lack the experience necessary to acquire these programming skills. I constantly find myself referring to my intuition about programming which usually comes from a combination of intimate knowledge of application development concepts with experience with a variety of different programming languages. So I guess I completely agree with the point made that you just need to learn from reference books and the internet. In short, I'd probably shoot myself if I took a class on learning how to count in octal or learning the intimate details of Python or any other language. Seems like a waste of time unless its needed for the application. What most managers should be looking for is the ability for the new-hire to acquire knowledge quickly given the right amount of information. The industry is growing too fast for someone to know everything that you might want out of them.

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

      daChiefrocka wrote:

      What most managers should be looking for is the ability for the new-hire to acquire knowledge quickly given the right amount of information. The industry is growing too fast for someone to know everything that you might want out of them.

      LOL that's part of my resume charm...I've acquired a new language, OS, or database server with every job I've had.

      1 Reply Last reply
      0
      • M Member 96

        There hasn't been anything fundamentally new in computing since 1973 all we've seen since then is ever more trivial refinement, what do you expect? This is the age of the "architect" not the "developer". I completely agree that anything called "computer science" should be reserved for nuts and bolts stuff and the 1 or 2 people per semester that are still interested in that can take it, the rest can be in "application development" etc. It's kinda like they don't teach carpenters how to make carpentry tools anymore and at some point in history some guys were sitting around with mugs of ale and deploring the loss of the good old days. :)


        "The pursuit of excellence is less profitable than the pursuit of bigness, but it can be more satisfying." - David Ogilvy

        U Offline
        U Offline
        UD
        wrote on last edited by
        #122

        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.

        M 1 Reply Last reply
        0
        • C Christian Graus

          Someone the other day posted their VB assignment ( in university ). It was 'name your 10 favourite properties of VB.NET controls and why you like them. The OP was asking 'what's a property' and 'what's a control property'. I think CS is dead, I am considering changing careers.

          Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )

          R Offline
          R Offline
          Ray Cassick
          wrote on last edited by
          #123

          YIKES! Do I win for the longest thread contest?


          FFRF[^]


          U C 2 Replies Last reply
          0
          • O Oakman

            You forgot to mention that the trip to the mill was all uphill - both ways.

            Jon Smith & Wesson: The original point and click interface

            R Offline
            R Offline
            Ray Cassick
            wrote on last edited by
            #124

            In the snow with no shoes :)


            FFRF[^]


            O R 2 Replies Last reply
            0
            • C ClockMeister

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

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

              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!

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

                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!

                C Offline
                C Offline
                ClockMeister
                wrote on last edited by
                #126

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

                1 Reply Last reply
                0
                • J JasonCordes

                  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.

                  A Offline
                  A Offline
                  azonenberg
                  wrote on last edited by
                  #127

                  There's a difference between a b-tree and a binary tree. Look 'em up: B-tree (Not to be confused with Binary Tree)

                  J 1 Reply Last reply
                  0
                  • A azonenberg

                    There's a difference between a b-tree and a binary tree. Look 'em up: B-tree (Not to be confused with Binary Tree)

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

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

                    1 Reply Last reply
                    0
                    • R Ravi Bhavnani

                      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

                      A Offline
                      A Offline
                      azonenberg
                      wrote on last edited by
                      #129

                      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...

                      R 1 Reply Last reply
                      0
                      • S stephen hazel

                        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.

                        A Offline
                        A Offline
                        azonenberg
                        wrote on last edited by
                        #130

                        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

                        S 1 Reply Last reply
                        0
                        • U UD

                          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.

                          M Offline
                          M Offline
                          Member 96
                          wrote on last edited by
                          #131

                          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

                          1 Reply Last reply
                          0
                          • A azonenberg

                            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

                            S Offline
                            S Offline
                            stephen hazel
                            wrote on last edited by
                            #132

                            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?

                            1 Reply Last reply
                            0
                            • W W Balboos GHB

                              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 HaGadol

                              E Offline
                              E Offline
                              El Corazon
                              wrote on last edited by
                              #133

                              Balboos 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."

                              1 Reply Last reply
                              0
                              • R Ray Cassick

                                In the snow with no shoes :)


                                FFRF[^]


                                O Offline
                                O Offline
                                Oakman
                                wrote on last edited by
                                #134

                                Ray Cassick wrote:

                                In the snow with no shoes

                                I didn't need shoes, I didn't have any feet!

                                Jon Smith & Wesson: The original point and click interface

                                1 Reply Last reply
                                0
                                • A azonenberg

                                  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...

                                  R Offline
                                  R Offline
                                  Ravi Bhavnani
                                  wrote on last edited by
                                  #135

                                  Very cool! :cool: /ravi

                                  My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                                  1 Reply Last reply
                                  0
                                  • P Patrick Etc

                                    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

                                    R Offline
                                    R Offline
                                    Ravi Bhavnani
                                    wrote on last edited by
                                    #136

                                    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

                                    1 Reply Last reply
                                    0
                                    • R Ray Cassick

                                      In the snow with no shoes :)


                                      FFRF[^]


                                      R Offline
                                      R Offline
                                      Ravi Bhavnani
                                      wrote on last edited by
                                      #137

                                      Walking backwards. :) /ravi

                                      My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

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

                                        G Offline
                                        G Offline
                                        gole1983
                                        wrote on last edited by
                                        #138

                                        :) Could you tall me how to learning? I am a freshman about Programming

                                        1 Reply Last reply
                                        0
                                        • C cpkilekofp

                                          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.

                                          P Offline
                                          P Offline
                                          Pierre Leclercq
                                          wrote on last edited by
                                          #139

                                          You sure are right. Some ways of doing the business are changing, but the need for talented software developers is not going away.

                                          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