back to Allan's Resume     back to Allan's Portfolio
 

Guide to Technologies for Recruiters

This describes the cryptic technologies you see in job descriptions for website development, and how they fit together. I wrote this for recruiters who don't know the buzzwords yet, or who need to look up some. Use the Find function on your browser to search through this page (^F or ⌘F).

This doc is Quick and dirty so it's not too pretty. (C) 2014 Tactile Interactive.

Overview

When you surf to a website, there's two computers involved: ⇓ ⇑

The URL

WHen you go websurfing, you type the URL into the location box in your Browser. Like this:
http://hire.jobvite.com/CompanyJobs/Careers.aspx?c=qve9Vfwx&cs=9d5aVfw7&page=Jobs
More often, you click on a link, which does the typing for you - each link has a URL behind it like the above. 'URL' is pronounced "You Are Ell" or "earl". Here's the parts:

The Browser

The browser runs on your computer - the screen, keyboard and mouse in front of you. Popular operating systems: Popular browsers: Languages that run in the browser: Long ago (1995-2005) people ran Java on the browser as "Java Applets". Not so much anyomre; JavaScript has replaced it. Do NOT confuse the two languages!!! Very different. Long story why they have the same name, but they're not from the same people.

Sometimes there's other stuff browsers can run, "browser plugins". long story. A very specific craft that not everybody knows.

The Server

The server generates web pages from a program called a Web Server. Actually, the Web Server quickly hands off the job to one of the server programming languages as described below.

A server has:

Popular operating systems:

The 'web server' software talks HTTP over the net to your browser, and hands off each page request to the languages below. Popular web servers:

Server Languages and Frameworks

The framework/app server often defines the religion for server-side work. Different frameworks run on different programming languages; very rarely does a framework exist on two or more languages, cuz there's so much code, they have to pretty much start over. And, usually there's not a mix of languages, as these are religions so Everything has to be rewritten in The Language in order to be ideologically pure. And, really, you can do almost everything in almost all of the languages.

That means, for instance, if you hear CodeIgniter, you can safely assume they're using PHP as the language. And DJango means Python. ColdFusion means Microsoft Windows.

Microsoft Frameworks - .NET

Unlike others, this lets you program in several langauges: C#, JScript, Visual Basic, maybe more. C# is a takeoff on Java. JScript is virtually the same as JavaScript. If you see URLs that have '.asp' in them, it's probably this. Runs ONLY on MS Windows servers.

Java Frameworks - Java Enterprise

When Java 1.2 came out, the big push was to write web server software with it. This system was ultimately called J2EE (Java 2 Enterprise Edition); more recently it's been renamed Java Enterprise. They call their frameworks 'application servers'. If you see URLs that have '.jsp' in them, it's probably this. Other buzzwords: JSP, JVM, JSTL, JSF, JBoss, servlet, POJO, ESB, WebLogic, WebSphere, Tomcat, Spring, Hibernate. If you see any of those, it's most probably Java Enterprise of some sort. (PS: Never confuse Java with JavaScript - totally different.)

CMSs

These are frameworks, with lots of other stuff on top. See below.

Python - Django

Python - other

http://www.sixfeetup.com/blog/4-python-web-frameworks-compared

Ruby - Ruby on Rails

This was all the rage around 2008, but it's cooled off a bit and gotten more mature.

Cold Fusion

Runs only on MS Windows servers. If you see '.cf' in the URL, chances are it's this. It's got its own programming language.

PHP Frameworks

CakePHP, CodeIgniter, Zend. Here's some more: www.phpframeworks.com best-php-frameworks-2014 People tend to write their own on PHP.

Concepts

These aren't so much languages or specifics; these are more design or process ideas or practices. They also tend to be religions

People

Databases

Databases store the data for a website. When you make an account on the site, under the hood, they're adding your data to the database. Same when you make just about anything on the site that belongs to you or your account. Also has other kinds of data; anything needed by the site that's a big chunk of organized data. This is always 'backend' - usually considered the most backend of the backend. 'mid-tier' usually means the server stuff that runs on top of the database, but is still lower than the 'user interface' or 'front end'.

Databases are managed by software called 'database servers'. The server software internally talks to the database system.

Content Management Systems - CMS

A server-side system for a complete website; in many cases, non-programmers can add content. Easy to toss together a quick and dirty website. Harder to do custom stuff with it. Stores most website details in the database. Uses the database a whole lot; it's a performance problem. Not everybody uses one of these; long story.

Some popular ones:

Adobe Photoshop

Photoshop is the #1 graphics editing tool.

It takes some work to learn it; if you just start out, you'll be flailing around unable to do anything. Many programmers learn some Photoshop, like me, because websites involve a lot of graphics. Making simple things like buttons is fairly easy; editing photos is different but not too hard; drawing cartoon characters or 'painting' is very hard, unless you have a drawing palette and pen. You can do an enormous amount of stuff with Photoshop; but you'll have to learn a lot about computer graphics, graphics files, photography, light, color. You can't just sit down and use it without experience (or a good tutorial).

Religions

Programmers tend to organize into religions, cults that form around operating systems, languages, and other technologies and brands. The bigger (more visible) the technology, the more chance there's a big religion. It's a kind of chauvanism, where adherents believe that their technology is way better than rival other technologies that replace them. They tend to be blind to the shortcomings, but know ways to get around the problems. They compare the latest version of their technology with older versions of rival technologies; that's part of the delusion.

Most computer religions are sortof bullshit; every system has its plusses and minuses. If people are still using it, somehow the plusses are enough for their users.

But don't tell them that their religion is bullshit!! Sometimes, these are like real religions - the fanatics will have somewhat irrational beliefs, don't challenge them. Say they're Ruby fanatics. It's like this: Everything Must Be Ruby! All programmers who work for us must be expert Ruby programmers! Other languages, we don't care. cuz nobody uses them anymore, someday, programmers will stop using the other languages and move to Ruby! Engineering groups lead by fanatics may want to hire similar people. (Partly legitimate: the fanatics tend to know it better.) If you present to them candidates who are not among the faithful, that might not go over very well. This is especially true for short-term contract jobs; the candidate has to hit the ground running.

On the other hand, a lot of people have figured out that the differences aren't all that important, so they are more interested in finding someone who's an all-around generalist, thinking that they can learn as they go along, especially if it's a FT job that will be long-term. This is also a reasonable way to run a shop; most programmers can jump between at least two languages, and often 6 or more. Most of the concepts are the same, and so are most of the features and a lot of the syntax, so it's not like English versus Japanese.

Major religions depend on the technologies and what they run on top of. So, for instance, if you want to run Drupal, you need PHP and usually the rest of LAMP, and usually that's on top of Unix of some sort. If they're listed on the same level in this list, they usually replace each other and you won't find them together - so Drupal competes with WordPress, people run one or the other but not both (unless they're converting from one to the other). These all tend to be so different, the things that run on top of them are totally different. So for instance, you will never see Drupal on Python, or Backbonejs on top of mootools.

To be continued...and extended

more topics to cover: