Hi all, I'm looking to get into programming, but I don't really know what I can do with it. I started with HTML on codecademy and I know a bit of Python/VPython. I'm running into a problem similar to the way most people feel about math: I know the formulas and how things are put together, but not the applications.
The best thing would be if someone could give me an example involving politics since I'm a PoliSci student.
If you can imagine it, you can make it. Imagining is the hard part. Politics, huh? How about a web app that scrapes articles from RSS feeds of political news sites, and makes a word cloud of the most common words in political news. Or, an app that scrapes associations, and draws them with lines whose thickness represents frequency. For example, if the same article has "Jeb Bush" and "Clinton," that's an association. If another article has "Clinton" and "Elizabeth Warren," that's another assocation. So draw three circles connected by lines. If there are twice as many articles with "Clinton" and "Jeb Bush" as there are "Clinton" and "Elizabeth Warren" then the line between their circles is twice as thick. (This is a type of Social Graph. You don't even have to draw it, just scrape the data from RSS feed links and make the database. Tons of stuff you can do with the database.)
I guess my problem then is really that I don't know how data is used. Thanks for the insight!
If you're looking for something to do for fun, you could also try writing little games. My first project I did myself rather than following a tutorial was a game using pygame, and I really enjoyed it.
Much like books come in both fiction and non-fiction (recreational vs useful), programming needn't be about having real world purpose, it lets you be like Elsa in Frozen - creating and exploring your own worlds for your own enjoyment. I was going to recommend The Armchair Universe as a fantastic guide down the rabbit-hole for new programmers, full of "applications" you can attempt, but it appears to be out of print. I assume that useful programming with real world application is the only reason you're looking to get into programming, but I thought I'd throw it out there anyway because non-programmers might not be aware of this aspect, and being sucked away by passion and creativity helps tremendously - you didn't learn how to read books as a child from a desire to read technical manuals or trade treaties.
For me, I like programming because I can automate arduous and repetitive tasks. Instead of entering 200 values into fields I can write a program in 10 minutes that does it for me and can do it again and again. I also like the problem solving aspect of programing as a brain teaser; how can I solve a certain problem and what steps are needed to make it happen. Further to that the work that I do with servers allows me to understand the working of programs and apply fixes as needed. For me, programming isn't an everyday skill but my knowledge of it comes up almost every day.
a computer-illiterate society in a computer-driven world is a peasantry. until you understand programming basics, software is something that is done to you rather than for you. programming is very simply the best way to understand computers. without that its tough to follow politics, technology, even to do simple things like manage your collection of e-books. there is not much question left how important it is to literacy. learn one programming language: any language. (if you enjoy it, learn at least two.)
If you're a poli-sci student, you've got half the equation. Programming is useful for a lot of things, but (for me, at least) it really gets exciting when you start to collect and manipulate data. For example, in your field it might be advantageous to collect some data on the current congress's voting habits. From there you realized that you have some interconnected relationships between voting habits and lobbying interests. Well you might as well expand your database and collect some metadata on these corporate interests, who are the share-holders? Who worked where before they were there? Did any of our congress-folk work there as well or have a history with that corporation? Holy-cow! What a bunch of interesting relationships! You'd use Python to connect to web API's to gather your data, you'd then formulate a model in python to represent the schema of your database and use it to handle your insert, update, and delete logic. Depending on which database you use, there are traditional relational databases MySQL, PostgreSQL, T-SQL and a slew of no-SQL variants like MonogoDB, CouchDB, Cassendra (sounds sexy, right?) would indicate which database API you'd need to read some documentation on to connect to with Python.
Sweet thanks! This is the answer is was looking for!
You might want to look into an edx course. Just a little over a week the W3C HTML5 course started. I don't know if it's the best way on how to get ideas, but they will have (weekly) tasks you have to do and I think it's a good starting point. The C# course I did a couple of weeks ago had you build little applications as bonus tasks, for example little calculators. Currently there's no proper web development course scheduled there, but I'd keep an eye on it, I'm sure a lot of people are wanting that. Also, keep in mind that HTML and CSS alone won't really get you anywhere. I'd suggest you peek into PHP, since it's pretty easy readable and in my opinion easy to understand and you can see the results right away. Also, PHP will make clear, how you do logic/data in PHP, display stuff in HTML and CSS and how they're all connected, yet different layers. There are also a looooot of PHP examples and guides. People who build voting websites with it as a guide, and many other things. You can relatively easy and quickly see results with it. Building a small and simple quiz website with a proper tutorial can be done within a weekend, I'm sure. And it's always good, as the other people have stated, you will need an idea first, and that will make things way easier. Something is annoying and repetitive? Why not develop something to automate or replace it. Maybe you're not happy with the apps and tools for your private notes. Write a small website where you can store your notes and manage them however you want. You will need to take small steps and it will take a lot of time. Start simple, think big. Tackle one problem at the time. No matter how experienced you are, you will have to review and review and review your code agian and again and each time you will learn a little bit more about coding. Last but not least, a small starting point for you: The website pluralsight is awesome! I quickly checked and they have a couple of useful PHP tutorials. One tutorial is called PHP: Getting started, and that might be a good way to start. Another one starts diving deeper in and will use PHP and MySQL to build a dynamic website. You should be able to use the free trial for both those tutorials, otherwise it's money well-spent, their tutorials are awesome! Otherwise, google will be your best friend for PHP. You will find looooots of help and guides/tutorials online. Good luck!
Programming is useful for making money, for example through employment, or even running a business of your own!