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 155 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.
  • 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
                                        • C ClockMeister

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

                                          P Offline
                                          P Offline
                                          Pete Appleton
                                          wrote on last edited by
                                          #140

                                          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?

                                          C 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