看到TIOBE这几个月的排名,结合领导的感慨,说几句编程语言的事…
c语言吧
全部回复
仅看楼主
level 9
assiss 楼主
事情起因很复杂,简单点说就是公司是做项目的,靠人月来赚钱,利润低不说,重复多,累,看不到发展前景……这是一个倒不尽的苦水……决定要做产品,来把同质化的东西固化下来,减少项目中的重复工作。
这么说还是太复杂了,一句话,公司想做产品。
问题就在这里产生了,诺大的公司,竟然找不到足够多的JAVA高手!
为什么要找JAVA高手?公司是做金融行业项目的,特别的,是做银行业务的。银行里几乎没有.net的地位,全是JAVA+C。做产品,必然要在这两种语言中选择,否则客户不认可,做也白做。当然脚本语言可选择的就多了,JS、PERL、PYTHON等都可以。
想做产品的部门,几百号人,几乎全是做JAVA的,使用C的非常少,少到完全供不应求。但想做产品的时候,C的领头人很快就能确定下来,因为都有足够高的水平,足够多的经验,足够强大的领导力,能够主导产品研发里的C部分需求。而JAVA的领头人,很头疼,几百号里竟然找不出几个像C那样符合要求的人。目前只能找些水平相对较高的人带头,然后找些水平相对有点高的人跟着做,做出来的东西,自然就……
当然产品还有这样那样其它更多的问题,比如需求的问题,实用性的问题,性能的问题……不一一说了。
背景交待完了,我想思考一下为什么会出现这种情况。
为什么会JAVA、使用JAVA的人那么多,找水平与C相当的人却那么少?
可能主要原因还在于公司是个业务导向型的公司,本身技术高手就少。
公司虽说业务为导向,对业务非常倾斜,但对技术条线也算是有相当大的照顾的,只做技术的话,也还是能找到相当不错的发展路线,比如我这样的。C技术高手大多是在项目中锻炼出来的。为什么几百人的JAVA团队中,几年了还锻炼不出来能够满足独立产品研发要求的JAVA高手?
也有可能是我们的要求太高了。都说C的学习成本高,成高手不易,可能JAVA的学习成本没我们想像得那么低,成为高手的时间不短。从现有的情况来看,项目组里的JAVA使用者长期处在一个较低的水平,他们经常抱怨要学的东西太多,各种框架,各种平台……也许要让他们成长为一个能独立设计开发框架、平台级产品的高手,需要更长的时间。
是不是还有第三种情况,JAVA平台提供的功能太多了,导致使用者满足于现有的平台、框架,忽视了自身水平的精进?
或者还有第四种可能,C语言本身就是个残酷的淘汰制语言,水平不高的在初期就已经被淘汰了。
我本身是个C语言的爱好者,虽说不喜欢JAVA也不喜欢.net(也许.net已经不能算一种语言了,在这里精简说法吧),但我对这两种语言并不排斥,他们无疑是成功的语言,不那么苛求的话,他们也是伟大的语言。现在的情况是,C语言难以找到足够多的开发、维护者,但领导者是足够的;JAVA语言有足够多的项目实践者,但作为产品级开发的参与者,极为缺乏。仅有的几位JAVA高手,又要不断地投入到各项目中去,因为各项目还需要更多的架构师级别的高手,否则一般的JAVA使用者开发出来的项目,问题不断。
问题就在这里,短时间内仍然不会得到好的解决。
这两天看了一下TIOBE的排名,C语言又回到第一了,这个月的比例竟然还在扩大。虽然说这只是一个参考,并不意味着绝对数字,但这也足够让我们思考一下,语言本身是否真的重要?人自身的水平如何体现,又如果能够得到持续提高?作为初学者,你们的选择真的需要那么唯一?
2012年07月10日 03点07分 1
level 9
不都说语言是很弱的东西么? 数据结构,算法才是核心!
2012年07月10日 04点07分 3
不准在我的楼里抢沙发这类无意义的活动。
2012年07月10日 04点07分
hao ba qi[啊!]
2012年07月10日 08点07分
骗傻子的
2012年07月10日 10点07分
@assiss 威武!!!,这句话好有气场!!!
2012年07月12日 03点07分
level 6
你说的那些java水平差的人,让他们玩C只会被虐得更惨,跟语言本身没什么联系
2012年07月10日 04点07分 4
level 6
不同的语言有不同的作用。。。
2012年07月10日 04点07分 5
这话中听,只有最合适的语言,没有最好的语言。
2012年07月10日 13点07分
多说一句,百度这个验证码我看不清是什么了。。
2012年07月10日 13点07分
level 11
TIOBE不科学啊..objc都超c++了..
2012年07月10日 04点07分 6
objc这两年是挺火的,Ios开发很流行。 C++的确是遇到了一个小瓶颈。 不过至于绝对使用数量,谁也说不准,所以说这也只是一个参考,至于科学不科学,我觉得还是相对比较科学的,至少暂时没别的方法比它更科学了。
2012年07月10日 04点07分
@assiss [汗]c++11出来居然一点都没涨..反而还跌了好多..
2012年07月10日 04点07分
@Hope_20121221_ 新标准、新版本未必都能带来更多的用户。这几年的反例实在太多了:Perl 6、Gnome 3(Gtk 3)、Python 3……
2012年07月10日 04点07分
@assiss c++11应该还是算比较成功的吧..
2012年07月10日 04点07分
level 8
或者还有第四种可能,C语言本身就是个残酷的淘汰制语言,水平不高的在初期就已经被淘汰了。很赞同这个原因的说
2012年07月10日 04点07分 7
level 11
[揉脸]没学过java..不清楚..
2012年07月10日 04点07分 8
某个被java弄死了的路过...[打酱油]
2012年07月10日 04点07分
@寒云似雾 同被弄死的路过。。[打酱油]
2012年07月10日 14点07分
level 8
一开始以为挖坟……
JAVA本身模块特多,而且根据不同行业需求设置了各种api,虽然有不少是渣渣。
这个时代比起叫信息我更喜欢称之为互联网时代,信息迭代快导致了技术只要能应用出实际产品就ok的流水线是大部分公司的追求,至于细节和原理上的技术,真的需要喜欢才会探索下去。
简单的广泛型技术应用就可以将一个技术型员工提到去20k月薪,追去这一方面就浪费了将技术弄透的时间,而且实际月薪也告诉了好多程序员自己这样跑没有错。
会用轮子,并且用得熟悉就ok,而且真的高月薪。这对于追求技术原型来说是条岔路,并且附带着某部分的错误,投机取巧,或者仅仅合适自己公司所局限的使用范围,其实这范围挺大的,毕竟好多公司都有着雷同的标准。
譬如java做web,如果弄透了ssh这三个轮子,在北上广要个10+k月薪应该不难。但是框架用得多会局限一个程序员对另外一种开发模式或者技术的角度,而且用这框架真心需要时间。你让他们研究jvm/数据结构和算法,根本就没时间。
这跟C从数据结构和算法开始搞起不一样。
面向对象语言是从成果开始搞起的。
如果不回溯回去肯定跟C的开发人员技术不对等。
中间差了那么一个层,就是怎么将数据结构和算法组合成java的api,当然期间设计模式很重要。

