views:

590

answers:

22

Well my school semester ended a week ago and I got a C in one of my Data Structure courses. Should I feel discouraged and pursue a different career?. I mean don't get me wrong I love programming I just don't want to become a bad programmer.

+5  A: 

If you quit after you don't do perfectly at something every time, you might as well go apply at McDonalds right now.

Don't get discouraged. Just read up on data structures and practice working with them.

jjnguy
+17  A: 

Well, from where I'm sitting, the very fact that you're asking the question "Am I (or will I be) a bad programmer?" pretty much means you won't be. And I say this with some 13+ years experience in software development working with a large number of developers and having some work for me.

It's important to know what you know. Just as important is to know what you don't know. The real problem with developers come about when they think they know something and they don't.

So look back at your assignments, etc. Figure out what you did wrong. Figure out what you could do better. A C in one course is not reason enough to change career, particularly if its something you enjoy doing.

cletus
Amen. This is an industry of continual learning, and the "know it alls" are dead-enders.
Godeke
+1  A: 

True story, I actually dropped out of my first data structures and algorithms class when I was taking computer science in college. I just didn't "get it" (I'm sure that there are some that would argue I still don't, haha).

casperOne
+11  A: 

LOL - don't let a C deter you from doing something you love. My high school I.T. teacher told me never to pursue a career that involved computers because I was hopeless. I carried on pursuing exactly what he told me not to, and I'm pretty successful at it. Even after all this time, I still love it and still love learning more about it - I've been doing it around 14 years now.

I'd like to think I'm a relatively decent programmer. I rarely get complaints about my code, it's elegant, efficient and easy to read and I'm confident with my knowledge. Where my knowledge has gaps, I ask questions and find information until I understand it - and believe me, there are many bad tutors out there and there are many that just don't explain things in a way you understand. Learning is a very personal thing, you learn things in a way that is personal to you - just because someone explains something a certain way and you don't understand it doesn't make you dunce. Someone else might come along and explain the exact same thing slightly differently and the lightbulb just clicks on in your head. Maybe the guy next to you in class that got the A just clicked because of the way things were explained and maybe you need that someone else to put that slightly different spin on it to get you to click.

Your grades and tutors are there to let you know where you're falling short and where you need to work harder. They're not a deterrent to stop you doing well they're a benchmark to let you know where you stand right now. Don't be discouraged, stick at it - it gets easier with time.

Edit: My apologies to any teachers I offended - I really wasn't trying to "diss" on all teachers, there are many great teachers out there too that do an outstanding job. The point I was really trying to make really wasn't about teachers at all [although I never did like my I.T. teacher] but about the ways in which we learn vs. the way things may be taught to us.

BenAlabaster
lol my primary school teacher told my parents and me the exact same thing. Tossers
Nathan W
Those who can, do. Those who can't, teach.
cletus
and those who can't teach, teach P.E.
BenAlabaster
YES school of rock for the win :)
Nathan W
Programming takes a long time to learn and by the time you finish school it is not like you will be a fully fledged programmer. One course means so little in the life time of a programmer. You still have plenty of time to be a code ninja
willcodejavaforfood
One's earning power is not a valid indicator of one's success. Don't diss on the teachers because they don't make more than you.
Nathan Feger
@Zokerman - I didn't get the impression that he was. Rather, he was showing that his "hopeless career" turned out to be a lot less hopeless than his teacher had predicted.
J Cooper
Sorry Zorkerman didn't mean to offend, I modified my answer to be less offensive. I guess I let my disdain for my high school I.T. teacher get the better of me...
BenAlabaster
@J Cooper - yes, that's what I was getting at; but Zorkerman's also right, I should be more careful how I put my point across :P
BenAlabaster
My high school physics teacher refused to write a recommendation for my college applications. Conversely, I also though that he was an idiot. You see, there was this simple free-body diagram with a symmetrical right triangle (45deg, 45deg, 90deg). Instead of saying that `Force 1 = Force 2` because `tan(45deg) = 1`, he first found an approximate value for `sqrt(2)` ... using a calculator! He then multiplied that by `cos(45deg)` and eventually his argument was: because `4.98` is approximately `5`, then `Force 1 = Force 2`. Since that time I learned to not trust academia that much.
Hamish Grubijan
+1  A: 

If you understand why you got the C and you are willing to work on that, then you will do great. If you don't understand, then talk to your professor and find out. If you don't feel the issue is important enough to work on understanding better, then perhaps you should adjust your curriculum. Basically no one else can tell you what you have a passion for and having a passion is the best way to become good.

EBGreen
+2  A: 

Getting a bad mark in a Data Structures courses doesn't make you a bad programming. There is really only one way to become a good programmer and that is practice-practice-practice.

It's like every thing: The first time that I tried to learn TDD, I failed really bad and I mean really bad, I left it for a while and tried again, this time just trying to pick it up on the fly I sort of got it but there where some things I was still missing after a little while I decided to buy Kent Becks book on TDD and now I feel I understand it a lot better.

If I had dropped it the first time I failed then I would have never learnt how to do TDD and in my opinion become a better programmer.

Nathan W
+3  A: 

