Also ich würde definitv mit Python anfangen - Assmbler ist unverhältnismäßig komplizierter und im Grund primär für Exploit-Suche interessant.
Zuerst mal kann ich dir gute Bücher ans Herz legen: https://www.amazon.de/s/ref=nb_sb_noss?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords=programmieren+lernen+mit+python+3&rh=i%3Aaps%2Ck%3Aprogrammieren+lernen+mit+python+3
Als Editor mag ich Microsofts VisualStudio Code sehr.
Darauf aufbauend gibt es auch einige Bücher zum Thema Hacking mit Python. So kannst du deine Programmierkenntnisse vertiefen und dazu auch noch die Funktionsweise einiger Angriffe lernen.
Lies vorab aber unbedingt ein Anfänger-Buch da die ganzen Bücher zum Thema Hacking mit Python meist nur eine sehr oberflächliche und wenig datailierte Einführung in die Sprache an sich bieten.
Ein Setup um zu beginnen wären zB zwei VPCs (Kali-Linux und Metasploitable 2). Damit kannst du einige Techniken ausprobieren - vom Scannen über Metasploit bis hin zu Angriffen auf Webseiten (zB DVWA) ist einiges zum üben dabei...
Dann wäre es gut, dass du dich mit Netzwerken (die einzelnen Schichten wie Ethernet, TCP, IP, ...) und den gängigen Protokollen der Anwendungsschicht wie FTP, IMAP, POP, SMTP, HTTP, usw. beschäftigst.
Du solltest dich auch mit allen gängigen Betriebssystemen (Windows, Mac OSX und Linux) auskennen und wissen wie man darauf Serverdienste anbietet und wie man diese Systeme sicher konfiguriert!
Programmiererfahrung ist ebenfalls von Vorteil - mit Python lassen sich viele Hacking-Tools sehr einfach selber schreiben. Hier wären Module wie scapy, nmap, hashlib, socket, subprocess, requests, bs4, flask, ... gut verwendbar für viele Angriffe. Vor allem hilft dir Programmiererfahrung dabei viele Angriffe besser zu verstehen.
Du solltest dich ebenfalls mit gängigen Web-Sprachen wie PHP, MySQL, JavaScript, HTML, CSS, ... auseinandersetzen um Angriffe auf Webseiten durchführen zu können.
Wenn du all das beherrscht kommt das komplexeste - Shellcoding / Assembler-Programmierung um Programme zu disassemblieren, zu debuggen und dann nach Schwachstellen zu suchen um dafür Exploits zu schreiben. Dazu wären auch Kenntniss in C/C++ von Vorteil!