I got into hacking via SQL injections and then I wanted to learn why these things can happen. So I learn HTML, CSS, PHP, XML, JavaScript (AJAX/jQuery), ASP and some more elements of web development. I then moved onto bash and found programming interesting and I was grabbed into the .NET framework, so I learn the C# and VB.NET sytax and it was really interesting... But I wanted to make something global, not only for the Windows architectures, so I learnt C, Python, Perl and Ruby which weren't too hard. Now I am learning C++ and I want to develop something big soon.
I see a lot of people getting into Java but I've never been a fan of it, I've actually never looked into it although I occasionally mess around with my androids rooting and such but I may consider learning it soon.
As for the best work I have done, I would say... I once made a crypter as I got bored and as I really love encryption and mathematical algorithms, it turned out to be really good and is very undetectable.
As for beginners I would always suggest that you start of with a basic language, either C# if you want to try the .NET framework or something like Perl/Python, they are very easy languages and have MASSIVE uses and capabilities.
Hope that helps.