100% found this document useful (1 vote)
1K views9 pages

Interesting Terms For IT Recruiting

This document provides an overview of various technologies used in software development. It covers back-end technologies like PHP, Ruby, Java, C#, Python and databases. It also covers front-end technologies like JavaScript, HTML, CSS and responsive design. Other sections discuss mobile development, testing, architecture, tools, DevOps, development methodologies and more. The document serves as a comprehensive reference guide to the different programming languages, frameworks and concepts used in software engineering.

Uploaded by

Nicolae David
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
1K views9 pages

Interesting Terms For IT Recruiting

This document provides an overview of various technologies used in software development. It covers back-end technologies like PHP, Ruby, Java, C#, Python and databases. It also covers front-end technologies like JavaScript, HTML, CSS and responsive design. Other sections discuss mobile development, testing, architecture, tools, DevOps, development methodologies and more. The document serves as a comprehensive reference guide to the different programming languages, frameworks and concepts used in software engineering.

Uploaded by

Nicolae David
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 9

Back-end

technologies
PHP 5.*
PHP frameworks

Symfony (2), Zend Framework (2), CakePHP, Yii, Laravel,


CodeIgniter

CMS (content
management
system)

Joomla, Drupal, Wordpress, Magento (for e-commerce)

LAMP

Linux + Apache + MySQL + PHP

PHP keywords

Twig (templating), PHPUnit (testing), Doctrine (ORM),


PHPStorm (IDE), Pear, Smarty

Ruby
Ruby frameworks

Rails/Ruby on Rails, Sinatra, Padrino, JRuby

Ruby testing tools

RSpec, Capybara, Watir, Cucumber

Ruby deployment

Passenger, Capistrano

Java
Java SE frameworks

Swing, Play, JavaFX, JSF, Netty, Spring MVC, Wicket

Java EE frameworks

JSP, Servlets, EJB, JMX, JAF

ORM

Hibernate, EJB, JPA

Java build tools

Ant, Maven, Gradle

Java deployment

Tomcat, JBoss, GlassFish, WebLogic

Java testing tools

jUnit, TestNG, Cactus, EasyMock, Mockito, Cucumber

C# (.NET)

Microsoft

C# frameworks

.NET 1.0 - .NET 4.5.*

ASP.NET (web
framework
connected with
HTML, CSS, JS)

ASP.NET Web API (2), ASP.NET MVC, ASP.NET Web Forms (old
school)

WPF, WCF

WPF - graphical subsystem for rendering user interfaces, WCF -

tool to build Service-Oriented applications


ORM

nHibernate, Entity Framework, Linq2SQL, ADO.NET

C# testing tools

nUnit, SpecFlow, MStest

Python
Python frameworks

Django, Flask, Pyramid, Pylons, SQLAlchemy, web2py, Kivy

++
C++ frameworks

STL, Boost, QT (for user interfaces), vxWidgets, Loki, POCO,


OpenCV (for imaging)

Scala
Scala frameworks

Akka, Cats, Lift, Play, Scalaz, Slick, Shapeless, Spray

Front-end
technologies
JavaScript
JavaScript
frameworks

jQuery, extJS, Angular, React, Ember.js, Backbone, Knockout.js,


...

JavaScript Back-End
Node.js, Sails, Express, Grunt/Gulp (build tools for Node.js)
frameworks
Node.js-based build
tools

Grunt, Gulp, Brocolli, Webpack

JavaScript testing
tools

Jasmine, Karma, Mocha

AJAX

Dynamic requests to server without reloading a webpage

HTML

HTML4, HTML5, Zurb, Bootstap, Canvas, WebGL

CSS

CSS2, CCS3, Bootstrap, Compass, LESS, SASS, YAML, Zurb

Responsive web
design

Approach for optimal viewing and interaction across a wide


range of devices (from monitor to mobile/tablets)

Mobile

development
iOS

Objective C, Swift

iOS frameworks

CoreData (DB in iOS), Cocoa, Cocoa Touch, UIKit, CoreLocation,


CoreFoundation, CoreImage, CoreGraphics

iOS tools

Cocoa Pods (dependency manager), Flurry (for analytics),


TestFlight (for installation and testing iOS apps), HockeyApp
(platform for apps)

Android
Android keywords

Android SDK, Android NDK, Android IDE, Gradle (build tool),


AndEngine, Robotium (testing) + a lot of Java keywords

Cross-platform
Mobile (mostly
JavaScript)

jQuery Mobile, PhoneGap, Sencha Touch, Dojo Mobile,


