Hi all,<p>I just completed the Udacity CS 101 course, primarily to learn python. I know C fairly well, and am actually working full time on a product, coding/debugging in C.<p>I have some free time on my hands, and would like to build something, and hence started learning python. My full time work of debugging and the teeny weeny programming that I end up doing doesn't give me the satisfaction I need from being a software engineer, and would love to work on building something from scratch.<p>Where can I go from here with python? Any open source work available for it? Or even some part time freelancing that I could do to get a firmer grip on the power of python? Or even some other stuff I should study up on?
Taking into consideration that you now have a decent understanding of python and you want to build something substantial, here are some suggestions :<p>1. Decide a project you want to do. Think about a piece of software you want to develop. Come up with various ideas. It can be anything - a web application, a python module, a game, a small command line utility - anything. Make sure it solves a problem and better if it can make some money for you. It will keep you motivated to complete it.<p>2. Think about the MVP for your project. What are the minimum set of features you need to get the first version out. Work to develop a MVP first. You can add features later.<p>3. Do a research to know which python or related technologies you need to develop your MVP. Learn those things and try to develop your MVP. When in doubt ask on forums like HN, Reddit, Quora, StackOverflow.<p>4. Continue with learn-do-learn cycle till you finally develop your MVP.<p>5. Show it to us. :)<p>Here are some different kind of projects you can try :<p>1) Web Application - You need to know a web framework for python apart from web technologies like HTML5, CSS3, JavaScript, jQuery, Twitter Bootstrap and a database like MySQl, MongoDB. Most popular framework for web development is Django but you can also try micro-frameworks like Flask.<p>2) Mashup Sites & Apps - You can fetch data from Internet through web scraping or through various public APIs made available by popular sites like facebook, twitter, g+, youtube, etc. You can then process and display these data to create interesting mashup applications. You can use Python Libraries like Requests and BeautifulSoup for web scraping.<p>3) Games - Develop games using PyGame.<p>4) GUI - If you want to develop a GUI app, I would suggest you to try Qt with python.<p>5) Library - Develop any new python library or improve any existing library. For example, learn how python's Requests library provided a better alternative for urllib2 library.<p>P.S. : If you are unable to come up with any ideas you can try some of my ideas : <a href="http://blog.anujkumar.com/post/27913522655/please-steal-my-startup-ideas" rel="nofollow">http://blog.anujkumar.com/post/27913522655/please-steal-my-s...</a>
Check out Pygame. There's nothing like making games to remind you how awesome programming is. Game programming ties a lot of things together — algorithms, AI, code organization, testing, optimization, etc. — and you'll learn a lot.<p>Or fork a Python project on Github: <a href="https://github.com/languages/Python" rel="nofollow">https://github.com/languages/Python</a>
If you want to build web applications, I recommend spending going through Udacity's CS253 - Web App Engineering.<p>You'll be introduced to Django, Google App Engine, and Google's webapp framework.<p>Once you complete CS253, you'll need to do your own research and find tutorials related to Django, Flask, and other Python based web frameworks.
Simulate cool stuff. Predict business failures/successes, make an n-gram Markov chain text generator, etc. Or something even cooler: a six degrees of separation simulation!