作者: admin

  • C#初级程序员培训计划Junior Developer training plan

    初级程序员培训计划

    非技术培训目标

    1)了解熟悉公司工作流程
    2)如何进行团队合作,计划以及任务分解训练
    3)一些有用的工作习惯养成锻炼,个人时间管理
    4)演讲技能、英语技能、领导力提升
    5)自学能力、解决问题能力的培养

     

    技术培训目标

    力争四个月时间将新人从C#新新手变成比较靠谱的C#程序员。

    培训以个人阅读、实做为主,每天进行检查反馈,
    每周有个可运行成果以及学习目标,每个月有个具有实用性完整的项目结果。

     

    1)C#基础知识部分精读

    http://msdn.microsoft.com/en-US/library/67ef8sbd%28v=VS.100%29.aspx
    http://msdn.microsoft.com/en-US/library/618ayhy6%28v=VS.100%29.aspx
    从1.0开始每个版本的What’s New精读。

    时间:三到四周
    结果:PPT,以及部分知识点的demo

    2)C#代码示例解读

    http://1code.codeplex.com/
    http://msdn.microsoft.com/en-US/library/z9hsy596%28v=VS.100%29.aspx

    时间:两周
    结果:PPT,以及部分代码项目实际运行调试

    3)C#常见手筋以及WPF/SilverLight/WCF使用

    http://msdn.microsoft.com/en-US/practices
    <Effective C#>
    <More Effective C#>
    <C# cookbook> http://go.microsoft.com/fwlink/?linkid=195369
    <C# design pattern> http://go.microsoft.com/fwlink/?linkid=195402
    SL数据绑定,CRUD操作
    WPF的RSS阅读器以及本机ServiceBus的实现

    时间:六周
    结果:阅读笔记以及项目Demo

    4)C#高级话题泛读以及快速应用

    http://msdn.microsoft.com/en-us/vcsharp/aa336800
    <CLR via C#>
    垃圾收集等等

    interview question for senior engineer
    http://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx

    时间:两到三周
    结果:PPT,以及部分代码项目实际运行调试

    5)C#规范specification阅读,C#编程规范

    http://msdn.microsoft.com/en-US/vcsharp/aa336809.aspx

    时间:一周到九天
    结果:PPT

    6)C#开源项目快速阅读及应用,辅助工具使用

    http://www.codeplex.com
    http://csharp-source.net/
    “mono project”

  • 丰富多彩的一天

    傍晚,走到家附近卖鱼汤包的店铺就有点拿不动腿了,中午吃得不多,下午消耗太大,看小潘潘发短信来说饿了,我也突然感觉饥肠辘辘,走进去要了碗馄饨边用手机上网边等,还真是饿了,感觉时间那么漫长,百无聊赖中发现了座上的“魔力星座宝贝”,突然就来了兴致,别说,一块钱没白花,讨了个吉运,哈哈。虽然上面只有四项有关运势的,说的却挺准。

                                       *运势:想放轻松,让自己悠哉一下。                               准确  最近的确有点儿疲惫,工作太努力:)

                                        *爱情:何不安排玩乐的节目,有机会遇到艳遇。             胡扯  已婚妇女艳遇就算了

                                        *财运:财运一般,没什么大的开销。                               精辟  除了晚上买菜没有额外花费,吃饭洗澡有人请啦,哈哈

                                        *工作:完全把工作抛诸脑后。                                          神了  压根儿就没干活,相当于翘班一天

    一大早就跑到关系单位报到,简单整理数据后就聊天上网,这所谓的工作真是轻松加愉快啊,哈哈。和小潘潘一起跟着人家去吃川菜,当然也可以说成被请,细节自不必言表,反正席间总总挺搞笑。

    酒足饭饱后跑去高档洗浴中心,美美地洗澡喝茶,因为特殊时期,麦饭石那个屋子俺喜欢,恨不得把自己全埋起来才好。我右边的膝盖受到了我特别优待,谁让它阴天下雨和特别日子之前总是酸溜溜难受,不知往哪里搁呢?小潘潘回去值晚班,我又大大地高兴一把,上次录数据我吭哧瘪度回去的不爽抛诸脑后咧。这一高兴又蒸了会儿,算是彻底透了,出来在大堂坐了半天脸还是红通通的,鼻尖的汗也是渗了一层又一层,担心感冒足足做了一半个小时,又是手机上网偷菜加回复留言。没忘顺手拍了几张照片留着得瑟……

    我这成倒叙还是插叙了,馄饨快吃完时发现邻座八九岁男孩戴着眼镜在昏暗的灯光下看书,职业病犯了,跟他妈妈叨咕了几句近距离用眼和用镜的注意事项,有点儿好为人师了,不知人家是否领情呢,怎么跟小潘潘似的,哎!去菜场买一大堆东西,居然顺手还买了坠子,明儿去配个挂绳,嘻嘻。看着它我就喜欢就想跟着笑……

    人一开心就爱管闲事儿,看见楼梯上一十一二岁的女孩儿哄她两三岁的弟弟,不免怜惜起来,小小儿啼哭不止,鼻涕横流,小归宁手足无措,满头是汗,我弯下腰帮着哄哄,拿出湿巾让小姐姐给弟弟擦鼻涕,小小儿可能对那味道比较满意,止住了哭声,又对我手里大包小卷儿的东西有点儿垂涎,我立刻心领神会,拿了块儿蛋糕给他,姐姐说不好意思,弟弟却笑嘻嘻,在姐姐的要求下,男孩儿说了谢谢,我摆摆手乐颠颠儿往电梯跟前走去,这也算助人为乐吧,哦?

    一人吃饱全家不可能不饿啊,那个赚大钱的还没回来呢,水果是命菜饭也不能少啊,营养餐咱是少不了的。晚上青菜豆腐伺候着,不知人家满意否,瞧我多不容易,还得看人脸色活着,上班得给人家做饭,休息得给人家做饭,出去吃喝玩乐回来还得给人做饭,不管人家都说我贤惠呢,行了,今天得瑟得不轻,记账也没力气了,很久不写估计回头检查又得被批,还是贴照片,收工吧。

     

    P29-06-11_15.37[01]P29-06-11_15.44P29-06-11_20.07P29-06-11_20.08P29-06-11_23.13P29-06-11_23.14

  • Lua编程、弱引用、招DotNet程序员

    Lua社区最近有很多值得关注的新闻,第一条毫无疑问是Lua5.2.0接近release,最新一版Lua 5.2.0 (beta-rc4)(http://www.lua.org/work),按照作者Luiz Henrique de Figueiredo的说法,大概还有一个多月时间就应该能看到release版本了。Lua5.2.0比较值得关注的是增加了一个关键字(goto),可以通过goto实现continue的功能,所以不出意料的依然没有continue,在twitter上云风回复说他统计了一下自己某个代码,里面好像也是continue远远少于goto的使用。另外还是要赞叹Lua作者的牛逼,现在Lua大概还是二十几个关键字,其它语言上百个关键字的伤不起啊!你都记不全!

    另一个新闻是LuaJit也接近release版,现在是2.0.0 Beta8,http://luajit.org/download.html 对于性能追求者来说,LuaJit是一个很好的选择,但是支持平台不够多(比如我的PowerPC啊)。最新一版对于ARM的支持是亮点,啥Android、iPhone的,统统都支持。另外FFI Library也是亮点,这个功能可以极大地提高对C API的开发支持。

    在新浪微博上(我的微博是http://weibo.com/sagasw )有人问我,学习Lua与C交互,什么项目比较好。下面是我的建议:

    1)主要用Lua,想用C作为模块支持某些特性。如果你想完成类似程序,那么Lua自己的module毫无疑问是最好的学习项目,比如5.2.0中的lbitlib.c、ldblib.c、lstrlib.c、ltablib.c,都是通过Lua API开发出来的。另外比如LuaSocket、LuaFileSystem都是很常用的模块,学学也都不错。

    2)主要用C,想用Lua作为动态支持。如果想达到这个目的,可以参考Programming In Lua(可以在网上免费阅读下载)中的示例。与1)也差不多,基本上都是通过Lua stack来与Lua访问。1)和2)基本上编程方式是共通的。

    另外可以参考这个项目http://labix.org/lunatic-python,可以实现Lua与Python互操作,类似项目还有http://pypi.python.org/pypi/lupa/0.17 

     

    Weak Reference是一个编程领域通用的概念,在http://en.wikipedia.org/wiki/Weak_reference 这里可以看到比较详细的介绍。DotNet中就有WeakReference这个概念,另外Lua有Weak Table概念。弱引用是指在有垃圾收集机制的程序语言中,常规情况下对某个对象的引用都是强引用,比如a=b,a就引用了b,如果b在其它地方不再被使用,但是a依然存在有效,那么b就仍然是可达的(reachable),或者用引用计数这方式来讲,就是reference count仍然大于0。但是这有一点问题,是我以前碰到过的。

    我在某个项目的性能改进中引入了cache机制,有一个全局的对象缓存管理器。我的实现很简单,就是用一个vector保存对象指针,在类析构函数中查找对象缓存管理器,决定是否真正释放对象,还是说仅仅把对象放到管理器中。

    由于代码写得不是很完美,其中有一个问题,就是指针在缓冲管理器中放着,但是实际对象实例已经被释放了。也就是说,为了真正释放对象实例,需要做两步才正确:第一步是查找缓存管理器,查找删掉里面的指针引用,第二步是真正释放对象。

    很麻烦是不是。对于C#这样的没有确定析构时间的编程语言来说,也有类似问题。我们举一个很典型的例子,如下图所示(from http://diditwith.net/2007/03/23/SolvingTheProblemWithEventsWeakEventHandlers.aspx):

    EventLeak

    可以看到当myForm释放,但是没有移除handler,那么handler指向就有问题。

    强引用的另外一个问题是会影响垃圾收集。比如我前面那个需要,如果把引用存放到某个全局对象管理器,那么GC会认为这个对象是可达的(reachable),没法正确的释放了。

    弱引用就是完成这个目的,一个弱引用对象,可以通过对Target是否为空来判断引用对象是否已经释放,而且不会影响垃圾收集有效性。实现方式(好像是)与我前面提到的也很类似,对象析构时,先从某个全局的弱引用队列中把相关Target删掉,然后再析构(所以弱引用是会影响一点点性能)。

     

    最近在找两个DotNet程序员,最好是有两三年开发经验,如果有WPF/SilverLight经验最好,要求DotNet知识牢固,对编程有兴趣,另外有较强的自学能力,英语能够进行基本对话交流。有意者请发简历到sagasw#gmail.com(替换#哦)。

  • 五月二号的一些照片

    五月二号,我们一家人跑到星海广场去玩,拍了几张照片。

     

    IMG_0225

    IMG_0242

    IMG_0247

    IMG_0283

    IMG_0288

    IMG_0296

  • 我的新技术生活、培训学校及六一儿童节

    第一件事,最重要。

    四月初,我换工作了。离开了工作八年的罗克韦尔,到了另一家单位。生活变得忙碌,但是感觉很充实。

    罗克韦尔这是一家好单位,可惜的是我没有随之一起成长,走了不少弯路。如果能穿越或者回溯,估计很多事情可以做的更好。感想很简单:如果你在某公司,觉得呆着没意思或者不受重视,早点离开为好。另外建议大家多看看《职来职往》这个节目,里面达人提供的经验很宝贵,我后悔没早看到。

    第二件事,关于做人的底线。

    最近在csdn上看到“著名的”传智培训的老师张孝祥替人写技术面试题,以至于都累病了。这件事太让人感动了。一个没有底线,不知什么是对错好坏,逻辑思维混乱,善于偷换概念转移话题的人都可以创业成功,还在微博上受到csdn某大腕的吹捧,那还有什么不能做的?只要敢做,错事都能都敢吹的全世界都知道。最可贵的是,还有很多人鼓吹叫好,为之呐喊助威,所以说现在,成功真的很容易复制,只要你没有底线。

    第三件事,关于孙秀楠。

    六一那天中午给家里打了个电话,萌萌接电话告诉我她在看书。我感觉很难过,六一没法带她出去玩。其实我应该请假领她出去的。好在也没必要后悔,周末好好出去玩玩,补偿她一下。