Online Learning: Teach Yourself Python in Less Than 4 Months, Part I

The purpose of this article is to lay out a general time management template for anyone who wants to jump in to programming and computer science with little or no experience in the field.  A future article will flesh out the details, providing links to learning resources and other materials freely available online.  [Edit: See the second article in the series, which covers learning benchmarks for beginner Python programmers.]

For starters, I should say up front that I do not have any formal background in Computer Science. I'm a language teacher by trade and training, and never really considered myself a "computer person."  But some time back, after expressing some interest in programming to a programmer friend, he challenged me to try and pick up a programming language. The gist of his argument was fairly straightforward: if you can understand English, with a bit of effort you can understand a programming language, it's just syntax and semantics.  That made it sound pretty simple, and my interest was piqued, so I set to work. 

After doing a bit of background research, I decided that I would focus on the Python programming language, using MIT's Introduction to Computer Science and Programming course – all the materials for which are available for free online – as my general guide.  I finished that course within three months, supplementing it with tutorials and readings that were more in line with my own particular interests. The skills and knowledge that I acquired in that time have proven to be indispensable in my daily life, for both work and play, so much so that I wonder how it is that I was able to get by for so long without them! 

As stated above, I do not have any formal background in computer science.  However, I have over ten years of experience in planning, developing and teaching natural language learning curricula, from task-based lessons to overarching course goals, in two languages.  This article will lay out a general time-plan for self-guided study of the Python programming language for absolute beginners, using the MIT Introduction to Computer Science class as its overarching framework and scaffold.   

To begin our assessment, let's take a closer look at the MIT course. The class has 26 lectures, each about 50 minutes long, for a total of 1300 minutes, or 21 total hours of time, less than a single day.  In theory, you could easily blow through the whole course's lecture series over a long weekend, if you did it like it was your job, or a marathon of your favorite television series on Netflix.

Obviously, that does not mean you can learn all the material covered in those lectures in a three day period.  The process of learning requires things to sink in, as it were, and that just takes time.  Furthermore, it just wouldn't make any sense to simply blow through all the lectures in this way, because we still have to account for the recitation/discussion sections associated with the course, as well as for the independent study necessary to complete homework assignments, which would be normal for any university course. 

In a serious course of study at any college or university, and even for graduate level work,  disciplined students should expect to devote around ten hours a week to study for each course they take.  Assuming a full time work week of 40 hours, this would make taking four college or university classes the labor equivalent of a full time job. 

To begin working out our time table, let's therefore assume that a person should devote 10 hours a week to this project.  A college semester is about 15 weeks long, so that comes out to 150 hours of total work to successfully complete a course that like offered by MIT.  Assuming you did nothing else except this, as if doing the work for this single course were a full time job at 40 hours a week, you could complete it within a month. This is doable, but very intensive. To finish in 3 months, you'd have to devote 12-13 hours to it a week.  To finish in six months, you would have to spend 6-7 hours on it a week.  To finish it in a year's time, you could spend just 3-4 hours of work on it a week. 

For the sake of simplicity, let's assume that we have 10 hours a week to devote to this project, taking our benchmarks and cues from the syllabus for the MIT course.  (We'll work out alternative time lines at the end of the post.)  What do we do with all this time?  The answer is deceptively simple:  watch the lectures, read, do tutorials and exercises, and begin work on your own individual programming projects.  Let's flesh this out a bit.   

With 26 lectures at 50 minutes each, that comes out to 100 minutes of lectures a week, the equivalent of the time you might spend watching a bad movie you wish you hadn't watched to begin with.  In a university course, each week you are also going to spend around another hour in your discussion/recitation section, reviewing materials covered in the corresponding lectures.  That leaves us with around 7 hours and 20 minutes of time for independent study.  How should one spend that time?  Reading, research and practice. 

Let's assume that in a given week, the professor covers more or less the same materials that can be found in the course textbook, in more to less the same amount of time that it would take you to read those sections of the text(s).  So now we have a ballpark figure of 1.5 hours to devote to reading, leaving us with just under 6 hours of time left for the week. 

Doing the reading is not an end in itself, there are also homework assignments that need to be completed. In the MIT course, the homework and problem sets reinforce the lessons covered in the lectures. However, as you complete such exercises, you will find that there are things in the textbook or from the lecture that you did not understand, or you will come across a problem that requires looking into something that has not yet been covered in the lectures or readings at all, and you will therefore have to inquire into these things a bit more closely. So homework will also necessitate more reading, research and tutorials.

Let's assume that doing the homework requires about as much time as you would normally spend in class including discussion section, around 2.5 hours.  We're now left with 3.5 hours of free study time to do with as we please.  This can be spent doing more background reading, tutorials, exercises, or working on one's own little programming projects. 

So here's our plan for 10 hours of work a week, to complete the course in about 15 weeks:
   • Watch the lectures (2 @ 50 mins): ~2 hours
   • Textbook and background reading: ~2 hours
   • Recitation/discussion video tutorial: ~1 hour
   • Homework problems and exercises: ~2 hours
   • Free study tutorials or reading: 1-2 hours
   • Free study independent projects: 1-2 hours

Let's break this down even further.  For each 50 minute lecture, one should do:
  • 1 hour of reading
  • 30 minutes of recitation/tutorial videos
  • 1 hour of problems or exercises
  • 1 hour of targeted external tutorials
  • 1 hour on your own little project(s)

