Skip to content

Comment on I’m graduating with a CS degree but I don’t feel like I know how to program.

Comments

It seems to me that people that really are meant to be programmers already started before college. At least that's been the case with guys I've worked with that actually knew what the hell they were doing.

No offense to this guy but the reality is, if you are not into this stuff before you started college (aka writing your own programs because a) it's cool, and b) you got tired of not having a program that did what you need, etc), then it's a pretty brutal career path.

Think about it this way, most good/great programmers are just coders because it's how they've always been. If you are just getting into this industry because it's a good career path then you have to realize you are going against guys like me who started programming the Atari 800 when I was a kid because, well it was fun and just seemed right.

I wish him luck, but this isn't 1998 any more and companies aren't going to just hire you off the street just because you have a CS degree. The competition level for jobs right now is higher than it's been for a long time. With that said, he can certainly make this work, he just needs to start coding on his own to learn and grow.

Some of the best programmers i've worked with were weird dudes who learned how to program in college.

Starting early doesn't mean you're any good. 4 years of a serious, programming intensive CS degree is better training than 20 years of farting around with PHP.

We don't apply this criteria to other endeavors. I've been playing piano since I was 5 and I'm still not good at it. You're either good or your're not. Sometimes experience helps, sometimes it is a hindrance. Bad habits form early, too.

It's also curious that programmers claim that programming since they were a kid makes them a better programmer, but they also complain whenever a job advertisement requires years of experience.

"4 years of a serious, programming intensive CS degree is better training than 20 years of farting around with PHP."

That's really funny and true.

Yeah, agreed, I know plenty of CS degree holders that are top notch coders as well. But I have to say, I don't think a single one of them hadn't learned a language or two prior to college and I doubt they ever thought for a second 'I'm not sure how to program'.

I thought C was totally terrifying and confusing for the longest time. I started in Visual Basic because it had WSYWIG forms, and I just couldn't imagine how someone would programmatically construct an interface. Feeling like you have no idea where to start is completely legitimate. I eventually faced it, though, and got through it. Of course, I was 11 or 12 at the time, but still.

If you want to know how to programmatically construct an interface, fart around with a Tcl/Tk tutorial for a bit. That's very interactive and easy. It's a good way to get your head around the general idea.

I agree that C can be terrifying and confusing at first. The buggy GCC of the late 1980's/early 90's was not friendly for beginners. One of the class project's bugs disappeared for no reason when we changed the order of function definitions in one file.

It gets easier once you a) learn assembly language and b) write a compiler. Fart around with some CoreWars and Google "NAND to Tetris."

You were unlucky, I went the other way. I did start on basic on my Z80 machine, but since you could only really write adventure games with basic, I moved onto Z80 assembly language. Then, I moved onto x86 assembly language.

Every from that point has been easier, in most ways.

I was lucky, everyone of my friends had a C64, and they were swapping games. We couldn't afford a C64 at AU$399 at the time, so they got me the VZ300 for $99. I had to write my own games. This is how I got into development.

I was one of the few that could program, before I went to Uni. It was around the time that CS was becoming very popular, but hadn't start to differentiate between different sorts of IT, so they offered everything. The classes I found best were hardware, OS, and the half year class were we had to write the same program in 4 different languages.

I think I'm considerably younger than you. The only reason I ever needed assembly was to patch executables without source in my GUI OS; the days of insane resource constraints were already gone.

Hah, that makes two of us! Except iI didn't have the luxury of a Z80, I started on an 8080 that didn't even run CP/M... Ahhh the Compulcolor II, what a fine machine you were. At least you made me learn how a computer works.

I still remember how good it felt when my brother started loading up the games that I wrote rather than the few 'commercial' games that we had for the system.

PS: VZ300??? I thought I knew everything about the Australian 8-bit computer scene, but I managed to miss that one.

The VZ300 was made by Dick Smith, a successor to the VZ200. It had a huge hacker user community, their were program listings and hardware mods in APC magazine. After the VZ line, Dick smith bought out there CAT computer line, which were much more powerful, and more expensive.

Great little machine for $100. Funny thing, the VZ200 had a chiklet keyboard, which are becomming popular again. One of the big selling points of the VZ300 was that it had a proper keyboard.

http://www.old-computers.com/museum/computer.asp?st=1&c=...

To do Assembly language programming I had to get the 16KB upgrade kit, which was this huge piece of hardware that stuck in the back.

