如何成为靠谱的DotNet/C#程序员

1 确定目标

微软系开发涉及面太广,所以你得先确定自己在哪方面有所专长。除了基础知识扎实以外,在asp.net / siliverlight / WPF 必须有一定的侧重。这个侧重点选择可以是自身兴趣,但大多数是项目需要。

2 选择教材

我还是倾向推荐纸质书,这里简单列几本。

C#本质论 http://www.amazon.cn/gp/product/B003ZXBKQC 这本书可以在一开始阅读,保证对C#基础有个全面掌握

CLR via C# http://www.amazon.cn/CLR-via-C-%E7%91%9E%E5%A5%87%E7%89%B9/dp/B00426BTTY/ 这本书建议买,但是高级阅读

深入理解C# 这本书如果看目录觉得感兴趣,可以买,但是不推荐初学者阅读。

另外专门技术方面,可以根据销量和评价买一本,不推荐在开始学习阶段购买。建议可以先通过文档/视频/代码实例学习一阵以后,对技术有一定了解了,然后再选择购买。

3 视频入门

这里推荐微软中国的webcast http://msdnwebcast.net 全中文视频,精品不少,比如老赵就有很多贡献。建议看视频学代码。

如果你英文很好,可以到channal9上看英文视频,也有成系列的。

4 文档中心

对于前面提到的几种技术,微软都有不同的网站专门介绍。

http://www.asp.net/ asp.net和asp.net mvc的老家,下载,文档,视频学习。

http://www.silverlight.net/ 银光的老家,下载,文档,视频学习。

http://windowsclient.net/  wpf的老家,下载,文档,视频学习。

另一个网站必须经常看的是 http://msdn.microsoft.com/en-us/default.aspx 比如这个 http://msdn.microsoft.com/en-us/vstudio/hh388566.aspx 就是Visual C#开发中心

http://msdn.microsoft.com/en-us/library/ff361664%28VS.110%29.aspx 这里是DotNet开发链接页面,可以作为homepage

www.codeplex.com 这是微软开源中心,推荐下载http://1code.codeplex.com/ all-in-one samples学习。

http://www.codeproject.com/ 这里面的文档和代码实例大多数目的单纯,简单扼要,学习起来很方便。

5 提高

http://msdn.microsoft.com/en-US/practices Enterprise Library, prism4.1, MVVM, 这些模式被广泛使用

MSDN要经常翻,里面好东西太多了。

http://msdn.microsoft.com/en-us/magazine/default.aspx MSDN magazine也要经常看。

就这些。

编程技术新闻12年2月24 VS11和DotNet4.5beta

近日最大新闻就是VisualStudio11和DotNet4.5 Beta版本在本月29号发布。微软几个知名的技术博客纷纷发文介绍。

http://herbsutter.com/2012/02/23/vc11-beta-on-feb-29/ Herb主要介绍了VC++11的变化,可以看到对C++11的支持是重头戏。

http://blogs.msdn.com/b/visualstudio/archive/2012/02/23/introducing-the-new-developer-experience.aspx VisualStudio官方博客介绍了新版本的界面变化,配色淡雅,整体感觉更舒服易用了(我试用过VS11的预览版)。

http://blogs.msdn.com/b/jasonz/archive/2012/02/23/sneak-preview-of-visual-studio-11-and-net-framework-4-5-beta.aspx “可以用于生产环境“,微软对自己这个产品的质量还是很有信心的。

http://www.microsoft.com/visualstudio/en-us/visual-studio-11 VS11的官网在这里

其它新闻及技术文章 ~~~~~~~~~~~~~~~~~~~~~~~~~

另一个大新闻是Apache2.4发布,号称要赶上Nginx的性能,可惜国内技术圈子对此毫无反响,廉颇老矣,能饭否?

如果要编写Nginx模块或者阅读Nginx代码,下面的连接或许有些帮助:

http://yaoweibin.cn/ 有Emiller的Nginx模块开发指南

http://blog.csdn.net/kenbinzhang/ 啃饼的Nginx源码分析,另外在浪湾博客/淘宝技术博客上都有源码分析的文章,不多说了。另外想开发http server的可以参考这个 http://www.codinglabs.org/html/http-server-docs.html

Lua部分项目或者文章链接:

http://stackoverflow.com/questions/89523/lua-patterns-tips-and-tricks Lua常用编程手筋

http://luvit.io/ 以前有人提native版本c++11的nodejs,其实Lua早就有了很多类似项目,比如这个luvit。

http://blog.datamules.com/blog/2012/01/30/why-lua/ 为什么用Lua?好玩算不算一个理由?

https://github.com/laeciofreitas/design-patterns-lua Lua设计模式,由于JS更火爆,所以Javascript设计模式这篇介绍更全面 http://addyosmani.com/resources/essentialjsdesignpatterns/book/

建议大家在github上关注leafo这个程序员,好玩的东西很多 http://leafo.net/moonlisp/ Lisp转Lua代码 http://leafo.net/posts/getting_started_with_moonscript.html MoonScript语言,类似CoffeeScript https://github.com/leafo/moonscript-javascript moonScript转到JS,使用了Emscripten,可以直接看演示http://moonscript.org/compiler