Assuming you were to devote 90 minutes a day, 3-4 days a week to this project, within 4 months, you will have watched all the lectures from the course, read a couple books, done tens or hundreds of problems, completed a number of tutorials, done a lot of online (re)searching, and created a bunch of your own little programs, putting in 150 hours of work.

Doing 90 minutes a day, 2 days a week, it would take 50 weeks, just under a year, to complete the course.  Doing 60 minutes a day, 3 days a week is the same, of course.    

Doing 90 minutes a day, 3 days a week would take 33 weeks, about 8 months.

Doing 90 minutes a day, 5 days a week would take 20 weeks, or 5 months.

Doing 90 minutes a day, every day, would take 3.5 months. 

Doing 2 hours a day, 3 days a week would take about 6 months. 

Doing 1 hour a day, every day, would take just over 5 months. 

In the next article in this series, I'll detail specific textbooks, video and text-based tutorials, and other assorted learning materials to help put some muscle on the skeleton framework presented in this post.  

See the second article in the series, which covers learning benchmarks for beginner Python programmers.


  1. Nice post man. You could also include Pomodoro-style techniques for the focus-challenged. A little trick I use when I'm losing time to Reddit is to say, okay, five minute timer, just watch some of the material, if you still feel like procrastinating at the end of the timer you can go back to it. It's a smaller time commitment, and by the time my timer goes off I'm always too involved in the lesson to stop. I do this for anything I know I enjoy once I get going, as my way of beating the intimidating prospect of spending that long on something.

  2. Thanks. I'd never heard of the Pomodoro technique before. iirc, there have been a couple different studies that have shown that people do not retain material after a certain point if they've been studying for a long time straight. I think they found a cut off at about 50 minutes. Of course, some days, work is just taking a break from procrastinating, so it goes in both directions!

  3. Thank you for sharing this and I think I need them, the information has been looking for. necessary arrangements.

  4. when are we getting the next article, if already there where do we get it from?

  5. Never mind, i got it and thanks a lot for this wonderful pool of knowledge. it is absolutely helpful ;)

  6. It's really good for me as I was looking for learning Python. I just joined my first job after completing a php training and now I was looking for a good self paced course on python, as my company wants me to know this. Thanks for sharing this info.

  7. Thanks for such an detailed planned. I will also try to incorporate when designing for the courses in future.

  8. You are now at the forefront of another academic milestone as you plan to pursue advanced studies. Whether you intend to pursue graduate studies in a local school or abroad, you will have to undergo a rigid admission process, which will require you to submit various application documents, foremost of which is the Personal Statement. do my programming homework

  9. There are various online courses like degree, endorsement, recognition and instructional classes accessible. Source

  10. There are a lot of homework help sites for college students, but you need to chose carefully, because not all of them provide with quality papers.

  11. I see it's helpful post from various aspects.

  12. It began with a relenting from State courts toward the online demands. Then as information has been anyway coming from county court records, county courts have decided to be the direct provider of information to the Web.

  13. I use a tracking app from MxSpy to hack a phone. I don't try to track group chats, but I think it should work.

  14. Open source contrasts from shareware or freeware and can be characterized as "both the idea and routine with Coursework Assistance regards to making program source code transparently accessible. Clients and engineers approach the center planning functionalities that empower them to change or add components to the source code and redistribute it. Broad joint effort and flow are vital to the open source movement1". Such programming can be overseen totally by an end-client association or they can utilize an outsider, for example, HowToMoodle to give preparing, facilitating and customization.

  15. Nice to see your blog again, it has been months for me. Well this article I've been waiting for so long. I need this article to complete my assignment in the college, and it has the same topic with your article. Thanks, great share.
    Data Entry Services Company

  16. Giving time to your family and friends is not an easy task, especially when you are one of those busy law students. For such students, good Law Essay Help Writing UK can be the lifesavers they were looking for, and that is just what Law Essay Writers can get you: great quality, stress-free, well-written academic work.

  17. It's really good for me as I was looking for learning Python. I just joined my first job after completing a Best Travel High Chairsphp training and now I was looking for a good self paced course on python, as my company wants me to know this. Thanks for sharing this info.

  18. Intention is the reason one is student essay writing services occupied with examining something specifically.

  19. Please let me know if you’re looking for an author for your site. You have some great posts, and I think I would be a good asset. If you ever want to take some of the load off, I’d like to write some material for your blog in exchange for a link back to mine. Please shoot me an email if interested.

    selenium training in bangalore|

  20. Excellent Explanation:
    Online Learning: Teach Yourself Python in Less Than 4 Months, Part I
    Thank you for the blogs:
    keep blogging more
    myTectra: Devops Training in Bangalore
    itEanz: Devops Training

    If you are Looking for Interview Questions for Popular IT Courses Refer the link Below
    Devops Interview Questions
    Informatica Interview Questions
    Docker Interview Questions
    Hive Interview Questions
    Talend Interview Questions
    As400 Interview Questions

  21. Further, this is an arrangement made for students to help them to abstain from feeling loaded with substantial costs of education and additionally their folks.

  22. Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It’s always nice when you can not only be informed, but also entertained!
    nude webcam chat

  23. Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info.
    vr adult cam girls

  24. Hello everyone, was interesting to read your article. Usually im reading New York Times , but now i will read you too! (