A couple of good resources for learning online ... http://pluralsight.com/training/courses
(Pluralsight bought them and now host their courses) both offer video courses on various topics. Both have varying subscription options that aren't particularly expensive. Pluralsight has the option of paying more for the code and course materials as well.http://channel9.msdn.com/
is also good (and free), particularly the recordings of presentations at events like Build / PDC & Tech Ed etc.
Here's a getting started page on MSDN
(also free). Believe it or not, Bing
is a great way to search for things in the .NET framework and MSDN library
Learn to use source control. Git & Mercurial (Hg) are the front runners. I
...but now use Git... (Mostly for TortoiseHg
) but Git is the popular with all the kids. If you're using Windows then http://windows.github.com/
is a good Git client, easy to use. Google for getting started tutorials on those - there are tons. There's a fundamental difference between DVCS (Git & Hg et al - Google it) & checkout-based systems. Short answer - DVCS good, Visual Source Safe bad, Subversion old, TFS Idontevenbutitspopular. Do some homework. Or just use Git. Another improving option is https://www.visualstudio.com/
as a git host. If you like TFS and all that then this is a good option. It is tightly integrated with Visual Studio, as you would expect.
Set up accounts and browse open source projects on
to see what is out there and see how others write code
To host your own code http://www.fogcreek.com/kiln/
is private Hg & Git, free for 1-2 people
. This is my favorite, not least because you can use Git & Hg interchangeably on the same repo, seamlessly. Wow.
Bitbucket has free private repositories (Hg or Git but no conversions) and there is also http://www.visualstudio.com/
(Private TFS & Git). Github has private repos but they are paid
. I use
(not so much these days) Trello
although I'd say Bitbucket & Github are less complex and probably more apt for anyone who is not a big corp team. Try them and see what suits you. I use both Kiln and Bitbucket - both to limit the damage from my stupids and also in case one has an outage. GitLab is a newer alternative with free Git Hosting: https://about.gitlab.com/gitlab-com/
... added later ... In the Git vs Hg war I have decided that everybody wins. The clients play well together so why not use both? They behave in a similar fashion and (I think) their evolution is bringing them closer over time.
... even later ... I am mostly Git these days, particularly now the integration with Visual Studio makes most of the trivial stuff so convenient.
For Git tips see http://git-scm.com/book
& There's a Pluralsight video course
. The Visual Studio addon for Git
is good and Microsoft have recently officially adopted Git
For Mercurial (aka Hg) See http://hginit.com/
. There are Pluralsight video courses
. The Visual Studio addon for Hg
is good, as is the one for Git
(2015 update - Git is mostly integrated in VS2015). I currently (mid 2014) use the VisualHg version at https://bitbucket.org/lmn/visualhg2/wiki/HomeTortoiseHg
play fine together on Windows. I use SmartGit/Hg
on Windows these days. It's not free for commercial use (it is free for personal use) and it runs in Java but it works well (for me) Sourcetree
is a nice Windows / Mac client for both Git & Mercurial. There are other tools
. It's a coke / Pepsi thing - try a few and see which one you like. Presently (Oct 2015) I find SmartGit more actively maintained.Use Source control
- it gives you the freedom to stuff it all up totally and then save the day with a couple of clicks. If you adopt no other newfangled thing, do this.
I mentioned it above but http://StackOverflow.com
is a brilliant resource. So is The Swamp
but you know that already.https://trello.com/
is great for organising stuff, it's run by Fog Creek (Fogbugz) and it's Free. I use it for everything. E v e r y t h i n g.
Write code. Break things. That's how you learn.
[edit: added TortoiseHg & Github for Windows links & later more Git & Hg links & the TFS online thang]
Did I mention Use Source control
? No, really, it's the most liberating coding-thing you will ever learn.