Well, it looks like you've taken a lot of ideas and design concepts from TV shows and movies, but that's OK.
The problem is that the radius on the corner of the upper-right bit of the third thingummy in the distant background is exactly the same radius as that used on the corner of an iphone, so you can expect to get tour arse sued into oblivion.
I wanna be a eunuchs developer! Pass me a bread knife!
You don't know how much time I spent on youtube to look at all kinds of scenes that worked as well as those that did not. The only deliberate exact copy is that roll the ships perform before diving down to the planet. Who says that only the Cylons can fly like that? This simple little scene already impressed me when I was a kid and watched the series. Turned out that they did this with a then new computer controlled camera. It also was quite probably got me interested in 3D graphics, which was as good as impossible on my first computer back then.
I think computer viruses should count as life. I think it says something about human nature that the only form of life we have created so far is purely destructive. We've created life in our own image.
If you favor Windows, C#, ASP.NET (MVC and Web Forms), WPF (though there is some stuff I haven't tried yet... maybe it'd be called WinRT), Windows Forms. Pretty much anything .Net Framework. All of this is done in Visual Studio.
If you favor Mac OS, Ruby on Rails, Objective-C, Cocoa.
For web stuff, jQuery, Ajax, Web Services, Cloud Computing (e.g., Azure, Amazon Cloud).
Is PHP a viable language though, meaning is it actually used for real stuff
It seems like a server-side scripting language from what I've seen of it (not much). And that's not a compliment. Basically, it has a low learning curve, but it doesn't seem designed for more complex software. I hear it's the most common language used for web work, but then most websites are complete garbage, so that makes sense.
Some notable exception to the rule that PHP is used for simple stuff are MediaWiki, which is the software that runs Wikipedia, and WordPress, which is used to run pretty much every blog out there. If you want to write a plugin for either of those, you'll want to learn PHP. Still, I've seen how some of those plugins work, and they're not exactly shining examples of software excellence (they seem like hacks on top of hacks).
Php is a dynamic language for sure. And you can pick it up quickly and get some work done, even if you don't have any idea about "software development." Php gets beat up a lot because you can get some work done using just the core of the language. You can also put run it right in your html.
Of course, I could use C# inline in an ASP.Net page in the same way if I wanted (you can use ASP.net just like classic ASP, if you really want to). I think it's just less common to see "hacks on top of hacks" code in languages that aren't free because hobbyist will use the free stuff instead.
To write a serious php aplication, you would use a framework--maybe Zend or Symphony. Or you could also use one of the many microframeworks--laravel and limonade are among my favorites. Or you could start with an extensible platform like Wordpress, Drupal, OsCommerce, Moodle, etc. Most of the php projects I have worked on are integration projects...like merging functionality from moodle into a drupal site, or merging a wordpress blog into an OsCommerce store, or something like that.
Evaluating Php by reading wordpress plugins writtne by hobbyist is a lot like evaluating .Net by reading consile apps written by students, in my opinion. Look into the frameworks that are available and the code that is in the platforms like wordpress to see how professional programmers use php.
After years of promising this the fact is we are worse of today than 10 years ago because we now have different form factors. It appears the whole thing is getting worse to me and I expect soon to have a request to build a website that looks good on a clay tablet or as a tattoo on an elephant's arse.
These days you really need to decide an area to focus on first.
I will definitely second that. I made the mistake of trying to ingest too many technologies at one time for awhile (studying too many different things) and basically spun my wheels for a good while. There's only so much bandwidth the brain will handle, particularly in an information-intensive field like this one. The old adage "Jack of All Trades, Master of None" really applies here.
It's like surfing...Lots of product waves that are supposed to be the ultimate, become only the next big thing, then are forgotten (except for code maintenance). Silverlight is a good example. It was supposed to be "the next big thing" and to "conquer the web" and "everyone should learn it". Now it's abandoned by Microsoft and effectively dead for new development. Oh, wait...Now there's Metro! "Catch the wave, man! It's so cool! It's the ultimate!"
Next year it will be something else that will save the world, produce world peace, and be the Silver Bullet.
This same technology wave phenomena occurs in Java and to a lesser extent in other environments and tools. The newcomer will keep getting hit by the waves until he/she:
1. Picks one and rides it in to the beach.
2. Gives up.
3. Learns to surf.
So pick a wave and learn to surf it and perhaps ride it in to the beach or keep catching new ones until you're tired of new waves!
I'm an avid climber, so don't have time for number 3!
What I discovered when I was trying to learn Java AND C# at the same time was like climbing 500m up the face then deciding I wanted to rappel over to the trail on the other side of the face. I kept falling back to ground level having to start over because I couldn't remember exactly where all the handholds were on BOTH trails. That's how I viewed the situation when I decided to abandon Java and forge ahead with .Net. I've made more progress on my #1 "trail" in the last week than I made the last year because of that one issue. I just needed to back off and realize I was trying to [mentally] take on too much. I've always had that problem!
Well said. It's not so much that things change dramatically in 20 years, its that things change dramatically every 20 days! But it doesn't really matter because ANY tool you select and become proficient in will be useful to someone.
So my advice to you is not to worry too much about picking the right tool to focus on, but find a project that interests you (or, better, consumes you) and dive into it. Perhaps an open source project that doesn't have too frenetic of a development pace. Then learn everything you need to learn for THAT project. At the end you'll not only have a new set of tools in your belt, a shiny project you can refer to on your resume, but you'll have a sense of accomplishment. And that is something that will still be valuable 20 years from now.
but that doesn't mean that you will be able to get paid for it
Certainly I agree that there some languages that are obsolete. But diving into an existing open source project, as I suggested, is unlikely to land you in such a ghost town.
Perhaps the best advice I can give is to checkout the incredible statistics collected at ohloh.net. The graph I've linked to confirms my suspicion that usefulness of a large spectrum of languages is converging to an astonishingly level playing field over recent years. It's hard to go wrong with any of them. (Although C# doesn't seem to be faring quite so well, at least in the Open Source world -- check out this graph.)