2012年07月10日 05点07分 9
不错,我对JAVA了解不多,对流行的几大框架更不熟悉。 从你说的层面来说,培养一个JAVA框架级开发者的路线可能是完全不同的。
2012年07月10日 05点07分
就和程序员不会设计芯片一样么? 因为自始至终就没人把它当作是自己应该去涉及的
2012年07月10日 05点07分
@EAgleLeo 应该还没到芯片级这么大的差别吧,相对C来说,甚至应该更小才对,毕竟学面向对象的,都应该学设计模式吧?
2012年07月10日 05点07分
@assiss 恩 之所以让那么多培训机构得逞的原因就是这个。可以将基础屏蔽砍掉,用规范和实例以及开发经验让他们成为公司代码运营的轮子。不过C和JAVA都搞好了的程序员都挺优秀的。JAVA上有好多设计思想是C不具备的。C的基础性Java上看不透。互补一下或许对技术有所长进。
2012年07月10日 05点07分
level 12
一直想知道,什么样的人才能称得上是高手
2012年07月10日 08点07分 10
能被高手认同的人!
2012年07月10日 09点07分
[88]qiu zhi dian shu ru fa mei le zen me ban?
2012年07月10日 09点07分
搜狗云输入法在楼中楼里面不起作用。。。。[拍砖]
2012年07月10日 09点07分
@zy123987 copy & paste..
2012年07月10日 09点07分
level 15
Java平台功能很多?多乎哉,不多也。
看什么人用了。
2012年07月10日 09点07分 11
level 15
C的学习成本说大也不大(不然C++真得喷了)。只是几十年来自甘堕落的人从来就没少过,平均素质就下来了。
Java则是一开就是不恰当地鼓吹欠推敲的“简单”,吸引了太多不适合这个行业的人。人浮于事。
2012年07月10日 09点07分 12
分析得很对!
2012年07月10日 15点07分
关键是简简单单的培训后就能上岗,自己再有点心,也能在行业内立足,最后生存下去不成问题.
2012年07月13日 02点07分
任何语言学习成本都不会很低,只不过java入门简单,学习曲线没那么陡.
2012年08月02日 14点08分
回复 @萧の十三郎 :Java只有入门的门槛稍微低一点是真,学习曲线平缓总体说来也是假象,后期照样麻烦一堆,只不过一般人可以自我欺骗不去理。
2012年08月02日 14点08分
level 7
觉得是大班的站位和领导的站位不一样。。。
快速出成品,获得利润就可以了。
如果要花费更多,去找一群高手,付出的多,总收益就减少了。
虽然会有这那的问题,但都是小技术问题,可以靠一点时间或者个别高手解决。
比起廉价的人工(填鸭)带来的利润,是可以接受的。。。
慢慢的,劣币驱逐良币,就成了行业现状,到处都去培养填鸭式程序员。。。。
也就没有公司愿意去精耕细作,愿意花时间和经历提高员工水平,反正一抓一大把。。。

