我想告诉大家,我为什么现在还坚持专研C++的理由!

qnetsoft 2004-06-30 09:19:34
小弟一毕业就用C++,一年后因为工作的原因开始用DELPHI,但经常和一些同行交流的时候,他们问我做什么项目,用什么工具。当我说用DELPHI,他们就露出鄙夷的眼神,我CAO,我干这一行容易吗我,不就是一个开发工具吗,用的不同就要受人鄙视?
所以我没事就学习C++来着,而且还要学得比他们正在用C++做开发的人精通,就是不能让他们鄙视我,可是直到现在我还是半罐水的DELPHI程序员+半罐水的C++程序员。看来做程序员不容易啊,常常受人鄙视耶。
是不是做C++的还要被做开发工具的人鄙视啊?
...全文
2013 114 打赏 收藏 转发到动态 举报
写回复
用AI写文章
114 条回复
切换为时间正序
请发表友善的回复…
发表回复
dashengchan 2004-07-15
  • 打赏
  • 举报
回复
只能说C++是编程语言里的重量级的东东,客观的说,想用她,需要比别的工语言付出更多的汗水
hpf1127 2004-07-08
  • 打赏
  • 举报
回复
別頂了 老大 還嫌不亂啊
qnetsoft 2004-07-08
  • 打赏
  • 举报
回复
up
classrect 2004-07-08
  • 打赏
  • 举报
回复
楼主的qq是cngo.net吧,其实用什么工具无所谓,关键是编程思想
syongzhang 2004-07-05
  • 打赏
  • 举报
回复
大哥们:不要说那么多,做出好的东西的那才是最重要的。你感说你对C++怎么样了吗?对DELPHI如何,我是不感说,主要是你能开发出好的作品那才是最重要的。
oyd 2004-07-05
  • 打赏
  • 举报
回复
zjg751206(打渔后晒网,晒网后打渔)
有次那个熟练的delphi同事和我比试编程攻击,他使用delphi,我使用vc然后编小程序在局域网内互相攻击对方。他很快控制我的屏幕。我的vc编码还没有出炉呢。
-------------------------------------------------------------------------
摆脱,这是在讨论问题,不是在编小说,就算编小说也有点专业精神好不好。
qnetsoft 2004-07-05
  • 打赏
  • 举报
回复
up
btbq 2004-07-04
  • 打赏
  • 举报
回复
“1 高层开发并不等于主流开发,特别是"东点西点"就可以做出东西来的那种开发

“东点西点”是一种软件应用方式、是一种应用层,但你忽视了开发本身所处的开发层的意义!高层开发占据的领域将会较底层开发更多,主流开发催向高层开发。高级语言的使用比例、范围比底层语言越来越多(当然不是指底层完全消亡)。当今主流的众多应用软件正代表着主流的开发,按你说的高层开发不等于主流开发,那么当今的大部分主流软件都要用汇编甚至更底层的方式编写吗?

2、正因为有不同的层次,所以有主流的不同。从总体考虑整个行业,必定有主要层次和次要层次。这就是你说的层次越来越多,开发人员越来越多,所以高层离底层的距离相对越远!

“3 "重复、繁琐的事情交给计算机去做",其实不是交给计算机,而是交给另外一些开发人员去做,没有人,计算机本身什么问题也解决不了.”
你并没有理解“对面向对象”编程方法为什么会比以往的效率高。繁琐、重复的劳动并不等于非要人类自己去重复劳动解决不可,“计算机本身什么问题也解决不了”?,你对需要解决的“问题”没有理解!计算机要解决的问题之一正是效率问题!

4 编程语言的发展不是去接近人的自然思维,而是去接近自然,去模拟现实。因为它脱不了“机器模型”的限制,所以用自然语言去解决一切开发问题是不可能的。
看来你对自己以上描述的层次分工没有理解,机器模型只是计算机中众多层次的其中一层,在机器模型层次之上,至今已经建立了面向对象模型!你说计算机是接近自然、模拟现实,但你对人类的思维有了解吗?人的思维也正是在接近自然、更正确地反映客观现实,这是人类思维的其中一大特点。在反映客观现实上说,人类语言和计算机语言发展方向殊途同归!

5 在现在主流的面向对象/面向方面/泛型编程泛式,我没有办法看到“人类正常思维方式占比例越来越多”,从机器模型向上的抽象,总是让人难以领会。
“从机器模型向上的抽象”错了!是从客观事物上的抽象!面向对象的方法正是由此而来。机器模型只是一种形式,机器模型的改变、添层(形式上的改变)只是为了更好地反映它的内容——客观事物。面向对象不是机器模型的抽象,这样理解彻底错误了,面向对象是对客观事物的更正确理解的抽象!类、方法、属性、实例 这些基本思维方式正是由客观事物中抽象而来!看来你要重新学一次“面向对象”。

