How NOT to teach a computer language

For the past year or so my wife has been taking online classes to get a computer science degree. For most of her classes she’s done great, she’s been flying through HTML and SQL, even up to the point where she can handle multilevel joins and optimizing through indexes. That was until she hit her class. I had no idea why she was having problems with a language has easy as so I started helping her out and find out why she was having so many problems. I’ve also added some recommendations in case you have the same problems, hopefully these will help you out. (Names have not been mentioned to protect the guilty.)

The Teacher

The first big complaint that she had was about her teacher. Whenever she had a question about an assignment she’d send an email to the teacher, but the teacher would be extremely late in getting back with her, sometimes not even getting back to her until a week after the assignment was due. This usually led to me having to help her out through the assignment and led to some of her classmates actually dropping the class, so they didn’t ruin their gpa.

Recommendation if you have a bad teacher

Before you take a class from a teacher make sure you check to see how many people drop their class and to check out why. It may be because they are a tough teacher or because they aren’t being bothered to do their job. So you need to be sure on why and if its because they aren’t doing their job then take the class from someone else and yes that may mean going to another college.

The Book

The other real complaint that I noticed was the book that she was learning out of. Since her teacher wasn’t around to answer questions she had to learn more and more from her book unfortunately it wasn’t up to the task either. I took a look at the book and it went through the exercises by telling you what menu option to push and which option to select, but it never bothered to explain why you were supposed to do it and what it did. As a result she wasn’t learning anything from it at all. All the book was teaching her to do was to become a monkey pushing a shiny red button. If you want to be a programmer you need to understand the why and how of what you are doing, otherwise your not going to make it when you start coding in the real world.

Recommendations in case you have a bad programming book

Before you take a class make sure you take a look at the book that you will be using and make sure it explains everything and doesn’t just teach you to be a button pusher. If you have to talk to the teacher and see if they actually use the book, you may also be able to get another book that works better for you. Either way you need to make sure that you understand what you are coding.

The Grades

The last thing that I noticed was that most of her grades were from taking tests on programming vocabulary, not on actual programming. My guess is that the teacher starting doing this because the class wasn’t learning how to program. This allowed the teacher to actually cover up the bad grades on programming with easy tests on programming vocabulary that aren’t going to matter when you get to the real world.

Recommendations in case you have this problem

Before you take a class find out what most of your grade will be based on, and if it isn’t coding for a programming class you need to find out why. Now some computer science classes are going to be based more on tests than actual coding, but if its on actually learning a programming language then you should be coding. Whatever the case, make sure that you are being graded on stuff that you will actually be working on in the real world.

The Result

As a result of this mess, I’ve been having to teach her how to code in and visual studio a job that her teacher should be doing. It’s also caused her to second guess going into programming at all. Fortunately she’s one of the lucky ones though, a lot of the students that tried to take the class have dropped out and the others are having an extremely tough time getting through the class and they’ll probably have even more problems when they get into the real world and don’t know how to code.

I’ve even had run ins with new computer programmers fresh out of college where I work that seem to have a general lack of understanding of basic language structures and I’m beginning to wonder if this may be one of the reasons why. So have you ever had similar problems before, or know someone who has?? How many others have dropped classes or stopped going into coding at all due to these problems?? Are some people getting ripped off by colleges that aren’t teaching them properly??

