: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. * Microlise: ** ESS - [[id:abe43fdc-e90d-4c2c-9320-cc7929f0c99a][ESS]] - [[id:0b6e7dc0-1171-4dc4-982e-a5d95765e09c][SEB Search Improvement — Couchbase Caching]] ** AI Training: - [[id:ceeb2ad1-b091-49d8-8cd6-752f28a6fd86][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. - [[id:F32F8F09-3DEC-4FD1-8CFA-401A316E906B][XOR]] * Core Programming Concepts - [[id:360df04d-ea24-4f04-b8e1-3595f34aac4d][Powershell MOC]] - [[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]] - [[id:fdb8fa52-0c9d-4332-9f32-53bc6fee24b9][MVP and MVT]] - [[id:2729599d-ae2b-4f22-b73d-bf22d81e0767][Test Driven Development]] 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]] (todo) * Database Related - [[id:b4858f6a-b05c-47f2-972e-905e0bb2c352][Database Permissions, Roles, and Accounts]] - [[id:de3bef27-81c9-49d1-85bb-edceb9a80e65][SQL Joins]] * Misc - [[id:faa7f193-5af6-4a2f-a73e-540f833a7fd0][Windows Services]] - [[id:e717c252-0e15-4403-898f-93163dd1b147][Dynamic Link Library (DLL)]] * Security: - [[id:01c89142-7e14-42b2-bd01-743656908fd2][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