Skip to main content

Week 1 - Setup and Tools

The first week we will learn about setting up the work Envoirnment and setup various tools which will be used during your daily routine. You can either use Linux and Windows for Dvelopement

For linux we recommend Ubuntu 20.04 LTS Windows use whatever is > Windows 7

Hardware

  • Please make sure to have a Full HD ( 1080p ) monitor
  • SSD as a storage setup
  • 8GB + Ram

Console - Use it when possible

Console is your firend so get comfortable with console based tools , to get a console on Windows please install Git SCM , use its console. Please learn to use the following commands

  • cd
  • ls
  • grep - Regex searching , recursive searching , listing files , piping seached files
  • head and tail
  • vim - Command mode and Insert , ! , wq , dd , w , %s , searching
  • ln
  • find - File Searching
  • xargs
  • tar
  • zip
  • curl
  • weget
  • ssh
  • scp

Source Control

In most cases you will be working in a team so you will be useing Git as the main source control tool , Install git and learn to do the following operations , you can use github to create a dummy account -

  • init , clone , commit , push , brach , merge , stash

As a exercise create a repo , edit a text file and push to the repo then do the following operations

  • Create a Repo on github and clone it locally
  • Make changes to a text file and push it to cloud
  • Create a brach and edit text file
  • Edit text file in branch and merge to main branch
  • Clone repo in a seprate directory and edit the file at multiple similar locations
  • Merge and resolve conflict

Editor

Though you can use vim for editing , we recommend using VSCode for editing and development. Its lightweight , free and maintaned by Microsoft with logs of addons availbile.

Package Managers

For different setups different package managers will be used , Depending on your install you will use one of the following -

  • apt
  • yarn
  • pip
  • composer

Virtual Machines

vagrant - Vagrant is a tool focused on providing a consistent development environment workflow across multiple operating systems.

Please install vagrant for your setup , this will help have a consistent work envoirnmnt acorss multiple platforms .

Misc tools

Some other misc tools we find helpful

  • Clipboard managers - Development is a lot of copy paste so a Clipboard manager helps ( W:Ditto )
  • Launchers - These tools help you quickly launch application / perform small operations in a small launchable app ( W:Launchy )
  • Text Editors - Small text editors to edit config files / hex editing etc ( W:pspad )