Live data from Hacker News

I'm graduating with a CS degree but I don't feel like I know how to program

stackoverflow.com

111–120 of 135 posts

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#111
This is why I feel co-op should be mandatory for all CS degrees. I look at some of the people in my program who struggle with even basic programs and algorithms, and I can't help but think they're deluding themselves. A summer spent doing QA, then another as a junior developer, then two more doing real programming work would either disavow them of the notion that they should be a programmer, or give them the skills to at least get a job when they graduate.

I think it's shameful that colleges are perfectly happy to take 4 years of tuition and tell you that your shiny BS in CS will get you a great job when you graduate. A few profs will drill it into your head that co-op is mandatory, but that's only if you get the good ones.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#112
I think this post complements the "How Effective are Technical Interviews" post that was on HN recently. A CS curriculum definitely prepares you for the theoretical questions asked in a technical interview, however, neither a CS degree nor a technical interview give you a real sense of how strong that person is at development.

I don't think this problem indicates the usefulness of a CS degree. Instead, I think it says that the only real way to learn how to program is to program.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#113
I think at many schools, how much you know about programming depends on the electives you choose to take. I could have taken many easy classes and had a much easier time going through school (probably had a higher GPA too). But, you need to think why you are in school in the first place. Are you there to get a slip of paper stating that you spent 4 years or so visiting classrooms occasionally throughout the afternoon/morning? Or, do you want to actually learn something of substance that you can use in your personal/professional development.

I like the first answer on the SO post, developing a website or writing a game will definitely make you a much better coder. When you build something from the ground up by yourself, you learn a lot more than just coding. You learn how to break out of deep troughs of despair. You learn how to work more than 8 hours at a time. You learn why its important to add efficiencies to your work habits. These are a few of the things you learn. But, these are the things that separate coders (the subset) from people with degrees (the superset).

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#114
You could probably replace "CS degree" and 'program' with a lot of different degrees and vocations. This is what people seem to fail to understand about collage, anything worth doing takes far more effort then making it through 4 years of college. All college does (at least the first 4 years) is get one ready for the lifetime of learning that is ahead.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#115
post #98

Earlier quoted context omitted.

A good friend of mine is doing her second postdoc in physics. She does cosmology, and spends much of her time programming. For that reason, she has expressed a regret that she did not get much CS background in undergrad. I find the attitude you expressed strange. They still insisted you take math courses, correct? Or did they say, "Well, we think you should just learn differential equations"?

The head of the program was a cosmologist, actually. I know that she taught herself to code, as did the other two profs I worked for. -I think that had something to do with their attitudes. Also, it might have just been from a practicality standpoint. We didn't have the room for multiple CS courses, and the students seemed to be able to pick it up well enough to do what they needed to. I have to mention, I did take a…

The problem with a pure pull approach is that you only know the first things that let you accomplish what you want to do. Sometimes, those first things are good enough to get the job done, but not enough to let you really know what's going on. That's not a problem now, but it may be in the future.

Anyway, it seems more like you agree CS courses aimed specifically at scientific computing would be good and worthwhile.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#116
post #98
post #57

Earlier quoted context omitted.

I am a pull-learner as well. My physics undergrad and grad courses occasionally required that we program in Fortran, -that's what our profs used. I once asked the head of our program why our degree didn't require any CS courses, but did require that we learn to code. She smiled and said "Well, we think you should just learn it." That short conversation made an impression on me. It wasn't in college study things, I wa…

A good friend of mine is doing her second postdoc in physics. She does cosmology, and spends much of her time programming. For that reason, she has expressed a regret that she did not get much CS background in undergrad. I find the attitude you expressed strange. They still insisted you take math courses, correct? Or did they say, "Well, we think you should just learn differential equations"?

I think it's a question of the kind of code that people do in science/engineering as compared to CS (my background is that I'm a practicing physicist, but started out with a background in Computer Engineering in undergrad.) Yes, some basic CS (say an algorithms class) would be useful--but much of what we're working on as physicists is not what a traditional CS program would emphasize. For example, you have people with relatively small data sets that they want to fit--learning a language is about as far as they need to go. Others end up wanting to put a user interface around it if they use it excessively or distribute it for others. While perhaps a course on UI would be of use, for most, it's not what excites us, or advances us in our field.

Now, there are some who are doing high performance computing where abstraction and software engineering become important--but again, at the undergraduate level, how many courses are emphasizing the advantages of say templated C++ programming for scientific computations?

