解惑

解己之惑,解人之惑

作者:cherami (第42页共82页)

大学学什么?

很多人大学毕业以后都感觉自己什么都没有学到,而且事实也确实如此,大学的大规模扩展导致大学生的素质良莠不齐,而且一些比较差的学生也影响了另外一些其实愿意学习的人。但是这个不是今天的主题,今天的主题其实是大学期间到底应该学些什么。
先说出答案吧:大学期间学习的应该是学习方法,要培养自己学习新知识,解决未知问题的能力
这个其实是我高中的一位老师说的,而我也在大学期间坚定的实践了,从目前我的感觉看是非常的正确的。
大学期间的很多基础课程是很重要的,一些是拓展知识面的,一些是专业课的基础,而专业课,很多实际上只讲了理论,但是很多人并不能实际使用或者不知道和实际生活有什么关系,以软件开发为例,很多语言课只讲了语法,但是如何应用这个语言去解决问题去写程序并不强调,如果你对于那些上机课不认真,那么那些语法可以说是毫无用处的。另外,对于计算机专业,很多人可能觉得物理和化学根本就没有任何作用,在生活中的用处也不大,我的感觉是拓展知识面,不能真的只知道你专业的东西,这样对于学习新知识可能会不利,特别是你以前完全没有接触过的,而且对于做一些跨专业的事情就可能感觉完全无能为力了。
至于如何学习学习方法,很简单,尽量尝试自学所有课程,或者课前预习,看看自己的理解和老师的讲授是否一致,另外就是所有的实践和试验一定要认真对待,不要抄袭别人的成果,只有亲自做过,你才能知道可能出哪些问题,不断的积累经验。

PS:这次装修,原来以为完全没有用的物理、化学以及数学(不是简单的乘法运算,而是剪裁方法)也发挥了一些作用,在购买材料和计算用量的时候,有些东西可以从物理化学原理上给出一些猜测或者分析

装修其实也没有那么难

从最开始怕累把装修完全委托给一个“熟人”吃了亏,到后来小心翼翼的和同事推荐的一个公司签了半包合同(装修的人只买3000块钱的东西,水泥黄沙砖之类的),然后每个周末去买东西,到现在感觉其实也不是很难,主要是自己要做足功课,当然也不是全部都要搞清楚,一些小的东西就完全没有必要细究了,让装修公司帮你买好了,总不能让别人一点水也没有喝吧。装修到现在,我们就是跑了四天,第一次是到九百买了很多东西,本来想着涉及环保问题的东西在哪儿买的,主要是木板和油漆之类的,结果我和老婆看九百的价格和装修公司给的报价单上的没有太多差距(有些还便宜一些),就一股脑全在九百买了,这样也放心一些,售后保障也好一些。事情进展到现在,有一些经验分享一下:

  1. 装修公司给的报价一般是超市里面的报价,所以如果预算的总价对你而言没有太大压力,不妨就到那些大的建材超市买,质量和售后方面不用担心。
  2. 装修一般还是半包比较好,大件的东西一定要自己把好关,量多、涉及环保的也要自己把关,主要是木板、油漆、卫浴、厨具、PPR水管、磁砖、防盗门、地板、铝合金移门、铝合金窗、门、厨柜门、厨房台面等,而且还有一些五金件之类的东西在大超市也可以一次性买好,价格也不是很贵,这些东西买齐其实最多也就花5天时间,每个星期买一些下一个星期要的东西就可以了,小东西有时候顺带买了也可以。
  3. 如果是到外面的市场买(例如恒大、同福等个体经营的市场),那么先要上网研究下要注意些什么,主要考虑那些指标,然后货比多家,在问每一家的时候也问问别人怎么鉴别好坏,如果和你已知的情况相近的(考验对方是否诚实),另外价格也比较适中的就可以考虑出手了,不要贪便宜,大部分情况都是一分钱一分货。
  4. 对于和工人和工头的关系,不能感觉是你求着他们,但是也不能对他们太冷淡,对于工程的质量和要求,一定要严格,同时一些必要的小恩小惠也是必须的(例如给点烟、买些矿泉水等)。
  5. 如果时间稍稍充裕一点不妨多看看,特别是那些大的建材,有时候会有些特价商品,质量还不错(在这些大超市卖的东西一般不会太差,因为有质量问题是找超市而不是卖家的)
  6. 参加一些团购也不错,我开始就申请了一个团购卡,但是因为没有时间去看实际的东西,就没有在网上团购,而且网上团购的商家偏少,选择的空间较小,不过那个卡还是有点用(才5块钱的快递费),最起码可以了解一些产品的大致价格,这样到建材市场买东西的时候心里有底。

读《用人单位给计算机系学生的一封信》有感

