Thread: New to C: Frustrated with Instructors

  1. #1
    Registered User DriverOne's Avatar
    Join Date
    Apr 2013
    Location
    Upstate, SC
    Posts
    2

    Unhappy New to C: Frustrated with Instructors

    It has been my goal for the longest time to achieve my degree in Information Technology - Since I was 15. I'm 30 now. I've finally been placed in a position to be able to attend my local community college. My issue is that I currently, (before the curve) have a 55 average in C Programming, the second time around. I feel it's unlikely that I'll pass. Without an overly lengthy explanation, the simple fact is this: I feel that the way that the class is taught is too vague, too general, and too "cookie cutter". Going from a basic IF statement to Functions to File I/O in a little over three months just seems too fast! I feel that so much is going on by the time I'm looking at pointers that I get lost in the code, which seems like Japanese. The reality of the situation is that there are almost 100 students at the beginning of the semester, and 20 or so left at the end. They drop like flies. Probably 4 or 5 of those remaining students pass with an A. I don't want this to be the end of my ascent to IT professional!

    I would really appreciate any (positive) advice or suggestions. I'm willing and eager to learn, and would love any guides or books (I will look through the C tutorial here as well!) that will help me get through this horribly constructed class as I take it the third and hopefully the last time.
    Last edited by DriverOne; 04-26-2013 at 07:40 PM.

  2. #2
    Registered User
    Join Date
    Jun 2011
    Posts
    4,513
    Are you just looking to pass the class, or are you genuinely interested in learning how to program? My own personal experience would only allow me to speak to the latter of those scenarios.

    I had one or two semesters of 'C "programming" in my undergraduate curriculum (electrical engineering), and it was terrible. In retrospect, it was probably more about "getting our hands wet" with it so we'd recognize the language when we saw it, more so than learning to do anything meaningful with it.

    However, I had such a passion for the craft that I took it up as a hobby. Today, I get to combine my degree with my love of programming at my current job.

    Learning to program (especially the first language) is not trivial. It takes a while before you're comfortable and knowledgeable enough to produce anything of worth. Therefore, the desire and enjoyment is, from my own perspective at least, imperative to carry you through the basics before you can start producing code that has actual real-world benefits.

    Learning something you're not really interested in is difficult, programming especially. But if you enjoy it, you'll take the struggles of learning on your own, in your spare time. If it's right for you, you'll begin to feel the little flushes of excitement when you make even trivial programs behave like you expect. It continues to grow from there.

    Of course, the "trick" is just like learning anything else - practice, practice, practice. That's why, in my opinion, the interest is so important - it keeps you motivated to keep practicing, even when you get frustrated, even when you think about doing things that waste time (like ... yech ... watching television).

    Books and tutorials are vital, but it's also important to spend some time tinkering on your own with the things you've learned, even if it seems trivial and useless (which most beginning programs certainly are). Also try to absorb yourself in the "programming world" - you're bound to find something that will interest you and inspire you to continue developing your skills on your own.

    Best of luck!
    Last edited by Matticus; 04-26-2013 at 08:22 PM.

  3. #3
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    This doesn't really make any sense to me.

    Unless you are taking through an "on demand" classroom, you've had at least six months to learn before you started taking the class for this third time.

    *shrug*

    It sounds to me like you must not be working at it outside of the classroom.

    Don't misunderstand; you have odds on not exaggerating about the class sucking.

    My problem is, you must have already know that.

    Why are you taking the class a third time before you took the time to learn the language you knew you were going to need to know!?

    Soma

  4. #4
    Registered User
    Join Date
    Mar 2013
    Posts
    31
    Yeah, you don't just "get" programming, much like you don't just "get" spanish or any other language. You have to be playing around in your own time, making things, breaking things, etc. Much like Matticus, I had Introduction to C in my engineering undergrad about 6 years ago. I've recently picked it up again this year (about 2 months ago) via Zed Shaw's Learn C the Hard Way. The key difference between then and now is that I WANT to learn. I want to be thrown in the deep end and figure it out. You have to want to do it.

  5. #5
    Registered User
    Join Date
    Jun 2010
    Location
    Michigan, USA
    Posts
    143
    In addition to the advice you have been given (and will be given) about learning C programming, I would consider some options for improving the situation.

    1) Is there more than one instructor of this course at your community college? If so, see what reputation information you can get from either other current students or on-line sources. Then pick the best instructor.
    2) I would talk to the department head. If your statics about drop out rate are correct and not exaggerated, the course should be "repaired". If the department head is the instructor, then the next stop is the academic dean or an administrator.
    3) I would talk to your academic advisor to see if you could take the course at another institution and transfer the credit into your degree program. Is there another community college near you? Yes, you may have to pay higher tuition. Make sure to find information about what previous students thought of any particular course or instructor.
    Last edited by pheininger; 04-27-2013 at 05:43 AM. Reason: Add different instrutor same institution item.

  6. #6
    Registered User
    Join Date
    Apr 2013
    Posts
    2
    Hi, I would read some very good books on the subject and make all the exercises that most good books provide.

    I read that you are confused when looking at pointers and such. You need to study more on your own and do more exercises. C is a great language but you have to understand it

    It's very important when you are reading your books that you stop as soon as something is not 100% crystal clear. Stop, re-read or search more about the subject until you understand it completely 100%.

    Good luck.

    There are no shortcuts, you must put in the efforts.

    Imho you can't learn to code C by listening to a teacher alone. You need to put it the hours to figure it out how things work.

    3 months from iterations to IO does not seem like a short time to me. This is all still basic C.

    Maybe programming isn't for you.
    Last edited by YSSOETE; 04-27-2013 at 10:30 AM.

  7. #7
    Registered User
    Join Date
    Sep 2006
    Posts
    8,868
    I agree with YSSOETE ^^^^. You MUST practice your C skills - you learn by doing also, not just by listening to a lecture or reading alone.

    For example, there is a thread here now on the forum, about removing spaces from a string. Take it on! Can you do it, using indices? Can you do it using two pointers, instead of an int index?

    Adopt these problems as your own, when they're near your level, and see how you do with solving the problem. Then see how the problem is solved in the forum, or what ideas are suggested, etc.

    Never go more than two days without programming a little SOMETHING - just to keep your skill freshened up. If you don't code for a month, you'll be shocked at how much you can forget.

  8. #8
    Registered User loserone+_+'s Avatar
    Join Date
    Dec 2012
    Location
    Indonesia
    Posts
    112
    if u want to get better, the only one who can help to get better is yourself,
    college or school is only a place,
    programming is hard, but when u getting understand, u will love it for sure

  9. #9
    Algorithm Dissector iMalc's Avatar
    Join Date
    Dec 2005
    Location
    New Zealand
    Posts
    6,318
    Quote Originally Posted by phantomotap View Post
    O_o

    This doesn't really make any sense to me.

    Unless you are taking through an "on demand" classroom, you've had at least six months to learn before you started taking the class for this third time.

    *shrug*

    It sounds to me like you must not be working at it outside of the classroom.

    Don't misunderstand; you have odds on not exaggerating about the class sucking.

    My problem is, you must have already know that.

    Why are you taking the class a third time before you took the time to learn the language you knew you were going to need to know!?

    Soma
    Wow, that is exactly the kind of response I was going to give.

    80-90% of the time I spent at university was really just rubber-stamping knowledge I already had, and if it wasn't something I knew already, then I sure as heck found out about it in my own time along the way.
    It's not because I just wanted to pass, or even wanted to get a good grade. It's because it was what I enjoyed doing.

    The teacher could probably set more enjoyable tasks, but generally the motivation has to come from within.
    My homepage
    Advice: Take only as directed - If symptoms persist, please see your debugger

    Linus Torvalds: "But it clearly is the only right way. The fact that everybody else does it some other way only means that they are wrong"

  10. #10
    Registered User
    Join Date
    May 2003
    Posts
    1,619
    Well, if you want to be an IT professional but not a programmer, you can probably find a better curriculum suited to that. There are plenty of non-programming IT jobs, after all.

    If you do want to be a programmer, then really all you can do is practice. Like with any craft, programming is a matter of repetition, and especially at the critical early stages of learning, it requires a lot of practice. Once you get to a certain level of skill, you can go longer without as much deterioration in skill, but you'll always need to do some things periodically to keep yourself in practice.

    Use the time between this time and next time to really dig through the book. Do the example problems until you not only can do them, but can explain why you made the choices you did when programming.

    Unless the book is really, really bad, there probably isn't too much to gain by choosing a different book. You already have one textbook at your disposal, it's unlikely that others will help a lot. In my experience book choice tends to become more important at intermediate and advanced levels, where there's more variety in the concepts that the book will expose you to. Every beginner's book is going to be cover pretty much the same topics. There are certainly better books or worse books, but the difference among them isn't that noticeable, especially at the early stages. You're probably best off using the book the course is taught from.
    You ever try a pink golf ball, Wally? Why, the wind shear on a pink ball alone can take the head clean off a 90 pound midget at 300 yards.

  11. #11
    Registered User DriverOne's Avatar
    Join Date
    Apr 2013
    Location
    Upstate, SC
    Posts
    2
    Thank you everyone for your replies! Over the summer, I will be practicing. Some of you mentioned the bit of excitement that comes from making something work. I certainly have that. Without going into excruciating detail, I was instructed by two separate professors, who taught things in two separate ways, in two separate years. I didn't mention that I got A's & B's on the programming assignments, but F's on the handwritten coding tests. Perhaps I'm only digging my grave farther, so I'll instead focus on the positive reinforcement I've received, and thank you for your input. I've got a few pieces of code that I'm stumbling on, and I'll post that here later. I look forward to communicating with you all further, and greatly strengthening my knowledge in C.

  12. #12
    Registered User
    Join Date
    Jan 2013
    Posts
    24
    I took a class at a sc upstate tech school as well with c as a choice, I wouldn't say I failed but I didn't complete it. I helped a few kids in there out as well with basic stuff. Its funny they cram that class full, and on the first day the statement is made, " Don't worry if you can't find a seat today, within 2 weeks they will be empty seats." My reasons for dropping were due to an unforeseeable event that made school impossible at that time. Its over 5 years later and I've been through that textbook from class at least 6 times. I still have it here at my desk along with a few other books on programming.

    How much time do you spend reading a day? Then how much time do you spend thinking about what you have read? Then how much time do you spend writting down what you think you know on the subject? I truely like the programming classes failure rate, It truely weeds out the unworthy.

  13. #13
    Registered User ledow's Avatar
    Join Date
    Dec 2011
    Posts
    435
    Replace "C" with "French" or "German" or "Spanish" and see where the problem lies. You won't learn those languages in a few months of attending a class for X hours a week, beyond tourism-level communication, and neither will you "learn" C in a few months. There's little point your teachers reading through Dante in the original language through with you while you don't know how to say hello. Sure, you'll communicate, you'll speak a bit of the language, you'll be able to do certain things, but the fact of the matter is that to any French/Spanish/C-speaking person, you'll still be considered nothing more than a tourist who took a class. Think how that works in terms of employment prospects while you're considering that (i.e. would you hire the kid who can speak a bit of Spanish that he once learned at school, or the one who took it upon himself to be fluent outside of school?).

    If you think that programming may be an important part of any future career, treat it like you were going to work in Spain for the rest of your life. Sure, being able to ask for a loaf of bread and how to get to the airport is useful and serve you well for a little while but the fact of the matter is, if you want to "live" / "work" in Spanish/French/C then you have to just constantly expose yourself to the language, formulate problems, bounce conversations off native speakers, etc.

    I saw something the other day that said that it takes approximately 10 years to become expert in anything. Sure, in a few years you can get really good, but to become "fluent" in a language, a musical instrument, a technique, or a skill, it takes 10 years, usually of constant work. As such, you're falling at the first hurdle.

    Honestly, if you're in a class that's *THAT* formulaic and you're still struggling, it means the interest isn't really there. The second time round, surely you knew most of the stuff that you had struggled with previously and the stuff you "missed" because of that struggling should now be fresh, new, understandable and exciting? And a class so formulaic should be quite easy - it's basically just a memory test and reciting by rote if that's the case (and you'll find that the teacher has been teaching the same way for 10+ years because he teaches by rote, and marks by rote, because he struggles with going further - so it's not a condescension to admit you're struggling or that it might not be your forte).

    I would worry, as a supervisor of your education or as a potential future employer, that you haven't run off and done most of the stuff on the course for yourself. Maybe not beforehand, but certainly once you started picking it up. I'd worry that you hadn't knocked up your own silly programs to test things (that tend to be less boring than class-supplied exercises). I'd worry that you hadn't started programming "for fun", so to speak, and covered most of what's in the class yourself anyway.

    If three months isn't enough, times by three lots of the same content, maybe it's just not your forte. There are plenty of avenues in IT that don't require programming, for instance. Play to your strengths. And if the course in question is a minimum requirement for attending other courses or passing overall, there's a reason for that - you'll need to understand it to the point where you don't struggle in order to concentrate on the dependent courses. There's no point struggling forward into an even deeper topic that just assumes you know how to do it all, if you can't get through the prerequisite courses.

    I'm no expert. I'm no genius. I have a degree from a British university but it's literally one of the lowest scores you can get and still call it a degree, really. Most of it was mathematics - in the US you'd probably say I majored in Mathematics and minored in CS, but my degree just says "Mathematics and Computer Science" - (this was my salvation when it comes to the advanced IT topics that I had to walk out of the course on the first day because it was just so over my head, and change module to something else). I have had a career in IT (and only IT) ever since, and program for work, and program for pleasure, and come on programming forums to help.

    But the reason I can do that is because, from a very young age, I was interested in programming, learning for myself (my teachers were trying to teach me BBC BASIC and Visual Basic and I was writing games in C and x86 assembler at the back of the class), and have always found it interesting. There's nothing I love more than an interesting programming problem, a compiler of my choice, and some free, quiet time. Nothing practical comes out of it, I don't write blockbuster games or sell millions of apps, mostly I get to the point where I prove to myself that I understand the problem, have a few solutions, etc. and then it gets retired. But the interest is there.

    When I was at university, drop-out rates were so low for the first two years that nobody, and I mean nobody, noticed who dropped out. There just wasn't any change in the size of the classes and some of them even grew. But the third-year, where you needed to KNOW all the first two years, class sizes were decimated. People realised that even though they passed it, they didn't "know" it and either took a "gap year" or dropped out or changed specialism or whatever. I can remember having to explain programming concepts to a fourth-year Masters student that I'd picked up on a ZX Spectrum as a kid.

    I'd advise you to find your own way. This is a particular weakness of yours that requires more of your time to understand. You need to shift workloads from those courses that you do just cruise through to those you need more time on. Then you need to spend that time working through the chaff to get that moment of inspiration and understanding. On top of that, I'd suggest that you need to do your own investigations with it. Apply the knowledge you ARE comfortable with to your own examples and exercises. Imagine YOU were giving the course, what would you cover, what would you skim through, and then do it. Set yourself some difficult but more interesting problems (the usual trick with programming is to find some kind of game you can write, no matter how contrived - just about any technique, technology or algorithm you could think of will crop up in some part of a game and making that work as part of some game is the way to make it interesting. How do you think things like Crayon Physics started and bits like that? Someone doodling with a simple physics engine either to understand the engine, or understand the physics).

    There is no "easy" solution. Even the best of students won't really be a competent programmer in a workplace for a few years anyway. If you struggle, you can do three things - do nothing, keep trying the same things, or put a lot more effort and time into it. Unfortunately, only one of those really stands a chance of working. And don't worry about careers at this stage - most of the people I meet in IT have almost zero concept of how to program, and I am friends with people who work in and manage datacentres (for people like Rackspace, Symantec, etc.), people who manage the IT in schools, colleges and universities with thousands of computers, people who teach IT, people who design websites, people who manage SAP business systems, and a myriad other IT-careers. I can count the people I know who program for enjoyment on on hand. I can count the people I know who program for a living on another hand. I can't count the people I know in IT who can't program even a line (even if they used to do COBOL and assembler on mainframes back in the 60's) without needing a calculator and a lot of time.

    Learning programming by rote is like being told that this line from Shakespeare means X. It doesn't mean you can analyse the complete literary works of him, or that you'd ever want to, even if you found that fact interesting at first. I'm pretty sure all this applies to most careers, but I only really know IT enough to comment.

    Most 'musicians' don't perform in the Royal Albert Hall to a thousand people. Some teach music. Some play in a band after work. Some only bring out the accordion to amuse their grandchildren. Some never touch an instrument again after leaving school. The vast majority, I would guess, couldn't play a piece of unfamiliar music first-time from a random bit of sheet music. That's just how it is.

    As the old joke goes: How do you get to the Royal Albert Hall? Practice, practice, practice.

    - Compiler warnings are like "Bridge Out Ahead" warnings. DON'T just ignore them.
    - A compiler error is something SO stupid that the compiler genuinely can't carry on with its job. A compiler warning is the compiler saying "Well, that's bloody stupid but if you WANT to ignore me..." and carrying on.
    - The best debugging tool in the world is a bunch of printf()'s for everything important around the bits you think might be wrong.

  14. #14
    Registered User SCRIPT_KITTEH's Avatar
    Join Date
    Apr 2013
    Posts
    74
    Quote Originally Posted by DriverOne View Post
    The reality of the situation is that there are almost 100 students at the beginning of the semester, and 20 or so left at the end. They drop like flies. Probably 4 or 5 of those remaining students pass with an A.
    Yeah, that dropout rate seems a little low.

  15. #15
    Registered User
    Join Date
    Sep 2006
    Posts
    8,868
    That's an amazing response by ledow - kudo's to you!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. C Programming Instructors; is this one a good one?
    By stahta01 in forum C Programming
    Replies: 3
    Last Post: 05-18-2012, 09:45 AM
  2. A Bit Frustrated....
    By DirX in forum C++ Programming
    Replies: 3
    Last Post: 04-14-2003, 10:29 PM
  3. frustrated job!
    By Cemilia in forum A Brief History of Cprogramming.com
    Replies: 14
    Last Post: 11-27-2002, 09:00 AM
  4. Frustrated
    By kas2002 in forum C++ Programming
    Replies: 1
    Last Post: 10-07-2002, 02:56 PM