![](/static/66c60d9f/assets/icons/icon-96x96.png)
![](https://lemmy.world/pictrs/image/0943eca5-c4c2-4d65-acc2-7e220598f99e.png)
It’s always possible to convert binary (machine code) into assembly since they’re basically the same thing. Assembly is just human readable binary.
It’s not possible to generate high level source code from assembly the same way you can’t generate a recipe for a cake by analyzing the composition of the cake. It doesn’t matter how smart you are, the temperature the oven was set at and time the cake spent in the oven can’t be found in the molecular structure of a cake.
I played flash games as a kid on Newgrounds. There was an option to submit your own flash games and that made me curious as to how they were made. I searched tutorials on how to make flash games and that was my start.
Eventually I got interested in making programs outside of Flash. Still being a kid, I wanted to be the coolest programmer/hacker ever so I learned C (the only language hackers use) and intalled linux (the OS for hackers). I mostly use Python now since I can get projects done much faster.
It doesn’t matter what language you start with. Just learn the core concepts around loops, if statements, data types, data structures, object-oriented programing vs functional programming. Those concepts span across all languages and once you know them you can just google “how to splice string in (language here)” when you’re using a different language. C is great if you also want to learn how computers manage data and how data structures work from first principles, since in C you need to manage memory yourself and it doesn’t come with any advanced data structures built in so you’ll need to implement them yourself.
I now mostly use my programming knowledge for hobby stuff. I automate tasks, do programming challenges, and mod games.