4scotty Blog

We want to ease tech recruiting for all parties involved.

Java ist nicht JavaScript – Glossary für Tech-Recruiter

Das Tech-Universum ist unendlich groß und kann bei Zeiten ganz schön verwirrend sein, selbst für die IT-Profis. Wenn man als Recruiter eines Unternehmens nicht den Überblick verlieren oder gar unangenehm auffallen will, dann sei einem ans Herz gelegt, sich ein wenig mit den verschiedenen Technologien und Keywords auseinander zu setzen.

Damit das Ganze ein wenig leichter fällt, haben wir hier ein Glossar für euch, das vor allem dabei helfen soll, sich einen ersten Eindruck zu verschaffen:

Backend Technologien
PHP FrameworksSymfony (2), Zend Framework (2), CakePHP, Yii, Laravel, Codelgniter
CMS (Content Management System) Joomla, Drupal, Wordpress, Magento (f?r e-commerce)
LAMPLinux + Apache + MySQL + PHP
PHP keywordsTwig (templating), PHPUnit (testing), Doctrine (ORM), PHP Storm (IDE), Pear, Smarty
Ruby FrameworksRails/Ruby on Rails, Sinatra, Padrino, JRuby
Ruby testing toolsRSpec, Capybara, Watir, Cucumber
Ruby DeploymentPassenger, Capistrano
Java SE FrameworksSwing, Play, JavaFX, JSF, Netty, Spring MVC, Wicket
Java EE FrameworksJSP, Servlets, EJB, JMX, JAF
ORMHibernate, EJB, JPA
Java Build ToolsAnt, Maven, Gradle
Java DeploymentTomcat, JBoss, GlassFish, WebLogic
Java Testing ToolsjUnit, TestNG, Cactus, EasyMock, Mockito, Cucumber
C# (.Net)
C# Frameworks.Net 1.0 - .Net 4.5
ASP.NET (Web Frameworks connected with HTML, CSS, JS)ASP.NET Web API (2), ASP.NET MVC, ASP.NET Web Forms (old school)
WPF, WCFWPF - graphical subsystem for rendering user interfaces, WCF - tool to build Service-Oriented applications
ORMnHibernate, Entity Framework, Linq2SQL, ADO.NET
C# testing toolsnUnit, SpecFlow, MStest
Python FrameworksDjango, Flask, Pyramid, Pylons, SQLAlchemy, web2py, Kivy
C++ FrameworksSTL, Boost, QT (for user interfaces), vxWidgets, Loki, POCO, OpenCV (for imaging)
Scala FrameworksAkka, Cats, Lift, Play, Scalaz, Slick, Shapeless, Spray
Frontend Technologien
JavaScript FrameworksjQuery, extJS, Angular, React, Ember.js, Backbone, Knockout.js, ...
JavaScript Back-End frameworksNode.js, Sails, Express, Grunt/Gulp (build tools for Node.js)
Node.js-based build toolsGrunt, Gulp, Brocolli, Webpack
JavaScript testing toolsJasmine, Karma, Mocha
AJAXDynamic requests to server without reloading a webpage
HTMLHTML4, HTML5, Zurb, Bootstap, Canvas, WebGL
CSSCSS2, CCS3, Bootstrap, Compass, LESS, SASS, YAML, Zurb
Responsive web designApproach for optimal viewing and interaction across a wide range of devices (from monitor to mobile/tablets)
Mobile Development
iOSObjective C, Swift
iOS FrameworksCoreData (DB in iOS), Cocoa, Cocoa Touch, UIKit, CoreLocation, CoreFoundation, CoreImage, CoreGraphics
iOS ToolsCocoa Pods (dependency manager), Flurry (for analytics), TestFlight (for installation and testing iOS apps), HockeyApp (platform for apps)
Android KeywordsAndroid 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 toolsSelenium (browser automation), WebDriver, SoapUI (for API testing), Watir, Watin, QTP, Cucumber
Load, Stress and Performance testing toolsJMeter, NeoLoad, LoadRunner, LoadUI, Siege, Gatling
Types of testingLoad, stress, performance, regressional, functional, security, cross-browser, black-box, etc
SQLProgramming languare for managing data held in a relational database management system (RDBMS)
Relational DBMySQL, Oracle, Access, MS SQL Server (mostly for Microsoft stack), PostgreSQL, SQLite
NoSQLCassandra, MongoDB, Berkeley DB, Redis, Riak, CouchDB, DynamoDB
Object-related mapping (ORM)Programming technique that connects databases with object-oriented principles)
Magic keywords for DBAStored procedures, triggers, replication, performance optimization, clustering, back-up, deadlocks, tuning, configuration
OOD (object-oriented design)Object-oriented design patterns typically show relationships and interactions between classes or objects
Design PatternsFormalized 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 examplesObserver, Iterator, Strategy, Factory, Singleton, Composite, Facade, Proxy, etc
SOA (Service-Oriented Architecture)Architectural pattern in which application components provide services to other components via a communications protocol, typically over a network
UML (Unified Modeling Language)Way to visualize the design of a software (in diagrams)
WebservicesREST - 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)
APIConnector (bridge) for websites/mobile apps with your software - Facebook API, Google API, Twitter API, etc
Dynamic ProgrammingA dynamic programming algorithm (Lisp, Perl, Python, Ruby) will examine the previously solved subproblems and will combine their solutions to give the best solution for the given problem
Static ProgrammingA static language (C, C++, etc) is designed to optimize hardware efficiency, so that the code you write executes as quickly as possible
High-load toolsMemcached (for caching), Nginx (web server for high-load), Varnish, Squid (reverse proxies), haproxy (load balancer), CDN
Big Data toolsHadoop, 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 toolsJenkins, 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 systemTracking bugs, reports. Issue tracking - software for project management, tasks in team, etc
Bug/Issue Tracking toolsJira, Mantis, Confluence, RedMine, YouTrack, Trello, BaseCamp
Version Control System (VCS)Team of developers may change the same files
VCS toolsGit, Mercurial, SVN, CVS, Perforce
VCS servicesGithub, Bitbucket, Gitlab
IDE (editors for code)Visual Studio (C#), Eclipse, NetBeans, Aptana, xCode (iOS), WebStorm, IntelliJ IDEA
OSLinux, Unix, BSD, Windows, MacOS
Linux DistributionsUbuntu, 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
VirtualizationRefers 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 toolsVMware, KVM, Xen, VirtualBox , Vagrant
Configuration ManagementSystems 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 toolsPuppet / MCollective, Chef, Ansible, CFEngine, SaltStack, RANCID, Ubuntu Juju
Monitoring toolsNew Relic, Nagios, Icinga, Graphite, Ganglia, Cacti, PagerDuty, Sensu
Network protocolsTCP/IP (transfering data in computers and internet), HTTP (internet protocol), HTTP/2, WebSockets
Web serversApache, Tomcat (mainly for Java), IIS (mainly for C#), jBoss (Java)
Development Methodologies
XPType 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.
TDDSoftware 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.
BDDEmerged from TDD. The idea is provide software development and management teams with shared tools and a shared process to collaborate on software development
KanbanKanban 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
ConcurrencySeveral computations are executing simultaneously, and potentially interacting with each other.
Cloud computingCloud 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 on-demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources.
Distributed systemSoftware 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
SecurityProcesses and mechanisms by which digital equipment, information and services are protected from unintended or unauthorized access, change or destruction
CachingCache is a component that stores data so future requests for that data can be served faster
ScalabilityAbility 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.
AvailabilityGuarantee that every request receives a response about whether it succeeded or failed
Performance optimizationPerformance tuning is the improvement of system performance.
FailoverFailover 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.
ClusteringGrouping a set of objects in such a way that objects in the same group (called a cluster)
RedundantComputer 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.
RobustAbility of a computer system to cope with errors during execution
RefactoringRestructuring 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.
TuningImprovement 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) requestsAsynchronous 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 socketsProviding 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.

Ursprünglich erschienen ist die Liste im Blog von Andrew Stetsenko.