Where do I get started with learning to how to program?

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.

Xfinity_Xbox

The Xfinity app on Xbox 360 was written in Silverlight / C#

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.

Starford – intro to comp sci

Does a great job introducing code and organization without language peculiarities.

http://www.html5rocks.com/en/

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.

MIT Open Courseware 

An MIT education for free? I’ll take it.

Microsoft Virtual Academy

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!

http://exercism.io/

This is relevant for experienced developers, but also a great way to lerarn how to code through conversation and threads.

Pluralsight

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.

CatLikeCoding.com

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.

Hour Of Code

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.

 

 

-----------------------


subscribe-to-youtube

2 thoughts on “Where do I get started with learning to how to program?

  1. Pingback: Where do I get started with learning to how to program? - Dave Voyles for Gaming, HTML5, Startups, & Xbox - Site Home - MSDN Blogs

  2. Pingback: A collection of resources for students / startups - Dave Voyles | Tech Evangelist at Microsoft

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.