I am a relatively new programmer. I can pick up languages and learn syntax at a speed that I consider good, but I can't figure out how to solve problems logically using algorithms very well. I know about the proper steps that we are taught in Comp Sci, but a lot of my friends are just spitting out algorithms. Have any of you had this problem? If so, how did you overcome it? Are there any exercises that I could do to improve my skills?

closed as off-topic by user40980, Robert Harvey, Doval, user22815, gnat Apr 1 '15 at 4:45

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic here. They are only meaningful to the asker and do not generate lasting value for the broader community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Robert Harvey, Doval, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    Read Introduction to Algorithms and Structure and Interpretation of Computer Programs, and do all of the exercises in both. You're welcome. – Robert Harvey Apr 1 '15 at 1:01
  • I'd recommend Algorithms Unlocked for the absolute beginner. It's a condensed, simplified version of Introduction to Algorithms. – World Engineer Apr 1 '15 at 1:09
  • how do you solve a quantitative problem manually? like if you were to sort a bunch of cards, how would you do it? if you were to calculate the bank interest on a debt, how would you do it? if you know the programming language, can't you write a procedure for that program to do whatever it would be what you do manually to solve a problem? – robert bristow-johnson Apr 1 '15 at 3:04

A coworker of mine always says that if you can draw it you can program it. I think there is a lot of truth to that. I usually draw out a very specific case (on paper) and try to generalize from there gradually. I find it more challenging to know if I can actually do something as opposed to how since there is a lot of resources out there on the how. Also you don't have to reinvent the wheel for every task either, just use tired and true methods to simplify your problems. And find some enjoyment in the challenge of problem solving since whether you spit out algorithms or not you still have to solve problems everyday that you will not instantly know the answers to (or you may have many competing answers and you wont know which is the best one). I am honestly in a state of partial confusion everyday but I really enjoy the challenge and I would be somewhat bored otherwise. The field is so wast that there is no way any one person is an expert on everything. Good luck and don't get discouraged by not knowing things - just ask or research it.

Not the answer you're looking for? Browse other questions tagged or ask your own question.