Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

I'm learning how to program with a book on Objective-c. I know, that's not great start, but anyway. What I want to find is exercises which gradually increase in difficulty from starting ones like hello world to fairly complex ones which require few hours to complete. Is there any site out there that offers those excercises? Not necessarily language-specific. I have seen Project Euler but it is more math based, and I'm not too good in math.

I know loops, got some grasp on classes, inheritance. What I want is to make something useful. I can't understand where to start.

share|improve this question

marked as duplicate by gnat, Jalayn, World Engineer Mar 26 '13 at 23:05

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

4 Answers 4

up vote 4 down vote accepted

To learn programming, books are fine. Especially when starting out.

But to REALLY learn programming you've got to struggle. Think of an application you would like to create. Maybe a web application that you think would be useful to you or to someone you know. It can be way out of your reach. In fact it should be WAY out of your reach.

Then go for it. Google, ask questions, read books. STRUGGLE, and you'll find you learn SO much! You can do it. Just be patient, and work hard. It's a lot of fun!

share|improve this answer

You should first read through the book and workout the examples so you have a grasp of the language. No sense in writing long code to solve a problem that can be easily done by syntax that you didn't bother to learn.

Check out MIT OCW and work through the intro programming class. The difficulty will go from easy to hard as you get deeper into the p-sets, and that's what you're looking for.

From there, definitely check out Project Euler and TopCoder competitions/puzzles. You don't need to be a math genius to be a good programmer, but you do need to be decently good at math.

And remember that "complex" is relative. What is complex to a rookie will be straightforward to seasoned veterans. Often times, people post on StackOverflow after tinkering for hours and get solutions in minutes. Don't try to do absurdly hard problems - try to challenge yourself a little more each time and work your way up.

share|improve this answer
+1 for OCW Link. Great resource for people –  PSU_Kardi Jul 6 '11 at 20:19
It's good, but I already got all the basics, I'm into more advanced topics like protocols and categories. I think I need more exercises to get hold of the things I learned. –  Dvole Jul 6 '11 at 20:22
@Dvole - " learning how to program" implies you don't have any of the basics. Please edit your OP to reflect your skill level better. Anyways, the kind of exercises you are looking for improve general skill, not impart specific knowledge. If you want to learn about specific topics, then google for material about those and look for open source projects that you can get involved with. –  BlackJack Jul 6 '11 at 20:30
I know loops, got some grasp on classes, inheritance. What I want is to make something useful. I can't understand where to start. –  Dvole Jul 6 '11 at 20:39
Can you discuss the complexity and implementation of a few sorting and searching algorithms? Do you know what a binary search tree is? Can you explain the differences between recursion and iteration? If not, read "The Algorithm Design Manual" by Steve Skeina and work through exercises. Build a strong foundation first, otherwise you'll be building castles in the air. Once you have solid fundamentals, then just look for books on topics that interest you, and you'll find what you need. –  BlackJack Jul 6 '11 at 20:43

Programming is almost always learned the hard way. Pick up a book, read it cover to cover. Work through the book. Then when you have looked at all the syntax and surrounding pieces to it, start coding. It will be like trudging through a swamp for your first application. But the second one will be easier. Then the third...then the fourth, etc. etc. etc. Then before you know it you will be profficient and writing some pretty cool software.

That's how we all learned! Good luck.

share|improve this answer

I am going to assume that since you are learning Objective-C that you want to program for Mac OS X or iOS. If you are looking for a project-based approach, then the best book that I have read is Cocoa® Programming for Mac® OS X (3rd Edition) by Aaron Hillegass. The book assumes minimal programming knowledge, explains the common paradigms and patterns seen in Cocoa, and a lot of the principles in that book can be applied to iOS as well. One of the projects will give you an idea for a project to start on.

share|improve this answer
I already got their book on Ios programming and working through it, finding it great –  Dvole Jul 7 '11 at 15:17

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