Skip to content

Instantly share code, notes, and snippets.

@kapilreddy
Last active December 17, 2022 18:21
Show Gist options
  • Save kapilreddy/66d6d0b03ab06dbb5c4188a807442e9c to your computer and use it in GitHub Desktop.
Save kapilreddy/66d6d0b03ab06dbb5c4188a807442e9c to your computer and use it in GitHub Desktop.
Young software engineer basics

Hello! This document is for young software engineers. The goal of this document is to provide a foundation (and not overwhelm you).

Developer environment

A good dev environment is a great foundation to build and learn bigger things. Before learning any tech you should invest some time learning these basics. Treat this as if you are setting up your study table.

Shell

The shell is one of the most basic (and very powerful) ways to interact with your computer. This is where all the interesting things will start and end when you are writing software.

Resources:

Version control

Version control is the correct way to maintain a logical history and backup of your software. Version controlling your work is really important (even if you are working alone).

Resources:

Editor

Get comfortable at using one code editor. This will be your weapon of choice for a big chunk of your professional life. The worst time to choose a weapon is during a battle.

A few editors you can explore:

  1. VSCode (easy to learn, is bulky)
  2. Emacs (learning takes time, extremely customizable)
  3. Vim (light-weight, customizable)

Some code editors offer features that cater to a particular set of programmers. For example, Emacs is great to work with if you are focused on customization and configuration. VSCode is great if you want a more GUI-like experience. Most good editors will provide similar functionalities. Pick what works for you.

Resources: https://www.youtube.com/watch?v=Qmb5rh6Ulv4&list=PLrZy_FnT2vQ30DPqr8LnZaMpkWzTbQTg_&index=3

Learning a language

Focus on getting good at a programming language. The best way to learn a programming language is to pick a toy project.

You can pick one of these languages to start with:

  1. Python (easy syntax, huge ecosystem)
  2. Javascript (easy syntax, huge ecosystem, multi-paradigm)
  3. Clojure (slightly difficult, but very powerful)

Some projects you can try:

  • A basic Todo app
  • A tic-tac-toe game
  • Create your own (basic) calculator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment