Resources

In the future, I'll make a blog post on how you can become a productive software engineer faster

A developer without an understanding of their environment is a carpenter without the knowledge of his workshop.

Some things you should know before coding are:

- PATH: What is it, how is it used, and how to modify it

- Linux: how to make a file executable

- Terminal: how to launch one on your OS with only your keyboard

Improving your Environment

Intro to Programming

Starting new projects

Read relevant awesome lists

The Copenhagen Book Git: Version Control System (Code History)

Git Advanced Tips

GitHub Desktop: GUI for git

I recommend learning to do everything within an IDE like VSCode

Full Stack / CRUD Developer

Database: PostgreSQL, use a managed PostgreSQL in production.

Backend: ASP.NET Core. Great performance, and comes with a lot of DX out of the box

When creating an ASP.NET project, use the dotnet CLI to select the WebAPI template for SPAs or the Web App template for Razor pages

If you use another backend framework, make the responses are as expected if the database restarts

You can install .NET either through Visual Studio C# Dev Kit, dotnet.microsoft.com, or Visual Studio

Frontend: use Vite to create a React or SolidJS TypeScript project combined with Inertia so that you are free to use any backend and still get server-side rendering for your single-page apps. Alternatively you can use Astro + API or the native SSR framework like Razor pages, Handlebars, htmx, Jinja2

You need to learn basic SQL while working on a project

Project idea: SSR blogging website with database schema upgrades and production deployments

Other Web Development (Frontend) Thoughts

Systems Programming

Desktop Apps

For one codebase and cross-platform, you can go with Tauri or Avalonia

Tauri & React Template Avalonia: crossplatform .NET desktop programming

When you need to use some specific APIs per operating system, I would suggest using a webview that uses a bridge to the native technology

Mobile Apps

Don't use react-native. Use Kotlin Jetpack Compose for Android and SwiftUI for iOS

You will need Android Studio and if targeting iOS you will also need a Macbook to install XCode

C & C++

Video Game Development

DevOps

Software for Software Development

docs: docusaurus Divvi Up Arcade: interactive software demoing Interview coders: no one likes leetcode interviewing

Must Have Software

Specific-Usecase Software & Websites

Toggle Theme