Personal Software Developer Growth Plan

Introduction

Knowing every framework, tool, language and library is not possible, nor is it the goal of a software engineer. This is a continually improving personal plan to help me grow as an engineer capable of solving meaningful problems.

Resources

Problem solving practise

Learning platforms

Practice

Fundamentals of a full stack web developer

The goal is to be able to create and deploy an end to end web application from scratch; as well as contribute effectively to an established project.

How the web works

Intro

Deeper

Full stack web development

Intro

Deeper

Web relevant programming languages

Ruby

Javascript

Battle-tested web framework (rails)

Intro

Deeper

Front-end library (react)

Intro

Deeper

Databases and datastructures

Intro

Deeper

Core tools

Git

Terminal

Text Editor

Browser dev tools

Developer experience tools

According to the Pragmatic Programmer book, aim to do the following actions using only the keyboard with your text editor of choice
  • Edit text by selecting by character, word, line, paragraph
  • Move selected character, word, line, and paragraph
  • Find exact/partial matched word, pattern, delimiters, function, etc
  • Indent and reindent block of code
  • Comment and uncomment blocks of code
  • Undo and redo changes
  • Split the editor window into multiple rows or columns, and jump between them
  • Go to a specific line number
  • Sort selected lines by descending and ascending
  • Create multiple cursors to select and edit the text in parallel.
  • Open new terminal and problem windows in the current project.
  • Start service and run all/specific test cases in project
  • Fundamentals of software craftsmanship

    General craft

    Object Oriented Programming

    Design and software architecture

    Refactoring

    Testing

    Security

    Intro

    Deeper

    Performance

    DevOps

    Fundamentals of computer science

    This is the lifelong journey of learning the computer science foundations that will stand the test of time.

    Resources

    Low-level programming

    Recommendations from co-workers on low-level programming resources.

    Healthy reminders and inspiration

    Peak under the magic

    There is no rush

    The place of books

    The place of courses

    growth