Titanium, Xamarin (C#)

Testing (Quality
Assurance)
Functional,
Regression testing
tools

Selenium (browser automation), WebDriver, SoapUI (for API


testing), Watir, Watin, QTP, Cucumber

Load, Stress and


Performance testing JMeter, NeoLoad, LoadRunner, LoadUI, Siege, Gatling,
tools
Types of testing

Load, stress, performance, regressional, functional, security,


cross-browser, black-box, etc

Databases (DB)
SQL

Programming languare for managing data held in a relational


database management system (RDBMS)

Relational DB

MySQL, Oracle, Access, MS SQL Server (mostly for Microsoft


stack), PostgreSQL, SQLite

NoSQL

Cassandra, MongoDB, Berkeley DB, Redis, Riak, CouchDB,


DynamoDB

Object-related

Programming technique that connects databases with object-

mapping (ORM)

oriented principles)

Magic keywords for


DBA

Stored procedures, triggers, replication, performance


optimization, clustering, back-up, deadlocks, tuning,
configuration

Programming
paradigms
Programming paradigm based on the concept of "objects"
OOP (object-oriented (which are data structures that contain data, in the form of
programming)
fields) often known as attributes; and code (in the form of
procedures) often known as methods
Languages with OO
features

C++, C#, Java, JavaScript, Objective C, Perl (v5), PHP5, Python,


Ruby, Scala,

Functional
programming

Style of building the structure and elements of computer


programs, that treats computation as the evaluation of
mathematical functions and avoids changing-state and
mutable data.

Functional languages Scala, Erlang, OCaml, Haskell, F#, Clojure, Elixir, R

Scripting language

Programming language that supports scripts, programs written


for a special run-time environment that can interpret (rather
than compile) and automate the execution of tasks that could
alternatively be executed one-by-one by a human operator

Scripting languages

Perl, Shell, Bash, AWK, Python, Ruby, JavaScript, Lua

Architecture
OOD (object-oriented Object-oriented design patterns typically show relationships
design)
and interactions between classes or objects
Design Patterns

Formalized best practices that the developer can use to solve


common problems when designing an application

MVC (model view


controller)

Software architectural pattern for implementing user


interfaces. An easy way to understand MVC: the model is the
data, the view is the window on the screen, and the controller
is the glue between the two

Design Patterns
examples

Observer, Iterator, Strategy, Factory, Singleton, Composite,


Facade, Proxy, etc

SOA (ServiceOriented
Architecture)

Architectural pattern in which application components provide


services to other components via a communications protocol,
typically over a network

UML (Unified
Way to visualize the design of a software (in diagrams)
Modeling Language)
Webservices

REST - software architecture style with guidelines and best


practices for creating scalable web services, SOAP, JSON-RPC,
XML-RPC

Markup (formatting
and processing of
text)

XML, XSLT, xPath, XMPP (for messaging)

API

Connector (bridge) for websites/mobile apps with your


software - Facebook API, Google API, Twitter API, etc

Tools
High-load tools

Memcached (for caching), Nginx (web server for high-load),


Varnish, Squid (reverse proxies), haproxy (load balancer), CDN

Big Data tools

Hadoop, Hive, Pig, Apache HBase, Cassandra, MapReduce


(method), Spark

Continious
Integration (CI)

Merging all developer working copies with a shared mainline


several times a day.

CI tools

