View on GitHub

AwesomeResources

An awesome list of computer science related resources.

Contents

  1. Introduction
  2. Communities
  3. Business/Career
  4. Services
  5. Software
  6. Programming
  7. Ethics, Law & Professionalism
  8. Learning Resources
  9. Linux Distributions
  10. Sysadmin
  11. Electronics
  12. Hypervisors and virtual machines
  13. Cyber Security Resources
  14. Other Interesting Stuff

Programming

  1. 54 C# Interview Questions and Answers
  2. How to create .NET Custom Guard Clause
  3. Health Checks in .NET 8
  4. MediatR Pipeline Behaviour
  5. Getting Started with PLINQ
  6. .NET January 2024 Updates
  7. Awesome Scalability

Patterns

  1. Essential Javascript Design Patterns
  2. Advanced Patterns Workshop

๐’๐ข๐ง๐ ๐ฅ๐ž๐ญ๐จ๐ง ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Ensures a class has only one instance and provides a global point of access to it.

  1. How to use the Singleton Pattern in Multithreading in .NET

๐…๐š๐œ๐ญ๐จ๐ซ๐ฒ ๐Œ๐ž๐ญ๐ก๐จ๐ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Defines an interface for creating an object, but leaves the choice of its type to the subclasses, creating an instance of it.

๐€๐›๐ฌ๐ญ๐ซ๐š๐œ๐ญ ๐…๐š๐œ๐ญ๐จ๐ซ๐ฒ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Provides an interface for creating families of related or dependent objects without specifying their concrete classes.

๐๐ฎ๐ข๐ฅ๐๐ž๐ซ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Separates the construction of a complex object from its representation, allowing the same construction process to create different representations.

๐๐ซ๐จ๐ญ๐จ๐ญ๐ฒ๐ฉ๐ž ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Creates new objects by copying an existing object, known as the prototype.

๐€๐๐š๐ฉ๐ญ๐ž๐ซ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Allows the interface of an existing class to be used as another interface.

๐ƒ๐ž๐œ๐จ๐ซ๐š๐ญ๐จ๐ซ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to sub classing for extending functionality.

๐Ž๐›๐ฌ๐ž๐ซ๐ฏ๐ž๐ซ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

๐’๐ญ๐ซ๐š๐ญ๐ž๐ ๐ฒ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Defines a family of algorithms, encapsulates each algorithm, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

๐‚๐จ๐ฆ๐ฆ๐š๐ง๐ ๐๐š๐ญ๐ญ๐ž๐ซ๐ง

Encapsulates a request as an object, thereby allowing for parameterization of clients with different requests, queuing of requests, and logging of the parameters.

Standards

  1. ISO 4217 - Currency Codes
  2. ISO 8601 - Date and Time Format
  3. ISO 31000 - Risk Management
  4. ISO/IEC 27001 - Information Security Management
  5. GraphQL Spec
  6. Open Source Security Foundation (OpenSSF) Github - Useful tooling and standards for security available on the OpenSSF github.
  7. Can I Email - Useful tool for checking compatibility of html/css/other features across email.

Blazor

  1. Pre-Render Blazor WebAssembly at buildtime to optimise for search engines
  2. Blazor Project Structure
  3. Official Blazor Docs
  4. GPS Tracking in Blazor Web Assembly
  5. Consuming REST APIs

C#

  1. The Yellow Book - A fantastic intro to C# from former Hull Lecturer, Rob Miles. He also has other publications available here.
  2. Two Decades of C#: A Reference - A reference of which C# version introduced which features. Linked is the first blog; later versions are covered under later blogs.
  3. C# Playerโ€™s Guide - The ultimate way to learn C# by gamifying the learning journey. Link includes the first 60 pages of the book as a sample!
  4. Learn C# - English Guide - Youtube playlist to learn C# (narrated in English)
  5. Learn C# - Arabic Guide - Youtube playlist to learn C# (narrated in Arabic)
  6. Write your own .NET RSS feed in C#
  7. Generics and Arrays - Microsoft
  8. Learn C# - Microsoft
  9. Building GraphQL APIs in C#

