Programming course

I’ve been working on a long term course for fresh grads and undergrad college students that covers a number of skills that are useful in the marketplace today. This post is about the course and what it’s going to cover.


Part 1 : Languages and tools (approx 3-4 weeks)

The first part of the course covers basic skills that are useful to any programmer. Using a UNIX command line, shell scripting and basic tools like make, git for version control and Python (which is the language used in the project mentioned later).

Part 2 : Project (approx 5-6 weeks)

This is a small sized project to get people familiar with design and development of a program. The general idea is to break the students into teams of 2 or 3 (preferably across colleges) and then to spend some time discussing design, trade offs and other such issues and then to finally have the students work on the project with constant feedback and criticism. The plan is to let people make mistakes and then face up to how those mistakes affect the project as a whole rather than the guide people to avoid errors. Issues like testing, documentation etc. will be covered in this month.

I have a few projects in mind some of which are web based and some of which are command line based which use web APIs.

At the end of this, all teams will have to present their project along with design decisions and functionality to everyone else.

Part 3 : Code comprehension (approx 2 weeks)

A lot of otherwise talented students don’t read much code and so, when dropped into a largish project, find themselves lost. This part of the course will focus on taking an existing open source project, reading and understanding it. We’ll try to make some changes to the code, adding some features and perhaps even fixing a few bugs to send back pull requests. This will probably be a C project. My current plan is to do this on redis which is a well written piece of software.

Pre requisites

The participants shouldn’t be absolute fresher programmers. They should know their way around a system.


This will not be a conventional 10-5 course in a school. We will have contact classes approximately once a week in Kozhikode and will stay in touch via. email and live online sessions. Participants will have to drive themselves and be proactive about asking questions and getting feedback on their work.

What do you gain?

I’ve designed the course specifically to build a strong foundation based on effort and actual work (as opposed to purely theoretical study). The material has been designed based on feedback from several people in the industry and academia. The idea is that once you work through the course, you’ll be in a frame of mind to directly jump into an actual software team and be productive.

There’s no official guarantee of placement but several companies have expressed interest in hiring students that go through the course. So, if you work through the material properly, there’s a good chance that you’ll be placed.

Dates and duration

The course will start in mid June and will last for 3 months. Based on the rate of progress, it might extend by a week or two. The contact classes and online live sessions will be at fixed times but I will be available to answer questions by email at any time. I will send follow ups about the exact date to The Lycӕum mailing list.


If you’re interested, please fill in this form. This is not a final registration. It’s merely to judge interest and to finalise details.

Further information

You can contact me if you have any questions about the course.

Spread the word.

Please spread the word about the course. If you know any groups or individuals who might be interested, please let them know. Thanks!

Posted on: 27 Mar 2014

comments powered by Disqus