
Ask HN: Just learnt some python(Udacity CS101). Where to go from here? - 42_huh
Hi all,&#60;p&#62;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.&#60;p&#62;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.&#60;p&#62;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?
======
anujkk
Taking into consideration that you now have a decent understanding of python
and you want to build something substantial, here are some suggestions :

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.

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.

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.

4\. Continue with learn-do-learn cycle till you finally develop your MVP.

5\. Show it to us. :)

Here are some different kind of projects you can try :

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.

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.

3) Games - Develop games using PyGame.

4) GUI - If you want to develop a GUI app, I would suggest you to try Qt with
python.

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.S. : If you are unable to come up with any ideas you can try some of my
ideas : [http://blog.anujkumar.com/post/27913522655/please-steal-
my-s...](http://blog.anujkumar.com/post/27913522655/please-steal-my-startup-
ideas)

------
delwin
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.

Or fork a Python project on Github: <https://github.com/languages/Python>

~~~
42_huh
I've been doing a bit of research, trying to find some github repositories
that would be fun to fork and fiddle around with. Can you suggest some?

------
ahmadss
If you want to build web applications, I recommend spending going through
Udacity's CS253 - Web App Engineering.

You'll be introduced to Django, Google App Engine, and Google's webapp
framework.

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.

------
pizza
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!

------
signalsignal
Build a product/service you can sell to customers. Nothing focuses like money.
Start with a free beta product and move from there.

------
cjbprime
Checking out some open source django projects and seeing how they work sounds
like a good idea.

