📓
Aegion Learning Resources
  • Software Engineering
    • Basic Code Literacy
    • Frontend Development
    • Serverside Development
    • Communication Standards
  • Machine Learning
    • Environment Setup
    • Recommended Books
    • The Bare Minimum
    • Learning Pathway (Primary)
    • Data Pipeline Development
  • Career Development
    • Writing a Good Resume
    • SMART Goals
  • Electrical Engineering
    • Overview
    • Developing For Embedded Linux
  • Hardware Design
    • Designing Physical Objects
Powered by GitBook
On this page
  • General Skills:
  • Git:
  • Linux:
  • Python:
  • Regular Expression:
  • Docker and DevContainers
  1. Software Engineering

Basic Code Literacy

NextFrontend Development

Last updated 7 months ago

These are the skill that everyone must have to be able to work as a professional in today's world of software engineering. If you're about to graduate with a computer science degree, you must be proficient with all of the following skills.

General Skills:

Git:

Git is the most popular version control system used across all of Aegion’s projects. Being a distributed version control system, it allow for one to locally manage, merge and track changes in the source code. Knowing Git is essential for being able to work in team projects.

Tutorial:

Github Flow:

Linux:

Most modern day software development is done on Linux, being comfortable using the command line, being able shell into remote servers and working on the code residing there, being able to debug complex installation problems are characteristics of competent engineers. The only way you get good at this is by using Linux full time for development.

How to get started:

  1. Install an easy to use distro like Ubuntu (dual boot if you use windows)

  2. Start doing Python development

  3. Learn to manage multiple versions of Python, their libraries etc.

Python:

In this day and age, not knowing python is the equivalent of a person with a driving license but not knowing how to shift gears in a manual transmission car but for software engineering. At aegion, we strive to automate aspects of our engineering workflow and the easiest way to prototype these systems is using python. Python is a versatile scripting language that lets people rapidly create and test ideas that they are working with. Additoinally, it is the most popular language for machine learning libraries and is a necessary requirement for working on in the field.

Note: There are innumerable resources online for learning python. You should be able to learn Python within a day, but if you can't then your fundamentals for writing software need work

Tutorials:

Environment Setup:

As an intermediate user, you will start seeing challenges in managing dependencies and various versions of python environments. Here are some tools you need to use to start managing them better.

Regular Expression:

While learning programming languages is super important, there are certain “logic expressions” software engineers need to learn to be productive and also ensure that they can implement complex string parsing and pattern matching capabilities.

Tutorial:

Docker and DevContainers

Docker is the defacto standard in creating containerized software enviornments. While we do recommend everyone to install Ubuntu as the default operating system, we develop docker environments for each of the projects. Start with the following resources to get a basic understanding of docker, what it does and how to quickly check and see if docker is working.

Note: On ubuntu, follow these instructions to install docker.

Installation:

Tutorial:

Dev Containers in vscode:

Reference Repo:

Introduction to Git - TrainingMicrosoftLearn
Logo
Learn Git Branching
Logo
GitHub flow - GitHub DocsGitHub Docs
Collaborating with pull requests - GitHub DocsGitHub Docs
Algorithmic Thinking (Part 1)Coursera
Use this course if you're not able work in python easily:
GitHub - LinkedInLearning/algorithmic-thinking-with-python-foundations-2450259: Algorithmic Thinking with Python: FoundationsGitHub
Managing Multiple Python Versions With pyenv – Real Pythonrealpython
Dependency Management With Python Poetry – Real Pythonrealpython
RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCsRegexOne - Learn regular expressions with simple, interactive exercises.
Install Docker Engine on UbuntuDocker Documentation
A Docker Tutorial for BeginnersA Docker Tutorial for Beginners
https://code.visualstudio.com/docs/devcontainers/tutorialcode.visualstudio.com
Logo
Logo
https://code.visualstudio.com/docs/devcontainers/containerscode.visualstudio.com
GitHub - 0916dhkim/vscode-devcontainer-tutorial: Tutorial for Setting up Devcontainer in Visual Studio CodeGitHub
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo