From Zero to Junior Python Web App Developer

Getting Started

The OpenTechSchool does have great learning material to get you started and set up for web development in python. Do in the following order:

Resources:

  • Start with the [Python Beginner Workshop][1] (~ 4h)
  • Then do the [Flask Workshop][2] (~ 2-3h)
  • Then go for the [Django 101][3] (~ 2-3 days)
  • CheckIO [CheckIO][7] (small problems to learn useful things)

I recommend doing the Beginners workshop at an OpenTechSchool event because there is plenty of startup challenges that can be very frustrating. If that doesn’t work, ask in the local Python User Group if someone was willing to help you with that for an evening (and tell them to [set up an OpenTechSchool Chapter][4]) .

This workshop will get you going on the basics of programming and once you are through that, the flask workshop will introduce the world of web to you. Aside from web development, it will also introduce you to HTML and CSS (the user-facing part of your app) and briefly gets you started on Databases. Make sure to get through to the end of all extras including the Heroku chapter.

After that get started on the Django workshop. Don’t start both at the same time but do them after each other. Django is an opinionated, full-blown “comes with batteries included” python web-framework with a huge community and plenty of contributions. But it also comes with some complexity and having done flask helps you get through this one. You will pretty soon figure out which you like more: django’s full blown or flasks brief approach.

After the Workshops

Once you are through all these workshops think of a real project you’d like to work on. We highly recommend finding something you really want because there will be some frustration here and there, which is much easier to overcome if you have a higher goal behind what you are doing. I also highly recommend finding a (part-time) mentor, coach or learning group. Here in Berlin we have a bi-weekly [Python Continuous Learning Group][5] every other Monday. They won’t only help you with your problems and can point you towards good resources to read up, but will also help you to track your progress and gauge your accomplishments and the scope of your project.

Time for your first Gig

Because after you’ve done a first, second and maybe a third project and you like it, you should consider working on larger projects with other, more experienced people. Not only will you get introduced to other technologies and tools, you’ll also learn aspect like communicating, coordinating and how to keep your code clean. This can be an intern-ship, a hackership or already a full-time junior position but make sure that, who ever employs you knows you are still learning and encourages you to continue doing so. And insist on getting to know the team before signing anything and have a sparing partner that is continuously reviewing your code and giving you feedback.

[1]: http://opentechschool.github.io/python-beginners/
  [2]: http://opentechschool.github.io/python-flask/
  [3]: http://django-marcador.keimlink.de/
  [4]: City Blueprint: Starting OpenTechSchool in your city
  [5]: http://www.meetup.com/find/events/?allMeetups=true&keywords=Continuous%20Python%20Learning&radius=Infinity
[7]: http://www.checkio.org/

5 Likes

Plus one for everything you’re saying here! However, if you’re actually coming from Zero, all of these tutorials might take you considerably longer than the hours indicated. Don’t worry, that’s completetely normal, learning speeds differ. I certainly took longer.

Do also consider that your mind might need some time (or a good night’s sleep) to process the new information - it’s probably a good idea to spread things out over like a week or two).

3 Likes

This is a fantastic talk: So you want to be a full-stack web developer. It covers an overview of the entire system plus aggregates all the talks in the topics of that conference (PyCon 2014)

2 Likes

I had some problems with Hello World on Flask, to discover I have Python 2.7.7. I’m reluctant to upgrade to 3.3+ in case it might mess up my Anaconda set up. Does anyone else use both Anaconda and Python 3.3+?

The tutorial states that you need to use python 3.3 for flask. While I’m sure this is true for more complex flask apps, I was able to work through the tutorial with 2.7.

1 Like

To work on your general python skills you can find more coding exercises and information in Problem Solving with Algorithms and Data Structures

2 Likes

If you’re looking for extra exercises on materials posted by Amelie:

http://www.brpreiss.com/books/opus7/

2 Likes