In this node lies notes relating to theoretical concepts tying with maths and/or computer science. I will need to find a way to categorise different notes, but it's a wip. ## MOC's - [[Database MOC]] - [[Microlise MOC]] # Microlise: ## ESS - [[Microlise - ESS]] - [[Seb Search Improvements]] ## AI Training: - [[Data camp AI training]] # Mathematical Concepts Part of being a software engineer is having a good grasp of mathematical concepts. Here are some notes on various mathematical concepts that I find useful. - [[XOR]] # Core Programming Concepts - [[Powershell MOC]] - [[Solid Principles]] - [[Big (O) - Time and Space Complexity]] - [[Design Patterns]] WIP - [[CI-CD Example (site visits)]] - [[CI-CD Summary]] - [[Software Development Methodologies]] - [[MVP + MVT]] - [[Test Driven Development]] Some core programming concepts that are essential for software development. The things I need to add here are: # APIs - [[Restful API]] - [[API Architecture]] (Just needs spell checks and re read) - [[ASP.NET Core Web API Fundamental Notes]] (todo) # Database Related - [[Database Permissions, Roles, and Accounts]] - [[SQL Joins]] # Misc - [[Windows Services]] - [[DLL's]] # Security: - [[OWASP Top 10]] - [[Cross Site Scripting (XSS)]] # Concepts to learn and talk about (cs and maths) - ~~xor~~ - ~~big O notation~~ - ~~time complexity~~ - ~~space complexity~~ - data structures - algorithms - design patterns - functional programming - object-oriented programming - relational databases vs non-relational databases - ~~Database permissions, roles and accounts~~ - networking basics - operating systems fundamentals - concurrency and parallelism - software development methodologies (Agile, Scrum, etc.) - version control systems (Git, etc.) - testing methodologies (unit testing, integration testing, etc.) - security best practices - cloud computing basics - containerization (Docker, Kubernetes, etc.) - DevOps practices - ~~CI/CD pipelines~~ - microservices architecture - API design and development - ~~restful apis~~ - web development fundamentals (HTML, CSS, JavaScript) - mobile app development basics - machine learning basics - data science fundamentals - big data concepts - blockchain basics - cryptography fundamentals - user experience (UX) design principles - software architecture patterns (MVC, MVVM, etc.) - debugging techniques - performance optimization strategies - software documentation best practices - ethical considerations in software development - emerging technologies in software development - career development in software engineering - soft skills for software engineers (communication, teamwork, etc.) - project management basics for software projects - open source contribution best practices - remote work best practices for software engineers - continuous learning strategies for software engineers - data types - bytes and bits - number systems (binary, decimal, hexadecimal) - logic gates - set theory - graph theory - combinatorics - probability theory - statistics - linear algebra - calculus - discrete mathematics - compilers - interpreters - automata theory - formal languages - Turing machines - computability theory - MVPs and MVTs