Software engineering is the construction and maintenance of software products.

Step #1: Learn itStep #2: Apply itStep #3: Stay up-to-date

Access the following free resources from across the web. Note that Bootstrap Ed does not own any of the resources featured on this page.

Software Engineering Overview

  • David Evans – Introduction to Computing
  • MIT – Introduction to Computer Science and Programming Spring 2011 (6.00SC), Lecturer: John Guttag
    • 38 sessions, approximately 50 minutes each
    • Playlist
  • MIT – Introduction to Computer Science and Programming in Python Fall 2016 (6.0001), Lecturer: Ana Bell
    • 12 lectures, approximately 45 minutes each + supplemental shorts
    • Playlist
  • ComputerScience.org – Computer Programming Languages
  • Google Developers – Foundations of Programming
  • Google Developers – Advanced Programming
  • MIT – Programming for the Puzzled IAP 2018 (6.S095), Lecturer: Srini Devadas
    • 11 lectures, approximately 20-60 minutes each
    • Playlist
  • Toptal – Introduction To Concurrent Programming: A Beginner’s Guide
  • Lawrence Livermore National Laboratory – Introduction to Parallel Computing
  • MIT – Introduction to Algorithms (SMA 5503) Fall 2005 (6.046J / 18.410J); Lecturers: Charles Leiserson, Erik Demaine
    • 23 lectures, approximately 75 minutes each
    • Playlist
  • MIT – Design and Analysis of Algorithms Spring 2015 (6.046J), Lecturer: Srinivas Devadas
    • 24 lectures, approximately 20-80 minutes each
    • Playlist
  • MIT – Algorithmic Lower Bounds: Fun with Hardness Proofs Fall 2014 (6.890), Lecturer: Erik Demaine
    • 23 lectures, approximately 80 minutes each
    • Playlist
  • MIT – Computational Science and Engineering I Fall 2008 (18.085), Lecturer: Gilbert Strang
    • 50 sessions, approximately 50 minutes each
    • Playlist
  • MIT – Circuits and Electronics Spring 2007 (6.002), Lecturer: Anant Agarwal
    • 26 sessions, approximately 50 minutes each
    • Playlist
  • MIT – Introduction to Electrical Engineering and Computer Science I Spring 2011 (6.01SC), Lecturer: Dennis Freeman
    • 27 sessions, approximately 10-75 minutes each
    • Playlist
  • MIT – Performance Engineering of Software Systems Fall 2010 (6.172); Lecturers: Charles Leiserson, Saman Amarasinghe
    • 24 sessions, approximately 75 minutes each
    • Playlist
  • GCF Global – What is an operating system?
  • Cracking the Data Science Interview – The 10 Operating System Concepts Software Developers Need to Remember
  • Software Testing Class – Beginners Guide To Software Testing
  • ReQtest – The A to Z Guide to the Software Testing Process: Test Plan, Test Design, Test Execution & Test Closure
  • Software Testing Help – Test Plan Tutorial: A Guide to Write a Software Test Plan Document from Scratch
  • Software Testing Help – How to Write Test Cases: The Ultimate Guide with Examples
  • Free Code Camp – Your Ultimate Guide to Writing QA Documentation
  • Software QA Test – Software QA and Testing Frequently-Asked-Questions, Part 1
  • Tutorials Point – Software Architecture & Design Introduction
    • Work through the 12 sections (see left pane)
    • Reading
  • Packt – Developer’s guide to Software architecture patterns
  • Hacker Noon – 38 Actions and Insights to Become a Better Software Architect
  • Course Report – Coding Bootcamp Glossary of Key Terms

..

Data and Databases

  • Jay Wengrow – A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills
  • MIT – Advanced Data Structures Spring 2012 (6.851), Lecturer: Erik Demaine
    • 22 lectures, approximately 80 minutes each
    • Playlist
  • MIT – Signal Processing on Databases Fall 2012 (RES.LL-005 D4M), Lecturer: Jeremy Kepner
    • 18 sessions, approximately 10-60 minutes each
    • Playlist

..

Math for Software Engineering

  • MIT – Single Variable Calculus (18.01), Lecturer: David Jerison
    • 39 lectures, approximately 50 minutes each
    • Playlist
  • MIT – Homework Help for Single Variable and Multivariable Calculus (18.01SC, 18.02SC); Lecturers: Christine Breiner, David Jordan, Joel Lewis
    • 87 videos (problem set solutions), approximately 5-10 minutes each
    • Playlist
  • MIT – Multivariable Calculus (18.02), Lecturer: Denis Auroux
    • 35 lectures, approximately 50 minutes each
    • Playlist
  • MIT – Homework Help for Multivariable Calculus (18.02SC), Lecturer: Joel Lewis
    • 70 videos (problem set solutions), approximately 5-10 minutes each
    • Playlist
  • MIT – Calculus of Complex Variables, Differential Equations, and Linear Algebra, Lecturer: Herbert Gross
    • 20 lectures, approximately 35 minutes each
    • Playlist
  • MIT – Linear Algebra (18.06), Lecturer: Gilbert Strang
    • 35 lectures, approximately 45 minutes each
    • Playlist
  • Khan Academy – Calculus
    • 199 videos, approximately 5-15 minutes each
    • Playlist
  • MIT – Fundamentals of Statistics (18.650), Lecturer: Philippe Rigollet
    • 24 lecturers, approximately 75 minutes each
    • Playlist
  • UC Irvine – Introduction to Probability and Statistics (Math 131A), Lecturer: Michael Cranston
    • 16 lectures, approximately 105 minutes each
    • Playlist
  • MIT – Mathematical Methods for Engineers II (18.086), Lecturer: Gilbert Strang
    • 29 lectures, approximately 50 minutes each
    • Playlist

..

Product Lifecycle, Process, and Related Functions

  • The Clever PM – The Product Lifecycle
  • MIT – Introduction to Lean Six Sigma Methods, IAP 2012 (16.660J), Lecturer: Earll Murman
    • 14 sessions, approximately 25-60 minutes each
    • Playlist
  • Agile Alliance – Agile 101
    • Click through each of the six sections (Agile 101, Agile Manifesto, etc.)
    • Reading
  • Aha! – Introduction to Agile Development
  • Aha! – What is scrum?
  • The Art of Product Management – What is a Product Manager?
  • Smashing Magazine – A Comprehensive Guide To Product Design

..

Careers

  • WikiHow – How to Become a Software Engineer
  • Lifehacker – What I Wish I Knew When I Started My Career as a Software Developer
  • Woz U – What’s the Typical Software Developer Career Path?
  • Scalable Path – 7 QUALITIES THAT DIFFERENTIATE A GREAT PROGRAMMER FROM A GOOD PROGRAMMER
  • GeeksforGeeks – Interview Preparation for Software Developer
  • Impact Interview – The Big List of 176 Software Engineering Interview Questions

..

Online Tutorials

Complete the following exercises to apply your newly acquired knowledge.

  • TUTORIAL: Develop your coding skills
    • Use a coding tutorial site (i.e., Codeacademy) to develop your coding skills in the language of your choice.
  • BUILD A PRODUCT: Develop a software product
    • Research a problem, devise a solution, design a minimum viable product, build a software product, and get feedback from users. While this requires a high degree of commitment, it is the best way to practice the work of a software engineer.
  • HACKATHON
    • Hackathons are time-bound “sprints” (often 24-48 hours) in which small teams compete to create the best product or prototype of a product. A panel of experts judges the creations and awards prizes. Participate in a hackathon in your area. Many are free to participate in.

Related topics: Computer Science, Data Science, Engineering

Want to keep learning for free? Check out all of our pages here.