, Is Alpha
, Word Count
, Read First Line
, Read Write Execute
, Log Patch
, Category Tree
, Chain Link
, Log Parser
, Language Teacher
, Book Sale
, Moving Total
, Reward Points
, Tuple Slice
, Unique Product
, Internal Nodes
, Paper Strip
, Kilometer Converter
, Medical Record
, Date Transform
, Numbers to Text
, Cargo Ship
, Unique Numbers
, Max Sum
, Crop Ratio
Python is a widely used, high-level, general-purpose, interpreted, dynamic programming language. Having a basic familiarity with the programming language used on the job is a prerequisite for quickly getting up to speed.
Everyone makes mistakes. A good programmer should be able to find and fix a bug in their or someone else's code.
A programmer should use a language as a tool, always taking advantage of language-specific data types and built-in functions.
A list comprehension is a syntactic construct for creating a list based on existing lists. As this is a common task, every programmer should be familiar with it.
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.
Arithmetic is a fundamental branch of mathematics. An understanding of arithmetic concepts, and their application, is important for every candidate.
Exceptions exist in most modern programming languages, making it important for a programmer to understand them and know how to handle them.
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.
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.
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.
Familiarity with data serialization to and from formats such as XML and JSON is important as it is commonly used for interprocess communication
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.
A regular expression (regex) is a special text string for describing a search pattern. It is a common way for extracting data from text.
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.
Every programmer should be familiar with data-sorting methods, as sorting is very common in data-analysis processes.
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.
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.
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.
A set is a collection of distinct objects. It's one of the most used types of collection, alongside arrays, lists, and maps. There are many different types of set, each with multiple specific optimizations and use cases. It is, therefore, one of the most important collections for a developer to be familiar with.
A tuple is an immutable collection which is ordered and unchangeable. It is a common collection in many programming languages.
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.
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.
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.
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.
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.
Named Tuple is a tuple where each value has a preassigned name. It allows accessing values not just by index, but also by name. Among other things, it can increase the readability and maintainability of the code.
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.
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.