Giter VIP home page Giter VIP logo

pointers-for-software-engineers's Introduction

Pointers for Software Engineers Build Status

A curated list of topics to start learning software engineering

Pointers for Software Engineers is a complete open-source computer science curriculum, designed to cover the fundamentals and practical topics of software engineering most relevant to the industry today. Think of it as an alternative or supplement to college or bootcamp education. It aims to serve as a guidebook for beginners planning to make a career transition into software engineering, computer science students looking to expand their practical knowledge, and experienced engineers curious to seek references for other subject matters.

Each topic in this curriculum includes only a single reference for readers to gain familiarity and understanding in a short period of time. Tutorials with clear content structure and hands-on examples are selected over other references. Some would say it is taking a breadth-first search approach to computer science learning.

This curriculum is divided into four major sections: fundamentals, advanced, tracks, and subjects. Fundamentals cover the core part of computer science and are often required as the lower-division courses in universities. Advanced goes more in depth on various computer science subjects and are usually topics discussed in upper-vision university electives. Tracks outline the most common software engineering roles and provide relevant topics for introductory understanding. Subjects offer content for specialization fields researched in corporate research labs and startup initiatives.

If you are just starting, it is recommended to go through the fundamentals in order, then pick a subset of advanced topics to read at will. For the curious ones, use tracks and subjects as references when choosing career options that most interest you.

Table of Contents

  1. Fundamentals
    • CS 101
    • Data Structures & Algorithms
    • Operating Systems
    • Shell, Git, editors, and more
  2. Advanced
    • Web Applications
    • Databases
    • Programming Languages
    • Compilers & Interpreters
    • Networking
    • Security
    • Miscellaneous
  3. Tracks
    • Systems Engineering
    • Product Engineering
    • Machine Learning & Data Engineering
    • Security Engineering
    • Game Engineering
    • QA Engineering
  4. Subjects
    • Artificial Intelligence
    • Blockchain
    • Bioinformatics
    • Cybersecurity
    • Human-Computer Interaction
    • Theory

1. Fundamentals

CS 101

Data Structures & Algorithms

Operating Systems

Shell, Git, editors, and more

2. Advanced

Web Applications

Databases

Programming Languages

Compilers & Interpreters

Networking

Security

Miscellaneous

3. Tracks

Systems Engineering

Product Engineering

Machine Learning & Data Engineering

Security Engineering

Game Engineering

QA Engineering

4. Subjects

Artificial Intelligence

Blockchain

Bioinformatics

Cybersecurity

Human-Computer Interaction

Theory

Appendix

Why is a reference chosen over the others for a topic?

References are selected using the following order of criteria:

  1. Free and available online
  2. Primers over textbooks
  3. Learning by examples
  4. Content coverage on practical applications

How do I contribute?

Pointers for Software Engineers is meant to be an open-source curriculum under continuous updates by the community. All contributions are welcome by simply creating a pull request for review.

May I modify or distribute this project?

This project is released under MIT License. See here for more information.

pointers-for-software-engineers's People

Contributors

4iar avatar bevacqua avatar dascr32 avatar eladb1 avatar ergenekonyigit avatar gitter-badger avatar gnbaron avatar jdalleau avatar joelgallant avatar krisives avatar manueldelreal avatar mii9000 avatar nampnq avatar neophyt3 avatar noahpatterson avatar pacocp avatar ruskid avatar vicoyeh avatar zhmz90 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pointers-for-software-engineers's Issues

Organizing categories and items for clarity

I've already made a pull request, but I think this issue is more worth discussing than just implementing right away.

Since this is not one of those x-awesome lists, this repo does not have an established look and feel (see sindresorhus/awesome if you are unfamiliar). I understand that this list is small and that each category only has a few links, but it has grown quite a bit in the last few days, and I think that it is worth considering how best the repo should be organized.

It looks fine how it is, but my immediate thought is to organize the smaller items alphabetically (like this) to improve flow. I don't know what I would do with the categories, but I was once considering trying to expand the HTML & CSS portion into its own Web Development category, separating front-end JavaScript from back-end JavaScript.

I think it's worth talking about, and I hope someone else does too!

STL is not as relevant as it used to be.

I think this repo suffers from an inaccuracy. The standard library is not the STL. Newbies should not be using the STL, but instead the standard library.

I would have thought otherwise if the STL links weren't the only things on the list for C++.

[Dead Link] Learn Linux the Hard Way

The Wayback Machine tells me that the page cannot be displayed due to its robots.txt. It was working until this morning. Guess a new mirror will have to be found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.