Retake the class, or at least study the subject thoroughly on your own. If you got a C the first time, it shouldn't be too difficult to fill in the gaps in your knowledge and get an A.

Corey
+1  A: 

Data structures was a course that I found to be very challenging (read: I failed it.). Knowing your weaknesses is just as powerful as knowing your strengths, though. Think about why you failed the class -- was it because you were disinterested? Did you not study enough? Do some soul searching. Make a decision of how to move forward based on how you feel.

Keep in mind that many in our field have never even taken data structures. Don't let a letter be the reason that you change your career goals! Do what you enjoy doing -- it might take a bit more effort -- trust me, I know -- but it will pay off in the long run.

Plan B
+1  A: 

It is important to have an idea about the efficiency of various algorithms.

However, don't let one exam result discourage you.

ewalshe
+1  A: 

Well actually the Labs were Easy a little bit of thinking but the Mid term and Final were very complex for me. But I loved the Labs

Ender
Maybe you just don't test well. Some people don't do well in deadline-based pressure situations like exams.
David Poole
+1  A: 

I didn't do that great either. Look at me now! I have over 500 points on SO!

Joe Philllips
+1  A: 

Its hard to say if you should give up. I'd guess not, but for me, data structures were the Rosetta stone that allowed me to really take on larger 'real' software projects.

Do you feel like you understand them? i.e. Can you code a Linked List, an automatically resizing array, etc.

If so, then you are probably good to go. Otherwise if this is your field you may need to consider retaking the course.

Good luck

Nathan Feger
A: 

Thanks a lot guys I will keep on going besides I actually started programming half a year ago, I did know a few of the Fundamentals like Loops and if statements because I taught myself how to use PHP,HTML,CSS but my brother got me interested and we are both taking the same classes at a Community College. But I will move forward Thanks a lot guys.

Ender
+1  A: 

Perhaps the breakdown of the test could be such that you got most of the answers correct, which means you have a good grounding in the subject and understand the concepts. It could also be that the question(s) you answered incorrectly, had a large weighting of the overall score. So dont let that deter you, just learn from your mistake and you will one day be a great programmer!

Jobo
+2  A: 

At least you got to take a Data Structures course...

Anyway, don't let a grade deter you from what you want to do with your life. A lot of people won't agree with me on this one, but your grades become meaningless as life goes on. If I were to meet a programmer with reasonable-to-poor grades with a wealth of programming experience and ability I would hire him/her over a student with great grades that never excelled outside of the classroom.

We all have our weaknesses. I have thousands, including Data Structures, but aside from that the poor grade has given you the opportunity to build on your mistakes and turn them into a strength. If you really don't get Data Structures then use whatever free time you have to get acquainted with the subject. Once you've grasped the subject work on your implementation so when a future employer wishes to bring it up you can show how the grade is not reflective of your ability.

I was given a D in Business Studies, yet am one of very few people from my school to have actually worked in a Business environment.

EnderMB
+1  A: 

Well I don't even have a Computer Science degree and have never take a Data Structures class. I think I have turned out to be a good programmer but it has taken good amount of effort on my part to study on my own.

Web
+1  A: 

Look at it this way: you know one thing you need to work on. There's lots of things in the field you won't just get the first time you work on them, and things that will only make sense if you understand something else. You describe yourself as self-taught recently; there's bound to be holes in your understanding that need to be filled in order to understand more things.

Don't let early setbacks stop you. If you want to learn programming, give it a good solid try. Then, even if it turns out it's not for you, you'll never wonder whether you could have if you tried.

David Thornley
+1  A: 

No one can tell from a single course or grade or Stack Overflow question how good you might be or how much you'll like computer science/software as a career.

What that grade does say is how you felt the day of the tests and how well you knew the material at that time. It also says something about how much context you had for that material when you took the course.

I've found that one class doesn't always tell. Context is what matters.

My undergraduate experience started very badly, but I kept at it. Things improved towards the end, and I got a BS in mechanical engineering. When I went to grad school to get a Masters degree, I found that four years of context, work experience, and classes that added a deeper view made all the difference in the world. I "got" it a lot faster and better, because I had more context in which to put new facts.

Maybe one course won't be enough. But if you really want to be good at it, it'll be up to you. Keep reading, keep learning, read other data structures books. Maybe a different view will inspire an "ah ha" moment, and all will fall into place.

duffymo
+1  A: 

Good for you. College is about learning making mistakes.

Demian Garcia
+1  A: 

Millions of programmers never got above 'C' (programming)-- so you'r in good company :-)

If you love programming just keep at it, you'll figure out data structures eventually.

+2  A: 

I killed myself in a C++ class during my undergrad tenure and walked out with a big fat "F". I talked to the professor and asked what I should do. He said "Suck it up and take the course again".

I did take the course again with the same professor. He changed every bit of the curriculum. I walked out with an "A".

Matt Darby
A: 

What grade level was this course: Elementary school, secondary school/high school, university undergraduate, university graduate?

I'd try to figure out what you did poorly at on the tests and make sure that you understand what was trying to be taught as well as likely memorizing a few basic data structures like stacks and queues. I've been a developer for almost 11 years now and I got a grade of 50, which was precisely the lowest passing grade possible, in my 3rd year Concurrent programming course.

JB King