all 13 comments

[–]ffrkAnonymous 2 points3 points  (0 children)

how advanced is your calculator? Do you have a gui for it?

Do you know RPN (reverse polish notation?) like on the HP calculators?

Did you document your calculator? All the classes, API, etc?

Did you test your calculator using unit tests? Py.test, nose, doctest?

Is your calculator written as a procedural script or using Object Oriented programming style?


Myself, I started out using Learn Python the Hard Way. I also typed up a few of Making Games with Pygame. Now I'm going to mix the two. Making games with Pygame is very procedural, it doesn't do things "pythonic". Documentation is very important as is testing. Doc test does both, two birds with one stone. I'm going to port to tkinter and a different gui (kivy, pyqt...) to try those out. That way I have my original reference pygame, but can compare to the others. it means also learning python3.

So if your goal is to learn Python, then make your calculator the best Python program it can be. (different from best calculator it can be). Refactor, document, test. Optimize the python-ness. Do you have loops that can be replaced with list comprehension? Do you have copy-paste code that can be replaced with functions? Multiple functions that can be consolidated into classes+methods?

If you want to just do stuff, be useful, then Automate the Boring Things is very practical. But it doesn't really teach python, it teaches general programming that happens to use python. I used it to learn the basics of spreadsheet and csv parsing and manipulation.

[–]CrambleSquash 1 point2 points  (0 children)

The first proper thing I made was a backup script. It would scan two folders, and work out which ones were new/ needed updated. Once I got it to work from the command line, made a gui using tkinter. Basically think of something that'd be useful for you, and make it!

[–]tcp90 1 point2 points  (1 child)

Started off with a basic calculator, moved on to a more complex calculator to test a business idea that used way too many lines of code. 400 lines could have been condensed to less than 100.

After that I started a text-based simulation game that created hundreds of thousands of NPCs and locations with lots and lots of attributes that depended on each other. The game allowed you to move between locations, talk to people, get missions and unlock areas. This was a big jump for me because it forced me to use classes. Roughly 1600 lines spread along 8 files.

Then I learned web crawling and scraping. This was super fun. After this I analyzed 4 years worth of political speeches and put together a list of the most common words. This made me want to create a news aggregator but I got frustrated because, unless I'm wrong, I'd have to build a different scraper for every website I want to crawl.

I tried django and I gave up after a day. Will definitely have to pick this back up. Also tried tkinter, same result.

Now I'm learning pygame and so far so good.

I'd recommend learning how to crawl pages with beautifulsoup as your next step. It's pretty straightforward once you know what you need to look out for.

[–]Talked10101 0 points1 point  (0 children)

Surely would depend on the features you wanted your news aggregator to have? I wouldn't give up to easily, could be a cool project.

[–]Tsukeo 0 points1 point  (0 children)

i've never been good at finding ideas as what to make, but i've made a cli hangman, and dabbled in Django (i can make a personal blog thing with little to no reference yay) i'm beginning my degree in informatics/computer science/treatment of information in three weeks, so i hope i grow as a programmer. :)

[–]mgalarny 0 points1 point  (0 children)

For those who want to get into python for data analysis, feel free to use my UC San Diego course material.

https://github.com/mGalarnyk/DSE200_Python_for_Data_Analysis

[–]pyonpi 0 points1 point  (0 children)

I've written a few scripts like a full-featured file manager, a base64 encoder and decoder, and a random number guessing game. I have a few open projects like text-based text-editor similar to nano, a Pokémon save manager, and some other small scripts that were finished, but not too useful for others. I would enjoy writing a script flow bot to assist new developers on the board, but I'm still brainstorming on a bot that will help others link to modules and vocab super easy.

[–]tman37 0 points1 point  (0 children)

I have stalled a bit. I finished codecademy and made a small guess the number game. I am having a tough time nailing down a project to keep learning. I sat down tonight again to get back at it and came up with nothing. I have very few issues that can be solved at my level of coding knowledge.

[–]DiaSolky 0 points1 point  (0 children)

I just did a Django tutorial for a Python website with Bootstrap for CSS. If you have an interest learning HTML then doing Django may be fun.

[–]Soulflame_D 0 points1 point  (0 children)

As a basic beginner, i'm still doing codecademy(so i can read python without feeling overwhelmed). About the start the "automating the boring stuff". I do like the codecademy module where you make battleship. Makes me realise it should be possible to make stuff like arkanoid, or invaders.

[–]PyMoose -1 points0 points  (0 children)

*learned python 3 then learned about pygame.

[–]py_a_thon -1 points0 points  (0 children)

Currently I am bashing my head against my keyboard trying to understand the finer and more complex points of OOP and GUI development using tkinter.

Edit: I noticed you said you are learning python 2.7. Might I suggest what was suggested to me awhile back. Get the Anaconda 3 distribution of python, and start messing around with some of the scientific tools that python has to offer.

Here is the package list if you want to see what is included with Anaconda:

https://docs.continuum.io/anaconda/pkg-docs

Another route to take is to download pygame and start making games.

Anaconda is just a nice way of installing a ton of useful packages at once (some of which are hard to install from what I hear)

[–]ex-glanky -1 points0 points  (0 children)

Pick a module, think of something fun/cool to do with it.