6 “比简单易学”是比学不是比做,不同语言针对的是解决不同领域的问题,不具有可比性,也没有比较的必要。
像你说的比学不比做,还说什么关心程序员行业?程序员的学正是为了程序员的做,正是为了软件做得更好!

“天外流星:汇编花上三五个月就可以了如指掌,运用自如,其它的能行吗?随便一个IDE或者库的学习都够烦了,再不要说那些什么OO概念建立,MFC/VCL/COM什么的,真是要人老命。”

这种类型比较是你自己提出的,正因为经过比较才会有不断的工作分层,才会有主流(主流的学是对做什么而言的!),才会有大部分人工作方式的发展、变动,如果你不承认有主流,那么你自己提出的比较当然没有意义了!这也和楼上你说的第五点:“主流的面向对象”自相矛盾!
btbq 2004-07-04
  • 打赏
  • 举报
回复
to nlstone(天外流星):
对整个程序员行业的担心是这样的:当编译工具更催向简单化,或者说编程语言会越来越接近人类的日常语言,越迫近这一个程度,编程工作就会越简单。首先你所说的“复杂技术”中的技术占有的比重就越来越低了(相对来说使门槛更低、市场经济中编程人的工资更低),直到编程语言越接近人类语言时,任何一个普通人都可以编程,可以说编程工作只剩下人类通用的思想的交流了。

虽然我们的工作仍然可以把产品的内部变得更复杂化、功能更强大,但无论怎样再复杂都是产品上,而我们的工作将会催向平民化、傻瓜化,到时普遍程序员的工资将会下降,工资中对纯计算机技术的含量越来越低,而工资中的思想的含量越来越多、越来越复杂,但这种思想已经越接近普遍人类的通用的思想了,也就是我们的日常语言了。到那时程序员行业和现在对比已经发生质变了,程序员可以做到的由其他人完全不懂变成接近所有人都可以做到。

