Hi! This document is meant to be a suggestion/guide on how to learn what I find to be fundamental to a software engineer; this is by no means an academic or exhaustive resource, and is based solely on my own experience as a software engineer and as a technical interviewer.
In order to become a fully-fledged sofware engineer, it's imperative to start from the fundamentals, but what is a software engineer to start with? Or better yet, an engineer? Well, according to Google, engineering is the application of the scientific, economic, social and practical knowledge, with the intent of inventing, designing, building, maintaining and improving structures, machines, devices, systems, materials and processes. A software engineer is therefore someone who applies practical knowledge to invent/design/build/maintain/improve software. This practical knowledge is what I aim to provide guidance on where and how to find.
Anybod