I think a service course on scientific computing would be of more use to most physicists than a general background in CS. For those that will end up working on large projects, then perhaps a course on software engineering. As for math courses, maybe I was a bit weird, but didn't you learn diff. equations in high school :p? But as for things like PDEs and such--I will say that a lot of it is learned as part of the coursework for say a first modern physics course, rather than in a math course...

For us, math, programming, etc. are tools that we use to do what we're interested in...(This is in no way to denigrate math or programming)

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#117
post #14

I believe that there are two ways to get good at anything, "push" and "pull". Push: You learn from books, classes, mentors, and studying examples, then apply what you have learned. Pull: You have a problem that you must solve, then you learn what you need, any way you can, to build the solution. I suppose there are pros and cons of each method, and I imagine that many people here have used some of both. For the recor…

I don't think that there is really this distinction, because your 'push' and 'pull' methods allow you to acquire different types of expertise/knowledge.

If you are all push, you won't be able to program. If you are really all pull, you will be able to program, but it will be kind of magical programming.

Ex. If I am all pull: I know that the regular expression matches based on certain rules, but I don't understand complexity theory or finite automata, so I don't understand that I shouldn't use a regex to process xml. I might create a working program, but it is likely that it will be convoluted and take me longer (or be buggy in ways which I cannot comprehend!), because I reinvented solutions to already solved problems, or didn't understand the tools I was using.

If I am all push, programming becomes an intimidating experience. For obvious reasons, I'm going to have difficulty problem solving, obviously -- I've never actually sat down and solved problems. It would be like trying to learn math without having done any practice exercises.

I started as a 100% pull programmer (with minimal formal CS training), and have been pushing through a masters degree in CS. It has helped me by bounds. The concepts themselves are important, but also important is understanding the approach to problem solving that led to the concept. I can apply the theories behind a compiler or database (or anything) in places where a compiler or database would be totally inappropriate.

Point being, I see things differently now.

There are a lot more options for me to look into when I'm initially researching how to solve a problem, and it is a lot less likely to be influenced by whatever the new hotness buzzwords happen to be for the season, and because of that, my results are much better.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#118
If I was a fresh grad (or non-grad with some level of self-taught skill) I would be looking at companies that have formal apprenticeship programs. There are shops like Obtiva that do this sort of thing and look to lift people up through the "craftsmanship" approach.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#119

Earlier quoted context omitted.

The head of the program was a cosmologist, actually. I know that she taught herself to code, as did the other two profs I worked for. -I think that had something to do with their attitudes. Also, it might have just been from a practicality standpoint. We didn't have the room for multiple CS courses, and the students seemed to be able to pick it up well enough to do what they needed to. I have to mention, I did take a…

The problem with a pure pull approach is that you only know the first things that let you accomplish what you want to do. Sometimes, those first things are good enough to get the job done, but not enough to let you really know what's going on. That's not a problem now, but it may be in the future. Anyway, it seems more like you agree CS courses aimed specifically at scientific computing would be good and worthwhile.

>Anyway, it seems more like you agree CS courses aimed specifically at scientific computing would be good and worthwhile.

Oh, absolutely. I think there might be an analogy in writing. -I'm no writer, but I can pen an effective grant. I'd really like to be an effective writer too, but that would be a divergent path in light of my work.

There's just not enough time in one human life. :/

BTW, a second postdoc is cruel and unusual punishment IMO. My best wishes to your friend.

Re: I'm graduating with a CS degree but I don't feel like I know how to program

#120

Earlier quoted context omitted.

The problem with a pure pull approach is that you only know the first things that let you accomplish what you want to do. Sometimes, those first things are good enough to get the job done, but not enough to let you really know what's going on. That's not a problem now, but it may be in the future. Anyway, it seems more like you agree CS courses aimed specifically at scientific computing would be good and worthwhile.

>Anyway, it seems more like you agree CS courses aimed specifically at scientific computing would be good and worthwhile. Oh, absolutely. I think there might be an analogy in writing. -I'm no writer, but I can pen an effective grant. I'd really like to be an effective writer too, but that would be a divergent path in light of my work. There's just not enough time in one human life. :/ BTW, a second postdoc is cruel a…

Also, it's sad and unfair, but even though I've know some people succeed in getting a permanent position after the second postdoc, it gets harder as the number of postdoc increases...
Post reply on HN