That’s usually the first question I get asked, when working with folks who have not programmed before. This is immediately followed by “which language do I start with?”
There is no right or wrong answer, but I can tell you what worked for me.
Starting off
I started with C#, using Microsoft’s XNA gaming framework to build games for the Xbox 360. I learned C# from Bob Tabor’s LearnVisualStudio.net
Shortly after that, I discovered David Malan’s Harvard course CS50, which is absolutely necessary to watch, regardless of how far along you are in computer science. David Malan is an incredible professor, and not only made understanding the basics of computer science fun, but also made it easy. I went through this a while ago, and it was worth every minute of my time. I wish every professor in college was as talented as he is.
From there, I realized the importance of JavaScript and HTML5 from Jesse Freeman, who is now an evangelist at Amazon. I used ImpactJS, which is a great gaming framework built in Javascript.
When I joined the product dev team at Comcast, the first project I worked on was Xfinity for Xbox 360, which was written in Silverlight / C#. However, when the time came to work on the Xbox One, the applications were all based on HTML5 / JavaScript, so I quickly had to become a ninja. This project was never released, sadly.
Even more, the Playstation 3 prototype was written in JavaScript, as PS3 runs Trilithium, which is Sony’s own fork of WebKit. The Playstation 4 app framework is Trilithium, with a WebGL layer built on top of it (also JavaScript), as Sony’s Don Olmstead illustrates very well in this talk.
What would I focus on now?
Looking back, I’m glad that I took that route. I’ve learned other languages along the way (C++ for Unreal Engine 4, UnrealScript for UDK), but I still come back to the same few over and over: HTML5 / JS and C#.
If I were a student or young person looking to get into the wworkforce I would focus on:
- JavaScript / HTML5
- The cloud (Azure)
- C#
C++ is not to be overlooked, either: It is high peformance, you learn the ins-and-outs of memory management, and it works on most platforms.
The world is moving towards the web. With HTML5 you can target nearly any platform, and I’ve given many talks on this. Start there.
Resources
David Malan’s Harvard course CS50
Start here. I can’t stress that enough. Even if you already know computer science, go through this course. David Malan is an incredible professor, and not only made understanding the basics of computer science fun, but also made it easy. I went through this a while ago, and it was worth every minute of my time. I wish every professor in college was as talented as he is.
Does a great job introducing code and organization without language peculiarities.
This is always my go-to for HTML5 tutorials. Nearly all of the posts are done by professionals in the industry, and many of whom are the best at what they do.
http://www.learnvisualstudio.net/
This is how I learned C#, and I still feel it is the best resource for it to date. Bob Tabor is charismatic, to the point, and breaks things down in a logical sense.
An MIT education for free? I’ll take it.
We have a very diverse set of topics at MVA, from web development, Unity, and the basics of C#, all the way up to advanced Azure techniques. Source code and slides are included!
This is relevant for experienced developers, but also a great way to lerarn how to code through conversation and threads.
This is a premium site, and costs $29 a month, but it is worth every penny. I’ve been a subscriber for several years, but found it to be invaluable. The courses are taught by some of the best leaders in the industry, and they are adding new content each week. Once I signed up, I never looked back, and I use it to this day.
I commonly use this site to find practical and very useful bits of code that I can implement into my own Unity games. If you are working in Unity, I implore you to look here.
In partnership with Code.org, Microsoft is challenging 10 million youth to participate in the Hour of Code. That means just one hour of learning the basics of computer science. It’s easy, fun and you can do it for free with one of our free tools listed on the site.
These three are similar in my mind, but I haven’t spent much time with them at this point. I’ve heard nothing but great things, however.
-----------------------
@DaveVoyles
Pingback: Where do I get started with learning to how to program? - Dave Voyles for Gaming, HTML5, Startups, & Xbox - Site Home - MSDN Blogs
Pingback: A collection of resources for students / startups - Dave Voyles | Tech Evangelist at Microsoft