Mike GriffithHow NOT to teach a computer language
  • Your wife has been very lucky, not like the other students. At least she has learnt something, even if not from the class.


  • I always recommend that new students form a study group, even if they only meet online. Students can then help each other and avoid bombarding the instructor with the same question(s) from multiple students.

  • Pingback: How Not to teach a computer language | Discuss the World !()

  • I’m retired after a successful programming career.  I use BASIC for your benefit, not mine.

    10 i = i + 15
    12 FOR j = 1 TO 5000: NEXT
    15 PRINT “Bible, Line:”, i
    20 IF i > 99999 THEN i = 0: GOTO 10
    30 IF INKEY$ = “” THEN 10
    40 PRINT “Line:”, i

    Line: 66300

    vengeance of his temple.
    50:29 Call together the archers against Babylon: all ye that bend thebow, camp against it round about; let none thereof escape: recompenseher according to her work; according to all that she hath done, dounto her: for she hath been proud against the LORD, against the HolyOne of Israel.
    50:30 Therefore shall her young men fall in the streets, and all hermen of war shall be cut off in that day, saith the LORD.
    50:31 Behold, I am against thee, O thou most proud, saith the Lord GODof hosts: for thy day is come, the time that I will visit thee.

    • Red

      Ok, so what’s your point?

      • Anonymous

        “Jesus Christ, I can’t believe people are still using BASIC.”

        • Paul

          There is no way to click “Like” 1000 times on your comment? How unfortunate. You hit it dead on.

        • Hilarious… and true.  I remember typing BASIC on an IBM PCjr in 1980 (maybe?, I was 6 at the time) and as time went by I remember thinking there should be an easier way to do all this.  Then came a drag and drop IDE for VB… not what I had in mind at all.  I was never a C or C++ guy, so I thank god daily for C#,  lending some legitimacy to my development world. 

    • Advert

      Seems now you have retired you might want to think about getting another life…..

  • Deadbea7

    Another problem is students not learning how to write good code. I have noticed that TAs almost never read the code or grade on the readability of the code. They only grade on the functional outcome.

    • I totally agree, I’ve been trying to teach her a little more than that starting out with proper code formatting and source control.  Both should be taught in the schools from the very beginning.

      • The problem is, if you just go over student assignments or throw-away prototypes used in research, code readability and maintainability doesn’t look that important. Which is why many teachers probably tend to neglect it.

        OTOH, learning to program is an enough difficult thing in itself, so many teachers don’t bother with teaching you to program well, and are happy as long as you’re able to produce something that barely compiles. How many data structures/algorithms classes did your wife have? Did she have any OO classes at all? Did she at least hear about patterns or architecture related to software?

    • I totaly agree with this, I sow so many ********* from fresh colage students 

  • Asdada

    it should be forbidden to teach VB (.net or not) to anyone.

    • Bullsh*t. VB.NET is (almost) as good as C#. Please don’t let your prejudice talk.

      • Anonymous

        Unfortunately, VB.NET inherits a lot of the prejudices of the original VB language, which was less a problem with the actual language and more a problem with every Tom, Dick, and Harry thinking they could program because they could drag-and-drop but had no idea regarding the basics of actual programming. Furthermore, most people understand that VB.NET is a descendant of BASIC, but they fail to understand how big of a gap there is between VB.NET and BASIC.

      • it’s a waste of keystrokes, always was, always will be. before .net it had become archaic and limited, the .net library gave it a boost, but I agree, stick with the concise syntax languages and leave “then” and “end if” in the history books.

        • Kenny

          I just don’t think that it’s a waste of keystrokes, nowdays VS types allmost everything for you if you type and keep your eyes on the screen, i even still think (as a and som more irrelevant developer) that makes a lot of sense when you read it

        • bob

          Whether you type the words “Then” and “Endif” or simply use a bracket – you are still using the same construct.  For some people the “extra” keystrokes make the code easier to understand – for others it makes up for poor commenting

        • Auto-complete? You barely have to type any of it any more, but the code comes out more readable arguably. Did 10 years in a C/C++ environment before VB.NET, I can’t say I’m dying to get brackets back.

        • Declan Hillier

          Surely it’s about the right tool for the job.  If I want to create a windows based UI it’s hard to see why I wouldn’t use VB.Net.

          I’ve worked with enough programmers who thought spending six months developing their own text box in C was a valid achievement to realise that idiocy isn’t confined solely to the world of Basic.  Lower level languages just breed a different kind of idiot.  The Basic idiot tends to be an un-informed one who never got taught proper principles.  The C idiot tends to be a pompous one who mistakes needless complexity for cleverness.  But they’re both perfectly capable of costing a fortune to produce nothing of value.

        • fair enough everyone, I started my career in low level C style language, Java, PHP, and now just prefer C# for .NET. Back then Pascal was the joke language that was for kiddies who had trouble with less English-like syntax.  VB reminds me of that. I hate typing the word THEN … when I have to support a VB app but I suppose VB folks can say the same thing about semi-colons. It’s what we’re used to I guess. 

          For the folks who mention auto-completion, I suppose I just never got used to that and now frankly ignore the suggestions from the IDE (if I happen to be using one). In fact, I distinctly recall wrestling regularly with the proper keystroke to accept the suggestion. I think in Eclipse I keep ending up with line breaks instead and in VS something else. The only sure way was to click the choice but then who wants to touch the mouse when they type 80 wpm. I guess we all have our preferences.

      • Rennie Allen

        “Almost as good as C#” isn’t really a glowing recommendation now, is it?

    • Guest

      I’m sure the teacher in this article (which isn’t about VB) could just as easily fail to teach whatever language you like to put on a pedestal.  Happy?  :o)

    • Guest

      Years ago VB sucked, period.  It let you do things that should never be done in a progam.  VB .NET now days is just a different way of writing all the same stuff you do in c# or any other .NET language.  The problem, imho, isnt the language its the people who use it.  I can write code in VB that is just as strongly typed and OO and functional as anything i can do in C#.  Most people learn and still use VB because it lets them cast a datarow to an int and doesnt complain so they dont have to bother to learn that that crap wont work.  If they took away Option Strict and Option Explicit and forced them on all the time, i think a lot of the problem with VB would go away, eventually.

  • TheTruthslinger

    I work with someone who was supposed to be a Java “Expert” with more than a decade of experience.  On the first project we worked together he became perplexed with something I was doing in Java.  It was a two-dimensional array. 10 years of experience, a supposed expert and he had never used a multi-dimensional array???

  • Anonymous

    I had this same kind of experience at ITT Tech.  I dropped out of school before even finishing my degree because the teachers (well, a few were decent) and “textbooks” they provided were so abysmal.  I got my first job hacking at PHP while I was in school, and I learned more about programming just by throwing together a few websites than I had in two years at ITT.  On the other hand, I know several people who have comp sci degrees and had very positive experiences in school, so I don’t want to paint with too broad a brush, but I think this problem is far more widespread than people realize, and is not isolated to the comp sci field.

    • Helio Perroni Filho

      I took a Comp Sci graduate course and I credit it for making me an IT professional. Surely it helped that I started working  on a consulting firm midway through the course, but that worked more as an opportunity for applying what I was learning in the classroom. To this day I believe the ideal teaching strategy combines sound theoretical instruction with the task of solving practical problems.

  • When my wife was in college, she took a “Basic Computer” course to learn how to use a computer. Turned out it was “BASIC Computer” and she became very frustrated since it seemed so hard just to use a computer.

    The syllabus didn’t explain the course very well.

  • Anonymous

    When I taught VB to career changing immigrants, I choose a book that I thought would teach the concepts if I failed to do so. I concentrated on making them colleagues instead of just giving them a grade.  I encouraged open book tests because I didn’t want to get killed later by some programming error they made because they were too arrogant to consult a reference (many tests just seem to be based on rote memorization). I even allowed them to collaborate on tests.  The most important thing I was trying to teach them was to always hand in working code.  You don’t hand in 80% code in the real world.  I have to trust that that piece of code you gave me will work as expected.  The most revealing class would be where I would have them create an infix ( 1 + 2 = ) chained math calculator.  The plus sign does nothing the first time.  I’d be able to see lightbulbs popping on over half their faces as they grasped the concept of deferred actions and special first cases.  For the other half, the light would go out.  It was at that time I knew who were going to become programmers and who weren’t.

    • Scott A. Tovey

      I’d be able to see lightbulbs popping on over half their faces as they
      grasped the concept of deferred actions and special first cases.  For
      the other half, the light would go out. It was at that time I knew who were going to become programmers and who weren’t.

      As I read your statement, I thought; wow, he’s teaching it like it ought to be taught, that makes him a good teacher. Then I read your last three statements and I thought, what a lousy teacher.

      The lights go out when a person does not understand what you are trying to teach them in the way that you are teaching them.  If you know that the student does not understand your statement, and you do not say it in a way that the student understands, you are not a good teacher.

      You need to remember that it is not the responsibility of the student to figure out what the teacher means by what he or she is saying. It is the teachers responsibility to insure that the  student understands the message that is being conveyed. This requires a teacher to be flexible in the way the message is conveyed.

      Your students may be in college taking a complicated programming class. This does not mean that each student knows what to ask and how to ask it. Nor does it mean that the student knows in what manner they will understand what you are saying.

      I have seen instructors try to explain something in every way possible. This is a mistake because it causes confusion.

      The best instructors are those who provide a comfortable non threatening environment in which the student is encouraged to ask questions, and then remain attentive to the student asking the questions, until the student confirms to the instructor that he or she in deed understands the concept.

      By phocussing on a student who is forthright with questions, and changing your metaphores until you hit upon one that both relates to the concept and allows the student to understand the concept properly, you will not only find the ways that all students learn, you will also learn how to efficiently teach the subject by going directly to those proven metaphors.

      I had an instructor that heard the question, answered the question, and before the student could ask a follow up question, was already onto the next subject and beyond. This is bad form.

      It does not matter how much material the student needs to learn, if all they are required to do is memorize the information, they have not learned a thing. When instructors take the time to insure that their students understand the material, then they are truly teaching the subject.

      So how do you know when a student understands what you said with the metaphor? It’s quite simple, the answer to the last question the student asks, will always be yes. The reason for this is; the last question will always be the student asking a question in a way that explains the concept you have been working with. it will not be the way you would have put it, but the answer will be a yes. It is at this point that you open the question to anyone else in the room. This insures that everyone understands the concept and if that is the case, you can move on.

      When you open the floor for other questions on the current topic, you may not have any takers. this is most commonly due to people coming to an understanding as you conversed with the student that did not get it. However, do not assume that everyone got it, always encourage others to question what they do not understand. This is what teaching is all about. This is what the job of the instructing entails.

      Scott A. Tovey

  • Ken Weinert

    I once taught a C class at the local Community College. The prerequisite was the Pascal class. I got people that didn’t know why you would use a for loop – or what it was, even.

    I totally understand what you’re saying about new programmers. It’s a hiring issue for us as well. We don’t write drag and drop code here.

  • /$¡rm

    Interesting article.  However, IMHO I think that one must learn the Programming Paradigms (structured, object-oriented or functional), before even try to understand any programming syntax.  Learning any programming language is easy, once you have a robust understanding of its fundamental concepts: paradigm, control and data flow, execution models, system data types (from primitive to derivative, operations, sets and domains) and high-level structures.  Then, you can easily translate a program from one syntax to another…

    • “Learning any programming language is easy, once you have a robust understanding of its fundamental concepts”. And understanding the fundamental concepts of programming is easy once you know how to use a programming language.

      IMO, it’s about a generic approach to learning. I’m just learning a new language (apparently, Polish is one of the more difficult to learn languages of the world). I refuse to learn/memorize any grammar. I speak three other languages, two of them as mother tongues. The third one is English, and  I’d say I speak it quite well. I carefully avoided to learn the grammar of either of them. With good reason: IMO, it’s important to get a feeling of the language’s internal logic, of its specific metaphysics, in order to be able to use it naturally.

      IMO, it’s the same with programming languages. As long as functional programming is just a dry, abstract concept for you, you won’t have a clue what Lisp is good at. Once you get your hands dirty, your mind is in a fundamentally different shape, and much more able to understand the essential beauty of functional programming.

      While trying to show somebody completely new to programming how to write a few compilable lines in Pascal (quite a long time ago), I discovered that to “normal” people the concept of variable declaration is something quite alien. Of course it is since a computer’s memory model is implicit only for professionals. How do you teach the difference between structured and functional programming to somebody like this? What meaning, aside from a dry, abstract definition, does “memory” have for somebody who didn’t have the experience of writing a hello world?

  • Toussaint

    This is an interesting article. During my first year in college we had C programming classes. For exams, students MEMORIZED code because they were asked to reproduce the exact same code for the exam. I understand this since we’re all biotech students but is it really worth learning anything for the heck of grades? I guess by the end of the day, those who make a difference in today’s society are those who can only count on their own efforts. Education is now centered towards producing workers, no one care about what they know : that’s what a job interview is about it seems.

  • AJ

    This doesn’t just apply to online classes; I’ve attended many (quite expensive) training sessions that took the “trained monkey” approach. Often there were so many steps telling you exactly where to click and when that it was virtually impossible to figure out what they were trying to accomplish. 

  • Bill Minasian

    For pedagogical purposes, does the actual language matter that much?  I’m an about to retire programmer (or something to do with computers).  I tried a Java class at the local Junior College (2 year school).  It was terrible.  The instructor taught so many wrong ideas and had most of the class lost.  Very sad.  I dropped out.  I gave myself some learning assignments and worked through what I thought was the required material.

  • alan

    I had a teacher for Pascal (remember Pascal?) who had no clue. He dinged me for too many comments, because they’d make my executable bigger. He couldn’t understand they just went into the bit bucket.
    He gave tests that consisted of multiple choice questions made from some bolded portion of the text with one or two words missing. The final was the mid-term with 5 to 10 more questions.
    Oh, and he insisted on being called _Doctor_ because he had a Doctorate…in religious philosophy.

  • Romeu Flores

    I think the problem starts with “wife  taking online classes to get a computer science degree” .

    First: getting any degree online is not the same as getting it in a real university. You may call me old fashioned, but on the other hand I  do believe one can overcome the lack of real interaction with colleagues and teachers, and indeed get some online knowledge. And perhaps even call it a degree.
    Second: the the word “wife “. If she is wife, she is definitely not a teenager. And you cannot compare things you learn when you are in your teens to things you learn after you have a home to take care of. I started learning English when I was around 24, and despite living in England for 4 years now, I still feel it is not the same as my friend who stayed a year in Canada when he was 17.

    There is also a big difference between  learning to drive at 16 and 24.

    All that said, still that shouldn’t stop your wife going forward to try to learn something new in her vacant hours which could get her (hopefully) to a job position.

    And it is very nice you support her.

    My experience was not as good: I met my ex-fiancée when I was an undergraduate student and she was just getting her degree from a questionable institution. Having been programming since 13, I realised her skills still weren’t good enough, and the fact she wasn’t getting a job made me suggest she should join a post-degree course (which would serve to fill up her knowledge gaps). This time from a reputable university.

    Perhaps the fact I was so young and inexperienced, all the support I was trying to give came to her perhaps in the form of a big pressure.

    She couldn’t cope with the course, we broke up, and I decided never again to teach a woman how to program.

  • Guest

    I don’t know why people want to protect the guilty … name names for crying out loud. That’s how others avoid the same problems.

  • jghjgfgh

    I’m currently having this problem at my university. I’ve been programming in C++ for a few years prior to attending, and I’ve read a *lot* of books on programming (lisp, perl, python, c, c++, oop, tex, TAOCP etc.).

    To me, it seems that designing the c++ course involved listing all of the worst programming practices, and teaching students to use them. They encourage the use of global variables, don’t follow the standard, use non-standard non-portable Windows-specific functions, and make people think that it’s okay to write code that only works for the specific compiler you are using at the time.

    For example, one of the questions they ask us is to explain what the value of j will be in the following fragment:

    int i = 3;
    int j = ++i + i++ + ++i + i++ + i;

    They expect us to say 27, when in fact, the real answer is that according to the Standard:

    “The result is undefined and implementation dependent”

    For people that have never programmed before, the don’t have any idea what’s going on, and they just memorize all of these bad practices.

    A single reading of The C++ Programming Language, even just the first part of it, would teach people a *lot* more than they’ll ever learn in this course.

    I find it appalling that this is their idea of teaching a programming language — hack together memorized snippets of bad code until you get something that sort-of works on the exact compiler, OS, date, and time that you wrote it on.

  • Kandurbela

    complaining about the book is a non-sense, there are tons of materials available on the internet. The as a first programming language seems to be quite unprofessional. It should be better to learn the basic programming skills on theoretical level without using any particular language, just like we learn mathematics. We don’t start by integration, we start by addition…

  • Jacob

    Awesome post.  I’ve been programming for twenty five years and teaching a class in programming for five years.  I’m always trying to improve my material but students are often have trouble expressing what needs to be improved, especially since most of my students are first time programmers.  This gives me some insight on how I could improve some things.


    • Thanks, I really hope it helps.

    • Tears_love_2

       i wanna work in C# programming and there isnt any one to help me ,and I cant find a really good book for learning . what should i do ???? I’ll be so grateful if you help me

  • ScottishYankee

    I must have been one of the lucky ones. Granted I learned my programming skills and techniques back in the days of punched cards and paper tape, but both my Business Syatems Analysis and Programming teachers had come out of the industry. Perhaps that’s where colleges go wrong now, hire teachers who’ve done it for real!

  • Tomas McKinless

    I am a current UK university student studying computer science and I have seen a lot of this first hand. I would say the most important point you have made was regarding explaining WHY you are doing something, as opposed to how to do it. In my first two years we were exposed to c#, c++ and java and in each of these languages we were making similar styled programs and never taught the differences and advantages of each language over the other etc.

    The majority of my tutors simply don’t care. In spite of that, there are the few who genuinely have an interest in student progression and the art of teaching students enough for them to be able to build on what they have learnt in class.

  • I’ve mostly learned by myself. While this definitely doesn’t apply for everyone else, it still means programming doesn’t really require good teachers. On the other hand, having somewhere or someone to learn from is _very_ important.

  • Adam

    The scary part here is it isn’t just the online classes.  My daughter is in the ninth grade and they are taking “business classes” being a computer store owner I expect that they would pass the typing and basic parts with no problem… last report card my daughter is failing excel I am just mortified.  I said mandatory class this Saturday.  Sunday comes along and we are sitting there on her computer and I am just stunned with the basic structure of the formulas she has, I mean they just don’t make since at all.  I ask where did you get the information for this and she said out of the book.  I said what about the teacher?  she said she doesn’t teach she just tells them to go through the book and do what it says. and I tried they will not let her bring the book home  either so I can help her… so thankfully this class is the only thing she is behind in.

    So it apparently it happens from a young age. 


    • ShawnT

      I tried to resist, but considering your point I think you should have been a little more careful about grammar and punctuation and spelling (“since” != “sense”).

  • I found in college that most of my programming classes were taught by professionals and not professors. Being able to use a language doesn’t always or even often equate to being able to teach it.

  • satovey

    I’m glad someone is mentioning this.

    So have you ever had similar problems before, or know someone who has??

    Are some people getting ripped off by
    colleges that aren’t teaching them properly??

    I took a JavaScript class that focused totally on theory. The tests were on theory. Now this didn’t affect me all that much because I already new some JavaScript. But for the other students in the class, they were definitely ripped off.

    I don’t care what some years of experience, professor teaching programming says. If I’m paying him to teach me a language, and he is focusing on theory as opposed to the nuts and bolts of the language and how it works, he is ripping me off.

    I wrote over 2000 lines of functioning and working code years before I stepped in to the first college programming class the college requires for their certificate. I did not learn theory at all, yet, everyone of those lines of code work properly and efficiently.

    Now, if I were going to take on the task of creating a programming language, I would start by doing a lot of research on the theory of programming. And probably throw out over half of what I read.
    Because I’m one of those annoying individuals that has a natural gift of seeing nonsense as nonsense when all others declare it to be genius.

    I have also had to take classes that have nothing whatsoever to do with the certificate that I am working on. It would be different if I was going for a degree in computer science, but I am not. I’m just working on a couple of certificates that are directly related to website development.

    Yeah, it’s a definite rip off.

    Scott A. Tovey

  • juve

    So … it seems that the professor is the one to be blamed in the first place because s/he did not return the emails … did not help, did not ….
    Now, did you try to figure out what was the status of this professor? If it is an adjunct, s/he must have another job to pay the bills (an adjunct usually makes $700-800/per credit for one semester). Maybe this instructor was hired recently and told only at the last moment to teach this VB class. S/he did not have enough time and experience to prepare the class adequately.
    Whose fault is it? It is not necessarily the instructor’s fault, but it is surely the school’s fault. I understand that you want to make the point that the student pays and expects a decent education. But by enrolling in a school, a student becomes the prey of the school and its administrators, and the student is never told in advance of the quality of the courses. The purpose of the school is to make as much money as possible by milking the students, and not paying the instructors. Now concerning the quality of a textbook it might be simply that there were no good textbooks available at all. The instructor can only use the editions that are available. The right questions to ask before hand: who (not necessarily the name) is going to teach this course? Status? Adjunct? Visiting Professor (similar to adjunct, simply they have a one-year contract instead of a per credit contract)? Teaching for the first time?
    Another aspect you could research to better understand what has happened and what is happening in many courses: How much money the school makes with this course: Multiply the number of students by the cost of the course, then deduct $2500 to pay the instructor, add a couple of dollars for the overhead … and finally realize how juicy the course can be for the administrators, and be sure that they just don’t care if in the end the students will get a job to repay their loans. You should try to apply for an adjunct position and teach only one semester. You will understand then a lot of what was happening in your wife’s class.

    • Guest

      The professor is full time and has been teaching the class for years. 

  • Mazahir ul Asadi

    The writer is absolutely right. Because, i have gone through the same problems and I don’t know why senior people don’t help juniors in coding. when i started coding, i found no one ready to help in coding and that was really astonishing to me that why these people were not helping me out.. Seniors never tell you the proper thing and lead you in the darkness. A leap in Darkness. What would be the result, you can better understand. This is the reason the reason that why most of the people left coding. Because of their seniors as they don’t want to help the junior. I want to quote the sayings of Hazrat ALI (a.s).. “He said that learn a new knowledge and teach it to the others then GOD will enhance your knowledge and give you something that you could never imagine”. So learning and teaching knowledge to others is a most pious work in this world.. May GOD bless everybody with the sense of responsibility.

  • jctt

    I’d say that is better to have a full understanding of logic, and to have a analytical mind, because is
    more important to know how you would solve a problem in the real world that learning a specific programming language. That’s something that no many books covers very well, so many of them may give you abstract samples codes that force you to write code automatically (almost copy & paste) and at the same time not grasping the reason of what the code is needed for, until you bump with one of those ungrateful and despicable bugs that can ruin you an entire night of sleep or dinner with your beloved.

  • Bfeeney

    My wife went through the exact same experience when she took a class.  There were several problems with the class.  The version they were learning was 1.1, and 3.0 had already come out so they were learning dated material to begin with.  The teacher was a C++ programmer who was more interested in procedural programming and had no clue how to teach event oriented programming.  The book wasn’t worth the paper it had been printed on.  I found myself in the same situation where I had to teach the class to her so she could get through it.

    I also tutored at a local community college for the CS department.  I could always tell which students had what teacher by their skills.  One teacher focused on the design aspect of programming so those students were good at designing the program to solve the problem and documentation and flowcharts, etc.  Those students faltered however when it came time to actually code and write the program. Ont he flip side, students who had the other teacher were very good at coding but were very bad at the design and planning aspects. 

    Students need to start from the simple truth that programming is not an easy subject and once that has been established there is only one solution to learning it.. practice practice practice.  They need to be shown a concept, have it explained in the why and the how, and then go and do it for themselves.

    and just for the record, the teacher in your wife’s case should be fired.  If I took that long to get back to a client (and a student IS a client), I’d be in hot water. 

  • Anonymous

    Right on the money!

    I have worked this computer game since 1963. And I am still at it.

    However, it seems KISS has fell off the wagon along the way.


  • Wow! This hears like a typical computer course in Indian schools. I had to study double hard because of this. I had to mug up vocabs and trivia for good grades, and I had to practice coding in my free time to prepare for the “real world”. Thankfully I was able to pull this off.

  • Real Programmer

    It is a shame that your wife’s teacher seems so uninterested. I agree with the comments, that it is better to take a class where the teacher and other students are all present in the same room. But perhaps your wife’s work schedule and/or your location would make this difficult to do.

    What language you learn first is in my opinion unimportant. The same basic concepts apply to most modern programming languages; furthermore once you’ve managed to learn one, thus learning how to think in code, it’s not hard to learn additional languages. The good thing about learning VB is that there are lots of jobs for VB programmers out there; once she’s gainfully employed as a VB programmer, she can spend her leisure time learning a language that pays better, such as C# or C++, or extend her skills into VBA, SQL Server, etc.

    The real problem, in general, is with college courses in programming. No matter how good the instructor and textbooks are, you learn only a small amount in a semester. Much of it isn’t applicable to the real world. For example, I have never had the need to write my own sort routine — tools for sorting are already built into most languages. Were I to need a sort and my language didn’t have a tool for it, I could just download a sample from the internet. On the other hand, students aren’t taught how to deal with the end-user. A sample first-year course would be to write an “ATM” program — the user is to enter the amount of cash he wants to withdraw, simple subtraction is performed, showing the remaining balance. What to do if the user enters an amount larger than what’s available is rarely discussed. What to do if the student enters a negative number or non-numeric text is never discussed at all. But these are the types of problems real programmers have to think about on a daily basis. I once wrote code for a database that already existed. For the State part of the address, many entries contained “NU”. Since the Y and J are near the U, it is hard to tell what was really meant. The back-end database had no validation for state, nor was there any in the user interface. (Naturally, adding this and verifying the existing data was a top priority.)

    People take a four-year programming degree, but when they’re done, they have no real-world experience and can’t code their way out of a paper bag. Even when the professors and textbooks are unimpeachable. It is unfortunate that without this degree, it’s very hard to get past HR and interview with a programmer or project manager. 

    The only college course I took in programming that was in any way useful was in x86 assembler. Not that I have ever needed to write any assembler, but it gave me a much better idea of what was going on behind the scenes and why certain high-level language techniques are better than others. (for example, what happens to the stack when you pass arguments into a function)

    Your wife might be better off getting a book like “teach yourself VB in 21 days”. Most of these are pretty good and cover the basics better than the course she’s in. Since you have real-world experience and know how your wife thinks, you can pick a book that will do the job well. Then she can go on to study more advanced topics, try to get a job and complete the degree in her spare time. Since by that point, she would already know what she was doing, the assignments would be easy to complete and it wouldn’t matter if the teacher and textbooks weren’t any good. 

    The remaining questions are is the on-line university is accredited, and can the credits be transferred to another institution. If not, she’s wasting her time and money there. Like ITT tech which has a crazy high cost per credit and the credits aren’t transferrable. The good universities don’t need to advertise heavily on TV.

  • Shed_Dweller

    I got my IT degree (On campus at a good Uni in Australia) back in 94 and completed the first half of an Electrical Engineering degree (Distance education from a different well known Uni also in Australia) earlier this year.The one thing both experiences had in common was that the subjects were nothing more than excuses for the students to conduct research of some sort.The goal was not to educate, it was a filter to identify the future post-grad researchers.  Those not suited to post-grad research get low marks and therefore either fail or graduate with a GPA that prevents them from applying for the post-grad qualifications. The useful things that I learnt while at Uni, I learnt from my friends while we were mucking around with stuff that was completely unrelated to Uni. The lecturors even told us they are not teachers, they are there to facilitate our opportunity to learn. I had a subject a few years ago that started by presenting Ohms law and finished by asking us to calculate the horse power developed by a synchronous motor based on the current in the stator (armature?, it was a while ago). All in 16 weeks.The lecturer made a point of writing the study material so that it would be impossible for us to understand the concepts or complete the assignments just by working through the material or by directly applying anything he told us. He was trying to force us to source information from elsewhere.Not a bad goal in itself, just not the right place to pursue it.The recommended reading list was a mile long and omitted the text book used by the local TAFE for a course that covered the same material (It was written by the lecturer’s former colleague, covered the material in sufficient depth for the subject and was presented in a format that was easy to relate to.)In the end I had to enrol in night classes at the local TAFE to learn the bits he was leaving out.(And I’ve been part of the electricity industry since 02!)This is where I found the text book I mentioned earlier.Generally speaking, you do well if you have the time and money for a tutor that is not affiliated with your uni, you do poorly if you don’t.  This is standard practice at all Universities. If you really want to do well at Uni:RULE 1: Do the opposite of whatever the lecturer tells you to do.IE. If they say don’t compare your answers with other students then do exactly that.If they give you a reading list a mile long for an introductory subject, ignore it and find out what the local TAFE/technical collage uses for a similar subject.If they tell you to work it out from first principles, get on the net and find out how the pro’s do it.  You can always make the working match up later and in the meantime you have a target to work towards. This allows you to spend more time working out why it’s right rather than fumbling about, hoping you’re heading in the right direction.

  • Uma M B

    Thank you much for sharing your thoughts and observations. I was in a class of SAP – ABAP. I was senior most in the class and in the first week it dawned upon me that with the teacher we would not be getting anywhere. So, I turned around and made the class aware of the ride we were taken on. Most in the class were young fresher students or those who held a job for less than a year. We spoke to the management of the institute and aired our concerns. From the second week we had a new teacher who certainly knew the stuff. This was during the last recession period when people wanted to add a skill to their CV.

  • Pingback: Language bigots | Downes-Ward()