五千年(敝帚自珍)

主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

共:💬203 🌺502
分页树展主题 · 全看首页 上页
/ 14
下页 末页
                          • 家园 兄台所说,字字珠玑!

                            C#看过大体介绍的书,还是OO的思路,并且和 .NET的联系最紧密。但毕竟还是外行,譬如java学过半年,随便一个什么几十行小程序,都很费劲。这种OO编程真是痛苦,更多情况下,别人把这个事件定成个Object,而我的思路是认为把那个事件定为Object更逻辑些,然后再跟着他的思路往下想,哦,除了痛苦就还是痛苦。不像C++,实在不行就重写,我想用指针就指针,想用class就class,算法一有,然后基本上就如同打游戏一般。因为我们这种几百行的小程序,即使重写也很轻松。

                            用在工作中的编程知识已经远远够用了,我更多的爱好就是业余,学学高手解题的算法,每有感悟,就自叹不如:这道题还能这么解?像我以前请教河里的高手解24点问题就从中得到很大的乐趣,就当打游戏啦,哈,毕竟是票友。

                            不管你用什么语言做开发, 我都建议你找重构(Refactoring)这本书看一下,对你怎么组织程序结构,怎么修改别人的代码会有很好的帮助。 另外代码大全, 编程珠玑这种描述程序代码规范和风格的书也很值得一看。

                            有语》听君一席话,胜读十年书。多谢多谢,这就找来看看。

                            • 家园 说明你水平比较高么,呵呵

                              我和你相反,算法丢了好多年了,现在有需要头就比较大,最近又开始翻数据结构。

                              其实OO相对于过程化语言来说,他更简单,更加接近现实世界的结构,当然从另外一方面来说,他比较适合表示各种复杂的交互关系。

                              而你只需要研究算法,一般写的代码都不太长,就不需要体会这一个层面的东西了。

                              考虑你的背景,我觉得其实你应该比早期的那些c程序员更容易转换, 你把oo的概念和现实世界处理问题的模式挂钩就可以了。现实世界里,我们分析问题的模式一定是分解, 把问题域粒度化,层次化和立体化。 那么这个粒度就差不多是对象, 层次和立体化就是对象间的组织关系和关注点。我想你看完重构以后会对粒度化这个问题有更好的了解。至于你说的那个对象问题,其实是个人视角的差异,这个早期并不需要太多关注,写的多了,自然就明白什么是最合适的了。

                              另外c#因为ide的关系,你完全可以像vc或vb一样使用,不需要琢磨对象这个概念, 不过相对你的工作需求,好像也没什么优势,呵呵。

                              你是在物流公司工作还是在商学院之类的地方做研究?我怎么记得搞研究的是有专用系统模拟方面的语言的。

                              • 家园 回头俺把这句话写成条幅装裱订到墙上。

                                说明你水平比较高么--风北客

                                回头俺把这句话写成条幅装裱订到墙上。

                                OO的概念确实如兄台所说,现在我是理解些了,因为前段时间必须用别人的一个framework写一个搜索算法的模拟小程序,从中学到了好多OO和虚函数等等的概念,看来必须实际做点什么才能真正掌握一门语言。但是样本和数据量要定的很大,所以越来越觉得C++或C++-STL里的东西越来越像花拳秀腿,真正的东西还是C,但也不知对不对?加上前段时间学习别人的华容道的解法,有人竟然将一副棋盘存入一个32位int值,尤其对我触动极大。有机会一定把run-time里的函数学一遍,步一下老兄的后尘,神往一下老兄和其他前辈们当年的风采。不过是全当游戏罢了。

                                突然有个想法,编程风格是体现个人性格特征的。像瓦斯兄所说,有些人学什么都快,不假。可应该还有一些人不会也不愿依环境而改变自我。像老兄提到的那些有多年经验的C程序员,我想他们自己不愿意转思路?

                                我正在一所大学里混个文凭,这所大学因为号称IT是很牛的,所以我们经济系的有些必修和选修课程是必须和计算机打交道的。如果老兄再往下问,只好河里短信了,哈。马上最后的论文也是写物流的,这个物流所和许多公司有研发项目,每个项目一年至几年不等,当年这个项目的带头人会VB+C,好了,往后大家只好都用VB+C了,如果用VC,好了,往后大家只好都用VC了。其实主要还是一些搜索算法,优化算法。通讯研究所的人,据我所知,全是C/C++ + Linux,那帮人手比俺的眼还快,大部分人应该好像只用C。别的研究所用java的不少,可是用C#的,据我所知,凤毛麟角,更多的是VB。兄台说国内好多人用C#,倒是和这里相反。

                                C#,.NET,WPF,D语言,呵呵,懒厨讲话,Linux, 还是Windows,Java也好,.Net也好,工具而已。。

                                • 家园 呵呵,说起来咱们还是同行呀。

                                  我上学时候读的也是商学院, 系统工程方向,我们系的大部分老师都是cs出生的。 那时候有同学问老师我们和cs系的区别, 老师说,我们是白领,他们是蓝领,呵呵。

                                  看到2系师生合作项目,也基本如此。我毕业的时候脑袋没开窍,跑去做蓝领了, 国内大环境不好,蓝领做到一定份上就作死了,自己对做管理工作兴趣也一直不是很大,现在感觉视野完全堵死,很是后悔当年的决定。

                                  国内c#主要还是中小企业用的多,因为相对来说学习时间短,对付一些小东西比较快捷, 大学和研究机构的用java和c比较多。我读书的时候比较早,专业方面也没上心,不过当时记得这类专业性质的编程,主要考察算法和建模的,都还是有专门语言来做的,比如prolog,lisp什么的。 记得当年课程设计的时候,有个作业就是模拟港口吞吐量,用的就是ibm做的一个东西,都不记得名字了。所以听说你用c来研究商业模型,有点意外,呵呵。 不过当年有个老师在日本读书的时候, 做的课题也全部是用c写的。

                                  • 家园 福兮?祸兮?

                                    我毕业的时候脑袋没开窍,跑去做蓝领了, 国内大环境不好,蓝领做到一定份上就作死了,自己对做管理工作兴趣也一直不是很大,现在感觉视野完全堵死,很是后悔当年的决定。

                                    福兮祸兮?感谢老兄对我的提醒,不过以我的悟性和智商,不是谦虚,是无论如何也干不了蓝领滴!只好东诳西骗,争取搭上不做技术的船。太累了。

                                    国外的研究机构以我的接触,感觉水平不低,研究的都是很新很深的课题,所以用什么语言对他们并不是关键;相比这里的某知名大公司,办事效率自不必说,但是他们的理论水平。。。不敢恭维,不过已然足够了。再相比国内的各个企业,大聪明人小聪明人遍地,不过都把效率浪费在内斗了。感触颇多,有机会开个话题。

                                    我总感觉运气的成分占很大因素。并不是因为你走那条路。但关键是喜欢自己的行业。

          • 家园 有些人就是学什么都是好手,很赞同这句

            不单是编程。

      • 家园 有请楼上单独开帖谈谈lambda calculus

        一直对scheme这样的语言感兴趣, 但是一直也没有机会仔细琢磨, 有请goon给仔细讲讲.

        • 家园 我倒是会lambda calcul,但我不清楚对实际开发有什么用

          我好像从未听说哪个比较大的实用系统是用lambda calcul写出来的。

          话说回来,我准备以后回国翻译几本lambda calcul的书、介绍几门相关的语言,不知道有没有前途赚点小钱(其实不赔钱就行),哈。

          • 家园 现在翻译都是机器翻译,你怎么比?

            或者你先搞点名声出来, 那还差不多。

            • 家园 那你说怎么办?

              现在回头想想,中国的高等教育比较搞笑,根本不是计算机教育,而是计算机培训。

              • 家园 你又说错了

                现在估计除了top5的学校, 一般连培训都不搞, 我接过一批毕业生,居然告诉我大学4年连课程设计都没做过,

                全靠自觉。我面试过一些top10 出来的,4年啥都没学,就打字和qq很熟练,呵呵。

                不过软件开发么, 只要不是基础理论研究,还基本都是靠自己吧, 大学主要是提供一个交流平台。

                最近正在琢磨是不是去正规上个学,接受一点科班教育,又觉得人过三十不学艺,矛盾。

                • 家园

                  其实当年我也不懂Lambdal Calcul,然后在google上搜来搜去只有上海交大一本超级简单的英文讲义,让人极度失望。后来听说清华也在教,不知道其它学校有没有教。

                  软件开发么,自觉和兴趣是很重要,但是普通编程可以自学并且可以胜任,但有些知识不是自学能完成,比如算法、比如编译原理、比如硬件编程、比如lambdal Calcul、比如数据库底层数据结构设计、博弈论、CAD软件设计、VLSI、DSP、操作系统内核设计、POSIX,etc。。。不过中国软件比较浮躁,底层东西又难开发又有盗版,就连应用软件也是just so so,所以不需要学的深的编程人员,付不起那份工资也没有那个习惯。

                  至于你么,如果是真心喜欢编程又有余力和时间的话,不妨去学点东西。如果一心只是想要更高薪的跳板的话,那还是算了。

                  • 家园 呵呵, 在我看来貌似你举的例子都不充分

                    这些东西基本都是可以自学的。 借助互联网也可以钻研到一个比较深的层次。

                    我其实想去上学是感觉现在已经到了瓶颈, 我缺少的不是这些简单的技术积累的东西, 我缺少的是视野。但是在国内读书又毫无用途,以前工作原因也和学校的这些单位打交道不少, 就我从事的专业来说,大部分硕士毕业生会比我差,和一些博士比,我综合素质也不会弱,国内读书就纯粹是混文凭了。

                    想出国读书又总是下不了决心,毕竟都30出头了,要考G,还要把数学捡起来,想想头都大。而国内的大环境,做技术的到了我这个年纪,要么就是自主创业,要么就是转行或者找个大公司养老, 但是好像都不是我喜欢的,头疼。

        • 家园 才疏学浅,不敢丢人现眼

          WIKI上有很多资料,虽然不尽正确,但是末尾都有很多reference。就开个头吧

          The hierarchy:

          Formal semantics of programing language

          - denotational semantics <--> domain theory

          - operational semantics <--> Lambda calculus

          - axiomatic semantics <--> Hoare logic

    • 家园 工具而已。

      最初是做硬件驱动开发的,觉得写上层软件和界面程序的很没技术,因为他们和硬件、操作系统打交道很少。

      几年后,开始写应用层软件和界面软件了,和硬件驱动开发人员聊天的时候,对那些对底层一知半解的应用层软件开发人员很不屑;和应用软件开发人员聊天的时候,也不时表示一下对驱动开发人员对庞大的上层软件结构一直半解的蔑视。

      几年后,又写驱动的时候,突然觉得,不那么熟悉了,原来间隔的时间太久,好多忘记了,不由得很感叹,曾经对这个工种是多么的熟练啊!

      原来自己仅仅是个建筑工人而已,语言就是砖瓦,各种软件就是工具。

      自己呢,就是老板的工具。

      程序员就是一名建筑工人,混好了,落个包工头当当而已。

分页树展主题 · 全看首页 上页
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河