summercomfort: (Default)
summercomfort ([personal profile] summercomfort) wrote2012-05-17 11:33 pm

Learning about what my husband does.

I had an awesome evening with Jono! We walked to the Indian restaurant downtown, ate food, walked back, and had a very long and interesting conversation about the Secrets of Programming!

I was complaining about the fact that, even though I understand the basic logic of programming languages (for loops, function calls, etc), I have no clue how these programming languages talk and relate to each other, and how to read/parse API documentation. The things that I want to do on the internet require me to understand databases and things that aren't just confined to a specific webpage. So Jono explained how a server works and all of the different components that go into things like "databases" and "web servers" and "ajax".

I learned that web programmers don't actually spend the majority of their time writing code -- instead they are searching for suitable libraries and reading out-dated API documentation and reading other people's code to find the nugget that they need. Jono illustrated a recent endeavor: when he wanted to get his blog updates to automatically post to twitter, he first had to read the twitter API page, which then told him he needed to use oauth, which he then had to figure out what was involved, but then it was really complicated, so then he poked around on the internet until he found a python library that handled the oauth thing. Then he had to figure out how to get some secret key stuff from twitter by pretending his website is a "twitter application"... etc etc. Basically a lot of running around and poking at various websites and languages and schema in order to generate probably 3 lines of code. So in fact his work in making the computer do his bidding involved a lot more searching and interpreting and a lot less actual writing of code. Go figure!

Other things that I've learned in conversing with Jono about programming:
- "Documentation" means "explanation for the code"
- "Server" and "database" mean things that are a VERY SPECIFIC part of what lay people generally consider "server" (some place that's not my computer where internet things are stored) and "database" (a giant spreadsheet of data that is accessible)
- "installing" a "library" means finding a collection of computer functions that are written by someone else and adding it to a folder/place so that you can use those functions in your own code.
- SQL is basically a way of giving search and insert commands to databases.