大致的看了一下用人单位给计算机系学生的一封信,感觉很有道理,软件开发其实很简单,但是再简单的东西都需要有个基础,如果基础好,那么后面的学习提高将会事半功倍,反之事倍功半。我不敢说自己的开发能力有多高,但是到现在为止还没有遇到过完全无法解决的问题,我想,很大程度上得益于我大学时代的实践,大致列举一下我大学时代的实践:

  1. 独立完成Basic的所有课后练习(除了八皇后问题),上机调试运行通过(Basic是计算机基础课程的后半部,后来老师实际没有讲,因为我们有C语言)
  2. 完成C语言的大部分课后练习并调试通过
  3. 完成汇编语言的大部分课后练习
  4. 单片机实习的时候全部是自己写的,包括通过COM口做温度采集系统,通过COM口实现双机通讯,完成文件传输,可以处理200M以上文件(汇编和C都写了一遍,C是因为其它同学已经不能使用我的汇编成果了,又帮他们写了个C的)
  5. 大学生电子设计大赛,用汇编写了4000行代码,完成数字万用表的软件部分,处理传感器的数据
  6. 毕业设计使用JDK1.1的AWT写了一个简单的金山词霸
  7. 毕业设计期间到一汽的一个研究中心用VB写GPS/GIS应用,也就是汽车的终端监控系统,使用别人的插件

使用工具修改代码时一定要谨慎

今天早上来更新了下代码,发现自己负责的和Crystal Report集成的代码突然不能工作了,刚好昨天升级了Crystal Report,而我们明天早上就要做演示的,天啊。
不过好在我是一个经验丰富的老鸟了,这点事情还不至于让我手忙脚乱,看了下控制台,没有异常信息,在关键代码的地方设置了断点,跟踪了下,发现原来工作的一个Query不能工作了,但是异常被截获并忽略了,把异常信息打出来,报的信息是查询无法识别,我没有修改过啊,而且这个查询是提交到Crystal Report Server的,那个Server并没有升级啊,再仔细一看,原来是我的查询被修改了,加了一个/*ARQXXXXX*/的注释,呵呵,原来罪魁祸首是美国那边的架构师,不知道他使用什么工具把我们系统全部代码的SQL前面全加了一个这个注释,但是我的这个查询虽然和SQL很像(也是Select … From … Where),但是实际是完全不同的东西啊,根本就不支持注释。

我同时记起了我自己前两个月犯的一个类似错误,我在造自己的大轮子,那个时候在写表现层的底层部分,生成HTML,在格式化的时候,我开始选择的是使用4个空格作为缩进,但是后来考虑到这样会导致生成的HTML太大,就使用tab替换,但是我写的单元测试已经是使用空格了,所以使用UltraEdit使用表达式进行全部替换,结果我的代码全部没有了(UltraEdit的那个功能没有Undo),因为我的代码也是使用四个空格作为缩进的,好在还能恢复很多,因为Eclipse是带本地历史记录功能的,可以恢复到上一次修改的状态,然后把最后的一次修改再做一下(浪费了一个小时的时间)。

更新:架构师的批量修改又有新问题,一些调用Oracle的存储过程的SQL也被加了那个,但是也不能加

Java磁砖

今天早上到新房子看了下,没有什么进度,但是看到了Java磁砖。
磁砖的中文名好像是乔意达,在旁边有个英文:Java,没有带相机,改天拍个照片贴上来。
上周六在九百买的时候没有注意,因为主要是老婆在挑,我们只看到超市的价格标签,没有看到包装盒,而那个英文名称是在包装盒上的。
也许这个只对我们做Java开发的人有点意思

更新:照片如下
Java磁砖
PS:我们买的时候这个磁砖挺便宜的,2.48元一块(原价是4.5元好像),300X450,在九百里面买的,而且九百搞活动,买1000减120,给我们装修的工头说质量不错,不过式样比较少,只有三种花色

问题多多

刚刚说到我们要迁移数据库,所以我就试验了下使用ODBC连接数据库,配置完成以后,可以连接,但是在选择表的时候有问题,里面只列出了oracle的一些包,没有列出任何一个表或者视图,加了一个Command,随便写了一个SQL,从我们的一个表里面取全部数据(select * from tablename),可以正常过,到了报表设计器里面可以看到Command列出的字段确实是SQL选择的那个表的字段,但是把字段添加到报表中,然后预览的时候设计器就死掉自动退出了。

打开Business View Manager,添加数据源,从那个里面可以正常的列出数据库的表和视图。

看来Crystal Report的代码重用没有做好,一些地方可以正常工作,但是另外的地方就不能正常工作了。

更新:
找到解决方案了,选择那个ODBC连接,右键打开菜单选择Options,在Data Explorer中把Stored procedures去掉就可以了。

数据库可移植性重要吗?

对于大部分应用而言,数据库可移植性可能不太重要,而一些完全使用ORM的应用可能也问题不大,但是一旦需求来了,它就变得非常的重要,现在我们就遇到了这样的需求。
我们原来一直使用Oracle,也从来没有想到要更换数据库类型,所以我们一直心安理得的使用各种Oracle优化技巧来优化我们的SQL(我们的系统的性能要求也比较高),现在有个新客户,要求使用SQL Server,这下就麻烦大了,初步估计需要5000个小时!
这个变化也影响到我们做的水晶报表,原来没有考虑数据库迁移,所以选择数据库连接的时候直接选择的就是Oracle服务器,而不是建一个ODBC的数据源,而水晶报表的数据库配置是不能随便修改的,不说更换数据库类型,就是更换一下服务名都不行。