2012年07月10日 11点07分 13
level 8
想了想,觉得或许管理方面也缺乏了些什么。
产品主要是可复用性、便于二次开发。
定制提供给这家公司后可以快速定制提供给第二家。
你那搞java有几百号人,不知道用什么管理手段。
代码多久迭代一次(3天之内要确认一下工作效率,一周要有一次大的整合迭代)?
一个产品模块分多少?分多细?分工是让程序员挑自己擅长的还是挑具有挑战性而喜欢的?
什么情况下会砍掉一些需求?新需求来的时候是顶回去还是安排在之后实现?
开发模式是什么?敏捷(这个几乎每天都知道大概的开发进度和效率)?快速原型?
交流手段是什么?
通常java 做产品面向对象的知识点和UML肯定需要充足的,交流起来不费劲而且容易明白。
找一个管理能力强,富有经验的项目经理将架构搭好,然后让底下的人按步骤实现需求,定时反馈开发问题与进度。短期内进行代码迭代整合可以不让项目走上歪路。
安全方面其实应该有共通点,只是实现技术不一样。C方面的能人应该能给Java这方面的提供不错的建议的。
以前看过一边关于管理的文章挺不错的
http://www.cnblogs.com/yezhenhan/archive/2012/06/01/2530504.html

2012年07月10日 14点07分 14
这几百人不是做产品的,分散在十几个项目里做项目赚钱去了。部门也从来没有组织超过100人的大团队 你说的这些管理手段,一般项目经理经过培训还是能做到的。但开发产品对产品的总负责人水平要求相当高,这正是现在头疼的地方。至于说迭代和敏捷,这对开发人员的要求就更高了。目前也只有C这边能做到。
2012年07月12日 01点07分
UML我工作半年来还真没发现有什么作用。。。
2012年07月12日 11点07分
@枣知道 架构师用的,哈哈
2012年07月13日 02点07分
@SO_and_SO 我们的架构师才懒得给你们画图呢~
2012年07月13日 03点07分
level 11
楼上的。我同求
2012年07月12日 03点07分 17
level 9
膜拜大神
2012年07月12日 03点07分 18
level 8
万一火了呢,先顶再看
2012年07月12日 07点07分 19
level 10
[放大仔细看]仔细观摩
2012年07月12日 07点07分 20
level 10
C语言 如果只单单是入门而已的话 是无法感觉它的强大的
2012年07月12日 08点07分 21
什么语言不是这样
2014年02月11日 09点02分
level 11
我看C语言就只是看了一本 C primer plus 5 ,怎么进阶?
2012年07月12日 23点07分 22
数据结构
2012年08月02日 14点08分
level 7
作为一个早年在C吧混迹过的java程序员,说下我的看法.
我现在的公司也从做项目到做产品的转型.
产品经理什么语言无关,需要的是有一个把控的意识,对模型的抽象度的控制.
客户的需求始终是第一位的,产品化到何种程度不得不考虑可能客户的需求.
当然够实力的公司可以主导客户的想法.
可快速定制化产品是一个能力,需要做到核心模块固化,定制模块配置化.
C只是我入门的语言,没有深入了解.
java中的接口可以很好的解决不断比变化的需求,不同的需求实现相同的接口.
面向对象的编程到变成了面向接口的编程.
当然java技术这块,公司有一个基础团队在维护框架(非开源).像我这种人力型的程序员
都不需要多java技术有太深的了解,往往关注的更多是业务知识的积累,是自己能够参与到
流程等方面的讨论中.

2012年07月13日 02点07分 23
这是一种方向,可以转项目经理/项目运维决策等管理层的。另外也有一种方向继续研究内核底层,转架构师和技术顾问的。 如果两者兼备(目测所需时间遥远),那么应该就是CTO方向。
2012年07月13日 05点07分
项目经理就我知道来说大概有2种定位,一种是当自己为最强替补,代码任务较少,时间和精力主要花在管理方面,这个在统筹和管理上需要一定的造诣。另外一种是代码与管理并行,这个应该算是比较普遍。经理的技术不一定是最牛的,但是沟通能力强大,业务流程熟悉是必须的。
2012年07月13日 05点07分
1 2 尾页