A 150 word programming language specific glossary for interviewing software developers

Tom Winter
Devskiller
Published in
7 min readJul 10, 2018
“The dictionary definition of the word “design” displayed on a smartphone screen” by Edho Pratama on Unsplash

Doing an tech screen of a software developer is difficult for anyone except for subject matter experts. Tech recruiters have tools like Devskiller to take care of the skills test but the phone screen can present it’s own difficulties. I mean, the first rule of tech recruiting is that not all developers are the same. So it makes sense that different programming technologies require different interview preparation. And this means being able to talk the talk with developers in their areas of expertise.

Of course any tech recruiter who has interviewed more than one software developer knows that each technology or language has their own secret vocabulary. Even if you just go by libraries, there are a bunch in Java added to the ones that you find in Python or C#. So it’s important to familiarize yourself with the types of technologies that your candidate should be able to talk about.

Glossaries for Java, SQL, JavaScript, Python, Scala, and .NET

To get these glossaries, we reached out to subject matter experts in 6 different programming languages. These experts created guides on how to effectively screen developers in these languages. I’ve included each glossary below with a handy link to the guide that it came from.

Java

Did you know? The Java world changes often, so experience with a framework gained 5 years ago is not valid anymore. Bare this in mind when you assess a Java candidate’s skills.

Java Glossary

Java EE components

  • Java Server Pages (JSP), Servlets, Enterprise Java Beans (EJB), JAX-RS, JAX-WS, Java Message Service (JMS)

Java Web frameworks

  • Java Server Faces (JSF), Spring MVC, Vaadin/GWT, Wicket, Play

ORM

  • Hibernate, Java Persistence API (JPA), EclipseLink, OpenJPA

Java build tools

  • Maven, Gradle, Ant

Java application containers

  • Tomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere

Java testing tools

  • JUnit, TestNG, Spock, Mockito, Cucumber

IoC frameworks

  • Spring Framework, Guice, CDI

You can find out more about Java versions and how different Java technologies relate to each other in How to screen Java developers’ skills to find the best — guide for IT recruitment.

SQL

Did you know? It takes a special mindset and experience for a developer to become a SQL expert. While basic tasks can be implemented very easily by everyone (including non-programmers, such as business analysts, requirements engineers, project managers, etc), complex SQL is rather hard to get right.

SQL Glossary

Declarative programming, 4GL

  • SQL is a fundamentally different programming language (see also intro). The fact that it follows the declarative programming paradigm is important for a recruiter.

DDL

  • Data Definition Language, the subset of the SQL language that is used for defining the database

DML

  • Data Manipulation Language, the subset of the SQL language that is used for manipulating the data in the database. Most queries are DML

Execution Plan

  • The algorithm chosen by the optimizer for a given SQL statement.

Optimizer

  • The engine that translates a SQL statement into an execution plan. Even simple statements have dozens of possible valid execution plans. A database may maintain several plans per statement.

Cost based optimizer (CBO)

  • Most modern databases ship with a CBO, which makes decisions based on statistics, histograms, and heuristics about production data. It is pretty hard to beat the decision made by a CBO in a modern, commercial database.

Rule based optimizer

  • Older databases implement simple rule engines in order to make execution plan decisions. These rules are often wrong in real world situations, which is why queries in these situations need much more tuning, e.g. by using hints.

Join

  • One of the most fundamental operations in relational algebra that helps “joining” / “connecting” two database tables, for instance books and authors to produce results.

PL/SQL, T-SQL, pgplsql, etc.

  • These are procedural extensions to the SQL language, i.e. general-purpose languages that integrate SQL. While these skills are very useful in some projects, they are not necessarily an important indicator for SQL skills.

Normalization

  • The practice of reducing redundancy in a relational database by separating conceptually distinct data (e.g. books, authors) into different relations (tables). There are several different levels of normalization.

Relational Database (relational model, relational algebra, etc.)

  • While SQL mostly works with relational databases, it can also work on other data storage systems. Relational databases implement the relational model

E.F. Codd

  • Optional background knowledge: Codd was the biggest contributor to relational algebra and much more.

To read more about what experience it is important for a SQL developer to have, check out How to screen SQL developer skills to find the best — guide for IT recruitment.

JavaScript

