>>1013979 (OP)
>every possible thing imaginable that one could do via programming.
I'm a computer science undergrad and I'm just rattling off concepts from my head:
variables, constants, static, final, functions, declaration, expression, methods, built-ins, classes, namespace, access modifiers (public/private/protected), evaluation, data types, abstract data types, iteration, recursion, generics, return values, naming conventions (such as camelCase or snake_case), numeric types, strings, wrapper classes, bounds checking, control flow, algorithms, data structures, design patterns, switch/case, typecasting, arguments, arrays, maps, graphs, sorting algorithms, searching algorithms, compiling, linking, loading, interpreted vs. compiled, abstraction, libraries, includes/imports, if/else if/else, scope, IDE, autocomplete, debugging, terminal, version control, git, input validation, exception handling try/catch, while loop, for loop, i++, constructor, destructor, memory management, pointer, reference, pass by reference vs. pass by value, function call, objects, instantiation, initialization, null, runtime, compile time, errors, libraries, frameworks, memory leaks, superclass, subclass, inheritance, polymorphism, overriding, lambda expressions, GUI framework, event-driven programming, object-oriented programming, paradigms, multi-paradigm, UML, software engineering before you start coding, learning by experience, fizzbuzz, stacks, queues, linked lists, trees, binary trees, big O notation, databases, networking, dependencies, works on my machine, attributes, properties, UX, markup, turing completeness, file IO, syntax error vs. logic error, getting user input from a console (or in a GUI thing like a TextField object), DRY: Don't Repeat Yourself, modularity, unit testing, integration testing, regression testing, print statements aren't real debugging, make code extensible, comments, documentation, readmes, markdown, booleans, tuples, strings, integers, floats, doubles, toolchain, dotfiles, overflows and underflows, off-by-one (i.e. iterating for i > 5 when you really meant i >= 5), bounds checking, start counting at 0 instead of 1, type confusion, reassignment, software portfolio, hackathons, websites, research papers, learning how to work in a group as opposed to being a lone wolf autist, package managers, APIs, automation, build, encapsulation, registers, hosting, VPS, content mangement system, single page application, licenses (MIT, GPL, BSD, etc), templates, project management, agile, devops, learning general concepts vs. learning something that is specific to your tool/programming language/framework, multithreading, edge cases, assumption of what the user will do vs. what they might actually do, file corruption, failing gracefully, appending vs. overwriting, permissions (rwx for ugo), diff, merge conflict, commit, environment variables, path variable, shells, combinatorics, optimization, complexity, P vs. NP, elements/indices, different operating systems, race conditions, just in time, deadlock, producers vs. consumers, entropy, secure rng, TCP/IP, program entry point, main, von Neumann architecture, meme languages vs. real world stuff (neckbeards on an image board will tell you to learn lisp but you won't get a job unless you know shit like python/C++/PHP/SQL/Java even if you think they're too mainstream or "pajeet" languages or whatever -- nobody gives a shit that you're a special snowflake), JSON, XML, YAML, LaTeX, overloading, toString, assignment vs. equality (= vs. ==), operators, operands, boolean logic, exception types, throw, finally, standard input and output, error output, abstract class, interface, getters, setters, event handling, extends, implements, negation, comparison, text vs. binary data, CSV, binary, octal, hexadecimal, memory address, return type, insertion sort, selection sort, bubble sort, radix, priority queue, set, list, dictionary, deque, deep copy, shallow copy, copy constructor, virtual method, abstract class, pull request, issue, struct, and so on