DEV Community


Posted on

What would you put in a Software Engineering Basics Workshop?

For a couple of years, I have been teaching a workshop/bootcamp for new software engineering students in a few courses. This is the material we try to cover on day 1, just to make sure everyone is up to speed.

This is the outline of materials and activities. Click links to see material.

What do you think? Anything to add/tweak/change?

Software Engineering Basics

In this workshop, you will setup a local (or virtual environment) consisting of several tools, programming languages, and libraries, to support software engineering work. You will also practice workflows needed to be productive in software engineering.

The primary goal of this workshop is for you have to have installed and learned a set of relevant tools (and processes in your head) for software development.

  1. Setup. Getting started. Get some tools on your machine.
    • [ ] Practice: Installed package manager for os.
    • [ ] Installed git, java, python2, nodejs
    • [ ] Optional: Make Windows Awesome
  2. Shells. Basic overview of unix shells, shell programming, and windows shell tips.
    • [ ] Practice: Run commands to analyze data
    • [ ] Setup env variable.
    • [ ] Optional: Write a shell script.
  3. Version Control with Git. Basic overview of git. Two interactive tutorials for learning commands.
    • [ ] Complete basic Git tutorial
    • [ ] Complete 4 levels in Introduction to Git Commits
    • [ ] Practice: Creating a repo
    • [ ] Optional: Solve all git branching levels
  4. Markdown and IDES. Overview of markdown basics, lists, code, tables. Recommended editors for code. Creating Github Pages.
    • [ ] Install IDE(s)/Editors
    • [ ] Practice: Update markdown in
    • [ ] Optional: Create a GitHub Pages (gh-pages branch)
  5. Virtual Environments. Tools for creating and managing virtual computing environments.
    • [ ] Install VirtualBox and Baker
    • [ ] Create a simple virtual machine
    • [ ] Optional: Create your own environment
  6. Task Management. Using Github issues and Trello boards for task management.
    • [ ] Create issue on GitHub with this checklist (filled in)
    • [ ] Try trello

Top comments (0)