本文发表在 rolia.net 枫下论坛人的命运是很奇怪的。十年前我刚到加拿大,找不到工作,和一个一起来的朋友一起去学J2EE。朋友从JAVA班开始学,我很穷,上不起两个班,从J2EE开始学。感觉还可以,虽然没有念过JAVA,可是在班上也属于比较好的学生。可是后来找工作,我朋友找了AS400,那是他的本行。我找了C++,命运就是这么作弄人,明明在朝JAVA走,机会来的时候就变了。
不是有那么一句话么?男怕投错行,女怕嫁错郎。当然,男的如果投错行,女的基本上也就嫁错郎了。所以压力很大啊。其实做C++没什么不好,关键是多伦多太小。我做的几个公司,一旦被裁员,整个多伦多找不到第二家。C++的问题就在这里。应用极广,行业太分散。相反JAVA就好很多。业务内容差不多的公司在多伦多扎堆。东跳跳,西跳跳,逍遥自在。
现在去找工作,人家见面,第一句话,你有某某某工作经验吗?FAINT,没有。这是实情。这就是很让人郁闷的地方。
C#,JAVA,用起来当然很爽。我自己也喜欢用。不是说我们会了C++的,就不肯用JAVA了。哪里有那种事情?能用高级语言的,都是尽量用的。写程序多舒服啊。XXXX.XXX.XXX一路地点下去,脑子都不用动。很多时候,我都不用学什么语言,一点,菜单里面一找,OK。用上。
用C多恐怖啊,用VI写,GDB调试。不管是谁,我只要看看你用VI的程度,就知道你混了几年C了。不过话说回来,C++其实还好啦。最恐怖的是MFC,那么多的调用函数,那么多的宏定义。做什么用的?UI,杯具啊。点一个按钮,需要那么高的速度吗?完全可以用C#写。要写特殊点的东西,只要找一个HWND出来,就可以用上C++了。
重新拾回对C++的信心,是回归到UNIX世界以后。原来C++可以很美的。一样有简洁的风格。比如MOTIF,比如TK,一样写UI,人家多简单明了?当然,这两样和C#还是不能比。毕竟是历史产物。C#集中了历史以来的经验,写的当然好。极其简单优美。可是毕竟C++可以做很多特殊的事情,所以还是放不下C++。
有机会的话,我也可以转JAVA,这不还没有机会嘛?慢慢来吧。当然,学C++以后带来的一个工作习惯是喜欢抠底层。比如我写过的那个十万行记录中找重复频率最高的10条的例子。你用XXX.XXX.XXX写当然爽啦,可是你这个东西送到数据库那里是什么你知道吗?不清楚了。数据库是需要编译和执行SQL的。如果你XXX.XXX地一路下去,毫无疑问,即使你的查询是非常优化了的,数据库还是要对其进行编译。像这种大剂量的查询,使用预编译stored procedure应该是比较好的选择。如果我今天在一家大型公司做的话,我可能不会采用XXX.XXX的写法,我会考虑到数据量的现实,综合考虑采用哪一种方式。
我相信,JAVA和C#也是一个广袤的世界,也同样是值得深入研究的。既然做了技术这一样,就应该钻一点,不能浮在表面看问题。对自己使用的每一件工具,优缺点都要有所了解,这样才能写出真正的好东西。
“只有偏执狂才能生存”,我是这么信仰的。我也很希望在这里能看到大量的JAVA的内容。同样,对我们是一个提高。更多精彩文章及讨论,请光临枫下论坛 rolia.net
不是有那么一句话么?男怕投错行,女怕嫁错郎。当然,男的如果投错行,女的基本上也就嫁错郎了。所以压力很大啊。其实做C++没什么不好,关键是多伦多太小。我做的几个公司,一旦被裁员,整个多伦多找不到第二家。C++的问题就在这里。应用极广,行业太分散。相反JAVA就好很多。业务内容差不多的公司在多伦多扎堆。东跳跳,西跳跳,逍遥自在。
现在去找工作,人家见面,第一句话,你有某某某工作经验吗?FAINT,没有。这是实情。这就是很让人郁闷的地方。
C#,JAVA,用起来当然很爽。我自己也喜欢用。不是说我们会了C++的,就不肯用JAVA了。哪里有那种事情?能用高级语言的,都是尽量用的。写程序多舒服啊。XXXX.XXX.XXX一路地点下去,脑子都不用动。很多时候,我都不用学什么语言,一点,菜单里面一找,OK。用上。
用C多恐怖啊,用VI写,GDB调试。不管是谁,我只要看看你用VI的程度,就知道你混了几年C了。不过话说回来,C++其实还好啦。最恐怖的是MFC,那么多的调用函数,那么多的宏定义。做什么用的?UI,杯具啊。点一个按钮,需要那么高的速度吗?完全可以用C#写。要写特殊点的东西,只要找一个HWND出来,就可以用上C++了。
重新拾回对C++的信心,是回归到UNIX世界以后。原来C++可以很美的。一样有简洁的风格。比如MOTIF,比如TK,一样写UI,人家多简单明了?当然,这两样和C#还是不能比。毕竟是历史产物。C#集中了历史以来的经验,写的当然好。极其简单优美。可是毕竟C++可以做很多特殊的事情,所以还是放不下C++。
有机会的话,我也可以转JAVA,这不还没有机会嘛?慢慢来吧。当然,学C++以后带来的一个工作习惯是喜欢抠底层。比如我写过的那个十万行记录中找重复频率最高的10条的例子。你用XXX.XXX.XXX写当然爽啦,可是你这个东西送到数据库那里是什么你知道吗?不清楚了。数据库是需要编译和执行SQL的。如果你XXX.XXX地一路下去,毫无疑问,即使你的查询是非常优化了的,数据库还是要对其进行编译。像这种大剂量的查询,使用预编译stored procedure应该是比较好的选择。如果我今天在一家大型公司做的话,我可能不会采用XXX.XXX的写法,我会考虑到数据量的现实,综合考虑采用哪一种方式。
我相信,JAVA和C#也是一个广袤的世界,也同样是值得深入研究的。既然做了技术这一样,就应该钻一点,不能浮在表面看问题。对自己使用的每一件工具,优缺点都要有所了解,这样才能写出真正的好东西。
“只有偏执狂才能生存”,我是这么信仰的。我也很希望在这里能看到大量的JAVA的内容。同样,对我们是一个提高。更多精彩文章及讨论,请光临枫下论坛 rolia.net