:PROPERTIES: :ID: 22737796-6D31-49D5-84F2-F7BC73E45144 :END: #+title: Concepts #+filetags: :technical:concepts: #+category: Career Concepts 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. * 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. - [[id:F32F8F09-3DEC-4FD1-8CFA-401A316E906B][XOR]] * Core Programming Concepts - [[id:6820973F-613E-441A-BC1D-8FE5CD9BD6F7][Solid Principles]] - [[id:275988a8-59d8-40c8-a8b4-47118d6eb834][Big O Notation, Time and Space Complexity]] - [[id:631b2086-4b8f-4fe3-829d-be1dc014e293][Design patterns]] WIP - [[id:2767b5ac-f2c9-4b1e-ab87-82c43cdec4c1][CI/CD Example - Sitevisits]] - [[id:5b714c6c-7eaf-4f3f-b4f6-2166ff3a9963][CI/CD Summary]] - [[id:67ad330b-cc11-4e8e-b054-12b9da45ea60][Software Development Methodologies]] Some core programming concepts that are essential for software development. The things I need to add here are: * APIs - [[id:6a5bf6dd-d0ec-43e4-8e07-9956f4715f10][RESTful API]] - [[id:49b195c8-e116-40ca-86e8-62c65dbb5a4f][API Architecture]] (Just needs spell checks and re read) - [[id:e7f082e4-1b9f-4ebe-96d6-94d92e80a07e][API Intro Notes]] - [[id:b2fd7038-42a8-4cbe-882b-92fbe2c12a11][ASP.NET Core Web API Fundamental Notes]] * Database Related - [[id:b4858f6a-b05c-47f2-972e-905e0bb2c352][Database Permissions, Roles, and Accounts]] * 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