- Acquire the skills
- find a project and contribute
- repeat until you find you are valuable to a project or you learn what project you should start !
IT might not be for everyone, but for those who want to get into the field almost everything a person requires to be able to "skill up" and develop "solid skills" is available for free online these days. I say almost because , yes some sort of modern-ish computer and an internet connection are both required to access the wealth of information and training material that is currently available. A reasonable computer with say 4GB ram and an internet connection with one or 2 GB of data per month is going to be quite functional to get started learning programing which I encourage is necessary to getting a technology job in the IT industry.
Why do I say that programing is necessary ? Well it is because learning programing and gaining some skills in "developing code" are fundamental to gaining an understanding of how computers function and how problems are solved with computers. Think of it like a musician learning to read music, or perhaps a surgeon learning anatomy, these are base skills that enable the acquisition of further skills. (Also yes, I am actively ignoring AI and chatGPT, coPilot for now but access to these can certainly help learn today even as they may change things fundamentally in the not too distant future )
So let's assume you have a functional computer and an internet connection and you can access the (free) learning resources available online, so then what should you do ? Here are my suggestions, they are not they only ways you can proceed of course but hopefully they are useful.
- Firstly learn some python or java (see https://docs.python.org/3/tutorial/ for python tutorial) try running as many examples as you can find and modifying them to see what happens (maybe download Visual Studio Code to enable you to edit and run the examples)
- make sure you understand how to start a simple python web server and serve pages from it
- make sure you understand how Python (or Java) classes work, and how object oriented programing is different from purely procedural code.
- Learn about modern cloud native applications and this means containers , e.g. docker (see docker.io)
- Learn about modern cloud platforms such as Amazon AWS, or Microsoft Azure or Google GCP or perhaps try using the free resources at Oracle Cloud Infrastructure
- understand how to login and how to create Virtual Machines , virtual networks and security rules
- Learn about Kubernetes maybe on one of these cloud platforms using a free trial account including :
- deploying kubernetes clusters
- kubernetes namespaces
- deploying applications to kubernetes with HELM 3.0
- kubernetes RBAC and security
- learn about CI/CD and automation of cloud and development tasks using Circle-CI, GitLab or Jenkins.
Once you have started to get some confidence with some of these skills here is the next important step. Find a modern cloud-native opensource project and start looking at how to contribute. When I say contribute I mean :
- find out about the goals of the project and see what tasks are needing to be done i.e. find the documentation and any tutorials and perhaps try running the software to learn about it
- find the issues list and then see if you can apply your skills to solving some of the simpler/smaller outstanding issues.
- Join in the discussion lists and offer your contributions back to the community (ask and learn the processes for contributions)
What typically happens is that as you contribute to a project and your contributions are seen as valuable, then a number of things follow :
- You gain detailed knowledge of the project AND you vastly improve your IT skills, i.e. those IT skills that are required by the project and many ancillary ones.
- You start to get involved into the OpenSource community and into the discussions and this normally opens employment opportunities
- You build your resume , and you increase your prospects for employment not just on the opensource project you are contributing to but much more broadly because of your expanding skill set
- You may start to see new project and business opportunities and learns about ways to start your own business.
Persistence and diligence are the biggest skills you need to bring. When you meet something you do not understand, persist in trying to solve it , get deeper understanding of it or work around the issue if it is a blocker of larger goals. Google and more recently chatGPT are great at helping you both find resources to solve problems , but these are only helpers it is your persistence and willingness to try many many things that is ultimately your biggest asset in any IT related goal you have.