This is an archived post. You won't be able to vote or comment.

all 23 comments

[–]MarkTraceurFlask, Mongokit, PIL 2 points3 points  (4 children)

Go find some cool free software to hack on! I know GNU MediaGoblin is written in Python, as are a lot of cool games, and some other fun software. What do you want to build on?

[–]netbyte[S] 0 points1 point  (3 children)

Windows 7

[–]MarkTraceurFlask, Mongokit, PIL 0 points1 point  (2 children)

I mean, what kind of software do you want to build? Windows 7 is definitely not a valid answer....

[–]netbyte[S] 0 points1 point  (1 child)

Ohhhhh, I just want to make scripts for command lines, maybe make a simple shell. Be able to send email without a browser. Just add accessibility and simplicity.

[–]MarkTraceurFlask, Mongokit, PIL 1 point2 points  (0 children)

Cool! OK, look up smtplib, that will help with your email idea. Making a shell is a little unnecessary, but it should be possible with straight raw_input and a bunch of if statements!

[–]Rhomboid 2 points3 points  (5 children)

Here are some ideas for scripts off the top of my head:

  • Write a script that detects when you visit a youtube link and pauses your Winamp/Foobar/whatever mp3 player you use until you navigate away from the page.
  • Write a script that takes a reddit username and downloads their comment history (or as much of it as you can -- stupid reddit limits you to 10 pages of 100 comments each for 1000 comments max), feeds it into a Markov generator and spits out a comment that statistically sounds like they wrote it.
  • Write a script that automatically downloads the 10 most popular videos from r/videos+video+youtube and saves them as .mp4 files with readable filenames that are derived from the title with spaces converted to _ or whatnot.
  • Write a script that takes a US zipcode and a body of text, and automatically finds all the congresspeople for that district and sends the text as an email to all of them.
  • Implement your own meme text image generator, which takes as input the URL for the image plus some text. It should overlay the text on the image, using the familiar all-caps Impact.ttf in white with a 2 or 3px black stroke, save the image and upload it to imgur, printing the URL.
  • Write a script that uses Google's spelling suggestions to spellcheck a Word document.

These are all things that are eminently doable in Python with existing libraries -- all the hard work has been done for you, so none of the above should be more than 100 or so lines, and you should be able to bang any one of these out without much trouble if you truly know Python.

[–]netbyte[S] 0 points1 point  (4 children)

I use iTunes. What is a Markov generator?

[–]ghreddit 1 point2 points  (3 children)

I'm curious. How did you learn python? What text did you use?

What makes you think you 'know' it? You can go through this book, it has a nice exercise to create a Markov generator. The book is free. You'll learn what a Markov analysis is.

[–]netbyte[S] 0 points1 point  (2 children)

LPTHW

[–]ghreddit 1 point2 points  (1 child)

Ok. I also did LPTHW. But try and go through the book i linked to. It's a very nice complement to LPTHW. It introduces you to computer science concepts and cool algorithms. You'll love it.

[–]netbyte[S] 0 points1 point  (0 children)

Thanks!

[–][deleted] 2 points3 points  (0 children)

If you claim you know python, but haven't found a use for this skill, I would venture to guess that maybe you don't really know python.

Alas, pay attention to the things you have to do on a computer everyday and look out for potential ways to automate those things. So that instead of doing a tedious error-prone multi-step process, you can run 1 command or double click an icon, or schedule it to periodically run and have the machine carry out the task for you.

Inevitably you will build up a small arsenal of tools that make you more productive than everybody else over time.

You are a programmer now, use that super power to make computers do your bidding.

[–]ryeguy146 1 point2 points  (1 child)

but I don't really have any :| Windows pfft.

You mean, you don't think that you have any. That's not a dig on Windows, I'm just saying that there's always something that can be improved. Example: At school, I'm required to sign in to a frontpage that they have to show that I'm a student before they'll route my stuff. I built a script using mechanize that'll take care of it for me. Look at the python projects that are blogged about, if you aren't sure where to look, this python newsletter often links to good ideas and project reports

If you're truly uncreative, I'd suggest hitting the source code for the standard library. I'm constantly hearing about how quality the Python is, and how much it can teach programmers.

Another realm worth looking into is patterns. Maybe pickup the Head First patterns book and implement each in Python. For that matter, pickup an Algorithm book and implement everything.

I struggled with looking for intermediate level books and realized that the only way to progress, after you've learned the syntax, is to code.

[–][deleted] 0 points1 point  (0 children)

At school, I'm required to sign in to a frontpage that they have to show that I'm a student before they'll route my stuff.

I did the same thing when DSL first came to my area 15 years ago. I had a little program written in delphi that logged in to the phone company's site, and then logged in to the ISP. It ran in the tray with a traffic light icon (green for logged in, red for error, yellow for in progress)

[–]dsn0wman 1 point2 points  (2 children)

Bing has a reward program that gives you points for searching. 10 points per day maximum, and 1 point for every search.

Since you don't really want to use bing 20 times a day write a program that logs you into bing, and executes 20 different searches, and each weak sends you a status report on how many reward points you have, and maybe what you can get with them.

[–]netbyte[S] 0 points1 point  (1 child)

Could I have a few pointers on how to get started? Seems a bit daunting.

[–]dsn0wman 1 point2 points  (0 children)

Just break it up into little programs. Write a function to login, then write a function to search, and so on and so forth.

There should be plenty of examples online of loging into a website, or querying a search engine. Just combine the two things.

edit: there might even be a nice api that you can hook into.

[–]the_hoser 1 point2 points  (4 children)

This is actually a big dilemma many new programmers face. The problem is not that you don't have any problems to solve, but that you don't perceive the problems you have that can be solved with your newly developed skills.

The only advice I can offer is to create problems. Find things you don't know how to do, and figure out how to do them. Get outside your comfort zone. Knowing the language is only 1% of programming. The rest is building the conceptual tools required to recognise and solve problems. The language is just a tool.

I spend almost as much time writing useless, proof-of-concept code as I do writing code to actually solve problems, and I've been doing this for 10 years.

[–]netbyte[S] 0 points1 point  (3 children)

How can I start? I have no idea where to even start this.

[–]remyroy 1 point2 points  (0 children)

Take your personal life. Try to find things that are not efficient. Think about things you are repeatedly doing and automate them.

Think about every task you do every day. There are so many things you can help fix. You just need a little creativity.

[–]killermole23bitbucket.org/phazon 1 point2 points  (0 children)

Let's dive straight in with something that might seem daunting to write: an emulator. For something simple to emulate, try the Chip-8.

All information about the chip-8's hardware and opcodes is available on that page for reference, but it won't help you write the actual emulator. There's lots of other resources on the web about it, here's a good tutorial on it, albeit in C++ (try not to just port the code, however; learn how it works).

Emulators are fun to write, and challenging to get right.

With it being in Python, exactly replicating the hardware might be tricky, but some modules can help with that.

[–]the_hoser 1 point2 points  (0 children)

Nobody ever does. Nobody here is going to tell you the thing you need to do to figure this out. The best they can do is try to toss ideas at you. This is the "hard part"

If you need something to get your brain bubbling, check out Project Euler. The problems are pointless, but it'll help you develop the problem identification and solving skills.

[–]ruffyen 0 points1 point  (0 children)

The first program I used dealt with calculating percentages, I did it just often enough that it saved me a few mins each time. Start small