• Forum
  • Lounge
  • Discouraged new programmer seeking advic

 
Discouraged new programmer seeking advice

I feel like I don't know what I'm doing. I'm new to code and C++, and the task of learning a programming language and developing problem solving skills is really taking a number on my confidence. I've been programming for a few months now, but I feel like I'm in between a rock and a hard place. I have a hard time solving harder problems on my own, and I am usually forced to look up help on Google to help me point myself in the right direction. But I feel like it only makes me more confused. I hate it, because I feel like I'm cheating, even though I am genuinely trying to understand the problem at hand. I talk to my teacher during and outside class, but even still I can't make sense of certain things.I feel like maybe I'm not cut out for this. Are these feelings normal?
Yes. You're doing fine. Don't give up.

There is a very (very!) steep learning curve to programming, and it hits hardest when you are just jumping in. There is an overload of information to digest, you see.

The problem solving skills only come with (1) time and (2) instruction. At the beginner's level, you are really not given any instruction for the problem solving skills at all; all instruction is focused on syntax and basic data structures.

For now, focus on an ability to make working programs. Time (and proper instruction) will help you refine them into more correct programs because you will eventually understand what (most) of the things you write in your program actually do, what things are not good to do, what things are good to do, etc.

What matters is whether or not you want to learn enough to keep learning. Because programming stuff is always about learning new things. How to learn is the real skill -- and that only comes with time and perseverance.

Hope this helps.
Yeah, there really isn't a structure on how to solve problems. It's mainly just "here it is, now go program". I made a 73 on my first exam, and it's pretty discouraging (C's are failing to me). On one hand I'm learning a language I've never seen before, and then I'm expected to apply it to problems I've never solved before. It's frustrating, and I'm trying not to tell myself I'm in over my head.

I enjoy the payoff I get when I figure out something challenging, and Computer Science/Programming give me a sense of accomplishment that I haven't had in any other field. Patience is something I'm not very good at. I'm easily frustrated, which inhibits my ability to learn new things. I'm a big work in progress myself.

Thanks for the reply. It's good to know I am not alone.
Depending on the professor, talking to them is a bit of a coin flip. The reason they all have PhD's in comp sci, is because they can picture it in their head. And sometimes, they expect you to do the same. But one tip a professor gave me once was this: draw pictures. Lots and lots of pictures.

It doesn't matter if they look like doodles from hell. Just draw them any way you can in relation to the current hw assignment. Trying to implement a custom sort algorithm? Pictures. Creating a LIFO stack for some kind of logic problem? Pictures. Those sticky note flip books we all used to draw back in elementary school? Skill is useful here, no joke.

Also there are some fairly useful tutorials on Youtube or other websites that - you guessed it - explain programming concepts in a more graphical way. Because I guarantee you there'd be a lot less people who understand what linked lists are without having seen split boxes with crudely drawn arrows flying everywhere.

There's another side to this: you WILL have to spend quite a bit of time (if you're like me) trying to get the syntax down, because even though you understand the concept logically and mathematically, it's no use if you're writing code like this
1
2
3
4
for( a = 0, a < 100, ++a) // I assume you know what's wrong here
{
    // stuff
}
YFGHNG +1

Your you and your professor and I are on the same wavelength: get out the paper and crayons and draw pictures. These help more than anything else when trying to wrap your head around things -- even advanced algorithms.
Can you point me to where I can find some of those tutorials? I feel like learning more problem solving strategies would pay off in the long run. Currently, when I try to make sense of something, I write it out on my white board and try to break it down. I'm knee deep in learning arrays/file streams- and some of the concepts just confuse me.
Are you talking about dynamic arrays aka making arrays that act similarly to vectors? Or like your basic standard array from std::array?
Most introductory problems will involve dealing with basic structure (if statements, loops, functions), homogeneous data (arrays), aggregate data (structs and classes), arrays of struct/class, pointers and linked lists, etc.

The problems to solve will deal with handling those structures.

For example, dealing with arrays will almost invariably involve finding the minimum and/or maximum value in an array. You might be asked to sort the array. (Avoid bubble sort. Go for selection sort or insertion sort.) You will likely be asked to manage a dynamic array of values, where you must know how to insert and delete things from the array.

Dealing with functions will often involve solving some relatively simple mathematical function, such as GCD or LCM or factorial.

Loops may involve problems asking you to print diamonds or triangles or even circles on the screen with asterisks.

There are plenty of variations. Don't worry about solving too much at once; just focus on the problem of the moment.

Hope this helps.

YFGHNG- Currently, we are just dealing with basic standard arrays, arrays in functions, partially filled arrays, multidimensional arrays, and parallel arrays. We will very soon be getting into vectors, which I've not yet had to deal with, so I have no idea what they are (yet).

Duoas- We actually talked about sorting today in class, and it was recommended by my teacher to practice those types of problems, because they deal a lot with array looping, which I could use some practice with.

I'm brushing up on my array skills, going back through my chapters, trying a few problems, and building a little knowledge set before I have to tackle a project this week.

Thank you all for the kind words and feedback!
Oh you'll love vectors. And I don't mean that sarcastically either. They're so much easier to deal with than arrays. Vectors basically do everything for you.

