> For the complete documentation index, see [llms.txt](https://hanfak.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanfak.gitbook.io/workspace/career/how-to-get-into-junior-dev-position.md).

# how-to-get-into-junior-dev-position

* Learn about computers, software etc for a general overview
  * Have you computer setup - software, ide, install stuff etc
* Learn how to use the command line
  * line about operating systems, just read about the ideas
  * search, list, navigate, viewing, permissions, manipulate files and folders
  * pipes, nano/vim
  * env variables, process
  * bash scripts, bash profiles
* Learn git, github and how to use them
  * init, add, commit, push, pull, clone, fork, branch, remote, merge, reset, stauts, logs,  pull requests
  * command line, and via gui
* Learn the basics of a language
  * variables (creating, updating, types), decisions, looping, methods
  * comments, maths statements, printing output
  * Input from terminal, handle strings, regex
  * Files - reading, writing
  * arrays, Lists and maps
  * Use libray methods that come with language, read documentation
  * Do python or java track on <https://www.codecademy.com/>
  * Do some small exercises  to solve problems <https://www.codewars.com/>, be able to read the solutions of others
  * Do fizzbuzz
  * Automate something, get used to building a script that does something useful
* Use an IDE (intellij/vscode), learn short cuts and its main features, use plugins
* Learn how to split requirements into actionable features in your code
* Learn object oriented design
  * Start using java or typed language
  * Topics ????
  * Do fizzbuzz
* Learn to use build and dependency manager like maven/gradle
* Learn to write tests
  * learn to use a mocking framework
* Build a program in OO way
  * fizzbuzz
* Learn TDD
* Solve some simple OO problems
  * Airport
* Learn how the internet works
  * http, https, http/2, tcp, ip, networks, OSI model, tls, rest, soap, ftp, dns, wireshark, push/pull, websockets, browsers/clients, browser dev tools, headers
  * api, formats (xml, json), postman, cache,
  * html, css, javascript for front end
* Learn about databases
* Learn more features of the language and libraries
  * functional
  * Call http api and learn how http/networks works
  * use a database, sql and nosql
  * Build a webserver
  * serialize and deserialize standard formats like json, xml
  * use properties
  * create and run jars
* Create an api in agile manner
  * learn about agile
* Dockerise app and run
* Go deeper in to the langauge, frameworks, design/engineering, frontend, devops, computer science, integration, caches, proxies, load balancers, container management
* More projects
  * build something wiht front end that people can use
  * refactor some  good to be better engineered
  * Increase performance
