It's a vast world
The tech world is an exciting space with numerous resources, which can be both frustrating and overwhelming to navigate, especially for beginners and hobbyists trying to understand the domain and its intricacies. There are numerous guidelines in the tech space, as well as many free and easily accessible resources online. Unfortunately, this blog does not cover everything available, but it provides a specific and straightforward guide to navigating the tech world and its resources.
To group or not to group
The tech world has several key terminologies: front-end, back-end, full-stack, Ops, SysOps, DevOps, SRE, Product Manager, etc. These terms apply to specific focus areas, and a couple of base concepts are needed to see through them. I will share a couple of links to get started and discuss them briefly. Hopefully, by the end of this blog, you will be able to make a well-informed decision about technology and what you are looking to achieve with it.
Front end
The term frontend developer/engineer usually refers to techies who are more concerned with how users interact with a website or app; think of the visual elements here, from the colours to designs, to how texts are arranged and how users feel when they interact with the application a term that is now commonly known as User Interaction/Experience(UI/UX)
Here are a couple of suggested links for starting your path in front-end as a techie:
Web Basics
UI/UX compiled courses on Google Drive
Twitter resources:
Some Projects that you should build after learning HTML, CSS, and JavaScript
Back end
A techie who is concerned with the part of the application that a user can't see (The server-side) is usually called a back-end engineer, and it gets grey from here, especially if the engineer also gets involved with infrastructure and deployment ( a bit of DevOps)
To excel in this part of tech, you need knowledge of server-side scripting languages like Python, Golang, NodeJS, Ruby, Rust, Scala, etc.
To get started with Backend, you need to learn the basics of these languages and build mini-projects. And as you build, you'll get to pick up some basic concepts like how to design APIs, what webhooks are, and how to create a simple CRUD app like a Todo list or come up with something cool. Be sure to ask Google if you are unsure what to build or learn.
Here are some helpful links, including GitHub links to reference for learning and improving your backend skills
- Python School Github
- Python blog topics
- Learn Go by example - A simple GitHub project to apply the concept
- Learn NodeJS
- Learn Ruby the Hard Way
Basic Web Agnostic Concepts
- What are APIs? - Create an API in Python
- Webhooks Explained
- SOLID principles
- Model View Controller Pattern
- Publish-Subscribe Pattern vs Message Queues vs Request Response
If you're a fan of reading and collecting books about technology, then the following link will be more than helpful to you.
Programming Notes for Professionals books - All free and will help you in your journey to becoming a world-class engineer.
Every Other thing - Fullstack, DevOps, Machine Learning, Data Science....
If you are interested in Blockchain technology, storing data in blocks that are linked to form a chain. You can reference this link as a quick primer, and then go to this course
blockchain basics to get the hang of it.
Other resources for base knowledge of blockchain or web3.js are:
Microsoft also has a fascinating collection of learning resources for beginners in Web Development, Machine Learning, IOT, and Data Science.
One more thing, if you are interested in architectural designs and patterns, here are two interesting links that you may find useful.
Now that we have gone through a non-exhaustive list of resources, I believe you can take a leap from here and explore further on what best suits you in the world of tech.