2010年04月的日志

RE [TL] {讨论}零起点,一年成为高级Windows 程序员的最佳学习路线

回复一下这篇文字http://groups.google.com/group/pongba/browse_thread/thread/2c4aef6e89cfd362/adda28b8d29a93b7?show_docid=adda28b8d29a93b7

多少也算是个windows下的MFC常用的程序员,谈谈个人看法。

1,Essential C++这本书不是高阶的,如Milo所言,另外也不算是初学的,我翻看过钱能那本书,如果是follow了国内的教育体系,这书可以看。

2,这个学习路线基本上用处不大,每天8小时,那么这个人既不学习也不工作,只是为了学而学,傻啦。学东西要有个目的,为了赚钱或者为了乐趣或者为了泡妞,没有目的的长时间学习是无法坚持的。

3,”吃透“这个词很有意思,楼主写了比党更长久,不知能否做到,但我相信,一定会比里面提到的一些技术活的更长久,所以只要吃透本质性的东西就好了。比如算法、操作系统、内存管理、socket编程、消息循环机制、多线程编程基础等等,其它的,真的没有必要吃透,会用就好了。样样想精通,只能痒痒稀松。哪些东西算是本质性的,我有一个办法,可以去图书馆看看10年前的计算机书,如果那些书还有用,还有人推荐推广,那个技术应该算是本质性的了,时间是最好的标杆。

4,MFC不必深学,照猫画虎即可,MFC的好处是他所有的源代码都给你,可以读,可以改,可以模仿克隆。而且MFC没有死,VC2010依然对它继续加强,Windows系统下搞界面设计还是用它比较容易。

5,SDK是否需要深学,也未必,我的感觉是知道大体有什么,到时候能查到就OK,SDK的开发例程是基于C的,所以跟你前面推荐的不太配合。另外有没有必要非得学SDK呢?还是有些怀疑的,MFC也好,ATL也好或者WTL也好,都对SDK做了包装,就是让程序员更简单的使用,非得赤裸裸用SDK的时候很少,这个投入产出比例就不合算了。当然,我说的是操作系统的SDK,其它的不论。

总而言之,一年这个期限是远远不够的,而且一年的程序员,眼界或者能达到的水平是有限的,开发这件事其实就是个熟练工种,除了少数计算机科学家,大多数人都是在重复做工。只要有心,从小工达到工匠的水平并不难,但是需要时间,看看过去的学徒如何出师就知道了。小工算是一般程序员的话,工匠也就是高级程序员了,大师嘛,可望不可及,就不说了。

img.ly yfrog图片上传程序 – 玩玩google appengine

这两天晚上没事,做了个appengine上的玩具(toy software),可以把我指定的图片url存放到http://imgur.comhttp://img.ly  http://yfrog.com,由于imgur以及img.ly在大陆可以访问,可以作为一种博客图片的保存方案。

代码很简单,放在gist.github.com上面了。由于img.ly和yfrog需要twitter验证,所以你需要有一定的翻爬这个wall墙的手段。把下面代码中developer key以及twitter的用户名密码部分替换成你自己的就可以用了。

如果要用的话,只要包含这个py文件,然后在appengine上建立一个新的url route就可以了。这些就不详述了,大家可以参考appengine的文档。

需要注意的是imgur有时效性,3个月不浏览一次文件会被删掉,所以img.ly算是现阶段最好的方案,缺点是需要把图片读取成二进制才能上传,做不到url方式上传(imgur和yfrog可以的)。

Tags : , ,

Lua游戏开发的最基本常识game development common sense

国内搞游戏开发的常用脚本语言大致两种(Python与Lua),其中刚入行的游戏开发者都会有类似的问题:Lua该怎么用?谁为主谁为辅?C++与Lua该如何交互?

最近浏览stackoverflow发现这几个不错的帖子,分享给大家:

http://stackoverflow.com/questions/2674462/lua-and-c-separation-of-duties

Lua与C的责任分配问题。

http://stackoverflow.com/questions/2685636/lua-game-state-and-game-loop

游戏大循环(game loop)该如何维护?

——————————————

另外国内网易云风的博客上也零零散散有些内容,可以参考。

我不是游戏开发业者,所以也不好发表什么建议。但是我想比较重要的一点,也是在程序设计理念上一直强调的一点是:你要知道你要做什么,你想完成什么功能需求。

有些人话都说不清楚,就想搞游戏设计开发。脑子里都是浆糊,怎么可能设计出清晰的程序逻辑。找一支笔一个本子,先把你的需求想法列出来,画个交互关系图,把时序逻辑理清了,该如何设计如何开发也就容易多了。其实这也就是常识性的东西,只是现在不少人浮躁的连常识都没有了。

试试Python

豆瓣的开发者洪强宁在qcon做了一个推广python的演示,写的很实在,可以看看。

Shit一般的MSDN下载管理器

看图吧,这是我实验了多次,在多台机器上重复出现的问题。

image

罗塞塔代码RosettaCode-你的代码烹饪书(code cookbook)

奥莱里公司有一个很不错的书籍系列,是以xxx cookbook为名,比如Ruby cookbook、rails cookbook、python cookbook、c# cookbook等等。这些书当然不是让你用Ruby或者Python煮菜,而是对特定比较典型不是很复杂的任务能够快速上手的代码示例。

但是不是每个语言都有类似的出版物,比如F#或者Lua这类语言,不太可能有它们的cookbook出现,毕竟语言有些小众,这时候RosettaCode网站就能帮你大忙了。

罗塞塔代码http://rosettacode.org/是一个程序选集网站(http://en.wikipedia.org/wiki/Program_Chrestomathy),有些类似cookbook这样的菜谱书,可以根据不同编程语言列出一些常用的任务主题。

image

每个主题包含了不同语言的实现,比如http这个功能实际上包含了C、C++、C#、FSharp等等不同的实现方式:

imageimage

我比较感兴趣的Fsharp语言实现就有同步、异步两种模式的代码。

有了这些示例,既可以很快找到自己想了解的方案代码,还可以通过不同语言的实现做一个横向比较。另外,也可以通过这些例子来学习这门语言。一举多得非常有帮助。如果你有好的方案,还可以贡献到网站上,因为这个网站的架构是用wiki实现,用户也可以加入自己觉得好的代码。

除了罗塞塔代码,还有一些类似的网站,我把它们列在下面,大家可以参考使用:

http://www.99-bottles-of-beer.net/

http://www.miranda.org/~jkominek/rot13/

http://progopedia.com/

http://pleac.sourceforge.net/

Tags :