Just, once you get to linked lists, don't try to use vectors for those. It turns into a godawful mess.

lazywestcoaster wrote:
Can you point me to where I can find some of those tutorials?


YouTube. Most of your time spent there will be frustratingly pulling your hair out as you stumble across multiple "tutorials" with thick accents and just code everywhere; no pictures, no graphs, no nothin'. Then you'll magically run face first into the most awesomest tutorial you've ever seen that explains things in the simplest and most understandable fashion, and you'll love that one through your screen for the rest of eternity (or until your professor introduces a new topic which you have no clue about).
It's beginning to look like I am starting to slip in class. I'm starting to learn that I am not a very good problem solver. I can understand how code works once it's coded (granted after hours of mapping what goes where), but I'm terrible at the word problem aspect of it. I'm beginning to think because I'm not a very good with the logic, that maybe I'm not quite cut out to be a programmer. I know some people say C++ is harder than others, and that if I go into Java or whatever that it's "easier", but the problem solving aspect carries over into all languages.
I appreciate the help, and I enjoy tinkering and trying new things, but I can't problem solve, and that is the nature of the beast to my understanding. Maybe it's just a rough patch, or maybe it's my gut telling me to try something else.
You have to decide what works best for you, but problem solving isn't an innate ability -- it is learned.

While it is true that some people have an innate knack that helps them get started, that is not enough to understand things enough.

Consider, also, that many people who take a CS course have had some experience (personal or otherwise) doing this kind of thing before. If you haven't you are at an automatic disadvantage when compared to them.

The problem solving aspect of it all is the same no matter what language you choose. C++ is difficult because it allows you a great deal of control over how things work, whereas other languages, like Java, for example, supply the one true way and make it work well.


I'm currently trying to learn some music theory -- and I am so far over my head it hurts. There is SO MUCH to learn... I just can't grok even the basics enough to not be frustrated.

But I'm going to learn it, somehow, someday. Because I'm not going to give up.


Of course, I'm not wagering a GPA on it by taking any classes. Perhaps you can take some other classes and audit the programming ones for a semester or two, until you feel comfortable enough to actually do the work?


Also remember, things always fall apart before the curtain goes up.

Good luck. Make the decision you feel most happy with.
closed account (yR9wb7Xj)
I recommend purchasing Think Like A Programmer on here. http://www.amazon.com/gp/product/1593274246?keywords=Think%20Like%20A%20programmer&qid=1445808438&ref_=sr_1_1&sr=8-1

AND : Stop feeling sorry for yourself because you cannot solve problems. Everyone is a human, everyone has the ABILITY to Learn.
Last edited on
I took a peek at some of the reviews. I guess it can't hurt to give it a shot. I'm leaning towards putting programming aside for the time being, or maybe just doing it for myself. It's a multitude of issues I won't begin to discuss, but the big one is being in a class with a bunch of experienced programmers does a number on me. There doesn't seem to be a lot of patience in place for beginners (and it is a beginners course ), so my slow development isn't favored.
Duoas, that's probably the best advice I've heard. It might be best for me to audit programming for a while. I eventually have to do it, but maybe once my self confidence has improved.
closed account (E0p9LyTq)
lazywestcoaster wrote:
I feel like I don't know what I'm doing.


I've been trying to self-teach myself C++ for years, and I still feel a bit dense at times.

There are times I am trying to learn something new, such as string streams, and I get frustrated that I think I will never grasp the idea, and one day....*DOINK* I "get it."

Until I try learning something new and much of what I learned before I "forget."

I am constantly writing mini-programs over and over so I can force myself to retain the knowledge. Most times it works, sometimes it doesn't.

Don't give up, if you really want to learn.
closed account (yR9wb7Xj)
@ lazywestcoaster: I can understand your frustration with this, because I'm in the same boat as you, I'm beginner as well. Going to be a junior in college next semester. I'm taking my second introduction of CS class, I switched my major from business to CS. So I understand why you are intimidated with the other students that have years of experience to one who doesn't. I only have a semester worth of experience. A semester in half counting this semester too. But don't give up, I have a hard time understanding how to solve problems. If you like programming, then pursue it! If you don't like it because of the logical reasoning in solving the problems. Choose a different route. Programming is for everyone who apply themselves in learning how to think. It takes times to get nearly as good as a professional programmer, and even then professional programmers still have to learn. You're always going to be learning a new thing in this field. And the reason why we have trouble solving problem, speaking as a beginner to another. It's because we don't have the logic to think as a programmer. We can solve these problems in a heart beat in english but in computer code it's hard to translate it to where the computer can understand it. Just do what's right for you, you could also try a community college class, you will find a lot of those kids wouldn't have much experience, and maybe you will feel a lot better. I know, because I have a friend who's in CC and taking a CS course there. Just don't try to make an excuse, because maybe you're not cut out for it, maybe you weren't born as a programmer, should just quit. Because it's full of BULL SHIT and you know it. Part of programming is trial and error, and TRYING. You have to fail before you succeed in one thing. I'm pretty sure everyone in this community can relate to that.
Last edited on
Topic archived. No new replies allowed.