Home > Vaguely Instructional > Programmer Vocab Crash Course

Programmer Vocab Crash Course

January 27th, 2009

Sometimes I wax nerdoquent in my posts. Hopefully this little glossary-type-thing will help.

  • Syntax – This basically amounts to what you have to physically write in order to make a program do what you want it to do. If your language has “lots of syntax,” you need to remember how lots of symbols interact with each other. (Note that “symbols” here can mean words or word-looking things, not just brackets and stuff.)

    A “lots of syntax” example (from C++) (of course!):

      template <typename _id_t, typename _mem_t>
      void exchange(map<_id_t, _mem_t>& ref, const _id_t& id1, const _id_t& id2)
      {
          typename map<_id_t, _mem_t>::iterator it1 = ref.find(id1);
          typename map<_id_t, _mem_t>::iterator end = ref.end();
     
          if (it1 != end)
          {
              typename map<_id_t, _mem_t>::iterator it2 = ref.find(id1);
              if (it2 != end)
              {
                  _mem_t tmp = it2->second;
                  it2->second = it1->second;
                  it1->second = tmp;
              }
          }
      }
  • Libraries, Standard Library – Where do you go to get books you didn’t write? The library! (Okay, pay no more heed to that analogy before it starts to fail.) A library refers to code that someone else has written that you can use. The “standard library” of a language refers to libraries that are included with the language itself; you don’t need to buy them or go find them on the internet or anything like that.
  • Abstraction – A way to view something in more simple terms. You can view a toaster as a fairly complicated combination of small circuits and whatnot, or you can view it as something that you put bread into and get toast out of. This is very important in programming, as at the lowest level you are dealing with a bunch of 1’s and 0’s–but you can get more work done if you don’t have to worry about them.
  • (Strongly/Loosely) Typed – This one is harder to simplify, because the issue of “types” in programming is a fairly complex one. But basically, it is talking about how much leeway your language gives you when you make computations. If you give a program something that’s not a number, but looks like a number, should your language treat it as a number? But what if it does and you weren’t expecting that? The less permissive languages (the “strongly typed” ones) tend to require more input from you, the programmer, on how to handle things, but they tend to alert you of potential errors sooner. Like many things in programming, there are tradeoffs.
  • Community – There are lots of communities on the internet. Each programming language has one too–a group of people of varying levels of experience and background who use that language. A friendly community is important, because that is where you go when you are stuck. Certain programming communities are quite elitist and, well, made up of jerks. (I’m looking at you, Common Lisp…)
  • Algorithm – A formalized procedure or formula for doing something. You use these all the time without maybe realizing it. For example, how do you choose which way to drive home from Point X? Do you pick certain streets with less stop signs? Avoid that place with the bad speed bump? Choose a different route during rush hour? These are all part of your algorithm for getting home.
  • ASP, .NET, Ruby on Rails – These things are not programming languages, but rather frameworks that are connected with programming languages. See below.
  • Framework – A framework is a broad term for a collection of libraries (see above) and recommended ways to use those libraries. You might have a framework for making websites, or a framework for interacting with graphics, etc.
  • IDE – This stands for “Integrated Development Environment,” which is a big huge program that helps you write programs. They can do anything from telling you when you forgot to type a semicolon to helping you debug and test your program.
  • Platform – A platform is a place where programs can be run–that is, a place that is programmable in one way or another. Windows, Linux, and OS X are platforms, as are the Xbox 360, the iPhone, and big-ass tables – to name a few.
  • Metaprogramming – “Sup, dawg. I heard you like programming so I put programming in your programming!” When you can program your programming language, this is called metaprogramming.
  • Parse – To parse means to interpret or understand. We do it as humans when we read written language: we look for the combination of verbs, nouns, adjectives, and punctuation that delimits a thought. Computers do the same thing when reading your code: they turn your ideas, represented by syntax (see above), into tangible instructions it can use. (A bit of an oversimplification, but that’s the general idea.)

Vaguely Instructional , ,

Comments are closed.