How long should it take to learn Python completely and start developing programs?


Here are some hints, in addition to an answer to your question:

  1.     Most professional programmers never learn a programming language “completely”. Learning about some mostly unused part of a language is a waste of time (unless you want to become an expert in that specific language). To give you a comparison: take an english dictionary. Do you know the whole dictionary by rote? Do you even know more than 50% of the words? Probably not, but it does not mean that you are not extremely proficient in english. What you need is learn enough of the language to be able to do interesting things with it.
  2.     Most of the time, learning the programming language is not difficult, that’s usually the easy part. What is very time consuming (and sometimes hard) is learning the libraries (things that make it possible to use the language without writing everything from scratch, a good example is the GUI libray, that one uses to create programs with interfaces, like your browser).
  3.     Another hard part is learning the concepts used when you are programming -in the broadest sense-. That is data structures, algorithms, design, etc. However, if you are beginning, this is not a real problem. Just start experimenting with the language, then you’ll find problems & questions and slowly realize that many of those are answered in books/tutorials, etc. No need to look into those at the beginning, except maybe if you are studying Software Engineering or Computer Science.
  4.     Starting with Python is a good choice. It’s easy to learn, very powerful and versatile. And -super important- it has tons of teaching materials in the form of books, online tutorials, and forums where almost all aspects are discussed.

Now, to answer your question.

I’ll suppose that you have no previous knowledge about programming at all. If you follow a tutorial, you should get a rough idea of the basics in a day or two (loops, strings/numbers, conditionals, functions, etc.) You should already be able to do some extremely simple things (like print on the screen the odd numbers between 1 and 1000).

After a week, you should have enough elements to make you feel frustrated, when you’ll realize that what you really want is play with a “real” program with UI elements (like your browser, Word, and the like). You’ll need to learn how to manage interfaces (windows, buttons, etc.) Then you’ll understand what I meant when I said that the language in itself is the easy part 🙂

Of course, your first programs will be very simple. It may be a bit frustrating at first, but understand that programming it like any other activity: it takes time and practice… Don’t be discouraged, within a few weeks you should be able to do simple but rewarding stuff. Of course, don’t expect to be able to rewrite GTA5 😉