{"id":107,"date":"2011-07-23T18:44:55","date_gmt":"2011-07-23T18:44:55","guid":{"rendered":"https:\/\/peterklemperer.com\/blog\/?p=107"},"modified":"2016-11-27T04:45:18","modified_gmt":"2016-11-27T04:45:18","slug":"programming-languages-ive-learned-in-order","status":"publish","type":"post","link":"https:\/\/peterklemperer.com\/blog\/2011\/07\/23\/programming-languages-ive-learned-in-order\/","title":{"rendered":"Programming languages I&#8217;ve learned in order"},"content":{"rendered":"<p>Inspired by<a href=\"http:\/\/blog.nodnod.net\/post\/491719620\/programming-languages-ive-learned-in-order\"> this post on nodnod by DZ<\/a> that I found today while randomly browsing. I&#8217;m taking liberties with the term programming language, but it&#8217;s my blog so bite me.<\/p>\n<ul>\n<li>BASIC on an Apple II and on what I think I remember as a TRS-80. \u00a0My dad had a book on chaos theory that had a long appendix section containing programs for generating pretty pictures on a computer in BASIC.<\/li>\n<li>Hypercard. \u00a0I wrote a ton of stupid adventure games in hypercard after seeing The Manhole (a precursor to Myst).<\/li>\n<li>Applescript seemed more powerful than Hypercard because it could script the OS. Turned out most applications didn&#8217;t support enough calls to be very interesting to me when I was 12.<\/li>\n<li>C at the Iowa State University Summer Programs for Youth (ISPY) computer camp. We wrote some neat programs like Hanoi Towers with a nice ASCI art animations \u00a0but my favorite that summer was written by another camper that repeated back answer to questions. \u00a0As with DZ, I also had a copy of Learn C on the Macintosh.<\/li>\n<li>Pascal just to understand the Macintosh Programmers Reference Library books that my dad&#8217;s students had around the lab for writing ChemViewer.<\/li>\n<li>Perl. I like to pretend that I don&#8217;t know perl so that people won&#8217;t give me code in it, but I&#8217;ve gotta admit that for string matching it&#8217;s pretty darn good. Python 5 will crush this though.<\/li>\n<li>UNIX shell programming is an ongoing project but I first learned it when I had Linux version 1.2 on my first pentium machine. \u00a0That thing was sweet.<\/li>\n<li>HTML for a job creating personal webpages for the Chemistry Department at the University of Illinois while I was in high school. They were blue.<\/li>\n<li>FORTRAN is weird and old but I had a job in undergrad at the University of Texas designing genetic algorithms for HPC application. \u00a0When in Rome&#8230;<\/li>\n<li>Java for the introduction to programming course I had to take at the University of Texas. \u00a0I don&#8217;t like writing Java but their documentation is fantastic and I think of that whenever I&#8217;m writing.<\/li>\n<li>Python is the worlds greatest language and I do everything I can in it. I&#8217;ve written everything from websites with django to a modestly sized logic gate router. When people who don&#8217;t love computer science want to learn to program, I usually point them here.<\/li>\n<li>C++ for the course I took for the second course I took on programming.<\/li>\n<li>Matlab is fantastic for data analysis but also for generation. In undergrad at UIUC I wrote an additive-synthesis tool for reproducing my voice in matlab. It&#8217;s also great for when you need graphs and statistics. \u00a0This is another top choice for non-computer types who need to do real work.<\/li>\n<li>Assembly language for X86 for ECE 291 at UIUC (both NASM and the other one). \u00a0My team and I wrote a fantastic 3-D battle game with 3-D rendering, sound, and UDP multicasted networking all in assembly: <a href=\"http:\/\/courses.engr.illinois.edu\/ece390\/archive\/spr2004\/fp\/fp.html\">3-D Tankwars.<\/a>\u00a0I also use X86 all the time for my security work and debugging.<\/li>\n<li>VHDL and to some degree Verilog for my FPGA projects. \u00a0All ECE students should definitely take a semester with an FPGA.<\/li>\n<li>OCAML for the Programming Languages and Compilers class in undergrad. I can also say I used it once afterwords because the VMware vprobes emmet translation tool is in ocaml.<\/li>\n<li>Assembly in MIPS for my masters thesis project developing security extensions for the MIPS-based DLX processor on an FPGA.<\/li>\n<li>Processing is amazing for doing neat artsy graphical things. It&#8217;s basically java but with a bunch of built in libraries, an IDE and fantastic documentation. The integration with openCV and my Kinect make it my choice for mocking up pretty things. \u00a0One problem is a lack of normal UI elements. I guess I could take a crack at that.<\/li>\n<li>Arduino, basically java for embedded Arduino devices. Anyone wanting to make little blinky projects should do this or PIC. \u00a0I&#8217;m not a PIC guy though so you&#8217;re on your own.<\/li>\n<li>PHP for an online form I was writing. \u00a0I found a nice multi-file upload program in PHP so i figured I could learn it and use it for the rest. \u00a0Worked fine, but I decided to migrate to django to do it right.<\/li>\n<li>Javascript and CSS are pretty bizarre but I needed them for a website I did recently.<\/li>\n<\/ul>\n<p>I&#8217;ve tried to write a sentence which counts up the number of languages I&#8217;ve learned but I keep adding them and throwing off my count.<\/p>\n<p>So in summary, programming is fun.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inspired by this post on nodnod by DZ that I found today while randomly browsing. I&#8217;m taking liberties with the term programming language, but it&#8217;s my blog so bite me. BASIC on an Apple II and on what I think &hellip; <a href=\"https:\/\/peterklemperer.com\/blog\/2011\/07\/23\/programming-languages-ive-learned-in-order\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[67,6],"tags":[36,17],"class_list":["post-107","post","type-post","status-publish","format-standard","hentry","category-programming","category-projects","tag-languages","tag-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1VqWo-1J","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":0,"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"wp:attachment":[{"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/peterklemperer.com\/blog\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}