Useful Software Engineering Resources

Useful Resources For Software Engineers


It’s hard to remember everything you learn over the years especially if you don’t use it very often. That’s why I think it’s good to have a compilation of cheatsheets, reference books or other types of resources like blog posts/videos/PDFs. 

So in this post, I will “bookmark” some useful software engineering resources and cheatsheets for myself(or anyone else who stumbles upon this post).

PDFs on Almost Anything Software Related

This site has an absolutely amazing collection of very detailed PDFs with lots of information compiled from different online sources.

You will find pdfs on lots of computer-related stuff. For example, programming languages: Javascript, PHP, Java, C, C++, C#, … frameworks: .NET,  Angular, React, … plus other various tools and algorithms.

And best of all it’s all completely free! Check it out here.

Software Design Patterns

This is a cheat sheet of software design patterns. When you are designing software it’s useful to check/keep in mind some of these patterns as they might “nicely” and effectively solve your problem.
I originally found this design pattern cheat sheet here.
Software Design Patterns
Software Design Patterns 2
I also found a nice pdf online that explains these design patterns a little bit more detail.

System Architecture Design Patterns

Similar to software design patterns there are also common design patterns for the whole system/software architecture. This blog post here summarizes 10 of the most common ones.

I mainly work with Azure cloud and microservices/distributed services. I’ve found the following learning resources provided by Microsoft to be quite useful:

Big O Notation and Computational Complexity

Here you can find a Big O notation(both space/time complexity) cheat sheet for common algorithms and data structures.

Neural Networks

This is a collection of different neural networks. The original image and explanations for each neural network can be found here.

Git and Gitflows

Most of the time I prefer using UI-based git tools that are part of the IDEs I use(Visual Studio, VS Code) or a separate app like the Github Desktop. However time to time you might need the git CLI commands. 

In such cases, a git cheat sheet comes very handy: git cheat sheet pdf from Github or git cheat sheet pdf from Gitlab

Git workflows are different ways of organizing or structuring your git  repository branches and commits/merges. There are a few common workflows in the sketch below:
git workflows

Here is a great explanation of different git workflows made by Atlassian.

Brush Up Your Math Skills

Brush up your math skills with or with 3Blue1Browns videos.

Writing Documentation

A lot of times I simply use something like Word or OneNote to write brief technical documentation. And I use to make all sorts of diagrams for my documentation.
Another tool I also like to use is BookStack. It has more advanced and better-integrated features. But the best of all is that it’s free and can be self-hosted. 

The most obvious type of code documentation are inline comments within your source code. 

I mostly work with .NET and Visual Studio where XML comments are supported by the IDE. These can either be used by IntelliSense to provide you with information when coding or by tools like DocFX that automatically generate documentation for your code from the XML. Meanwhile, if you are working with PHP check out phpDocumentor.

Visual Studio also has features such as class diagrams to view your classes and code maps that will visualize the code flow/dependencies for you automatically.

Last But Not Least This Very Blog

Last but not least feel free to check out some of the posts on this very blog.

Leave a Reply

Your email address will not be published.

The following GDPR rules must be read and accepted:
This form collects your name, email and content so that we can keep track of the comments placed on the website. For more info check our privacy policy where you will get more info on where, how and why we store your data.

Advertisment ad adsense adlogger