Well it depends. The task of identifying spyware/malware and analyzing it requires a lot of knowledge about the operating system you are working on, being able to deal with code in general (be it assembly, reverse engineering, etc.) and of course knowing protocols (be it https, http, and any other protocol) including how they work on the mathematical level.
Criteria for selecting a programming language for teaching a first course.
One should be able to express the solutions to problems,
by slowly introducing new concepts.
without over specifying and without extraneous boilerplate,
nothing required that isn’t part of the solution.
The result of evaluating must ...
To self-study from Computational Complexity: A Modern Approach, the prerequisites are:
A few courses in algorithms* (you should be comfortable reading and writing pseudocode, using Big-$\mathcal O$ notation, and using abstract data structures like lists, sets and hashmaps)
A course in discrete math
A course which treats Finite State Machines and formal ...