分类: tech

  • 如何成为靠谱的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也要经常看。

    就这些。

  • 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

  • 团队管理总结2011-2012

    2011年4月来到现在这家公司,到现在快有一年时间,在这段时间里,从一个开发者转变成为一个Team Lead,其中有一些心得体会,以及想提高改进的地方,在这里做个简单总结。

    团队的硬件方面,申请了双显示器和白板,对生产力有一定的提高。但是也发现有的同事不习惯使用双显。

    软件方面,大力推行使用一些工具进行日常开发以及提升生产力。开发了一个键盘鼠标回放工具;开发了一个Fiddler2的插件记录特定service;推行使用ILSpy分析代码;推行使用VS2010的mstest做单元测试;推行VS2010的code analysis和performance profiling功能使用。

    工作流程方面,我们组基本达到以下流程:对需求分析及时提问,分析存在的代码和业务形成文档;对设计过程进行group review,确保没有大的技术风险;代码实现中期进行第二次group review,确保方向正确;代码完成后对整个代码进行逐行的group review,确保没有大的问题;每次check in都要有另外两个人进行peer review,当天邮件反馈;每个项目都要有相应的测试计划,如果有unittest就做,如果没法做单元测试,比如是界面相关的,就要有手动测试的计划(创建相关测试数据等等)。

    从2011年4月至今已经完成大概四五个项目,基本上每个项目完成都会进行总结。主要存在问题是对业务需要更多了解,另外是需求沟通的问题。

    英语和business knowledge基本保证了坚持学习。每周大概会有一次左右的技术视频小组学习。现在也在学习一个金融方面的公开课,跟业务比较相关。

    整个团队的搭配比较合理,senior和junior程序员组合比较合适,但是在最近一段时间会有新成员加入,培养新人是一个需要关注的任务。

    就个人而言,整个团队的风格养成,希望是主动(主动性)、严谨(关注代码质量,关注关键开发流程的保证)、上进(有持续的自我学习能力)。

    在这一段时间,我的问题主要在几个方面:没有很好的保证定期与组员沟通;对于细节抓的太多,没有做到抓大放小;个人技术在这段时间的提高不多,尤其是WPF这块。

    整个团队的问题和下个阶段提升方向,主要是这几个方面:代码质量和代码标准要一以贯之,这个需要更多的坚持和培养。主动地寻找任务、主动地学习、主动地沟通反馈,提高小组成员的主动性是今年的一个大目标。WPF技术方面需要有专家,业务需要更多的学习了解。需要保证与小组成员的定期沟通聊天。另外英语能力的提高也是整个小组的重中之重。

  • 2012年2月20日技术笔记

    http://coolthingoftheday.blogspot.com/2012/02/it-decompiler-day-justdecompile-rtw-and.html JustDecompile和ILSpy是两个知名的DotNet反编译器,另外还有JetBrain出品的DotPeek。推荐ILSpy。

    http://www.slideshare.net/gsporar/peer-code-review-an-agile-process-2502327 如何做同事代码评审,其实不是几句话就能说清楚地。推荐大家从自己实践出发,总结出实用有效的评审过程。

    http://lua-users.org/lists/lua-l/2012-02/msg00639.html Lua5.1.5发布了,不过很长一段时间里,估计Lua5.1.4和LuaJit2应该是主流,而不是Lua5.2,这在其他语言的新版本发布中也很常见。

    http://www.erlang-factory.com/upload/presentations/223/ErlangfactorySFBay2010-ChadDePue.pdf Erlang和Lua,基本上Lua作为一个内置脚本引擎非常好用,所以Redis也选择Lua来加入脚本支持。不过就使用范围而言Lua+Java前景更广阔。

    http://timyang.net/lua/lua-coroutine-vs-java-wait-notify/ 一篇老文,Lua协程与Java。

    http://blog.curiasolutions.com/the-great-web-framework-shootout/ 流行的WebFramework评测,感兴趣的可以看看。

    http://herbsutter.com/2012/02/08/going-native-sessions-online/ GoNative2012视频链接,谁说C++死了来着??

  • 2012年2月编程技术新闻更新

    最近在readitlaterlist上收集的技术文章链接,在这里把精华部分总结一下。

    https://gist.github.com/1834789 Microlight – a very compact Lua utilities module,这里面有不少有用的功能,另外可以使用penlight

    http://blog.benjamin-cabe.com/2012/02/10/lua-development-tools-now-available-as-a-standalone-product koneki是基于eclipse的一个Lua IDE

    https://bugzilla.mozilla.org/show_bug.cgi?id=542074 Analyze implementation of closures in Lua and LuaJIT 一个简要分析Lua实现闭包机制的短文

    http://oredev.org/2010/videos 这里面的视频还是蛮有价值的,推荐挂上vpn然后学习之

    http://googleappengine.blogspot.com/2012/02/bugsense-hybrid-app-experiences-using.html 在google appengine上使用clojure

    http://chill.com/scott/collection/the-ultimate-steve-jobs-collection 乔布斯的视频大合集

    http://www.bobtacoindustries.com/Content/Devs/CsToCpp-ASomewhatShortGuide.pdf C#开发者如何快捷学习C++

    http://docs.oracle.com/javase/specs/index.html The Java Language Specification, Java SE 7 Edition,The Java Virtual Machine Specification, Java SE 7 Edition

    http://itunes.apple.com/in/itunes-u/multicore-programming-primer/id341597759 Multicore Programming Primer

    http://leafo.net/posts/lua_on_heroku.html –> http://github.com/leafo/heroku-buildpack-lua.git

    http://moonscript.org/ 0.2.0版本出来了,这就是Lua版本的coffeescript,代码不是很好懂啊

    http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/ understanding JVM internals

    http://www.mediawiki.org/wiki/User:Sumanah/Lua_vs_Javascript 这是Lua开发最近一个大新闻,维基百科使用Lua作为模板语言

    http://pytools.codeplex.com/ python tools for visualstudio v1.1发布了,这个免费工具把VS2010变成Python的IDE。另外支持Pyvot这个Python使用Excel的库。http://pytools.codeplex.com/wikipage?title=Pyvot