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.

Sometimes self -learning a particular language from books can make u feel bored and even you feel discouraged to learn more. What as a source of encouragement or motivation did you use while trying to learn programming?


migration rejected from stackoverflow.com Jul 9 '13 at 20:40

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as primarily opinion-based by Yannis Jul 9 '13 at 20:40

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

If you're bored, it's either poor learning material, or the subject matter is not for me. Life is too short - move on, plenty more to do & see. –  Kent Boogaart Jun 10 '11 at 10:07

7 Answers 7

up vote 11 down vote accepted

Do a fun project

Make up a project that you'd find really fun and challenging, then set about coding it in your new language. Learning things in abstraction is not only boring but also less effective. Programming examples and tutorials often unfortunately have little relevance to real world problems.

What if you struggle with making up a project? I've never been good with coming up with project ideas outside of work. –  Bob Jul 21 '12 at 21:23
yeah bob same here, Konrad do you know any way on working on someone else project from home, without going to some workplace –  skull_king Jul 12 '13 at 8:14

Make use of internet media. I would suggest that you try to learn by watching video tutorial so you can really follow it. You can find a lot tutorials in youtube, vimeo, and other video streaming sites. In my experience, doing that I can learn the concepts around 10X faster than reading books. Aside from that before jumping to advanced or intermediate concepts you have to make sure that you understand the basics. You can start by helloworld then adding some conditions or something like that. Also, make use of forums like these. There are a lot of enthusiasts who are much willing to help.

Regarding Motivation:

What motivated me before is that I thought about programming as a career that will never be outdated. Also you can make lots of money in a single program. When I was in college I was able to create a Integrated Info System and sold it to 13 companies. These keep me motivated since I want to earn more...

Good Answer! - I must admit I do struggle with motivation sometimes. I created my own small online store with paypal integration (API), it took me a while to do but somehow I managed to motivate myself to get it done. Ever since the first order came through it changed my whole outlook. –  Dal Jun 10 '11 at 17:26

Find the good bits

First, skim over the strengths of the language/framework. Don't try to learn it all but just know what it claims to do well. That way, when you come up against a situation where you think it could be useful, you can go back and learn it in more depth.

Do something significant, interesting and REAL

Next, decide on a medium sized project you want to complete using your new language/framework and don't limit yourself to what you already know about it. The project needs to be something interesting to you and preferibly something you would actually use. For example, to learn the Android SDK I made an app that turns an Android phone into a remote for your PC.

Do it piecemeal and include learning with each piece

Try an agile style of development. That is, just implement one feature at a time and don't concern yourself with what you will need later on. Refactor as necessary. Each time you begin a new feature, try to find better ways to accomplish the task by learning new aspects of the language/framework.

You'll often find yourself thinking things like:

  • In language/framework x I could have done y, what does this new language/framework offer?
  • Hey, I read briefly about feature x, maybe that could be applied here.

Now, every time you learn a new aspect, you are also bringing yourself closer to accomplishing your goal of completing the project. Also, since you are doing it in an agile way, you are rewarded often. That's what keeps my motivation.


I used to try to read up on various topics to learn about them before I ever had even realized I might have need of them. This was very ineffective because I either didn't understand the material I was reading or would forget it due to a lack of practice with it. I also wouldn't understand the design decisions being discussed in the topic.

The most important thing you can do as a programmer is to practice and write programs. As you continue to write these programs, you'll then find common patterns and see how various methodologies can make the code easier to debug, maintain, write or less brittle.

Also, if programming doesn't strike you as the least bit fun, either find better projects to try or do something else. Life's too short not to have any fun working.


You may be right from your side but you fill like that since you "don't know" that particular things. Perhaps you have picked up the book which may be difficult for a dummy or a beginner to understand.You may use net since it is a biggest resource for any learning. As you asked about the source of encouragement , I would suggest you to write the simple applications (Hello World type) and make it run.Then you will get enough confidence seeing the things running successfully and as expected.Also try to learn the things from basics instead of directly "jumping to read books". Hope this may help you as well as the guys who fill something like you...!!!


If you get bored, maybe you are not cut out to be a programmer. Nothing wrong with that - the vast majority of people (and an unfortunately high percentage of working programmers) do not have the required skills, talent or aptitude. If you find learning to program difficult, you may want to consider doing something else altogether.


I do it by organizing small "study groups" with a handful of select colleagues. We read on our own a few pages of the book we're learning, then once a week get together for a review, where we take turns actually doing the reviewing.

This provides motivation because sometimes it just isn't "nice" not to prepare and show up. I do have to postpone now and then, but we generally meet once a week.

It also helps understand when you go over the subject twice: once alone and again together.


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