Learning programming is a lot like dumpster diving. You feel rock bottom, desperately searching for a smelly nugget of direction. All the flies around you seem to know a lot more about it than you do, but ironically can’t even agree on whether the banana peel or the squirrel carcass is better. By the end of it all, you’re still just as hungry and can’t help but feel a little dirty.
In the end, language wars are a distraction from what actually matters: creativity and problem solving. What problem do you want to begin solving?
You want C#. C# is Unity’s language of choice, which is a good start for game development. C# has a lot of resources available, and using it with Unity also introduces you to the concept of object oriented programming.
You want Python. Congrats. I don’t need to defend it, because there’s a million fanboys on the internet who already do. Go now. Leave.
So you watched Mr. Robot and now you want to be one of the cool kids. Great. You should probably check out C. “But Kat, the internet says not to start with-“ shut up, the internet is wrong. C is the first language taught in a lot of university computer science degrees, because it’s one of the closest languages to Assembly and prepares you for learning how operating systems and hardware really work. Yes, it’s difficult, but it’s a strong foundation.
Understandable. Learn everything in #2 to get the foundations you need for web application penetration testing. You can learn XSS, SQLi and all that fancy stuff later: if you learn how to make it, you’re halfway there to knowing how to break it.
You want to get into VHDL. Godspeed.
Java, I guess.
PHP. Web application testers will thank you for justifying their salaries.