Qpython3
@Al7en If you’re interested in informatics and hacking (or, really, any other area of computer science) I’d say that programming is a very good place to start. Which language you’ll start with comes down to personal preference and need, and could be debated for hours. However, I’d say that generally you’d want to start with either (not both) Python or C:
[list]
[] C - An increadibly powerful language,which is demonstrated by the fact that Linux is written in C. It is, however, quite difficult as you need to manage memory and pointers yourself. This means that the learning curve for C may be quite steep, but it’s going to greatly decrease the learning curve for pretty much any other (imperative) programming language.
[] Python - Also an increadibly powerful language, drawing its strength from powerful built in features that allow you to do complex things with small amounts of code. This might be more appealing to most beginners, as it is a lot simpler than C (you don’t have to manage memory yourself, for one thing). The drawback here is that if/when you want to learn e.g. C you’ll have to learn how memory works, which might be frustrating if you’re used to not having to bother.
[/list]
If you equip yourself with at least basic skills in either of these two languages you’ll have quite a solid foundation to build upon after that. As for the choice, as I said, it’s largely up to you and your learning style (I learnt C++ (which is basically C with extra features) as my first language, and that worked fine), but if you want to get going more quickly I’d recommend Python over C.
If you hold a UNIX shell up to your ear, can you hear the C?
Thanks @dimooz :)
Yea, they’ll get you very far. Later down the line you might want to learn more specialized languages depending on your goals. For instance, if you want to learn web-security then it’s a good idea to understand the web, so learning PHP, JavaScript and SQL would be a good move. If you want to learn how to write kernel exploits then you’ll be fine with C, but you’ll need some ASM as well.
Regardless, you should probably wait with learning any speicalized language; both C and Python are very general purpose and versitile, and if you know C and Python well you’ll be able to pick up a new language in a matter of days (provided, of course, that you don’t want to learn a language that works completely differently, like Haskell).
If you hold a UNIX shell up to your ear, can you hear the C?