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.
  • C cpp samurai

    El Corazon wrote:

    Outsourcing is not a function of lack of jobs, but rather a function of wanting to pay less for a given job.... the result is less quality for less money. It hurts the real programmers in India, and in the USA and everywhere.

    Again, in India that statement doesn't hold good. Here people are thoroughly overpaid for the work they do. Too much demand for programmers due to masive outsourcing has led to a situation where even a third rate programmer can get a highly paid job. Worse part is, they think they deserve it. One has to interview 100s of candidates to find a real programmer, they are an endangered species. We normally hire smart fresh graduates and teach them programming, there is no other choice. Pardon my rant, since I am part of senior management despite being a programmer, I see all these very closely during the recruitment process. Running a small product company in such an environment is no joke.

    B Offline
    B Offline
    bwilhite
    wrote on last edited by
    #53

    Maybe I should move to India and set up shop! ;P

    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[^]


      B Offline
      B Offline
      bwilhite
      wrote on last edited by
      #54

      As a former educator in the US (NOT in programming), I think the problem is much more pervasive than just CS. I won't get into the ugly details X|

      1 Reply Last reply
      0
      • N nardev

        This is not a direct response to the original post, but rather to all of the posts below and in general to what i have been seeing on the net. And here it goes: this is a big FU to all the people out there who are so pompous to think that CS is a real science. 99% of CS people including myself are nothing but mere construction workers. We are ants. Do not kid yourself. The real scientists in Computer Science are the guys designing hardware, .NET, Java and protocols. The rest (99%) are just users of it. Ants. Step down from the cloud. Wow! You wrote a for loop today!! And a switch statement too!??! Ohhh...and you even pointed to a pointer! A double pointer!!!! Damn dude, you must be a scientist or something...hahaha! You extended a class?!! You wrote your own abstract class? Woooow! I though only Einstein could do that. We have a bunch of tools at out disposal and we (creatively) use them to speed up and organize someone's process. And we get paid for it. If you think that real programming is done in C++ good for you! Here's a tip for you then: even "realer" programming is done in assembler! Yay! Pointers are a joke man! Wait until you move all the bits to the left until one pops off. :D Goot times! Ok. But what about the endless number of applications NEEDED in todays world to speed stuff up, to make our societies more efficient? Should we do them in C++ or in C#? Do i need to work with pointers to log a person into a website? I don't think so. And the whole world doesn't think so. And thank you know who for that! Computer science is evolving, and so should you. Memory barriers are less and less. We need a shitload of programmers...so much room for computerizing this world and so little people to do it. I guess only the ones that know b-trees and pointers are any good - not! Get real. Why should you get paid more than the guy in china? What are you? Born in a higher cast? Are you from the Eyes or the Feet? Ohh...you are english, so you colonised the whole world and therefore your code is better than that Indias dude. After all you brought civilization to their land. His code sucks compared to yours. For mem the best programmers are the old school self thought ones. The guys that broke into pentagon and such. Computer world is wild and we are trying to tame it. Everyone has a go at it if he has a machine and can get online. I went to college, got a degree but who's to say that a kid in India didn't put in more time and learned more about designing a system in .NET than me? After all, today, he could have read th

        B Offline
        B Offline
        bwilhite
        wrote on last edited by
        #55

        Lol. A little rough, but you make same very good points. If you aren't in business for yourself, you should be. You've got the hard-nosed attitude necessary to make your own way. Most people prefer the safety of whining and complaining.

        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[^]


          K Offline
          K Offline
          keisal
          wrote on last edited by
          #56

          Well Im proud to say that the course I am taking is teaching programming. Our tests consist of solving problems by creating a program from scratch on paper.

          1 Reply Last reply
          0
          • R Ray Cassick

            RAD is not the problem really. I was seeing a downfall of education at the same time. I think RAD tools enabled people at a great degree. Unfortunately managers saw what they could do and suddenly many people found themselves with the title of developer even if they did not think they were. The quick 'wants' of business were as much at fault I think.


            FFRF[^]


            M Offline
            M Offline
            Member 4407942
            wrote on last edited by
            #57

            I think that most of the people reading this thread will agree with your premise. However, some of the things that were pointed out have a lot to do with the "lack of teaching/teachers": - Students aren't really interested in "learning", they just want to do the minimum to get by, and get a paycheck. Unfortunately, they don't take the time to consider what it takes to do a great job doing this stuff, especially if they have to "compete" with someone who is doing this because they love it. I consider myself fortunate that I have found something that I really like to do that I can get paid (fairly well) to do. [Thanks Dad for explaining this "fact of life" to me.] - People who "really" know how to program, and how to teach "good" programnming, are in short supply, and will continue to be so until the pay for teaching allows talented programmers, who think that they "might" want to teach are willing to try it out. However, I have a friend who tried teaching at a local university, and was appalled by the "tell me what I need to know to pass the class" mentality of the vast majority of the class. Many were only taking the class because of the prospect of getting a "decent" job was better for those with a "computer science" background. :-( Bob

            1 Reply Last reply
            0
            • A Anton Afanasyev

              As funny as it sounds, it really is a sad state that CS is in right now. I, personally, blame outsourcing.

              "impossible" is just an opinion.

              A Offline
              A Offline
              Atle Bjanes
              wrote on last edited by
              #58

              Hello folks, I'm de-lurking here to get some advice: I do have a formal CS background having taken a number of classes in CS while getting my BS and MS in EE and continued writing software for machine control for 15-20 years now. I will be teaching a class for our two home-schooled daughters and a handful of their classmates this fall using a text called "An introduction to Programming using MS VB 2005". The text book and accompanying teacher's handouts, class notes, work sheets etc are geared towards becoming proficient (at high-school level) in VB2005. My question to y'all is what would you do/teach/focus on to ensure that a proper foundation is laid for the kids to want to choose programming as a vocation later in life? Some thoughts I have would be to require to see pseudo code for each programming assignment prior to coding as a means to help them learn the abstract thinking required to become a programmer? Any thoughts? Thanks! Atle

              modified on Tuesday, May 13, 2008 8:46 AM

              C C 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[^]


                M Offline
                M Offline
                MRLacey
                wrote on last edited by
                #59

                My theory is that application development is taught because the world wants more than just programmers, it wants people who can do the myriad other tasks involved in software development as well. Yes, in an ideal world everyone would be able to do both/all. But we don't ....

                1 Reply Last reply
                0
                • L Leslie Sanford

                  Chris Austin wrote:

                  I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree. I think we have lowered to bar way too much.

                  Hmm, I'm not sure I could answer that one off the top of my head. B-trees[^] are rather non-trivial, aren't they? Or maybe I just haven't studied them closely.

                  C Offline
                  C Offline
                  Chris Austin
                  wrote on last edited by
                  #60

                  Leslie Sanford wrote:

                  I'm not sure I could answer that one off the top of my head. B-trees[^] are rather non-trivial, aren't they?

                  Not in simulations and art pipelines. Similar data structures are commonplace. Besides, I wasn't looking for a balancing algorithm on top of the structure and he claimed to know his structures on his resume.

                  A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long

                  1 Reply Last reply
                  0
                  • T T Mac Oz

                    Chris Austin wrote:

                    I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree.

                    I'd be incredulous if he didn't just say, "I wouldn't, I'd grab one of the myriad tried & true, publicly available b-tree implementations that are already out there". Requesting simple example code is a good way to weed out those who can't code from those who can but isn't code re-use supposed to be one of those things a GOOD programmer strives for?

                    T-Mac-Oz

                    C Offline
                    C Offline
                    Chris Austin
                    wrote on last edited by
                    #61

                    T-Mac-Oz wrote:

                    but isn't code re-use supposed to be one of those things a GOOD programmer strives for?

                    It's great when you have a structure in your framework the meets your performance requirements or deployment target restrictions. When it doesn't a good programmer needs to be able to roll their own.

                    A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long

                    1 Reply Last reply
                    0
                    • J JPaula

                      1. Yes. You are missing a lot of information that would enable you to code better, be more productive, deliver a better and less buggy product. 2. There is no gain in turning off Intellisense. Who has to know a million instructions from the top of the head? Working with Java or .Net is not the same as working with an 80 instructions language from 20 years ago. 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 Offline
                      I Offline
                      isandburn
                      wrote on last edited by
                      #62

                      i am one of those young programmers that loves intellisense, code snippets, etc. and thank you to anyone that makes programming easier!!! however, i am also one of those programmers that was originally taught at a U.S. univeristy how first program on paper, then C, and the C++ (and yes we covered dynamic memory allocation/deallocation, templates, etc.). i completely agree that to be a great programmer, you must understand the "magic" behind how it all works. i'm a .NET guy and professionally, i write lots of server side code where i don't have lots of "fun" drag n drop opportunities, but rather just use straight up C# - and to be honest, .NET is programming candy because it's so easy, yet powerful. but don't be fooled - high level .NET languages all compile down to MSIL (which is striking similar to what C++ compiles down to) and is run on the CLR. if you want to play around with this psuedo assembly stuff, just toy around with the System.Reflection.Emit namespace or the MSIL Disassembler. all of this .NET stuff are thing that the univeristy didn't teach - so let's disspell the degree/self-taught argument now - different things work for different people; in the end, the better programmer will prevail. so in my opinion, teaching both the science and art of programming isn't necessarily dead, but there certainly are lots of folks taking short cuts or just haven't been exposed to the full range of fundamentals or advanced topics of programming. there... i'm done! :)

                      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[^]


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

                        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 D 2 Replies 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 )

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

                          Christian Graus wrote:

                          I am considering changing careers

                          why that? If there is a lack of people who can do the job, then you are welcome to do it right. No?

                          U 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[^]


                            B Offline
                            B Offline
                            bit_cmdr
                            wrote on last edited by
                            #65

                            Let me start by saying I absolutly agree. A lot of posters have stated that there has been a shift away from fundamentals and more towards the IDE again this is sadly true. When I was in college myself, the last half of my senior year the university decided to stop using C++ as the core language for CS and use Java. There isn't much significance there except that the reason behind it was to try and teach with a 'more popular' language. (Don't get mad at me for calling Java more popular, at the time it was a rising star over C++ in the industry) The problem there is that now you have access to built in libraries that honestly, while you're learning, you should be building yourself. To someone trying to learn programming it does them no good to call a library and use a pre-built Linked-List or Stack, once universities start going down that road they lose the ability to truely teach what those data structures actually are and what they do. One thing that I firmly believe each student should have exposure to is assembly code. Even one course makes all the difference, it is the most basic and fundamental code and what everything revolves around. Even a basic understanding of machine language through assembly code allows for a much broader knowledge of what's actually happening when someone runs: string greeting = "hello world"; I started in grade school with Logo. Go ahead and mock Logo, it's not really a language but it teaches very basic programming to young children. The next time I had a class was in high school and it was Turbo Pascal and beleive it or not, we had to have the program working on paper and be able to count in binary before we were allowed near a computer. (Which was probably a good thing since once I got in front of one I made a fake dos shell that would start by displaying a command prompt and then pretend to format the primary network drive then it would say file not found or command not recognized for everything else afterwards. Scared the piss out of the instructor, he didn't like me very much after that.) All that said and all of what everyone else has said, it's a good valid point. Not many places actually teach programming anymore. Here's a question for everyone, as programmers, what should we do about it?

                            - Arcond

                            1 Reply Last reply
                            0
                            • J JPaula

                              1. Yes. You are missing a lot of information that would enable you to code better, be more productive, deliver a better and less buggy product. 2. There is no gain in turning off Intellisense. Who has to know a million instructions from the top of the head? Working with Java or .Net is not the same as working with an 80 instructions language from 20 years ago. 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".

                              D Offline
                              D Offline
                              dfl
                              wrote on last edited by
                              #66

                              (warning: mild flame) As a programmer, I feel uncomfortable reading such a holistic reply. I do *feel*, like you, that it is important to understand the fundamentals of the machine and the relationship between high level functions and low level actions. However, just stating this feeling does not constitute a reply. Many people feel that there was something special and "profound" in their particular upbringing. However, very often this is an illusion. My fortran teacher, back in the late 80's, told me that programming in an IDE was not the real deal and did not give you a true sense of what you were writing. However, he was actually talking about himself. Every generation feels that the subsequent one is shallow and lacking some profound understanding of the world. This is no more than a psychological phenomenon. To explain why an understanding of a digital computer, pointers, interrupts, signals etc. helps programming, you need to give concrete examples.

                              E J 2 Replies 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 :)

                                E Offline
                                E Offline
                                elibriscoe
                                wrote on last edited by
                                #67

                                I work with a girl from India who has a BS in CS and is pursuing a master's. The only language she knows is vbscript, and even that she can barely use and never writes a program. She's here in the US working as a QA. Unbelievable. I know the problem is just there either. I can honestly think of about 3 people in my CS program who deserved to graduate, but of course everyone graduates.

                                1 Reply Last reply
                                0
                                • D dfl

                                  (warning: mild flame) As a programmer, I feel uncomfortable reading such a holistic reply. I do *feel*, like you, that it is important to understand the fundamentals of the machine and the relationship between high level functions and low level actions. However, just stating this feeling does not constitute a reply. Many people feel that there was something special and "profound" in their particular upbringing. However, very often this is an illusion. My fortran teacher, back in the late 80's, told me that programming in an IDE was not the real deal and did not give you a true sense of what you were writing. However, he was actually talking about himself. Every generation feels that the subsequent one is shallow and lacking some profound understanding of the world. This is no more than a psychological phenomenon. To explain why an understanding of a digital computer, pointers, interrupts, signals etc. helps programming, you need to give concrete examples.

                                  E Offline
                                  E Offline
                                  elibriscoe
                                  wrote on last edited by
                                  #68

                                  The bottom line that many people won't like is this: There is a limited number of people who can be great programmers ever born. To a certain extent you can learn it, but only if you already have a natural talent to program will you be great. Some people will NEVER be great programmers, no matter what. Sorry. If you have the right talent and drive, you will take it on yourself to learn what you need to be excellent. Also, we will always need people who can write compilers and program at the lowest level. The fact that you aren't writing firmware doesn't necessarily mean you aren't a programmer. We need people who can program in very high level languages, and not everyone has to be a programming superstar. I don't feel bad about my career because of other crappy programmers. In fact, it makes it easier for us good programmers to stand out and advance.

                                  W 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[^]


                                    T Offline
                                    T Offline
                                    todds6776
                                    wrote on last edited by
                                    #69

                                    I recently graduated from a university which has a Computer Science program in the top 7. Many CS programs have changed, but this isn't a bad thing. Students are still taught the low level details (I had to design hardware and design parts of CPU's, write assembly language programs, write a compiler), but the focus is no longer on these trivial details. The problems facing software engineers in the future are not the issues of managing pointers, having a command on the bits of a word etc. The real challenges will be things like writing programs to run accross many CPU's, mathematical optimization of algorithms, and security concerns. I work with many "real programmers" that were trained between 10 and 20 years ago, and the coding style is simply outdated. I think the real problem is that people are called "programmers" or "software engieers" who go to tech schools or attend small programs where the schooling involves much less rigor. To compare this to the medical world, if a person goes to a tech school and is trained to be a medical technician, they should not be expected to perform as a nurse or doctor.

                                    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!

                                      J Offline
                                      J Offline
                                      julio debroy
                                      wrote on last edited by
                                      #70

                                      Agree and do not agree. If you know what you are doing it boosts your productivity. If you do not, intellisense popups can either help you learn or can make you lose time. Beginners of course, could benefit of code completion to get them running. I started back in '80 with assembler for 6501 and TRS-80 basic.Then gw-basic, At college we used turbo pascal which evolved to turbo vision and then delphi. Yes, hand coding was great for training, but in real world you can really take advantage of the time you save by using those tools. Using delphi I can do a great sql app in hours. Yes, a simple data form in a couple of minutes. When time is money AND you know what you are doing, modern tech addons like intellisense have a great value. Back to the root topic, here in Guatemala at IT faculties in main universities, all programming training is hard, and I can tell even at high school level there are many schools that train very well for coding, from html to C++, java, pascal, you name it. Of course visual programming is there as well.

                                      1 Reply Last reply
                                      0
                                      • C Chris Austin

                                        Christian Graus wrote:

                                        I think CS is dead

                                        I don't think it's dead, just endangered. Good lord, I hate interviewing people these days. I had one guy get incredulous with me when I asked him how he'd implement a simple b-tree. I think we have lowered to bar way too much.

                                        A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long

                                        D Offline
                                        D Offline
                                        dfl
                                        wrote on last edited by
                                        #71

                                        People don't roll out their string concatenators either, not to mention frame pointer managers. Programming is about solving problems with a given set of tools. If modern tools encapsulate data structures and provide you with optimized hash tables, why should you know what a hash function is? Such knowledge may be a good *social* indicator, that the guy/gal you're talking to is well read and geeky enough, but does this really influence the quality of the code? Tools keep getting better, libraries are richer and more spoiling every year, but the basic skill of analyzing a problem and stating it in terms that match the tools at hand, has not changed.

                                        C 1 Reply Last reply
                                        0
                                        • D dfl

                                          (warning: mild flame) As a programmer, I feel uncomfortable reading such a holistic reply. I do *feel*, like you, that it is important to understand the fundamentals of the machine and the relationship between high level functions and low level actions. However, just stating this feeling does not constitute a reply. Many people feel that there was something special and "profound" in their particular upbringing. However, very often this is an illusion. My fortran teacher, back in the late 80's, told me that programming in an IDE was not the real deal and did not give you a true sense of what you were writing. However, he was actually talking about himself. Every generation feels that the subsequent one is shallow and lacking some profound understanding of the world. This is no more than a psychological phenomenon. To explain why an understanding of a digital computer, pointers, interrupts, signals etc. helps programming, you need to give concrete examples.

                                          J Offline
                                          J Offline
                                          JPaula
                                          wrote on last edited by
                                          #72

                                          My response is in no way holistic. Its my feeling - as I am in a user forum, I am not writing a scientific article. I think it is no hidden secret that knowing what goes on behind the scenes enables you to design better solutions, be more innovative and make less errors - in general. This applies to any field of knowledge - from mechanics to cooking - and I think it applies to programming. I do not relate to any timeframe as "those were the days". I am not in favor of any low level language. In fact, my favorite programming language is Visual Basic - it's a different programming paradigm (at leats it was, before .Net). Real world examples is what you can observe everyday. People taking the wrong approach because they lack the basis for a good, informed, decision. I guess this is not an illusion. Anyway, I think you totally misunderstood my response to westicle. I was writing a response from the point of view of someone that never took a course in programming and is totaly self taught. I told him what I think is the basic for any programmer: basic boolean logic, knowing what is going on in the computer mainboard for a program to run. You can get this basic knowledge in hours and save years of bad practices. Furthermore, I told him that turning off the IDE features is just crazy because we are not in the 80's and we need intellisense - we have millions of instructions we use/need.

                                          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