虽然我所描述的那个时代看起来很遥远,但是我们每天都向那迫近着,被剥削的人的工资、价值也向那里每天迫近着,我们再想一想由汇编到C、由C到C++(面向对象的重要思想),由C++到完全的面向对象(如C#、java等),每次飞跃用了多少时间?不多吧。我想以现在的发展速度,我所描述的那个时代在不久我们都可以看到。

但是我真的喜欢编程,我真的不希望那样的结果,真诚的希望你能给我一个安慰,给我解答,谢谢。我心里希望我们的自己的喜爱的行业不轻易失去前景!
weg 2004-07-04
  • 打赏
  • 举报
回复
从天外流星那里学到不少东西,谢谢!
nlstone 2004-07-04
  • 打赏
  • 举报
回复
1 高层开发并不等于主流开发,特别是"东点西点"就可以做出东西来的那种开发
2 厚厚的底层并不等于深奥不可测,只是所处的层次不同,这需要更多的开发人员
3 "重复、繁琐的事情交给计算机去做",其实不是交给计算机,而是交给另外一些开发人员去做,没有人,计算机本身什么问题也解决不了.
4 编程语言的发展不是去接近人的自然思维,而是去接近自然,去模拟现实。因为它脱不了“机器模型”的限制,所以用自然语言去解决一切开发问题是不可能的。
5 在现在主流的面向对象/面向方面/泛型编程泛式,我没有办法看到“人类正常思维方式占比例越来越多”,从机器模型向上的抽象,总是让人难以领会。
6 “比简单易学”是比学不是比做,不同语言针对的是解决不同领域的问题,不具有可比性,也没有比较的必要。
fanfyj 2004-07-04
  • 打赏
  • 举报
回复
wo cao
luckyking 2004-07-04
  • 打赏
  • 举报
回复
多举个例子吧,例如做一个窗体界面,高层的vb就比低层的汇编简单易学一千倍。其他网络访问、文件操作、数据库操作等都是高层的语言控制简单、操作方便。
我想,如果要比那个简单易学,前提是大家一起做功能相差不太大的程序。
btbq 2004-07-04
  • 打赏
  • 举报
回复
to nlstone(天外流星):

“天外流星:1 你所看到的“编程”完全是处于最高端的编程,而在这以下,还有着厚厚的编程技术作为基础。”

说的好,我指的正是高端编程,而不是你指的“底层”。

“天外流星:我所关心的,也是"整个程序员行业,'普遍'的程序员中的我们",我所谓的复杂是随着软件开发技术的进步,使得我们做一些更复杂的事成为可能,从而市场、需求的主流也会发生相应的变化,越来越复杂,需要我们做一些包含更多复杂技术的产品。”

说的没错,希望你不要脱离自己本来的立场,这会自相矛盾的,如果讨论到无限的底层追索上去(甚至追索到机器语言),就离开了我们在楼上所承认的“普遍的程序员”和“整个行业”和“主流、主流变化”了,汇编在当今已经不是主流!被取代了。将来主流的编程(大部分的编程工作)正是你说的“高端”编程!这是编程行业整体上的变化!和对整个行业的关心!


你在楼上第二点里找出来的学编程越来越难的规律,此规律只在一定范围内有效。而且只归纳了1个实例,没有必然性论证。
我说的是将来的编程语言的抽象层次将会更高、更接近人类的日常语言。抽象层次越高就越多具体、重复、繁琐的事情交给计算机去做,从而提高效率,这是一种相对的简单。另外,由于编程语言接近正常思维,对人来说也是另一种相对的简单。


将来底层、高层的工作当然要分工了,但我们讨论的是高层(主流)。没有人说过高层编程的人可以完全不学底层的东西,例如C#、java的程序员完全不学c++、操作系统底层、汇编、机器语言等知识,这当然是不对的。所以对以上正确的理解是:相对于 底层编程的人,高层编程的人 对底层知识的了解相对的减少(当然这是总体衡量、不是对个别人的)。而且随着高层语言的不断提高,主流、高层编程的人对底层的了解将进一步相对地减少,所以,在编程中,纯计算机知识占比例越来越少,而思想、人类正常思维方式占比例将越来越多!所以说主流(较大部分编程工作)的“门槛”会相对地越来越低。
btbq 2004-07-04
  • 打赏
  • 举报
回复
我说的一定有很多不足之处,见笑了。

从你身上学到很多,认真的!
btbq 2004-07-04
  • 打赏
  • 举报
回复
通过支持面向对象的编译器编译之后的程序,在执行时的过程,静态地体现为“过程”,动态地体现为“实例(对象)的运动”。面向对象和面向过程不仅仅在语言编写上体现!

如果你想做一个完全由上至下都了解透彻的程序员,我不阻止你,可是你又觉得越来越力不从心了。而且将来的软件层次将会更多。奉劝一句,在这个高速、无限发展时代,一个全能的人只会是一个“周身刀没把利”的人,还是把大部分的力量集中在自己的主要方向吧。c++的程序员也不要小看,vb、java的的程序员,他们对底层的了解可能比c++的程序员少,甚至知道很少,但是他们所创造的价值也绝不低。就算将来的程序员对底层的了解比现在的更少,但我们必须承认他们是将来主流的程序员!至少可以说“底层”是不可穷尽的,并且每一个程序员随着工作需求的不同对底层的认识也会不同,时代在发展,不可能否认高端工作的就不是程序员!

如果你认为是争论那么问题焦点只会越明朗化,但是这时你又不知道谁在讨论什么,问题在于你已经在回避这个问题了。
nlstone 2004-07-04
  • 打赏
  • 举报
回复
拜托不要断章取义好不好,我已经有点不知道你是在和谁争论了:(

多的话就不说了,其实我对未来的担心和你恰恰相反,我不是担心"简单",而是担心"复杂",对于技术的迅猛变化和发展,我常常有点觉得力不从心.

我不想做一个只知道if...else...class却不知道底层是如何将面向对象转为面向过程的C++程序员,我也不想只做一个会用listen去监听网络信息却不知道网络数据是如何传输和控制的网络程序员,我不想只做一个会从数据库里取数据并存回去却不了解数据库的基本数据模型和分布模型的数据库程序员,我也不想做一个只会一点语法却不懂得算法的程序员,我不想做一个会play语句播放媒体流却不知道流媒体格式的多媒体开发程序员,我更不想做一个普通人就能做的可以不懂任何软件开发技术的程序员,那还是程序员吗?

我只是想做一个程序员,如是而已.
nlstone 2004-07-04
  • 打赏
  • 举报
回复
to btbq(阿不):你的担心是没有必要的,嗯,完全没有。

1 你所看到的“编程”完全是处于最高端的编程,而在这以下,还有着厚厚的编程技术作为基础。C++的背后是强大的C++编译器,JAVA的背后是JAVA虚拟机,C#的背后是更为复杂的.net平台,强如oracle的数据库背后是一个又一个的排序查找算法。随着这个“基础”越来越厚,将必然把开发人员的工作进行更明确更多的层次地划分,大家各司其职,共同完成着伟大的作品。Final Fantasy的电影版如果你用二进制去思维怎么作出来的话,估计任何天才想破头也不行,但是分工合作以后,借助强大的CPU指令,显卡技术,底层驱动技术,操作系统,网络技术,显示引擎,动画制作平台,各类动作捕捉辅助技术,编剧,音乐,美工。。。。。。诸多因素的集成才可以完成这么一部精彩的作品。软件开发完全一样,复杂带来的后果将是分出更多的层,需要投入更多的开发人员进去。当你一分钟写一个hello world程序的时候应该知道,尽管你写的代码只有几行,但它还包含了很多软件人员的辛苦,还有着更丰富的技术内涵。并不是只有写着最上层代码的软件开发人员才是开发人员。

2 你所看到的是最上层的工作越来越简单,认为这层工作将趋向于普通人也可以完成,其实在可以预见的将来是不会的。其实很多最上层的问题早就可以由普通人来做了,譬如很多应用软件的使用,都可以看作是广义的“编程”,有些甚至相当复杂,唯一的区别是不需要编译,但那也没什么要紧,当用户使用一些功能的时候,软件来一个即时编译,这并不是太难实现的技术,特别是在新如.net的平台下。我认为你对所谓的“普通的程序员”有一点误解,“普通的程序员”绝不是那些技术不好,只会写一点if...else...for的程序员,那不是普通,而是初学者,入门者。事实上我觉得现在的高级语言开发如VB/Delphi/VC/JAVA,它们的门槛相对最初的汇编不是门槛降低了,而是抬高了。汇编花上三五个月就可以了如指掌,运用自如,其它的能行吗?随便一个IDE或者库的学习都够烦了,再不要说那些什么OO概念建立,MFC/VCL/COM什么的,真是要人老命。因此,“普通程序员”也将继续做着“不普通”的事,轻松不了。随便问问,你觉得现在编程就简单了吗?问问身边的程序员,看看同意的有多少。

这几年媒体总是吵吵着“软件蓝领”“代码工人”的概念,大声宣扬软件开发的门槛很低很低,随便一个人培训一两年就可以从事。真的吗?当然,如果你这一辈子都只想去写if...else,我认为两年也足够了。好比说我在电影里跑个龙套,我恐怕也可以算是影视圈的人物了,但影视圈的中坚的力量,绝不会是我,而我也不会永远想要跑龙套,至少,我要作一个演员。计算机系那十几门基础课可不是闹着玩的,难着去了,认为计算机门槛不过尔尔的人铁定对这些课都是不懂的。
windoze 2004-07-04
  • 打赏
  • 举报
回复
你还不如去学一些象ML、Scheme、Clu、Icon、Oberon、Dylan、Forth、Clos、Ada之类的生冷海鲜,让所有问你用什么语言的人目瞪口呆,当他说出“没听说过”这四个字时,你就可以抛出一个鄙视的神情,充分表现出你的RPWT。
nlstone 2004-07-03
  • 打赏
  • 举报
回复
to btbq(阿不):我所关心的,也是"整个程序员行业,'普遍'的程序员中的我们",我所谓的复杂是随着软件开发技术的进步,使得我们做一些更复杂的事成为可能,从而市场、需求的主流也会发生相应的变化,越来越复杂,需要我们做一些包含更多复杂技术的产品。举个例子,在只有汇编的时代,不会有人要程序员写一个ERP,在只有DOS的时代,不会有大量的3D游戏的需求,在只有单机的时代,不会有人要你写一个企业网络平台。技术的高速进步,复杂度的迅速提升,是这个行业从业人员的不幸,也是带给我们刺激的地方,也是很多人选择它作为自己毕生事业的第一动力。人们心底渴望挑战。问题只在于面对如此纷繁的变化的压力,你敢不敢去坦然面对。说到底,其实没有敢与不敢,只有做与不做。

to zjg751206(打渔后晒网,晒网后打渔):单从编程的资历来说,我不及你,在这里只是作为同行给一些鼓励。代码只是软件开发中的一小部分,软件开发也只是计算机开发技术的一小部分,计算机开发技术又只是IT行业的一小部分(请诸位任何时候不要忘记在这个行业还有很多很多的非技术的人员在付出艰辛努力),IT行业又是众多行业的一小部分(其余行业同样精彩)。说这些废话有什么意思呢?海空凭鱼跃,天空任鸟飞。打开窗,外面的世界更加精彩。Free your mind,你不会为你的境遇感到无奈,因为你已经做得很不错,也许是太追求完美了。我相信这四年的代码经验对你将来必有深远的影响,无论你将来做什么。。。祝你好运,也祝我们这一群人好运:)
加载更多回复(94)

1,657

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