I also learned C at that age, but I was excited about it. My motivation was thorough disgust at the limitations of QBasic and VB, which a friend and I had been running into in our more ambitious video game projects.

I feel like having an aptitude for programming at least will incline you to dapple before college.

Actually you guys are probably right. I should clarify that I am in my mid 30s. When I was a kid computers were still mostly for nerds. There was no broadband internet. It was kind of a pain in the ass to program anything other than BASIC. If you wanted to use another language chances are you had to buy the compiler. Thus, it's not 100% unusual that I have peers who didn't program until college. Especially guys from countries where it was really hard and expensive to buy a computer in the 80s.

Now that everyone has had a computer and serious internet since about age 8 it would actually be pretty weird if they hadn't tried programming at all before college.

"Some of the best programmers i've worked with were weird dudes who learned how to program in college.

Agreed - in fact I'd say out of the best programmers I've worked with almost all had CS degree's.

"Starting early doesn't mean you're any good. 4 years of a serious, programming intensive CS degree is better training than 20 years of farting around with PHP."

Never implied 'programming for 20 years' made you better than a person that has a CS degree. I actually meant that all the good programmers I know - CS degree's or otherwise - started before college and did it because they loved it. Same guys that go home and read regular expression books for 'fun' in their spare time.

"We don't apply this criteria to other endeavors. I've been playing piano since I was 5 and I'm still not good at it. You're either good or your're not. Sometimes experience helps, sometimes it is a hindrance. Bad habits form early, too."

True, but again I never said that simply programming for 20 years made you a great coder. I simply meant that someone with this trait, who then pursues a career as a programmer (through a CS degree, or whatever) is going to have a leg up on someone who isn't really into it.

"It's also curious that programmers claim that programming since they were a kid makes them a better programmer, but they also complain whenever a job advertisement requires years of experience."

Not sure what you are talking about here. When I've had to hire a junior it seems like a lot of people with the wrong skills apply for the position, but experience-wise, if you have been programming for 20+ years that's not the issue for me. It's if you have the skills the job I'm looking to fill needs.

"Agreed - in fact I'd say out of the best programmers I've worked with almost all had CS degree's."

It goes to show that there's no correlation between programming skill and degree. Most of the worst programmers I've ever worked with had CS degrees, because they tended to write the most pointlessly complicated code they could. They were invariably the most guilty of premature optimization, and rarely produced code that worked any better than my minimal implementations did -- and of course, no one could ever prove that their implementations actually worked, because they were incomprehensible.

Agreed.

Get a challenging job where people can criticize your work and not a job where you can code and deliver with no feedback (except from users with no programming background).

In software, just because it works, it doesn't mean it is well done.

Also, if you can't note a significant improvement in your skills over the next three years after graduation, you're not going to make it big in this industry.

Way to bust one stereotype by using another (php programmers are bad).

I think the implication that was people who program in just PHP are bad.

I didn't mean to imply anything. One of the best (and richest) programmers I know prefers PHP. I just don't think it's necessarily the case that you become good simply because you started programming when you were 16.

My comment wasn't great because I also didn't mean that having a CS degree makes you good. What makes you good is practice on hard problems, and a certain amount of "je ne sais quoi."

Ah. My bad. (-:

PHP is only 15 years old ;-)

Depends if you have also used other languages, I mainly code in PHP, but also have experience in other languages. I would say though you would develop a stack of bad habits if PHP was first and only language someone used.

I didn't start programming until college (aside from screwing around with my TI-85 when I was bored in class), and it hasn't really set me back at all. If it's something that makes sense to you and you can think algorithmically, you'll do fine no matter when you start.

I often encounter the assumption that all "good" programmers start early in life and/or that all "good" programmers have an innate drive to build things and that's why they got into programming in the first place. (I think the two assumptions are related). And while it's true that many good programmers meet those two criteria (probably the majority), they're not universally true.

There are other reasons to love programming besides just the end result; I myself was drawn to it because I'm fascinated by the intellectual challenge of taming and organizing complexity, and of the way program construction can be seen as a series of rapidly-evaluated scientific hypotheses (i.e. "I think I can do X this way" and a short while later, relative to pretty much any other discipline. you have confirmation or rejection of that hypothesis).

I did, however, leave school with a bit of a complex precisely because I don't fit the traditional grew-up-tinkering-with-computers mold for software engineers. I thought that all those other people must be better than me, or be lightyears ahead of my skillset, or that because I came to the profession differently I must be somehow inferior or have a lower ceiling on my abilities. It took me a couple of years of programming professionally to realize that wasn't the case and to be confident in my abilities.

