Software Developer key topics and quick reference
Developers draw on a set of facts every day: what a status code means, which Git command does what, and the vocabulary of development practice. The reference tables on this page gather those facts. The notes below explain how to learn them and how they connect when you build and maintain real applications.
How this guide was made
Written for this site with AI assistance, then checked automatically before publishing. The topic table, sample questions, worked examples and study plan are generated from this site’s question bank: each worked example is recalculated by separate code, and each sample answer says where it came from.
The guide deliberately states no salaries, grades, pass marks or exam dates. Those change, and they could not be checked here, so take them from the advert itself.
This site is independent and is not affiliated with MIFOTRA or any employer.
Where to spend your study time
The suggested emphasis reflects what this position works with day to day. It is a study guide, not a published exam blueprint.
| Area | Suggested emphasis | Questions in the bank | Practise |
|---|---|---|---|
| Software development | 56% | 378 | In the full bank |
| Cloud and emerging technology | 22% | 188 | In the full bank |
| Cybersecurity | 11% | 541 | Security |
| Linux command line | 11% | 360 | In the full bank |
Status codes tell a story
HTTP status codes are grouped by their first digit: 2xx for success, 3xx for redirection, 4xx for client errors and 5xx for server errors. Learning the groups first makes individual codes easier to remember and helps you debug an API quickly, since a 4xx points to the request and a 5xx to the server.
Quick reference
HTTP status codes
| Code | Meaning |
|---|---|
| 200 | OK - the request succeeded |
| 201 | Created - the request succeeded and made a new resource |
| 204 | No Content - succeeded with nothing to return |
| 301 | Moved Permanently - the resource has a new permanent URL |
| 302 | Found - the resource is temporarily at a different URL |
| 304 | Not Modified - the cached copy is still valid |
| 400 | Bad Request - the server could not parse the request |
| 401 | Unauthorized - authentication is required or failed |
| 403 | Forbidden - authenticated but not allowed |
| 404 | Not Found - no resource at that URL |
| 405 | Method Not Allowed - wrong HTTP verb for this resource |
| 409 | Conflict - the request clashes with the current state |
| 429 | Too Many Requests - the client has been rate limited |
| 500 | Internal Server Error - the server failed unexpectedly |
| 502 | Bad Gateway - an upstream server returned an invalid response |
| 503 | Service Unavailable - the server is overloaded or down for maintenance |
| 504 | Gateway Timeout - an upstream server did not respond in time |
Git commands
| Command | What it does |
|---|---|
git clone | copy a remote repository, including its history, to a new local directory |
git status | show which files are staged, modified or untracked |
git add | stage changes for the next commit |
git commit | record the staged changes as a new commit |
git push | send local commits to a remote repository |
git pull | fetch from a remote and merge into the current branch |
git fetch | download remote commits without merging them |
git branch | list, create or delete branches |
git checkout | switch branches or restore files in the working tree |
git merge | join another branch’s history into the current one |
git rebase | replay commits onto a new base, rewriting their history |
git log | show the commit history |
git diff | show changes between commits, the index and the working tree |
git stash | set aside uncommitted changes and restore a clean working tree |
git revert | create a new commit that undoes an earlier one |
git reset | move the branch pointer, optionally changing the index and working tree |
Software Development terms
| Term | Meaning |
|---|---|
| API endpoint | A specific URL a client calls to reach one operation of a service |
| Big-O notation | A description of how an algorithm’s cost grows as the input grows |
| CI/CD | Automatically building, testing and releasing changes as they are merged |
| Compiler | A tool translating source code into machine code ahead of running it |
| Encapsulation | Keeping an object’s internal state private and exposing behaviour instead |
| Foreign key | A column referencing the primary key of another table |
| Inheritance | Deriving a class from another so it reuses and extends that behaviour |
| Integration test | A test exercising several components working together |
| JSON | A text format representing structured data as objects, arrays and primitives |
| Normalisation | Organising tables to remove redundancy and update anomalies |
| Primary key | A column whose value uniquely identifies each row in a table |
| Race condition | A defect where the result depends on the timing of concurrent work |
| Recursion | A function solving a problem by calling itself on a smaller case |
| Refactoring | Changing a program’s structure without changing what it does |
| REST | An architectural style using HTTP verbs and URLs to act on stateless resources |
| Stack | A last-in, first-out collection |
| Technical debt | The future cost of a shortcut taken in design or implementation |
| Unit test | A test exercising one small piece of code in isolation |
Git as a safety net
Git commands matter because they let teams change code safely. Know how to create a branch, commit with a clear message, bring in changes from others, resolve a conflict and undo a mistake. Questions often ask which command fits a situation, such as updating a branch or reviewing history.
Development vocabulary
Terms such as refactoring, technical debt, idempotent, race condition and dependency injection come up in interviews, documentation and tests. Understanding them precisely helps you communicate with other developers.
Be ready to explain
- The difference between 401 and 403.
- What
git rebasedoes compared withgit merge. - Why an idempotent API operation is safer to retry.
- What a race condition is, with a simple example.
- Why technical debt slows a team down over time.
Common questions
Do I need to memorise all the HTTP status codes?
Learn the groups and the common codes well. Rarer codes can be looked up, but tests often include the common ones.
Which Git commands are most important?
The ones for everyday work: clone, status, add, commit, branch, switch or checkout, pull, push, merge and log.
More Software Developer guides
- Software Developer exam: what is tested and how to prepare
- Software Developer practice questions with answers
- Software Developer calculations with worked answers
- Software Developer interview questions and answers
- 30-day Software Developer exam study plan
- Software Developer skills and qualifications
- Software Developer job description and duties
- How to become a Software Developer in Rwanda
- Software Developer exam mistakes to avoid
- Software Developer CV: what to include
- Certifications worth getting as a Software Developer