Software Developer ICT Professionals
SaveWhat Does a Software Developer Do?
Software developers implement or program all kinds of software systems based on specifications and designs by using programming languages, tools, and platforms.
Resource recommendations may include affiliate links. Learn more
Where Do I Start?
Project Management
Understand project management and the activities which comprise this area. Know the variables implied in project management such as time, resources, requirements, deadlines, and responding to unexpected events.
Sign up to trackReady to go deeper? Pick up to 3 skills to focus on from the list below.
These are common skills for this role. Real-world experience matters more than ticking every box — use this as a guide, not a checklist.
Skills You Need to Become a Software Developer
Essential Skills
Essential Skills
-
EssentialProject Management knowledge
Understand project management and the activities which comprise this area. Know the variables implied in project management such as time, resources, requirements, deadlines, and responding to unexpected events.
-
EssentialEngineering Processes knowledge
The systematic approach to the development and maintenance of engineering systems.
No book recommendations available yet.
-
EssentialEngineering Principles knowledge
The engineering elements like functionality, replicability, and costs in relation to the design and how they are applied in the completion of engineering projects.
No book recommendations available yet.
-
EssentialIct Debugging Tools knowledge
The ICT tools used to test and debug programs and software code, such as GNU Debugger (GDB), Intel Debugger (IDB), Microsoft Visual Studio Debugger, Valgrind and WinDbg.
Recommended Books
1 book -
EssentialTechnical Drawings knowledge
Drawing software and the various symbols, perspectives, units of measurement, notation systems, visual styles and page layouts used in technical drawings.
-
EssentialComputer Programming knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) and of programming languages.
No book recommendations available yet.
-
EssentialIntegrated Development Environment Software knowledge
The suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface, such as Visual Studio or Eclipse.
No book recommendations available yet.
-
EssentialTools For Software Configuration Management knowledge
The software programs to perform configuration identification, control, status accounting and audit, such as CVS, ClearCase, Subversion, GIT and TortoiseSVN perform this management.
No book recommendations available yet.
-
EssentialAnalyse Software Specifications skill
Assess the specifications of a software product or system to be developed by identifying functional and non-functional requirements, constraints and possible sets of use cases which illustrate interactions between the …
Course recommendations coming soon.
-
EssentialCreate Flowchart Diagram skill
Compose a diagram that illustrates systematic progress through a procedure or system using connecting lines and a set of symbols.
Course recommendations coming soon.
-
EssentialDebug Software skill
Repair computer code by analysing testing results, locating the defects causing the software to output an incorrect or unexpected result and removing these faults.
Course recommendations coming soon.
-
EssentialDefine Technical Requirements skill
Specify technical properties of goods, materials, methods, processes, services, systems, software and functionalities by identifying and responding to the particular needs that are to be satisfied according to customer requirements.
Course recommendations coming soon.
-
EssentialDevelop Automated Migration Methods skill
Create automated transfer of ICT information between storage types, formats and systems to save human resources from performing the task manually.
Course recommendations coming soon.
-
EssentialDevelop Software Prototype skill
Create a first incomplete or preliminary version of a piece of software application to simulate some specific aspects of the final product.
Course recommendations coming soon.
-
EssentialIdentify Customer Requirements skill
Apply techniques and tools, such as surveys, questionnaires, ICT applications, for eliciting, defining, analysing, documenting and maintaining user requirements from system, service or product.
Course recommendations coming soon.
-
EssentialInterpret Technical Requirements skill
Analyse, understand and apply the information provided regarding technical conditions.
Course recommendations coming soon.
-
EssentialManage Engineering Project skill
Manage engineering project resources, budget, deadlines, and human resources, and plan schedules as well as any technical activities pertinent to the project.
Course recommendations coming soon.
-
EssentialPerform Scientific Research skill
Gain, correct or improve knowledge about phenomena by using scientific methods and techniques, based on empirical or measurable observations.
Course recommendations coming soon.
-
EssentialProvide Technical Documentation skill
Prepare documentation for existing and upcoming products or services, describing their functionality and composition in such a way that it is understandable for a wide audience without technical background and …
Course recommendations coming soon.
-
EssentialUse Software Design Patterns skill
Utilise reusable solutions, formalised best practices, to solve common ICT development tasks in software development and design.
Course recommendations coming soon.
-
EssentialUse Software Libraries skill
Utilise collections of codes and software packages which capture frequently used routines to help programmers simplify their work.
Course recommendations coming soon.
-
EssentialUse Technical Drawing Software skill
Create technical designs and technical drawings using specialised software.
Course recommendations coming soon.
-
EssentialUtilise Computer-Aided Software Engineering Tools skill
Use software tools (CASE) to support the development lifecycle, design and implementation of software and applications of high-quality that can be easily maintained.
Course recommendations coming soon.
Optional Skills (5 of 63 displayed)
-
OptionalInternet Of Things knowledge
The general principles, categories, requirements, limitations and vulnerabilities of smart connected devices (most of them with intended internet connectivity).
Recommended Books
5 books -
OptionalC++ knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C++.
Recommended Books
5 books -
OptionalJavascript knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in JavaScript.
-
OptionalC# knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C#.
-
OptionalAsp.Net knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ASP.NET.
-
OptionalPhp knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in PHP.
-
OptionalPython (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Python.
-
OptionalVisual Studio .Net knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Visual Basic.
-
OptionalXcode knowledge
The computer program Xcode is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is …
-
OptionalAnsible knowledge
The tool Ansible is a software program to perform configuration identification, control, status accounting and audit.
-
OptionalMatlab knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in MATLAB.
Recommended Books
5 books -
OptionalObjective-C knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Objective-C.
-
OptionalSwift (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Swift.
Recommended Books
4 books -
OptionalTypescript knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in TypeScript.
-
OptionalAjax knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in AJAX.
Recommended Books
1 book -
OptionalGroovy knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Groovy.
No book recommendations available yet.
-
OptionalJava (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Java.
Recommended Books
3 books -
OptionalKdevelop knowledge
The computer program KDevelop is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is …
-
OptionalRuby (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Ruby.
Recommended Books
2 books -
OptionalSalt (Tools For Software Configuration Management) knowledge
The tool Salt is a software program to perform configuration identification, control, status accounting and audit.
Recommended Books
2 books -
OptionalScala knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scala.
Recommended Books
1 book -
OptionalVbscript knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in VBScript.
-
OptionalApache Maven knowledge
The tool Apache Maven is a software program to perform configuration identification, control, status accounting and audit of software during its development and maintenance.
No book recommendations available yet.
-
OptionalCoffeescript knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in CoffeeScript.
Recommended Books
1 book -
OptionalJenkins (Tools For Software Configuration Management) knowledge
The tool Jenkins is a software program to perform configuration identification, control, status accounting and audit of software during its development and maintenance.
Recommended Books
1 book -
OptionalPerl knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Perl.
Recommended Books
1 book -
OptionalSap R3 knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAP R3.
Recommended Books
1 book -
OptionalScratch (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scratch.
No book recommendations available yet.
-
OptionalWorld Wide Web Consortium Standards knowledge
The standards, technical specifications and guidelines developed by the international organisation World Wide Web Consortium (W3C) which allow the design and development of web applications.
Recommended Books
2 books -
OptionalErlang knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Erlang.
No book recommendations available yet.
-
OptionalIct Security Legislation knowledge
The set of legislative rules that safeguards information technology, ICT networks and computer systems and legal consequences which result from their misuse. Regulated measures include firewalls, intrusion detection, anti-virus software …
Recommended Books
1 book -
OptionalMicrosoft Visual C++ knowledge
The computer program Visual C++ is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It …
Recommended Books
1 book -
OptionalPuppet (Tools For Software Configuration Management) knowledge
The tool Puppet is a software program to perform configuration identification, control, status accounting and audit.
No book recommendations available yet.
-
OptionalSoftware Anomalies knowledge
The deviations of what is standard and exceptional events during software system performance, identification of incidents that can alter the flow and the process of system execution.
No book recommendations available yet.
-
OptionalStaf knowledge
The tool STAF is a software program to perform configuration identification, control, status accounting and audit.
No book recommendations available yet.
-
OptionalAbap knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ABAP.
Recommended Books
4 books -
OptionalHaskell knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Haskell.
Recommended Books
1 book -
OptionalMl (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ML.
Recommended Books
2 books -
OptionalObject-Oriented Modelling knowledge
The object-oriented paradigm, which is based on classes, objects, methods and interfaces and their application in software design and analysis, programming organisation and techniques.
-
OptionalEclipse (Integrated Development Environment Software) knowledge
The computer program Eclipse is a suite of software development tools for writing programs, such as compiler, debugger, code editor, code highlights, packaged in a unified user interface. It is …
Recommended Books
1 book -
OptionalOpenedge Advanced Business Language knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in OpenEdge Advanced Business Language.
Recommended Books
1 book -
OptionalR knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in R.
Recommended Books
1 book -
OptionalSmalltalk (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Smalltalk.
No book recommendations available yet.
-
OptionalSas Language knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAS language.
-
OptionalApl knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in APL.
Recommended Books
1 book -
OptionalAssembly (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Assembly.
No book recommendations available yet.
-
OptionalCobol knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in COBOL.
No book recommendations available yet.
-
OptionalCommon Lisp knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Common Lisp.
No book recommendations available yet.
-
OptionalPascal (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Pascal.
Recommended Books
1 book -
OptionalLisp knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Lisp.
No book recommendations available yet.
-
OptionalProlog (Computer Programming) knowledge
The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Prolog.
No book recommendations available yet.
-
OptionalAdapt To Changes In Technological Development Plans skill
Modify the current design and development activities of technological projects to meet changes in requests or strategies. Ensure that the organisation's or client's needs are met and that any sudden …
Course recommendations coming soon.
-
OptionalCollect Customer Feedback On Applications skill
Gather a response and analyse data from customers to identify requests or problems in order to improve applications and overall customer satisfaction.
Course recommendations coming soon.
-
OptionalDesign User Interface skill
Create software or device components which enable interaction between humans and systems or machines, using appropriate techniques, languages and tools so as to streamline interaction while using the system or …
Course recommendations coming soon.
-
OptionalDevelop Creative Ideas skill
Developing new artistic concepts and creative ideas.
Course recommendations coming soon.
-
OptionalIntegrate System Components skill
Select and use integration techniques and tools to plan and implement integration of hardware and software modules and components in a system. Apply specific testing techniques to ensure integrity during …
Course recommendations coming soon.
-
OptionalMigrate Existing Data skill
Apply migration and conversion methods for existing data, in order to transfer or convert data between formats, storage or computer systems.
Course recommendations coming soon.
-
OptionalUse Automatic Programming skill
Utilise specialised software tools to generate computer code from specifications, such as diagrams, structured informations or other means of describing functionality.
Course recommendations coming soon.
-
OptionalUse Concurrent Programming skill
Utilise specialised ICT tools to create programs that can execute concurrent operations by splitting programs into parallel processes and, once computed, combining the outcomes together.
Course recommendations coming soon.
-
OptionalUse Functional Programming skill
Utilise specialised ICT tools to create computer code which treats computation as the evaluation of mathematical functions and seeks to avoid state and mutable data. Use programming languages which support …
Course recommendations coming soon.
-
OptionalUse Logic Programming skill
Utilise specialised ICT tools to create computer code composed of series of sentences in logical form, expressing rules and facts about some problem domain. Use programming languages which support this …
Course recommendations coming soon.
-
OptionalUse Object-Oriented Programming skill
Utilise specialised ICT tools to create computer code based on the concept of an "object" which is an abstract data type encapsulated with a set of "methods", which operate on …
Course recommendations coming soon.
-
OptionalUtilise Machine Learning skill
Use techniques and algorithms that are able to extract mastery out of data, learn from it and make predictions, to be used for program optimisation, application adaptation, pattern recognition, filtering, …
Course recommendations coming soon.