Did you know? JavaScript is very easy to pick up. And this is also JavaScript’s pitfall — a lot of developers only learn small parts of the language just to get things done. To write high quality, fast applications you need to have very good knowledge of JavaScript itself.

JavaScript Glossary

JavaScript versions

  • EcmaScript 5 (ES5 — available everywhere), EcmaScript 6 (ES6 — available in newest browsers), EcmaScript 2016 (ES7 )

JavaScript frameworks and libraries

  • Angular.js, jQuery, React, Backbone, Ember, Vue.js, Polymer, Aurelia, Knockout, Rx.js

JavaScript frameworks for Node.js

  • Express.js, Hapi.js, Koa, Sails, Meteor

Node.js package managers

  • NPM, Bower, JSPM

Node.js based task runners and build tools

  • Gulp, Grunt, Broccoli, Webpack

JavaScript testing frameworks

  • Casper, Mocha, Jasmine, Jest, Karma

JavaScript transpilers

  • Traceur, Babel

Hybrid mobile apps frameworks

  • Sencha Touch, Ionic, Apache Cordova, IntelXDK

JavaScript supersets or languages that compile to JavaScript

  • TypeScript, CoffeScript, Elm, Dart

To find out which names are used interchangeably and other helpful information for hiring JavaScript developers, read How to screen JavaScript developer skills to find the best — guide for IT recruitment.

Python

Did you know? Since Python has a variety of uses, it is often difficult to distinguish candidates from academics, through network programming and web applications to simple scripting. Yet it is often easier for a developer to learn new Python than to change her domain (e.g. Data Science to Web Applications).

Python Glossary

Python language

  • Popular version 2.6, 2.7, 3.4, 3.5

Python web frameworks

  • Django, Flask, Bottle, Tornado, web2py

ORM

  • SQLAlchemy, Django ORM

Build tools

  • Setup-tools, pip, tox

Test frameworks

  • UnitTest, py.test, nose

Asyncio

  • Python 3.5, Tornado, Twisted

Data analysis tools

  • NumPy, SciPy, Pandas

To find Python interview questions as well as other useful Python hiring information, go to How to screen Python developers’ skills to find the best — guide for IT recruitment.

Scala

Did you know? Currently, Scala is the most popular functional programming language. While it has a number of different applications, probably it’s most popular use right now is in Big Data.

Scala Glossary

Scala frameworks and libraries

Back-end

  • Akka, Finagle

Big data

  • Spark, Scalding

Web

  • Play, Lift, Scalatra

Utils

  • Scalaz, Cats

Scala testing tools

*ScalaTest, Specs2

Scala build tools

  • sbt (Simple Build Tool)

You can find out more about which courses are popular for Scala developers, have a look at How to screen the skills of a Scala developer to find the best — guide for IT recruitment.

.NET

Did you know? .NET was Microsoft’s response to the rapid growth of the Java platform and that’s why many concepts (starting from languages’ syntax and including the idea of executing programs on virtual machine) of those two are similar. The .NET platform supports many languages, like C#, Visual Basic .NET, F#, C++ .NET.

. NET Glossary

.NET framework versions

  • .NET 1.0 — .NET 4.5.

Languages

  • C#, Visual Basic .NET, F#, C++ .NET

Web frameworks

  • ASP.NET MVC 1–6, ASP.NET Web Api, ASP.NET Web Forms (old school)

Desktop frameworks

  • WPF, Windows Forms (old school)

Communication frameworks*

  • WCF, ASP.NET Web Api, Web Services (old school)

IoC Containers

Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac

ORM

  • Entity Framework, nHibernate, Linq2SQL, ADO.NET

C# unit testing frameworks

  • nUnit, SpecFlow, MSTest, xUnit

C# build tools

  • TFS, Team City, Jenkins, Cruise Control .NET

*used to exchange data and create Service Oriented Applications.

To see what other information on a candidate’s resume can indicate a developer’s .NET skills, check out How to screen .NET developer programming skills to find the best — guide for IT recruitment.

The next step

Of course all of these glossaries are only good if you can verify your candidate’s skills. The best way to do that is with Devskiller. Devskiller’s RealLifeTesting™ methodology tests a developer’s skills using the same tasks they will work on on their first day of work. Try it out for yourself.

--

--

Tom Winter
Devskiller

Co-founder @Devskiller and Tech Recruitment Adviser