PS:据说微软愿意为我们的数据库迁移支付一部分的成本,呵呵,果然是财大气粗啊。

没落的Java社区

感觉原来的几个Java社区日益没落,当然这个和Java世界的消沉有很大关系,这两年已经看不到什么大的Java新闻了,特别是对于Java开发人员而言的大新闻,原来Spring带来的各种火热的讨论也已经沉寂下来,Java世界似乎已经毫无新意了,现有的任何Java开源产品或者组件所能够带来的开发效率的提升都无法和新的脚本语言匹敌(我想这也是为什么JavaEye会使用RoR重写的一个重要原因,同时也是Robin转向研究Ruby的重要原因),在可以预见的一段时间以内,都不太可能出现一颗真正的银弹。但是我对于Java并没有丧失信心,因为Java依然拥有广大的开发人员以及丰富的开源产品和组件,现在所缺少的是一个真正简单并且易用的快速开发框架,提供Java Web开发所必备的大部分功能,开发人员所需要关注的仅仅是创建数据库和业务逻辑代码(不需要开发常见的CRUD操作代码),当然开发人员也不需要太多的配置就能够让整个系统跑起来(不需要Spring的Bean配置、Struts的Action配置、Hibernate的配置)。
就我个人感觉,完成这样的一个框架并不是很难,困难在于Java世界应该引入更多的规则而不是可配置,最起码可配置是第二位的需求,但是Java世界的人似乎已经习惯了配置,习惯了对象间的关系是在运行时通过读取配置文件来确定,也习惯了通过读取配置文件来组装系统。
对于多人并行开发的系统而言,Java的强类型约束无疑对于代码的可维护性和可读性更加有利,但是基础设施的严重缺失使得代码的开发难度加大,代码的重复性也因此加大(对于一个简单功能,由于Java本身没有提供,只能自己写、寻找其它的开源组件或者公司自己的框架提供,但是很多新来的人不知道已经有那样的功能,即使知道也是拷贝一份代码稍加修改)。
我相信现在有很多人都有和我一样的想法,也有很多人在做,包括EasyJF(简易Java框架),问题是他们并不能真正的普及,他们的设计者和维护者并不能得到大部分人的认可,而像AppFuseSpringSideJdonFramework这样拼凑起来的快速开发框架也不能解决问题(还是需要大量的配置),我期望中的真正的Java快速开发框架是完全重写的基于规则的框架,不需要配置或者只需要极少的配置(例如数据库配置),具有强大的Model和View的转换能力,可以很容易的将POJO或者POJO集合转换为各种页面组件(表格、树),不需要POJO和数据库的映射配置,不需要写CRUD代码,URL请求自动映射到Action。。。。。。

Command中不能添加多值的参数

有一个报表要进行统计,但是按照原来的做法都不太好实现,后来没有办法使用Command来获取数据(说白了就是直接写SQL),但是在Command的界面里面添加的参数的值不能是多选的,但是有一个解决方法就是把参数转换为一个字符串。
一个例子就是Command里面使用到多值参数的时候,就创建一个字符串参数,然后写SQL的时候就设置为:
xxx in ({?parameter})
假设外面的真正的参数是params,那么可以写一个Formula把param转换为那个字符串:
Local StringVar result:="";
Local NumberVar i;
for i:=1 to count({?params}) do (
if i<count({?params}) then
result := result & toText({?params}[i],"0") & ","
else
result := result & toText({?params}[i],"0")
);
result

这样就可以解决Command里面不能使用多值参数的问题了。

换了一家装修公司

由于原来的公司个我们使用的材料太差,我们换了一家装修公司,是同事推荐的,他去年11月份才装修完,感觉还不错。
从目前的状况看,这家公司还不错,做事的风格比较好,那个项目经理说话也很客气,每次打电话最后都要说谢谢,他找的工人也不错,感觉还比较有文化似的,他们来的第一天先把上一家弄到一半的拆旧弄了,把堆在客厅里面的拆旧的墙渣清理了,然后把房间也打扫干净了。
周末我们去买材料,本来想着一些涉及环保的材料才在九百家居买的,结果几乎全部在里面买了,还好没有超支太多,另外那个经理给的参考报价好像也是这些建材超市的报价。
现在新的装修进程正式开始了,但是岳父身体不适回家了,而我爸妈又不能来,只能靠我们自己了,好在老婆就在新家附近上班,中午的时候可以去看,而我打算每周三的早上到那边看看情况,然后周末也多去一下,也问了下那个同事,他说原来每隔两三天去看看,主要是看看装修的结果是否和自己设想的一样,不是的话及时纠正。
哎,装修真的是一件很烦心的事情,难怪原来大连的一个好友让我买二手房,买别人装修好的。

更早的文章 更新的文章

© 2025 解惑

本主题由Anders Noren提供向上 ↑