What does a killer website, an amazing smartphone app and a futurustic plugin for Google Glass have in common?Â
                          A Back End
Without a back-end all you are left with is an empty skeleton of a UI. Among other things, a back-end let's you:
- Store data on a database
- Run CPU intensive tasks (such as face recognition)
- Provide a consistent API to read and write data
Django is a Python-based web framework that provides a vast amount of plumbing to build a web-backend so that you don't have to do it. This will allow you to focus on building more and better features into your application without worrying about infrastructure and plumbing.
Why this class?
This is a project based class and will take a practical approach towards learning Django. By the end of the class you will be comfortable with the following:
- Setting up and Installing Django
- Interfacing with Databases using Django Models
- Writing basic Django templates
- Writing Django Forms
- Combining the above into a django app
The final project will be writing a Personal Notes app. This app will expose you to many basic patterns which will be applicable to a wide variety of Django Apps.
Although this is a beginner class I plan to introduce a few advanced  Django concepts in theory so as to give you an idea of the power of the Django framework.
This will also prepare you for job interviews that may ask you Django related questions.Â
Why Django?
- Python - Need I say more? If you love Python, you will love Django
- Community - Django is supported by an excellent and supportive community. There are numerous Meetups as well as a Django Conference held every year
- Philosophy - Django is build around the design principles of Loose coupling, DRY, Less Code, Quick Development and Explicit is better than implicit. To learn more about this check out Django Design Philosophies
Who should take this class
Anyone who wants to get started with web development and Django as well as get a peek into the more advanced features can take this class. Here are a few categories I can think of:
- You love Python and want to develop web apps while using as much Python as you can
- You are trying to learn Django on your own but prefer to speed up the learning process
- You don't know much about web development but would like to start it right with Django
- You have been practicing web development but would like to learn to use a cool framework like Django to develop more rapidly
- You want to learn a new skill to market yourself better to compete for a job you would love to have
Whether you fit into one of the above categories or not, I encourage you to enroll for this class. Don't let a lack of experience with Python or web-frameworks discourage you. The class does not require a lot of experience with Python or web frameworks - a desire to learn will go a much longer way!