Thread: Things a CS major/programmer need to know to be competent

  1. #1
    Registered User
    Join Date
    Jul 2010
    Posts
    55

    Things a CS major/programmer need to know to be competent

    I was wondering what stuff do you guys think a CS major/programmer need to know to be competent overall, it can be either languages, concepts, algorithm stuff, math, etc...

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    I have moved this to General Discussions as it is not specifically about C programming.

    Quote Originally Posted by thefeedinghand
    I was wondering what stuff do you guys think a CS major/programmer need to know to be competent overall, it can be either languages, concepts, algorithm stuff, math, etc...
    What exactly do you mean by "competent overall"? Consider that you mentioned "CS major/programmer", yet not all CS majors become programmers, and not all programmers were/are CS majors.
    Last edited by laserlight; 01-03-2011 at 12:52 AM.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Wouldn't the process of getting a degree make you competent?

  4. #4
    Amazingly beautiful user.
    Join Date
    Jul 2005
    Location
    If you knew I'd have to kill you
    Posts
    254
    Quote Originally Posted by whiteflags View Post
    Wouldn't the process of getting a degree make you competent?

    HAHAHAHAHAHAHA. I take it you haven't interviewed many college grads ;-)
    Programming Your Mom. http://www.dandongs.com/

  5. #5
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by whiteflags View Post
    Wouldn't the process of getting a degree make you competent?
    Years ago I used to be a Service Manager with a relatively large corporation with offices all across Canada... I wish I had a buck for everytime I saw proof that the piece of paper means absolutely nothing.

    Example : Technician graduates well known college, somehow gets all the way through a 2 year training course without learning to solder. Lasted about 2 days.

    Example : Computer tech graduates monster company's training course but mysteriously doesn't know what RegEdit is. Lasted about a week.

    Example : (and my personal favorite) Idiot forges diploma and expects to get hired, then threatens discrimination lawsuit when he's not. Took our lawyers 3 minutes to get it dismissed.

    Example : Guy who can barely put together a cogent sentence, didn't even make it through high school, sits down with schematics and fixes everything we thow at him for years without ever a single complaint.

    In the real world after school that diploma is no more than an introduction and the only people who are going to be impressed by it are the ones with no skills in the given area (HR people).

    The real skillset is not the ability to pass a test or having a diploma to wave around... It lies in understanding the concepts involved and knowing how to look stuff up when you need it.

  6. #6
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by CrazyNorman View Post
    HAHAHAHAHAHAHA. I take it you haven't interviewed many college grads ;-)
    Yeah seriously, I used to hang out with a CS grad student and all he really knew was Python and JavaScript...had already forgotten everything about the real languages. I thought I could suck information off him, but I was wrong.

  7. #7
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Relevant, we were just talking this morning about a gentleman who basically hacked an Oce printer driver for another AEC firm here in town...yeah all he has is a GED.

  8. #8
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Admittedly there are poor grads out there. But that's their fault; what they missed was the opportunity to gain a proper qualification, finishing their course with mediocre grades. For any decent student, a CS major will provide them with the necessary tools to be a competent professional.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  9. #9
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    He's actually a B student, I think he just purposely forgot the things he didn't care about...I think he'll be getting a rude awakening when he looks for a real job since everything can't be done on Python.

  10. #10
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    I think Mario was replying to no one in particular. I tend to agree education is what you make of it. People don't have to agree with that sentiment and insist that paper is worthless, but that is my answer to the question. CS majors should be competent in all those things OP mentions, and degree programs do cover those things.
    Last edited by whiteflags; 01-03-2011 at 03:29 PM.

  11. #11
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Yeah. It was in fact a followup to your previous post (which I agree) in lieu of some of the replies you got. Should have quoted them.

    To expand on the thought, I won't deny some courses may not be well structured, or some teachers may lack the necessary skills. I've been saying that for some time. But students ought to understand University studies in a completely different light than that of high school. This is the real deal; their preparation for a profession that hopefully will follow them for the rest of their active lives. In an University environment, they should look at themselves less of a student and more of an apprentice. The goal is not to get the necessary grades, but to gain the necessary knowledge and skills... and even go beyond their teachers, if they can.

    Particularly on CS courses, there's really very few excuses to not do so because the knowledge and skills are so disseminated and so easily available outside their limited course plan and university environment, that not gaining a deep knowledge of their area can only be seen as an evidence of laziness.

    So, when we observe that there's a large number of grads with very limited knowledge of their profession, we won't miss if we attribute them the blame for that before we even think about the system. I'd say it's their responsibility they didn't prepare themselves for the professional world. Their course, as bad as it may have been of an experience, isn't responsible for their performance.

    ...

    An anecdote: I'm currently doing a business model for an acquaintance (a friend of a friend). He's finishing a business school Masters (not joking) and needs it for his thesis. Not only he chose a business area he has no knowledge of for his thesis, but he can't produce descriptive operational and strategic business models if he ever needed them for, say, convince an investor. So, this topic of conversation was strangely coincidental.
    Last edited by Mario F.; 01-03-2011 at 04:16 PM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  12. #12
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by whiteflags View Post
    I think Mario was replying to no one in particular. I tend to agree education is what you make of it. People don't have to agree with that sentiment and insist that paper is worthless, but that is my answer to the question. CS majors should be competent in all those things OP mentions, and degree programs do cover those things.
    In a right-working world I would happily agree with you.

    The problem is there's no way, short of doing our own testing, to sort out the ones who actually learned from the ones who skated through. Final grades don't even tell the story because some people get really good at passing tests but don't retain the lessons.

    Then there's every boss's nightmare... the person who hasn't learned a darned thing since graduating. For some reason there's a certain group of people who see the diploma as "mission accomplished" and utterly ignore Mario's consternation to treat University or College as the beginning and not the end of their training.

    However... when all does work as it should --which I consider to be an exceedingly rare event-- higher education usually does produce fully qualified people.

    The problem is telling them apart...

  13. #13
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Quote Originally Posted by CommonTater
    The problem is there's no way, short of the interview process, to sort out the ones who actually learned from the ones who skated through.
    Emphasis mine. I did not mean to suggest that the system is perfect and produces graduates with a 100% employment rate. Even schools won't say that. The problem is with the OP asking an impossible question, IMO, where he is asking about what specific, fundamental skills are under the umbrella of "competent". In our varied field, where you need to know all of those things to a different degree, I find it rather impossible to suggest you need 1 part this and 1 part that to be a "competent" CS major.

    If you go through higher education, you go from 101 to course complete, so it services you no matter where you are intellectually and you shouldn't (although preferred) have to be ahead of the curve. If that is what OP is worried about, then finish your degree and get employed. Congratulations, convince yourself you are competent.

  14. #14
    Registered User \007's Avatar
    Join Date
    Dec 2010
    Posts
    179
    I think problem solving skills, the desire to understand how things work and the ambition to see things through are the key skills for a programmer.

  15. #15
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by \007 View Post
    I think problem solving skills, the desire to understand how things work and the ambition to see things through are the key skills for a programmer.
    I'm average at the first, do enjoy greatly the second, and suck completely at the last. Admittedly, in a professional environment the third carries a weight of its own and is thus unquestionable. But, please don't be offended when I say that much of what is said about this matter is flowery speech meant to romanticize a profession that has nothing romantic about it. There's a tendency a little everywhere to write purple prose around the idea of programming, and with the years I'm getting more confused as to why.

    It's tiring hard work, can become boring, in some ways repetitive, and only occasionally rewarding. Just like most other professions, the one and true requirement for competence is a genuine like for it... and a natural capacity to deal with its defects (aka, patience). Everything else, the encyclopedic knowledge, the nurturing of one's skills, the disciplination of those skills, all will grow from there. And you don't really need to like it that much. Just to like it enough.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Assistance with unknown errors?
    By westside222 in forum C++ Programming
    Replies: 9
    Last Post: 11-13-2009, 09:00 PM
  2. Suggestions for things to study
    By Mastadex in forum Windows Programming
    Replies: 5
    Last Post: 08-18-2008, 09:23 AM
  3. Question about atheists
    By gcn_zelda in forum A Brief History of Cprogramming.com
    Replies: 160
    Last Post: 08-11-2003, 11:50 AM
  4. things to think about... [from www.nuclearwastesite.com]
    By doubleanti in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 11-11-2001, 12:47 AM
  5. Help with these three things...
    By face_master in forum C++ Programming
    Replies: 2
    Last Post: 08-26-2001, 07:05 AM