Skip to main content

Command Palette

Search for a command to run...

My learning path to software engineer

Updated
•6 min read•View as Markdown
My learning path to software engineer
G
Building at the Intersection of Software Engineering, AI and Sales | Enterprise Software Sales Leader in Career Transition | Ex-Sales Director @ Genesys & MSFT

Since the COVID-19 pandemic, I've become interested in software engineering. Even though I'm an electronics and telecommunications engineer, 20 years ago I had no real experience with software technologies for frontend or backend — neither at university nor at my first jobs. But the lockdown gave me time to explore new technical concepts, libraries, and frameworks, and it was definitely the seed that made me want to become a software engineer.

Over these last 2 years, I've had the opportunity to learn about software from several sources and online education platforms, but the most remarkable one — and my personal recommendation — is www.frontendmasters.com (FEM), with all content in English. It includes extensive learning paths in programming languages, frontend libraries and frameworks, and backend technologies. All of these courses and options can be overwhelming, so I decided to share the path I'm currently following and the rationale behind those decisions.

The primary goal

Every good plan starts with a primary goal upfront, and after many iterations, I've decided I want to be an engineer with the skills to create applications that solve real problems for users — applications with the following attributes:

  • End-to-end applications deployed in the cloud, covering frontend, backend, database, and APIs

  • Beautiful user interfaces (UI) with smooth and intuitive user experiences (UX)

  • Responsive design that displays properly on mobile, web, and desktop screens

  • Scalable and maintainable architectures in both frontend and backend

  • AI-native or AI-enhanced applications that leverage the power of artificial intelligence technologies such as agents, LLMs, and RAG, among others, to create compelling and innovative capabilities that improve or speed up business outcomes

It can be a daunting goal. In fact, it is. But with that goal in mind, it's easier to break the job down into small, digestible steps that allow me to learn and enjoy the process.

The big steps

To reach my goal, I've structured my learning process into key phases that cover the minimum knowledge required to build end-to-end applications. These steps are:

Programming Language

I have chosen TypeScript (a JavaScript superset). It's a compiled, strongly typed language, well supported by Microsoft and the community, with a clear roadmap. For me, the main reason was the possibility of using it not just in the frontend (every browser supports JavaScript, which is the result of compiling TypeScript) but also in the backend, so I can develop core applications for Node.js (among other runtimes) using TS/JS. In my case, it's just a matter of time.

Some useful resources for learning TypeScript:

📌 The TypeScript Handbook (free): https://www.typescriptlang.org/docs/handbook/intro.html

📌 Frontend Masters' path (paid): https://frontendmasters.com/learn/typescript/

React.js in the Frontend

There are a lot (I mean… a lot) of frameworks and libraries for developing beautiful and functional user interfaces. I selected React.js because it's currently the most in-demand and widely used framework across several industries. There is extensive documentation, along with courses and tutorials. Even though support and future development recently migrated from Meta to The React Foundation, companies like Amazon, Huawei, Meta, Microsoft, and Vercel back its continued evolution. The main reason here: adoption in enterprises and startups.

Some available learning resources:

📌 React.js (free): https://react.dev/learn

📌 React.js Tutorial for Beginners on YouTube (free): https://youtube.com/playlist?list=PLC3y8-rFHvwgg3vaYJgHGnModB54rxOk3&si=o7qhFfrwYhdp-L5g

📌 Frontend Masters' path (paid): https://frontendmasters.com/learn/react/

Next.js for frontend and backend

Although I have some previous experience with Express.js, I decided to adopt Next.js as a backend framework that lets me develop the API connecting front and back — all with the power of React.js components. Next.js is sponsored by Vercel, and the option to deploy directly to Vercel's platform, where I've already deployed some small projects, gives me solid knowledge of a well-known enterprise framework. It's recommended to have some experience with React.js to speed up the learning process for Next.js, and I personally recommend the following resources:

📌 Next.js tutorial from Vercel (free): https://nextjs.org/learn

📌 Next.js Foundations (free): https://vercel.com/academy/nextjs-foundations

📌 Frontend Masters' path (paid): https://frontendmasters.com/learn/react/

Data Structures & Algorithms

Building real backend apps requires you to know about data structures and algorithms. It's perhaps the toughest part of the process, but it's highly recommended if you really want a rewarding job as a software engineer. Based on what I know so far, I recommend these 2 resources:

📌 Algorithms by Abdul Bari (free): https://www.youtube.com/playlist?list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O

📌 Grokking Algorithms, Second Edition: An Illustrated Guide for Programmers and Other Curious People (paid): https://www.manning.com/books/grokking-algorithms

Databases

Like every step listed here, databases alone are a knowledge area that could take months or years to master. My goal isn't to become an expert; it's to be able to build something with enough background to ship it. So my path includes these 2 courses, which cover the fundamentals of databases and the details of SQL, the most widely used query language for databases.

📌 Complete Intro to Databases, v2 (paid): https://frontendmasters.com/courses/databases-v2/

📌 Complete Intro to SQL & PostgreSQL (paid): https://frontendmasters.com/courses/databases-v2/

AI Agents

This is one of the hottest and most exciting areas to learn right now. There are also plenty of frameworks and platforms for deploying agents, but my goal here is to build agents from the ground up with a complete framework, leveraging the power of AI. Mastra.ai 's team is doing a great job developing the open source framework and platform and since mastra supports Typescript, is the chosen option in this phase. The purpose of having agents in web apps is to handle many backend or frontend tasks through them. If you really want to understand the basics, I highly recommend these 2 free courses:

📌 Mastra 101 — Learn how to build agents (free): https://mastra.ai/course

📌 Build Your First Agent in TypeScript (free): https://mastra.ai/learn

Deployment on the Cloud

Once you have the application built, the final step is to deploy it to the cloud to make it available to users. The 2 options I'm considering so far are Vercel and AWS, although I'll try the first one initially.

📌 Vercel Academy (free): https://vercel.com/academy

📌 AWS Cloud Practitioner Essentials (free): https://skillbuilder.aws/learn/94T2BEN85A/aws-cloud-practitioner-essentials/8D79F3AVR7

My Software Engineering Journey

In future posts, I'll document my key learnings at each step. I'll also share the capstone project I'll be building incrementally to put what I've learned into practice.

I look forward to having you back here.

Gustavo