Obviously mathematics is fundamental to programming, try learning
binary, base2, 1,2,4,8,16,32,64,128,,256.
There are 2 to the power of 8 (256) possible values for 8 bits.
logic functions and, or, not, etc , bit shifting, the or function can be used for encryption, truth tables.
Hexadecimal, base 16.
log and power functions.
trigonometry sin cos tan.
Vectors.
CPU Architecture, ALU, Full adder, Decoders, BCD, shift registers, cache, ram, rom, data bus, address bus,
Programming wise
Learn data structures, Link list, arrays, double link list, stacks (FIFO) , binary trees.
Memory allocation, pointers, address, function pointers
Data types, integer, floats, byte, sting, double, Boolean
Control statements, conditional statements.
good luck.
edit showing off, below is a Digital electronic simulator I written back in july 2009, i started programming in september 2005, self taught, no collage education at all, The internet and library are great place to learn.
https://i.imgur.com/JxVdKSd.jpg