Jenkins, Teamcity, TFS (mainly C#), CruiseControl (C#),


Bamboo, Hudson, Travis

Continious
Deployment (CD)

Updating server with automated schedule. These updates


include code revision, auto/unit test running

Bug/Issue Tracking
system

Tracking bugs, reports. Issue tracking - software for project


management, tasks in team, etc

Bug/Issue Tracking
tools

Jira, Mantis, Confluence, RedMine, YouTrack, Trello, BaseCamp

Version Control
System (VCS)

Team of developers may change the same files

VCS tools

Git, Mercurial, SVN, CVS, Perforce

VCS services

Github, Bitbucket, Gitlab

IDE (editors for code)

Visual Studio (C#), Eclipse, NetBeans, Aptana, xCode (iOS),


WebStorm, IntelliJ IDEA

DevOps
OS

Linux, Unix, BSD, Windows, MacOS

Linux Distributions

Ubuntu, RedHat, CentOS, Suse, Debian

DevOps
(Development +
Operations)

Software development method that emphasizes


communication, collaboration, integration, automation. The
method acknowledges the interdependence of software
development, quality assurance (QA), and IT operations, and
aims to help an organization rapidly produce software products
and services and to improve operations performance

Virtualization

Refers to the act of creating a virtual (rather than actual)


version of something, including virtual computer hardware
platforms, operating systems, storage devices, and computer
network resources.

Virtualization tools

VMware, KVM, Xen, VirtualBox , Vagrant

Configuration
Management

Systems engineering process for establishing and maintaining


consistency of a product's performance, functional and
physical attributes with its requirements, design and
operational information throughout its life.

CM tools

Puppet / MCollective, Chef, Ansible, CFEngine, SaltStack,


RANCID, Ubuntu Juju

Monitoring tools

New Relic, Nagios, Icinga, Graphite, Ganglia, Cacti, PagerDuty,


Sensu

Network protocols

TCP/IP (transfering data in computers and internet), HTTP


(internet protocol), HTTP/2, WebSockets

Web servers

Apache, Tomcat (mainly for Java), IIS (mainly for C#), jBoss
(Java)

Development
Methodologies
Scrum

Iterative and incremental agile software development


methodology for managing product development. It defines "a

flexible, holistic product development strategy where a


development team works as a unit to reach a common goal,
challenges assumptions of the "traditional, sequential
approach" to product development, and enables teams to selforganize by encouraging physical co-location or close online
collaboration of all team members, as well as daily face-to-face
communication among all team members and disciplines in
the project. A key principle of scrum is its recognition that
during production processes, the customers can change their
minds about what they want and need, and that unpredicted
challenges cannot be easily addressed in a traditional
predictive or planned manner.

XP

Type of Agile software development methodology which is


intended to improve software quality and responsiveness to
changing customer requirements. It includes: frequent
"releases" in short development cycles, programming in pairs
or doing extensive code review, unit testing of all code,
avoiding programming of features until they are actually
needed, a flat management structure, simplicity and clarity in
code, expecting changes in the customer's requirements as
time passes and the problem is better understood, and
frequent communication with the customer and among
programmers.

TDD

Software development process that relies on the repetition of a


very short development cycle: first the developer writes
Automated Test Case that defines a desired improvement or
new function, then produces the minimum amount of code to
pass that test, and finally refactors the new code to acceptable
standards.

BDD

Emerged from TDD. The idea is provide software development


and management teams with shared tools and a shared
process to collaborate on software development

Kanban

Kanban is a method for managing knowledge work with an


emphasis on just-in-time delivery while not overloading the
team members. In this approach, the process, from definition
of a task to its delivery to the customer, is displayed for
participants to see. Team members pull work from a queue.
Kanban can mean a visual process-management system that
tells what to produce, when to produce it, and how much to
produce

Magic Keywords

Multithreading

Widespread programming and execution model that allows


multiple threads to exist within the context of a single process

Concurrency

Several computations are executing simultaneously, and


potentially interacting with each other.

Cloud computing

Cloud computing, also known as on-demand computing, is a


kind of internet-based computing, where shared resources and
information are provided to computers and other devices ondemand. It is a model for enabling ubiquitous, on-demand
access to a shared pool of configurable computing resources.

Distributed system

Software system in which components located on networked


computers communicate and coordinate their actions by
passing messages. Three significant characteristics of
distributed systems are: concurrency of components, lack of a
global clock, and independent failure of components

Security

Processes and mechanisms by which digital equipment,


information and services are protected from unintended or
unauthorized access, change or destruction

Caching

Cache is a component that stores data so future requests for


that data can be served faster

Scalability

Ability of a system, network to handle a growing amount of


work in a capable manner or its ability to be enlarged to
accommodate that growth.The capability of a system to
increase its total output under an increased load when
resources (typically hardware) are added.

Availability

Guarantee that every request receives a response about


whether it succeeded or failed

Performance
optimization

Performance tuning is the improvement of system


performance.

Failover

Failover is a backup operational mode in which the functions of


a system component (processor, server, network, or database)
are assumed by secondary system components when the
primary component becomes unavailable.

Clustering

Grouping a set of objects in such a way that objects in the


same group (called a cluster)

Redundant

Computer or network system components that are installed to


back up primary resources in case they fail. Redundant data
can protect a storage array against data loss in the event of a
hard disk failure.

Robust

Ability of a computer system to cope with errors during

execution

Refactoring

Restructuring existing computer code without changing its


external behavior. Code refactoring may also resolve hidden,
dormant, or undiscovered computer bugs or vulnerabilities in
the system by simplifying the underlying logic and eliminating
unnecessary levels of complexity.

Tuning

Improvement of system performance.

Internationalization
(i18n)

Process of planning and implementing products and services


so that they can easily be adapted to specific local languages
and cultures. Internationalisation - an adaptation of the
product for potential use virtually anywhere. Reduction of
i18n.

Localization (l10n)

Addition of special features for use in a particular region.


L10n, the number 10 - the number of letters between L
and n.

Accessibility (a11y)

Web accessibility means that people with disabilities can use


the Web

Asynchronous
(Async) requests

Asynchronous is a form of input/output processing that permits


other processing to continue before the transmission has
finished. Asynchronous is used to improve throughput, latency,
and/or responsiveness.

Web sockets

Providing full-duplex communication channels over a single


TCP connection. Web Socket protocol makes more interaction
between a browser and a website possible, facilitating live
content and the creation of real-time games.

You might also like