Helping people with computers... one answer at a time.
Technical careers are for people with passion... If you love it, you will be good at it. I give my recommendations for a career change.
Programming aptitude and skills are important, of course. But perhaps as important is the ability to relate to and work with the people around you.
You can use ASP or C# to create web pages where you can access your Yahoo mailbox, but it would require a lot of work to do so.
Visual Basic is a powerful and fairly easy to use programming language. You can use a VB program to transfer files using FTP with an add-in.
Software design is as much an art as a science. As a result of various decisions and requirements similarly tasked software can often vary greatly.
Reverse engineering software is so time consuming as to be impractical. The source code may have to be written again from scratch.
The techniques used to create games are as varied as the games themselves. We'll look at a couple of common characteristics.
Programming relies on both skills and talents you have and information and techniques you can learn. If you have one, then the rest often comes naturally.
Of course you can guess my answer to this one: It depends...
Learning Linux is best done right on the internet with a copy of it in-hand so you can explore and play.
Java might appear on your computer, but it's nothing to worry about. Java is a programming language that likely was used by a web page you visited.
I frequently get asked about my background, and what factors into success in technology. We'll cover my education, and things even more important.
Awful progress bars can drive us crazy, but there's a good reason for it. Progress bar software is difficult to write.