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?
- 2Read Introduction to Algorithms and Structure and Interpretation of Computer Programs, and do all of the exercises in both. You're welcome.– Robert HarveyCommentedApr 1, 2015 at 1:01
- I'd recommend Algorithms Unlocked for the absolute beginner. It's a condensed, simplified version of Introduction to Algorithms.– user28988CommentedApr 1, 2015 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-johnsonCommentedApr 1, 2015 at 3:04
1 Answer
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.