Covered Skills
Testing of these skills is covered in this pre-built test because they’re closely related. On our paid plan, you can easily create your own custom multi-skill tests.
JavaScript
JavaScript
JavaScript is the programming language of HTML and the web. It's an essential skill for any programmer working with websites and web technologies.
Arrays
Arrays
An array is a container of a fixed number of objects of a similar type. It is a fundamental component of most programming languages.
Java
Java
The Java programming language is a simple, modern, general-purpose, object-oriented programming language. Having a basic familiarity with the programming language used on the job is a prerequisite for quickly getting up to speed.
Bug fixing
Bug fixing
Everyone makes mistakes. A good programmer should be able to find and fix a bug in their or someone else's code.
Language
Language
A programmer should use a language as a tool, always taking advantage of language-specific data types and built-in functions.
Stream
Stream
A stream is a sequence of data elements made available over time. It is particularly useful for tasks that may benefit from being asynchronous, including tasks such as I/O processing or reading from a file, and as such is important for developers to understand.
Strings
Strings
The string data structure is used to represent text. It is one of the most commonly used data structures. Therefore, every programmer should be skilled at string manipulation.
Exceptions
Exceptions
Exceptions exist in most modern programming languages, making it important for a programmer to understand them and know how to handle them.
Closures
Closures
Closures are an important concept in any programming language in which functions are first-class citizens.
HTML/CSS
HTML/CSS
HTML is the standard markup language for creating web pages. It's an essential skill for anyone creating web pages of any complexity.
CSS selectors
CSS selectors
Selectors are a programming pattern that can be used to select an element from a container. They are primarily used in technologies such as CSS and jQuery to apply styles to groups of elements.
Styling
Styling
Styling user interfaces according to the specification is a daily routine for a front-end developer.
Arithmetic
Arithmetic
Arithmetic is a fundamental branch of mathematics. An understanding of arithmetic concepts, and their application, is important for every candidate.
DOM manipulation
DOM manipulation
Dynamically accessing and updating user interface elements is an important part of most modern web applications.
Event handling
Event handling
Event-based design patterns are very common in modern applications, especially in the development of user interfaces.
SQL
SQL
SQL is the dominant technology for accessing application data. It is increasingly becoming a performance bottleneck when it comes to scalability. Given its dominance, SQL is a crucial skill for all engineers.
Conditions
Conditions
Conditional statements are a feature of most programming and query languages. They allow the programmer to control what computations are carried out based on a Boolean condition.
Views
Views
A database view is a result set that is defined by a stored query, the results of which can can also be queried. As a fundamental and widely used database construct, it's useful for candidates to understand how and when they should be used.
Algorithmic thinking
Algorithmic thinking
When designing and/or analyzing an algorithm or data structure, it is important to consider the performance and structure of an implementation. Algorithmic thinking is one of the key traits of a good programmer, especially one working on complex or performance-critical code.
Monkey patching
Monkey patching
Monkey Patching is a method of either adding new or overriding existing functionality without the creation of a new type. As such it's an important tool for developers to be familiar with.
HTML5
HTML5
HTML5 is now supported in all modern browsers, making it important for front-end developers to know how to use its features.
Memory management
Memory management
Memory management allows programs to request memory dynamically from the operating system, and free it for reuse when no longer needed. Many modern programming languages automate this process; however, it should still be an important consideration when implementing an application.
Iteration
Iteration
Iteration is the act of repeating a process, or cycling through a collection. Iteration is one of the fundamental flow control tools available to developers.
Attribute manipulation
Attribute manipulation
Getting and setting HTML attributes is one of the most common coding tasks of that changes something on a web page.
Element spacing
Element spacing
Setting the margins and padding of the elements on a web page is one of the basic things that any web developer or designer should know.
CSS advanced
CSS advanced
Cascading Style Sheets are the styling language of the web. Knowledge about advanced CSS features is required for seasoned front-end developers.
Element size
Element size
Setting the size of the elements on a web page is one of the basic things that any web developer or designer should know.
Constraints
Constraints
Constraints are used to define rules and relationships. They are applied to a dataset. A constraint may take many forms, such as x ≤ 5 in a programming language and a NOT NULL constraint in a SQL table definition.
Create table
Create table
The CREATE TABLE statement is used to create a new table in a database. It is an essential command when creating new database.
Database schema
Database schema
A database schema defines how data is stored in a database. An SQL database uses a schema to define tables consisting of rows and columns that use fixed data types to store data. Formalizing how data is stored is the first step towards building an application or service.
Select
Select
The SELECT statement is used to select data from a database. It is the most used SQL command.
Create index
Create index
The CREATE INDEX statement is used to create indexes for tables. Indexes are used to retrieve data from the database more quickly. They are very important for making performant queries.
Performance tuning
Performance tuning
The performance of an application or system is important. The responsiveness and scalability of an application are all related to how performant an application is. Each algorithm and query can have a large positive or negative effect on the whole system.
Flexbox
Flexbox
The Flexible Box Layout Module makes it easier to design a flexible responsive layout structure.
Positioning
Positioning
Dynamic positioning of user interface elements depending on resolution is more important than ever in modern applications, making this important for a front-end developer.
Alter table
Alter table
The ALTER TABLE statement is used to add, delete, or modify columns and constraints in an existing table. Alter table statements are important for all programmers who have to modify existing schemas.
Bookmarks
Bookmarks
A bookmark is a hyperlink that points to a location within a document, which is defined by a name that is assigned to an element. Bookmarks are used when we need to jump to a specific location within a document.
Elements and attributes
Elements and attributes
Defining elements and their attributes is the first process in creating an HTML page.
Linked list
Linked list
A linked list is a linear collection of data elements where each element points to the next. It is a data structure consisting of a collection of nodes which together represent a sequence. It is usually used for advanced scenarios where we need fast access to the next element, or when we need to remove an element from anywhere in the collection.
Aggregation
Aggregation
An aggregate function is typically used in database queries to group together multiple rows to form a single value of meaningful data. A good programmer should be skilled at using data aggregation functions when interacting with databases.
Subqueries
Subqueries
Subqueries are commonly used in database interactions, making it important for a programmer to be skilled at writing them.
Fonts
Fonts
Setting the font name or size is part of creating any web page.
Dialog box
Dialog box
Dialog box, a small window that pops-up, is a common way for communicating information to the user and prompting them for a response.
Ordering
Ordering
Knowing how to order data is a common task for every programmer.
Regex
Regex
A regular expression (regex) is a special text string for describing a search pattern. It is a common way for extracting data from text.
OOP
OOP
Object-oriented programming is a paradigm based on encapsulating logic and data into objects, which may then contain fields and procedures. Many of the most widely used programming languages are based on OOP, making it a very important concept in modern programming.
Refactoring
Refactoring
The process of restructuring existing computer code without changing its external behavior. It is essential for keeping code readable and maintainable.
Left join
Left join
LEFT JOIN is one of the ways to merge rows from two tables. We use it when we also want to show rows that exist in one table, but don't exist in the other table.
Queue
Queue
A queue is a collection of items that are maintained in a sequence and can be modified by the addition of entities at one end of the sequence and removal from the other end of the sequence. It is the collection to be used when first-in-first-out (FIFO) collection is needed.
Objects
Objects
An object is a self-contained component which consists of methods and properties to make a particular type of data useful. Knowing how to create objects, and work with them, is an essential part of OOP.
Asynchronous calls
Asynchronous calls
Calling methods asynchronously is a common task for programmers.
HashMap
HashMap
A HashMap (or dictionary) is a data type composed of a collection of key-value pairs, where each possible key appears at most once in the collection. It is used when we need to access items by their keys.
Lists
Lists
Lists are collections that act as dynamic arrays. Lists offer the flexibility of dynamically sized arrays, the simplicity of access of arrays, and are more performant than more ubiquitous collections in most scenarios.
Indexes
Indexes
The proper implementation and use of indexes are important for improving the performance of database queries.
Union
Union
The UNION operator is used to combine the result-set of two or more SELECT statements. It is often used when a report needs to be made based on multiple tables.
Group by
Group by
The GROUP BY statement groups rows by some attribute into summary rows. It is a common command when making various reports.
Update
Update
The UPDATE statement is used to modify the existing records in a table and is one of the most used operations for working with the database.
Insert
Insert
Even though most database insert queries are simple, a good programmer should know how to handle more complicated situations like batch inserts.
Joins
Joins
A normalized database is normally made up of multiple tables. Joins are, therefore, required to query across multiple tables.
Tree
Tree
A tree is a hierarchical structure defined recursively starting with the root node, where each node is a data structure consisting of a value, together with a list of references to other nodes (the "children"). A lot of problems can be solved efficiently with trees, which makes them important for developers.
Animation
Animation
Animation is the process in which images or objects are manipulated to appear as if they are moving. It's a powerful effect that is important for UI designers to understand and be able to use.
Serialization
Serialization
Familiarity with data serialization to and from formats such as XML and JSON is important as it is commonly used for interprocess communication
XML
XML
Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The design goals of XML emphasize simplicity, generality, and usability across the Internet. This is one of the most used formats for exchanging data over the web.
Recursion
Recursion
A good programmer should be familiar with when to use recursive functions, since they can provide elegant solutions for complex problems.
Data structures
Data structures
Choosing the right data structure to solve a problem can have huge implications on the performance of an application. Knowing when to use a specific data structure is one of the most important skills for a programmer.
Accessibility levels
Accessibility levels
Access modifiers like public, protected, or private should be used to specify accessibility levels - who can access the object or some of its parts. They are one of the key points for writing maintainable object-oriented code.
JSON
JSON
JSON is an open-standard format that uses human-readable text to transmit data objects consisting of attribute-value pairs. It's the most common data format used for asynchronous browser/server communication.
Sorting
Sorting
Every programmer should be familiar with data-sorting methods, as sorting is very common in data-analysis processes.
Multithreading
Multithreading
Multi-threading allows a process to make more efficient use of modern hardware by allowing code to execute asynchronously. It can drastically improve the performance of any app; however, it can be tricky to get right, making this an important topic for any programmer.
Synchronization
Synchronization
When using multithreading, developers need to know how to make one thread wait for another to finish its task before continuing with its work.
StringBuilder
StringBuilder
Since a string is an immutable data structure, concatenating multiple strings can introduce significant performance penalties. Every experienced developer should know when to use StringBuilder instead of simply concatenating two strings to improve performances in such scenarios.
Content manipulation
Content manipulation
Adding or modifying content is the most common task when developing dynamic web pages.
Forms
Forms
Forms provide a method of grouping inputs and collecting user data. As such, they are important for all front end developers.
ArrayList
ArrayList
The ArrayList class acts like a resizable array. It is used when there is a need for an array that can have a variable size.
Complexity
Complexity
A good programmer should be able to analyze and plan for the performance of an algorithm.
Stack
Stack
A stack is dynamic data container that follows the Last In First Out (LIFO) principle. Developers should use stack when the last item to be inserted into a container is the first one to be deleted from it.
Stream API
Stream API
Stream API is used to process collections of objects. It supports various methods, such as mapping, filtering, and sorting, which can be pipelined to produce the desired result. Since it simplifies code and improves productivity, it should be well known to Java programmers.
Tables
Tables
A table stores data as rows and columns. From databases to HTML layouts, as a data structure they are ubiquitous. They are an important structure for developers to understand and know how to use.
Class modifiers
Class modifiers
Class modifiers like abstract, final, or static should be used to specify how a class should be used and what is allowed or not allowed to be done with it. This is an essential topic for OOP programming.
Inheritance
Inheritance
In object-oriented programming, inheritance is the mechanism of basing a class upon another class, retaining similar implementation. Inheritance allows programmers to reuse code and is a must know topic for every programmer who works with OOP languages.
Delete
Delete
The delete statement is used to delete records in a table and is one of the four basic CRUD functions (create, read, update, and delete) required for working with any persistent storage.
Callback
Callback
A callback is a piece of code that can be passed as an argument to another bit of code. It's a very common pattern that has a wide variety of uses, and as such it's important to understand.
Graphs
Graphs
Many real-life situations are best modeled by graphs. Therefore, an in-depth knowledge of graph data structures is important for a good programmer.
Classes
Classes
A class is one of the most widely used and primary structures used in object-oriented programming. As such it's important for any developer to have a working knowledge of how to use it.
ECMAScript 2015
ECMAScript 2015
ECMAScript 2015 adds a significant number of features to JavaScript, including classes, modules and range based loops. As such it's important for any JavaScript developer to understand.
Borders
Borders
Borders can be applied to most HTML elements within the body. This is one of the most used element decorations.
Inline styles
Inline styles
Inline styles are styles that are applied directly on elements. This is one of the ways for applying styles and for some scenarios, such as for email, is the only supported way.
SQL CASE
SQL CASE
The CASE statement is SQL's control statement. It goes through conditions and returns a value.
Test case design
Test case design
Being able to create a set of test cases that ensure adequate test coverage is a key skill for creating a successful test. It is desirable for the test suite also to be optimal, i.e. to minimize test execution effort and time without affecting the test coverage.
Unit testing
Unit testing
Unit testing is a type of software testing where individual units or components of a software are tested. Unit testing of software applications is done during the development (coding) of an application and should be well known practice to any developer.
Selectors
Selectors
Selectors are a programming pattern that can be used to select an element from a container. They are primarily used in technologies such as CSS and jQuery to apply styles to groups of elements.
Hyperlink
Hyperlink
Hyperlink, or simply a link, is a reference to data that the reader can follow by clicking or tapping. There's no web page without a hyperlink.
IFrame
IFrame
The HTML Inline Frame element (iframe) represents a nested browsing context, embedding another HTML page into the current one. Web developers often use it to display content within other content.
Semantic tags
Semantic tags
HTML5 introduced semantic tags, which can greatly improve the level of automated analysis that can be done on documents, as well as improve the readability of HTML.
Dynamic programming
Dynamic programming
Dynamic programming methods for code optimization can be very useful to a programmer who understands them.
Pagination
Pagination
Pagination is the process of dividing data into discrete pages. It can be used to reduce the overhead of fetching large quantities of data, and as such, it is important when developing systems that fetch remote data.
HashSet
HashSet
HashSet is container that stores unique elements in no particular order. This allows for fast checks to see if a value was already added.
TDD
TDD
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, based on which the software is improved only in order to pass the new tests. TDD is an essential skill for modern programmers.
Accessibility
Accessibility
Accessibility refers to the design of products, devices, services, or environments for people who experience disabilities. It's important for all designers and developers to know how to optimize for people who experience disabilities.
Responsive design
Responsive design
Anyone who works with web should know how to properly implement responsive web design that makes web pages render well on a variety of devices and screen sizes.
CSS layout
CSS layout
Cascading Style Sheets are the styling language of the web. For a front-end developer, a knowledge of CSS layouts is required.
Dynamic Proxy Classes
Dynamic Proxy Classes
A dynamic proxy class is a class that implements a list of interfaces specified at runtime so that a method invocation through one of the interfaces on an instance of the class will be encoded and dispatched to another object through a uniform interface. Method invocations on an instance of a dynamic proxy class are dispatched to a single method in the instance's invocation handler to which parameters are passed that identify the method and the array of Object containing the parameters.
Method overriding
Method overriding
Method overriding, in object-oriented programming, is a language feature that allows a subclass to provide a specific implementation of a method that is already provided by one of its parent classes.
Dictionary
Dictionary
A dictionary (or associative array) is a data type composed of a collection of key-value pairs, where each possible key appears at most once in the collection. It is used when we need to access items by their keys.
Higher order function
Higher order function
A higher order function is a function that takes another function as an argument, or returns another function. Developers often use them for writing reusable code.
Interfaces
Interfaces
An interface is used to define an abstract type that defines behaviors as method signatures. Instances of different types can implement the same interface and provide a way for a developer to reuse the code.
Integer division
Integer division
Integer division is division in which the fractional part (remainder) is discarded. Knowing this is important for optimal implementation of some algorithms and for avoiding common bugs.
Associative arrays
Associative arrays
An associative array (or dictionary) is a data type composed of a collection of key-value pairs, where each possible key appears at most once in the collection. It is used when we need to access items by their keys.
Ajax
Ajax
Ajax, which initially stood for Asynchronous JavaScript And XML, is a programming practice of building complex, dynamic webpages using a technology known as XMLHttpRequest. Knowledge of Ajax is important for web developers.
HTTP
HTTP
The Hypertext Transfer Protocol is the foundation of data communication on the World Wide Web. As such, it's important for all developers who work on internet applications and websites to understand this.
Promise
Promise
In JavaScript, a Promise is an object representing the eventual completion or failure of an asynchronous operation. It allows associating handlers with an asynchronous action's eventual success value or failure reason. It is one of the commonly used asynchronous programming techniques in JavaScript.
Timing Events
Timing Events
JavaScript can be executed in time-intervals. JavaScript developers use timing events to delay the execution of certain code, or to repeat code at a specific interval. Knowledge of timing events is necessary to implement features that have time as a factor.
CTE
CTE
A CTE (Common Table Expression) is a temporary result set that can be referenced within another SELECT, INSERT, UPDATE, or DELETE statement. Recursive CTEs can reference themselves, which enables developers to work with hierarchical data.
Right join
Right join
RIGHT JOIN is one of the ways to merge rows from two tables. We use it when we also want to show rows that exist in one table, but don't exist in the other table.
Abstract class
Abstract class
An abstract class can include abstract methods and can be subclassed, but it cannot be instantiated. They are often used as building blocks of application.
Random
Random
Random number generators are used to generate random numbers and/or symbols. There are a wide variety of random number generators each with very specific use cases, as such it's important for all developers to know and understand when to use each type.
Generics
Generics
Generics are a type or method that can operate on objects of various types while providing compile-time type safety. They can be used in generic classes to significantly reduce the amount of needed code.
Database normalization
Database normalization
Database normalization is the process of structuring a relational database in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity. It should be used to avoid undesirable side-effects such as update, insert, and delete anomalies.
Recommended Job Roles
These are the job roles that we recommend for the HTML/CSS, JavaScript, Java, and SQL online test.
Full-Stack Developer