其它方面的技术:

WPF技术,这位大牛的文章值得推荐 http://www.codeproject.com/Articles/16342/WPF-JoshSmith

上次提到的R语言,这里有个商业运作版本的介绍 http://www.r-bloggers.com/introduction-to-r-and-revolution-r-enterprise-slides/ r-bloggers是R语言的博客聚合,关注R语言的朋友可以订阅。

highscalability上最近两篇关于网站架构的文章,都是知名网站youporn和Pinterest http://highscalability.com/blog/2012/2/16/a-super-short-on-the-youporn-stack-300k-qps-and-100-million.html http://highscalability.com/blog/2012/2/16/a-short-on-the-pinterest-stack-for-handling-3-million-users.html

http://samsaffron.com/archive/2012/02/22/miniprofiler-2-0-almost-out-of-the-gate 有人不知道优化前需要profiling么?还真有。stackoverflow的开源项目,微软系的朋友可以关注。

http://www.newsy.com/ 这个视频新闻的特点是:都有字幕!!

http://lostechies.com/derekgreer/2012/02/17/javascript-closures-explained/ javascript的闭包是什么?

http://nullege.com/ Python代码的搜索引擎

http://people.csail.mit.edu/pgbovine/python/ 在线Python教程,很好玩,代码开放。

http://www.linuxforu.com/2011/03/when-python-weds-c/ C编写Python模块。

R语言,高估自己的架构师和一些技术链接

part1

先说说创新,对金融类软件开发而言,个人觉得“Big Data”会是一个很大的发展方向,就如同这篇麦肯锡的文字所提到的 http://www.mckinseyquarterly.com/Strategy/Innovation/Are_you_ready_for_the_era_of_big_data_2864  http://blog.nodeable.com/2012/02/21/mckinsey-misses-the-market-on-big-data/

问题是我对统计方面的数学学的很不好,即使有R语言这样的统计数据分析的专门编程语言,仍然感觉到困惑。R语言资源不少 http://ftp.ctex.org/mirrors/CRAN/other-docs.html 也期望自己多学一些,但是精力真的有限,最近要看WPF,C# in depth2, 还想看看Python3, Lua5.2文档,还有Ruby语言和类似lisp的Clojure。这么多好玩的东西,稍微懒一懒就混过去了。回到R语言,国内比较大的讨论组是这个“统计之都“ http://cos.name/cn/forum/15

每年学一门编程语言,到底该选Clojure还是R呢? 

part2

Architect – Overrated! http://www.subbu.org/blog/2012/02/architect-overrated You always talk about the big picture. You think you know how the system ought to be built. You don’t have a working build. You spend a lot of time on documents that are not code. You can prototype – but your code is not production worthy. You spend too much time in meetings. The best code you wrote is a few years old. When asked for opinions you tend to speak in general terms. Your team members secretly joke about you. You start to take analysts and tech blogs too seriously. You are a dinosaur. Code. Don’t wiki. Don’t powerpoint.

顺便问一下,你是这样的架构师么??

part3

http://casbon.me/what-will-pypy-do-for-your-website-benchmarki 一个关于PyPy和CPython的比较测试,PyPy最近很火,就目前发展,很快就能应用到实际生产项目了。

http://msdnwebcast.net/ 面试的时候,很多人抱怨自己项目中只用了这个或者那个,所以不会这个或那个。好吧,只要你懂点DotNet编程,有恒心坚持,天天学一个这里面的webcast,你就能变成高手。另一个选择是 http://learndotnetprogramming.com/free-dot-net-videos-webcasts/

http://blog.phusion.nl/2012/02/21/ruby-enterprise-edition-1-8-7-2012-02-released-end-of-life-imminent/ “We wish to focus our efforts on Phusion Passenger and other products. Instead of doing many things poorly, we want to do a few things, but do them very very well.” 深有同感。

http://www.iro.umontreal.ca/~felipe/IFT2030-Automne2002/Complements/tinyc.c 一个简单的语言编译器,在K&R中也有个简单版本,每个程序员都应该多少了解一下相关的概念。

http://www.bestechvideos.com/2012/02/21/railscasts-265-rails-3-1-overview Railscasts #265: Rails 3.1 Overview

http://www.bestechvideos.com/2012/02/21/railscasts-265-rails-3-1-overview Railscasts #265: Rails 3.1 Overview

http://www.bestechvideos.com/2012/02/21/railscasts-267-coffeescript-basics Railscasts #267: CoffeeScript Basics

Techdays 2012 the Netherlands 部分视频链接

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159

Building Single Page Apps for desktop, mobile and tablet with ASP.NET MVC 4

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2364

A look at ASP.NET MVC 4

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2153

Introducing Windows Runtime in Windows 8

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2261

What’s new in ASP.NET 4.5 + Visual Studio 11

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2287

C#5, ASP.NET MVC 4, and asynchronous Web applications

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2264 (这周日大连的QClub就有一个关于MVVM的话题)

MVVM Appied From Silverlight to Windows Phone to Windows 8

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2259

Rocking the Enterprise with the Kinect Experience