JS

  1. Discord JS
  2. Intro to JS
  3. HTMX
  4. Mozilla PDF.js
  5. GraphQL JS
  6. CSS for JS Dev Notes
  7. Javascript Questions
  8. Regex

CSS

  1. Awesome TailwindCSS
  2. Tailwind CSS Docs
  3. Aweomesheet - CSS Generator
  4. Learn CSS - Free Google course on CSS
  5. CSS Units
  6. Defensive CSS

DSharp

  1. D Sharp Plus - An unofficial .NET wrapper for the Discord API

HTML

  1. W3 HTML Introduction
  2. GFG HTML Basics
  3. MDN HTML Docs
  4. HTML Basics by Microsoft

Java

  1. w3 schools Java Info
  2. GeeksForGeeks Java documentation
  3. Java Bootcamp by Kunal Kushwaha on Github
  4. Official Java Docs

Python

  1. Intro to Python
  2. Install Python
  3. Basics
  4. Decision Making
  5. Loops
  6. List
  7. Tuples
  8. Dictionary
  9. Functions
  10. GraphQL Python

Amber Lang

  1. Amber Lang Website

Static site generators

  1. Jekyll
  2. GitHub Pages
  3. Netlify - Starter is free for personal use
  4. Hugo
  5. Eleventy
  6. Pelican
  7. WP2Static
  8. Nikola
  9. Gatsby
  10. Statiq Web - Still under development, use if you want to get involved with the community to help develop
  11. Publii - Desktop app rather than CLI
  12. Zola

Cross-Platform

  1. Platform.uno - Multi platform applications, one code base.
  2. Flutter
  3. React Native
  4. Introducing .NET Maui
  5. Maui Samples
  6. Razor pages with EF Core
  7. Microsoft Training - Build a Web App with Blazor
  8. Blazor with an RSS Feed
  9. RssReader sample
  10. Start .NET MAUI Development in 2024

Documentation

  1. DevDocs - Searchable developer docs
  2. Refactoring.guru - Learn about design patterns and refactoring.

Coding Practice

  1. Kattis - Programming problems to help you improve your skills. Compete against staff/students.
  2. Code Academy - Improve your programming knowledge.

Competitive Programming

  1. Codechef - A platform for participating in coding contests and also learn new Algorithms and Data Structures. They have a set of challenges every month for competitive coding.
  2. Codeforces - A widely used platform where top programmers compete. There are various contests every week.
  3. HackerRank - A good learning resource with paths and problems to get into the world of programming.
  4. Interview Bit - A platform to learn and practice coding interview questions. Has learning paths for various roles as well.
  5. Leetcode - A great platform for mastering Data Structures and Algorithms. An essential part of the preparation for SDE interviews.
  6. DMOJ - An Archive of great coding problems. Also there are contest on this site.
  7. CSES - A problem set reknowned to be a one set package for getting ready for competitive programming.
  8. CP Algorithms - A collection of important algorithms written in C++.
  9. Atcoder - AtCoder is a programming contest site for anyone from beginners to experts.
  10. Clist.by - Get updates of upcoming competetive programming contests.
  11. TopCoder - All in one site for CP , ML/AI , Developement
  12. SPOJ - Beginner friendly website for CP
  13. HackerEarth - Great free-site for Developement and Coding
  14. Codedrills - Best site for ACM-ICPC Mock Rounds (Indian Regionals and Prelims)
  15. USACO - American Website for CP

Mathematics and Programming

  1. ProjectEuler - Best site for Maths Problems which are easily solved using programming.
  2. Erdos - IIT Roorkeeโ€™s Maths Practice site.
  3. Maths-Stackexchange - Ask and Answer maths questions
  4. Mathometer - Maths Website from an IIT Bombay senior
  5. MathBlog - Good Reading blog for Maths.

Useful Codeforces Blogs

  1. C++Tricks - Many Tricks are explained well.
  2. DSA - Best blog for resources like Data Structures and Algorithms.
  3. Way-To-Practice-CP - Guide to Improve Ratings
  4. YouTube-Tutorial-For-CP - Nicee YT Tutorials
  5. Almost-all-Algo-and-Practice-Problems - Best Blog to learn and practice simultaneously