Bilgisayar mimarisine ne kadar hakim olduğuna göre değişir. Eğer işlemci nasıl çalışır, assembly nedir, programlar nasıl çalışır, işletim sistemi nasıl çalışır. Gibi konulara hakimsen debugger ların mantigini, basit işlemci talimatları işlemleri ni ogrenebilirsin. Sonrasında assembly ve biraz üst katman okumalar yaparak. IDA, GHidra gibi makine dilini assembly level okumanı sağlayacak yani disassembly yapan araçlar kullanarak ctf lerde, sağda solda bulduğun basit crackme leri çözmeye çalışabilirsin. Assembly dilinde programları okurken işini kolaylastiracak konspetleri ogrenebilirsin mesela call operand in işleyişi ve türleri, pointer tipleri gibi şeyler (aslında mevzu dilin pratik kullanımındaki temel yapılara hakim olmak) bundan sonrası daha fazla öğrenmek ve daha fazla mimari tanımakla alakalı. Yukarda sana anlattığım path; C/C++, Golang, Rust tarzında basit(üst seviye konspetleri sahip değil, mesela c# in derlenirken oluşturduğu IL language) derlenen diller için geçerli. Daha gelişmiş dillerin farklı framework leri farklı derleme çeşitleri farklı mimarileri var bunları öğrenmek sana o dillerle yazılmış programlara daha rahat yaklasabilmeni sağlar. Mesela biz c ile yazılmış bir programı IDA ile incelerken c# ile derlenmiş bir programi çok genellikle dnspy gibi IL talimatlarını anlayıp cozumleyen disassembler, decompiler larla inceleriz çünkü bize daha yukardan daha temiz bir bakış verir. IDA sadece makine dilini assembly ye çevirirken dnspy c# in assembly seviyesinin nin üstünde konuslandirdigi ve okunmasının çok daha kolay olduğunu bir ara dili sunar. Bu .net dillerini geliştiren Microsoft un tercihidir yapının pros ve cons larini tartismayacagim.
Java nin yapısı da bambaşkadır mesela o da c# a benzer şekilde bir ara dile çevirir derlediği kodu ve bunu kendi kurallarına göre exe nin çalıştırılması esnasında makine diline dönüştürür.
Python, PHP gibi diller kendi ortamları ile çalışır bu ortamların çalışma mekanikleri kendilerine özgüdür ve ayrıca araştırılması gerekir. Zaten bu dillere script demelerinin başlıca sebebi de budur.
Yani anlayacağın tersine muhendis olmak demek konsept bilmek, mimari bilmek demek ki bu işin en temeli bilgisayar mimarisini anlamaktan başlar. Bir okumuslugunuz var o sebepten bu adımı çoktan attığınız varsayiyorum. Geri kalan kısımda bol kafa patlatmali ve makale okumalı, deneme yanılma yollarından geçerek tecrübe kazanmalisiniz. Başlangıç önerisi olarak pluralsight in start revers enginering kurşunu onerebilirim. Bu alanda sadece yabancı kaynaklardan yararlanmanızı da şiddetle rica ediyorum. Selametle kalın.