Anyone with the right set of cognitive skills can do fine in a college CS program regardless of their background, and anyone who has the skills to make it through a college CS program and who enjoys what they're doing will do fine as a professional programmer if they're willing to keep learning, regardless of their prior background. (And I don't mean to imply a CS program is by any means the only way to go, merely that someone with no prior background who goes through such a program will likely be fine.)

The mistake you're making is taking the OP at face value when he says he doesn't feel like he can program. That can actually be a good thing. It could be the Dunning-Kruger effect at work: http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect

Thus, the OP could say that he doesn't know how to program because he's actually pretty good at programming.

Not to nitpick, but the OP, Wendy, is a she.

The first real line of code I wrote (I'm not counting poorly crafted HTML) was when I was 16, as a senior in high school. And that was Visual Basic. We didn't do C until the second half of the year (and by this point, I was 17). Which right now, means that I've been coding "seriously" for about 4-4.5 years. I'd guess that its not nearly as many years as you have. Which is fine. You're probably older. And you probably started before you were a senior in high school.

But, you know what? That doesn't mean that I'm any worse off in terms of ability (to code, design, learn or understand concepts) than you. And I'm not sorry for not spending my teen years implementing Ukkonen's algorithm or whatever else would count for you. I can read the paper on how it works if I ever need to implement it.

I object to claim that in order to code, you have to have some sort of monkish training. That if you're "like this," then programming is the only path or that you have to be "like this," in order to be a programmer. Your point of view seems like a horribly elitist, closed-minded view to have.

Actually, it probably does mean you're worse off in terms of ability -- but not in terms of potential or aptitude.

5 years ago I used to think I had the coding thing down pretty pat -- now I'm much better than I was then, and I have a lower opinion of my knowledge as well :)

5 years ago I used to think I had the coding thing down pretty pat

I'm not nearly as arrogant as to think that I know everything in my particular domain(s) of interest. I can look at whatever language(s) I consider myself proficient in and name half a dozen things in half as many seconds that I know nothing about.

I simply disagree with the "You have to have coded for years before going to college for coding to be a good coder" line of thought. You have to have the time, yes. But, imho, it doesn't have to come from college and it doesn't matter when you start.

I refuse to even view old code of mine. I'm afraid I'll get a concussion from all the forehead slapping this will induce.

Senior in high school at 16?

Yup. I started my senior year of high school when I was 16. I was 17 when the year ended. Didn't skip a year, just started a year earlier than most people. But, thats another story.

FWIW, I'll be done with undergrad work at college at 21 (assuming I graduate on time next year). Could have finished by this summer (ie: before I turned 21), but, I do enough classwork during the semester, I wanted my summers "off" (read; working/internships instead of classes).

This isn't all that uncommon. The same was true of both my wife and of me; we both have Fall birthdays, and started kindergarten before we turned 5. I turned 18 several months into my freshman year of college.

FWIW, I don't recommend this, but (and I've faced this with my own kids now) there's really not much choice. I was already bored in school; if I'd been back another year, it would've been even worse.

I can tell you from the perspective of someone actively hiring developers, there's a total shortage of great talent. We're nowhere near satisfying all demand for really excellent engineers. Even if your point that she'll never be as good as you are is true (not that I'm supporting that point), it's just silly to say that she's in any danger of being pushed out of the market if she's still very strong.

I've been a geek most of my life, but I hadn't done any programming until college. I love it, and am fully confident that I'm good at it.

But yes, there really should be some drive towards interest in your career path. If not, you'll struggle to improve, and would likely be significantly happier doing a different job.

I have to agree. I probably wouldn't say this in the SO question because I wouldn't necessarily want that person to read it, but:

There's a possibility she's just in the wrong field altogether. Most of the computer science people in my classes knew at least one language fairly well coming in as freshmen. I can't say they were all great programmers, but they did know how to program.

Maybe, if she was a straight A student without much practical experience, or a B student with a lot of practical experience, I would think differently. But she isn't.

That said, there are tons and tons of mediocre - bad programmers that make a career out of it. I'm sure she could as well. I just think maybe there's something out there that she would be really, really good at. Why stick with something that you aren't so good at?

Just to be clear, I'm not the OP on Stack Overflow. Someone could link this to her if they have enough rep to comment.

Leaning to program for the first time in college is sort of like learning to read and write for the first time in college.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.