导航:首页 > 程序命令 > 现代程序员的观点

现代程序员的观点

发布时间:2022-12-27 05:24:47

㈠ 一个程序员要具备的基本素质是什么

  1. 团队精神和协作能力 :

    把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。

  2. 文档习惯:

    作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

  3. 规范化,标准化的代码编写习惯:

    作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。

  4. 需求理解能力:

    作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。

  5. 复用性,模块化思维能力:

    复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。

  6. 测试习惯:

    软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。

  7. 学习和总结的能力:

    善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。

㈡ 程序员未来前景如何大龄程序员出路在哪里

其实程序员什么35岁就不行了的说法是个伪命题,是人为的强加的致幻剂。虽然软件行业有其特殊性,但是也有其普遍性。其他行业35岁那才真正进入事业快车道,软件行业我认为也差不多。

软件行业不光是写代码,积累到35岁,如果还能写代码那一定是经验丰富,代码水平高,即便继续写代码那也比一般的人好,当然排除那些不思进取不学习的人。

最差带几个人做个项目经理做项目就比年轻仔强很多。不但可以利用自己的经验还可以写关键代码。年龄其实不是问题。

那问题是什么给大家的印象是35岁程序员就没得混了?其实现在很多程序员其实是码农,大家说IT行业是一个知识更新非常快的行业,其实也不尽然 ,更新的是表面,其本质一直没变,一个码农一般都学的是皮毛,就懂一点什么框架 的编程,缺乏学习能力,不懂软件最基本的原理,学校学的那点一旦过时就什么也不剩了,那面临的就是淘汰。

如果是一个了解软件本质,学习能力强的人,语言只是形式,对于一个项目,觉得什么语言合适就用什么语言,你懂一门语言,另外一门语言要不了一个星期就可以编程了,关键还是基础,是原理,是思想和经验。

所以程序员们,不要被别人的致幻剂迷糊了,只要你肯学能进步,喜欢软件开发,年龄一定不是问题,只能越来越吃香。

本人作为程序员,曾经也为这个问题困扰着。程序员在35岁就会面临各种问题,身边也有这样的例子,上一家公司有一个同事,40岁了还在写代码,他的工资不高。后来项目预算超标了,他也就成为了被裁员的对象。那是我第一次感觉到了年龄越大而带来的危机。

但是话有说回来了,40岁了还在写代码。只能说明了他对自己没有明确的职业规划或者个人的不思进取造成的。IT行业有他的特殊性,第一个特殊性就是知识更新很快,第二个就是很注重职业规划。

所以要想不被淘汰,要么积极学习没拥有很厉害的技术,成为一个领域的技术专家。要么走管理路线,在平时上班的时候就要注重这方面的培养,首先要在工作中锻炼,还有考取一些专业的证书来给自己增加竞争力。

当然也有的选择自己创业,这是最好的结果。所以,在当下最重要的是怎么给自己规划。多考虑这方面的问题,要是想通了也就没有那么的纠结了。

个人观点,不喜勿喷!也希望大家能够说明自己的观点,大家一起学习,一起进步,营造良好的学习气氛!

大家都知道程序员也分为做什么开发的程序员,比如市面上最流行的java、C语言、C++、python、PHP等等开发程序员,未来的发展是不一样的。

其实,我觉得未来发展前景的话,要找天花板较高的语言来作为基础学习,慢慢的把自己的架构思维给建立起来。

等你拥有自己的架构思维之后,其实语言就是一种工具而已,所以一定要清晰规划自己该学习什么语言,该怎么样来学,我在这里推荐Java语言,因为Java语言的学习就能够帮你初期建立这种思维方式,还有Java语言的独特性,证明了它的优越性!也证明了它的天花板比其它语言要高,当然上手难度也比较高,自己要有一个清晰的认识,

关于大龄程序员出路,我这里得多说一嘴!

一提到大龄程序员,大家第一时间就会想到,35岁中年危机。

不可否定,35岁这个词确实很扎心,也是许多程序员的恐惧所在,但是,请大家不要惊慌,要给自己打一针强心剂。

30而立相信大家都听说过吧?但是也不然,也看个人的机遇和努力!程序员也是一样!

这里就说到了职业规划的重要性,从22岁毕业实习再到30岁这八年时间,处于一段技术磨合和提升期,也就是技术的沉淀,沉淀到了一定的时间之后,就要考虑管理经验的提升,随着年龄的增长,身体上、思想上、精神上都会出现惰性,当然也跟自己的运动有关系,要加强自己对身体的锻炼,每年做体检!

30岁之后,有的人考虑单飞,自己找合伙人创业,自己开公司求发展;有的人继续按部就班,沉浸在996的世界之中;有的人不断地提升自己的技术能力和架构思维,在大厂中继续深造,让自己变得更有价值!

不知道你们是属于哪种,但是,最重要的还是个人的思维!希望自己能够好好考虑一下,从自己下手,彻底的改变自己,不然淘汰是迟早的事儿。

三点:改变自己的思维;加强自己锻炼;做好职业规划!

以上个人观点,不喜勿喷!欢迎大家一起讨论。

我是个IT新人,程序员的未来前景毫无疑问是不可小看的。世界逐步进入5G时代,对于程序员来说即是挑战也是机遇,5G时代到来必将会带了新的技术升级,也必将淘汰旧的技术,所以说对于程序员即是挑战也是机遇,只有不断地学习你才能把我好这一机遇,雷军说:“站在风口上,猪都能飞”。但首先你得是有准备的猪 。

对于大龄程序员,我是这样子想的,等我年龄大了,不可能一直处在代码一线,要么转管理岗位,如:技术主管,产品经理,项目经理,有能力的做个技术总监。

要么转行,我朋友常常给我开玩笑说,等年龄大了,我们去送外卖吧!自由自在,月入过万

要么拿出积累多年资金、人脉开始创业

在民企,大龄程序员确实不好混了。华为裁掉35岁以上的普通员工,就说明这些大公司只需要年轻人,加班苦干。年纪大了,拖家带口的,加不动班了,就劝退。这种情况说明这种工作都是些按部就班的,没什么创造性的工作,不需要很多经验。

外企的情况会好一些,50多岁的头发花白的程序员依然在工作,他们看重的是工作的积累,经验。公司也把这些人当做公司的财富。国内因为抄袭太严重,不太注重知识产权,导致程序员的地位并不高。

大龄程序员要在工作之余,发展一些副业,多学些技能,考一些证书,做一些理财投资等等。保证自己万一被裁员,不至于没有收入陷入焦虑。

这问题问的,大龄农民工出路在哪儿?

所以了,人口总量下滑,人力资源不足,大龄程序员总是有人要的,只不过不同水平的去向、待遇不同罢了,这跟年龄、行业没关系,哪个年龄哪个行业都一样有分化。

首先,程序员这个职业不再是个香饽饽,这一点各位程序员必须要摆正心态!随着人工智能在编程方面的运用以及程序员数量的大规模上涨,未来大多数程序员的待遇会跟 社会 平均工资看齐,短时间依然会有优势,但随着时间推移,这种优势必然转为劣势。为何?供需决定价格,以前供不应求当然价格高,未来供大于求甚至每个人都会编程,自然没啥议价空间。而那些没人愿意干的脏活累活自然成为高收入岗位。

其次,许多程序员会成为领导或者老板,毕竟 社会 需求在,有大需求也有小需求,对用户需求敏感的人自然能够抓住机会自己创业。

再有,某些高收入程序员会跨界进入别的行业,毕竟有了资本有了 社会 经验,很多事情都是相通的。

最后,大多数冲不上去也没钱或没想跨界的,继续待在公司里搬砖,虽然加班比不上年轻人,但毕竟经验丰富,码代码的速度和质量是有的,只不过工资持平奖金下降不忍也得忍啊,毕竟为了生活,别的很多职业人家的工资本就是好多年没变化,程序员也不会例外,之前例外是因为供不应求。

有人说程序员是脑力活,跟农民工不能比,六十岁农民工还能干活,六十岁程序员脑子怎么跟得上?作为过来人,笔者可以向各位保证:越大的团队,里边需要动脑子的人越少,大多数大厂的程序员混到最后都是干的力气活,根本不需要脑子,这就是熟练度。至于这是好是坏,仁者见仁智者见智。

优秀的程序员不论年龄大小,前景都非常好!巨大的市场需求决定了优秀程序员的紧缺性,在数字化时代,已经没有哪个行业会离开软件的支撑,这个趋势在可预见的未来不会改变。

一般来说,人会随着年龄的增长,工作的时候精力会跟不上,但从另一个角度讲,年龄大了,经验就会更丰富,尤其对于像程序员这种知识型工种,只要他肯学习,跟上技术的进步和变化,他就不会落后,就会继续有用武之地。

软件技术的变化也是非常大的,新的框架、新的开发环境、新的编程语言不断出现,程序员也要注重自身的学习和修养,为断适应互联网+时代的技术发展,只有这样,程序员才会永葆青春。

当然如果已经功成名就,账务自由,选择别的职业也挺好,人各有志,看个人发展和兴趣爱好!

30+程序员一枚,刚好可以回答这个问题。

先简要说下我对这两个问题的答案:

下面,我们就来一一解释。

程序员是有前(钱)途的职业


首先是 金钱 方面。在所有行业里面,it行业是比较有前(钱)途的职业,我想这句话可能极少有人反驳。当程序员相对来说能挣钱,即使这些钱是需要加班加点挣来的,但是总归来说提供了普通人一个挣相对高薪的途径。即使在北上广深,当程序员也相对其它行业更容易买车买房,站稳脚跟。另外,每年无数的大专本科生上培训班,当程序员也很能说明情况。


其次是 行业发展 方面。程序员从事的是it行业的工作,是一门用技术改变生活的行业,it技术已经应用于方方面面,这也无形中给程序员提供了更广阔的用武之地。


大龄程序员的出路


关于大龄程序员的问题,其实我觉得更应该说是 一个普通人中年危机的问题 。因为年龄大了,薪资相对新人更高,加班能力更差是大部分行业都会遇到的问题,只是这个问题在it行业放的更大了。网络当中很多所谓的35岁问题,一部分是来自于程序员的自嘲,一部分情况其实是因为部分大龄程序员拿惯了高工资,没有做人生规划,技术没有提升,然后又遇到了中年危机后无所适从罢了。可能有人会说老师,医生等行业会随着年龄增加而成长什么的,这个确实有其相关性。但是程序员毕业就拿高薪,其它行业可能要积累很多年(这里说的是平均,个例不探讨)。


至于出路,我认为出路有很多:

当然,我这里说的大龄程序员指的是正常的程序员,不是那种天天混混日子,突然一裁员发现自己啥也不会的人,我觉得这种人基本上是很难有出路的。


关注令狐一冲,关注区块链和IT技术!

计算机是未来人类的一个发展方向,是生产力提高的方向,而且是长期发展的,所以程序员不会过剩,也不会淘汰。至少在50年内,还看不到能够代替计算机发展的新工具,可以看到的是,计算机本身的发展。而程序员在出路方向上有很多选择:

1,软件方向:软件是计算机与人类交换的媒介,很多大型软件公司已经存在几十年了,还将继续发展下去。

2,硬件方向:计算机本身的发展,需要 科技 进步,在新材料研究,制造工艺提升,架构设计运用方面,都需要不断提升。

3,物联网方向:这个不用多说,物联网是在在互联网基础上,通过射频识别(RFID)、 红外感应器、全球定位系统、激光扫描器等信息传感设备等方面,给我们带来便利,在我们生活的方方面面已经离不开了。

4,人工智能:简单举个例子,小爱同学能和你进行简单交流,阿尔法狗,打败了全世界所有顶尖围棋高手。

5,数字媒体技术:数字媒体技术是一个结合了数字技术、媒体与艺术设计的多学科交叉专业。它注重创意,利用媒体技术,在 游戏 、移动互联网、互动 娱乐 、影视动画等领域展开研究和创作,重在培养能够熟练地应用现代计算机技术,从事数字媒体制作、图形图像处理、动画设计等。

6,以上是主要方向,还有很多,这里用四

个字概括:等等,等等。

㈢ 作为一名优秀的程序员,要具备哪些基本功

程序员(英文Programmer)是从事程序开发、维护的专业人员。
作一个真正合格的程序员,需要具备:
1:团队精神和协作能力
团队精神和协作能力是作为一个程序员应具备的最基本的素质。
2:文档习惯
文档是一个软件系统的生命力。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。
5:模块化思维能力
作为一个优秀的程序员,其思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。

㈣ 范凯的个人观点

来自范凯的个人博客 因为看到一篇讨论PHP,Python和Ruby的编程语言讨论贴,就说说我的PHP,Python和Ruby之路吧:
我2000-2001年用PHP用了两年,那还是第一次互联网泡沫时期,到2001年后期,Servlet/JSP流行,然后我就发现:你说用PHP写的东西,都会被人鄙视。当时我们其实也用Java了,只不过用Java写后端的消息队列。
2001年后期泡沫破灭,我跑去做企业应用,就主要写Java写了很多年,中间2003年开始做JavaEye网站,到2006年用Rails重写JavaEye之前的3年,用的是phpbb搭建的,所以PHP也断断续续一直用到了2006年。
以我2000-2006年总共六年多的使用体验来说,我对PHP真的是深恶痛绝之,但凡做一个稍微大一点的系统,代码就很容易失控。2002年以后,我曾经一度以为PHP这个东西快死掉了,那个时候大家都言必称J2EE和.net了。结果Web2.0之风袭来,大家又发现J2EE太重,PHP又死灰复燃了,我其实很诧异现在PHP居然又变得如此流行。从技术上来讲,PHP是个很烂的东西,但它门槛低,易部署,普及率高,好找人,实在是互联网时代的VB,打不死的小强。
Python我大概是04-05年迷恋了一年左右,研究过Zope,plone,后来还看过wxPython,曾经一度想用Python写JavaEye网站。记得04年Rails出来之后,还很长一段时间被我深深鄙视过。
但后来我去杭州拜访potian,被他的Rails实践经验说服了,之后我和他以及其他人在JavaEye上面有一个很长的讨论贴,讨论Rails的运行机制,最后我又被他说服了。然后我还不死心,研究和比较了Rails和Django,不得不死心了,后来还曾经几次想用Python,每次都死心的很彻底,现在就彻底不考虑Python了。
就算你不用Rails,作为一个程序员,我也强烈建议你学习一下Ruby,仅仅因为可以开拓你的思维就很值得了。因为Ruby的语法很强大很好玩,是现代语言版本的smalltalk,算是很原汁原味的面向对象编程语言,你学习了Ruby以后,你就会发现,原来Java/C++所谓的面向对象就是TMD的山寨版本的面向对象,原来面向对象还可以这样玩阿。
PHP用一句话来总结就是:quick and dirty
Python用一句话来总结就是:quick and clean,but not convenient for web development
Ruby用一句话来总结就是:code for fun and quick for web
补充一下吧:为什么我当初用Rails来写JavaEye网站:
在选择用什么工具开发JavaEye网站的时候,唯一的指导标准就是:用最少的人力,最少的时间开发JavaEye网站,并且后期维护和持续升级,乃至重写的时候,代价最小。
首先排除Java和C#,代码太多太麻烦;
其次排除PHP,项目一大,代码一多,代码的管理很成问题,PHP缺乏一个起码的包管理机制;
当时重点考察Python和Ruby,因为有豆瓣的先例,开始很倾向于Python,而且我那个时候对Python比较熟悉,还曾经痴迷过一段时间的wxPython,对Zope和plone也有一些研究。
但后来比较了Rails和Django之后,就倾向于Rails了,差距实在太大了,而且当时Django很不成熟,在很早期的版本。其实即便现在Django和Rails的差距也没有缩小过。
但让我最终下定决心的是potian在05年就大规模使用Rails的实际工程经验,我曾经去杭州就我比较质疑的问题当面请教过他,和他谈过以后,就决定用Rails了。
应该说,我当初用Rails的决定很英明! 在四年以前,当我开始鼓吹Hibernate,抨击EJB的时候,遭到的是群起而攻之的场面,但是不到一年之后,Hibernate已然得到了普及和大多数Java开发人员的认可;
在三年以前,当我开始赞誉spring的时候,spring还面临着EJB3的阴影,以及EJB2对其不登大雅之堂的指责,然而不到一年的时间,spring已经成为绝大多数Java开发人员的首选;
在两年以前,我极力希望宣传webwork,唱衰JSF,时至今日,webwork以Struts2.0的身份容登大雅之堂,而JSF还在靠厂商死挺着;
而当一年之前我开始采用RoR开发JavaEye的时候,RoR的置疑之声还甚嚣尘上,但当我在今年初预言07年下半年RoR在国内会被广泛接受的时候,很多人已经笑不出来了;
今年我预言些什么呢?我觉得会是AJAX技术走出PC的时代,证据就是iphone,与此相关联的事情就是REST架构的流行。
但是这篇文章里面我想谈的却不是我预言的水平准不准,而是想谈Java真的会因为RoR的流行而过时吗?目前在web开发主要应用在两个大的领域,互联网和企业应用,我们分别来看一下:
一、互联网领域
互联网领域第一大动态语言是PHP,第二第三分别是ASP和Java。在中小型互联网应用当中,PHP的王者地位不容动摇,但在大型应用当中,Java是目前主流的选择,特别是电子商务类型的应用,例如阿里巴巴就从早期的PHP转变到Java,从前的eachnet也是如此。造成这样局面不是没有原因的:
1.中小型互联网网站强调开发速度,维护成本,以及入门快速和部署成本,PHP是最合适的选择;用Java则显得过于笨拙,开发慢,维护成本高,入门周期长,部署麻烦;RoR开发速度最快,维护成本最低,但是RoR入门速度没有PHP快,部署成本比PHP高。因此中小型互联网网站主流还是PHP,但RoR能够占据一定的份额。
2.大中型互联网站强调稳定性,性能,大规模代码的组织能力,而开发效率则退居次要地位,有些应用如电子商务对事务有很高的要求,显然Java是最合适的选择;PHP的代码组织能力最差,RoR次之。
在互联网领域,Java从来就不是主流,并且Java的适用领域和RoR不太重合。我们甚至可以这样说,RoR现在在互联网领域取代的是那些原本不适合用Java,但是被错误的选择了Java的项目。
二、企业应用领域
目前企业应用领域第一大语言是Java,dotnet其次。企业应用采用的技术和行业有很大关系:例如金融行业,电子政务行业一般只采用Java。dotnet发展了6年尚且没有进入企业高端的应用,RoR在短期之内也很难取代Java的地位。
在企业应用领域,Java是主流,并且Java的适用领域和RoR也不太重合。我们也可以这样说,RoR将来在企业应用领域要取代的是那些原本不适合用Java,但是被错误的选择了Java的项目。
至此,我想Java程序员大可以松一口气,RoR目前有哪些不适合的场合呢:
1.对事务要求非常高的场合
RoR还是很简单的单数据库事务控制,缺乏精细的事务控制功能,当然也不支持跨数据库的分布式事务。因此对于事务要求严格的大型电子商务网站,部署复杂的分布式数据库场景显得力不从心。当然也许有些plugin可以提供这些功能,但是从目前的功能完备性和成熟度来看,还不够。
2.处理大量遗留数据库的场合
ActiveRecord的威力很大程度上来自约定,大量命名糟糕的遗留数据库会对RoR造成比较大的障碍。
3.庞大的项目团队,对开发速度要求低的场合
例如日本外包项目,团队庞大,个体开发速度要求低。但是对于代码规范要求严格的项目。
虽然RoR不会取代Java,但不意味着作为程序员的你可以固步自封。即使在工作当中用不上RoR,多看一点新的技术,对于开阔个人视野也有很大的好处。 挺有意思的现象
记得过去还没有创办JavaEye的时候,在技术社区里面推广Hibernate(也算不上是推广,只是和别人交流Hibernate),就有一大批人酸酸的跳出来说,你们今天学习这个明天学习那个框架,全都是跟风,这些框架都是浮云,真正JDBC这种基础知识才是实力的,我就用JDBC,我用的一直很好,我完全没有必要去学习Hibernate……
每当看到这种话,我就觉得特别好笑,用一个我发明的说法叫做“牛逼哄哄的露怯”。没有人逼你学习Hibernate,你不乐意关心Hibernate,那就继续用JDBC好了,这个世界从来都不是非黑即白的。
其实这种人的心态很有意思。他一方面眼红人家学习新的技术,另一方面自己又不想花时间和代价去学习,所以恨不得所有的人都不要去学习新技术,这样他心里就感觉很安全了,正因为如此,他就总是要时不时跳出来打击一下别人,表面上很牛逼,其实虚弱的内心挣扎一览无余。
如果想把技术作为终身职业,那么对于技术人员的起码要求就是不能固步自封,要始终以开放的心态接受新技术。
打好基础知识固然重要(重要到根本无需你一遍又一遍的祥林嫂),但是不接触新技术,新思路,新的理念,很快就会被淘汰掉。
当然学习新技术也不是盲目的什么都学习,什么流行学习什么,而是根据自身的需要,有选择的学习。例如Java Web框架有很多很流行的,Struts,Webwork,Spring MVC,Tapestry,JSF,主流的就有5个,盲目的学习者就是人家说什么他就学什么了。而聪明的学习者应该对这些东西都去接触一下,从中选择一个值得自己投资时间成本去学习的框架。例如对这五个框架我都涉猎过一遍,最终我把时间花在了Webwork上面,事实也证明我当初的投资是正确的。
我学习ruby on rails有很现实的需要,其实即便抛开现实的需要,我也认为如果有空,Java开发人员有必要学习一下,原因是:
1、ruby语言和rails框架的社区力量正在以惊人的速度增长,甚至已经进入爆炸式繁荣的前夜,这不是昙花一现的现象,而是一个时代开始的象征。
2.从我这段时间学习的情况来看,ruby语言有足够的学习深度,我原来以为自己一个很快速的上手,然后就很精通了,但是ruby不像PHP那种方便面,其知识的广度和深度都让我感觉这是一个完整的知识体系。也正因为如此,ruby生命力会很长。
3. ruby和rails是非常非常Unix-like的东西,经常和操作系统提供的功能有深度的依赖,这和Java这种不依赖操作系统,什么基础设施都自己卷起袖子自己创造的理念相比,非常非常的不同。这样做会带来一个很大的好处,很多在Java里面解决方案很复杂的问题,在ruby方案中就很简单可以搞定,相比之下,让Java显得颇为大而无当。
不过ruby和rails也树立起了一堵墙,这堵墙就是Unix操作系统,要学好我,你就先跨越Unix这堵墙吧。呵呵,这也是为什么rails core team清一色的MacOSX的原因了。
不过我觉得这是好事,我本人是Unix fans,乐意见到这种现象,况且凭借我多年深厚的Unix功底,在ruby fans中,我又站在了一个很高的起点上领跑了。
想学好ruby吗?先在你的电脑上面安装MacOSX/ubuntu作为开发环境咯。 孟岩最近写了一篇博客:
Ruby 1.9不会杀死Python
这篇文章很有点标题党的意思,所以在JavaEye论坛很快被水掉了,只好锁贴:
但我个人对于孟岩的观点是不敢苟同的。首先我并不同意所谓魔幻语言和简约语言的分类。其实Martin Flower论述过这个问题,他是用“人性化接口”和“最小接口”来区分编程语言的风格化差异的。
其实不用我多说,Martin论述的挺充分了。强把Ruby和C++归为魔幻一类,其实并不准确,因为Ruby的魔幻语法和C++相比,最大区别在于:
C++的魔幻语法会导致代码的可读性变差,而Ruby的魔幻语法会导致代码的可读性大大提高。
不论是matz本人,还是整个Ruby社区,Rails社区诸多开源项目的作者,抑或整个Ruby和Rails开发者社区,在一个编程哲学问题上是高度统一的,这就是:
强调程序员的快乐编程,追求人性化编程,在代码的可读性上面有偏执的追求,拒绝难以阅读的代码和难用的API。也就是所谓的coding for fun!
所以你看无论是Rails,rake,rspec,甚至移植自lucene的ferret,都鲜明的体现出来这种特点,就是API简单好用,让你写的代码像英文文章,自然流畅,轻松愉快。要是哪个Ruby框架的API复杂晦涩,在Ruby社区简直没法混,大家根本不买他的帐,这也是为什么Ruby应用于DSL领域这么热的根本原因。
对于ruby程序员来说,这种追求编程人性化的哲学理念会潜移默化影响程序员,让他不知不觉把代码的可读性越写越好。对于程序员来说,谁不想coding for fun呢? 而当你品尝到了coding for fun的乐趣,又怎么会轻易抛弃?
所以Ruby受程序员欢迎的根本原因还是在于它是一种能给你带来编程乐趣的语言。 有人说,robbin你说了那么多RoR的优点,你啥时候说说RoR的缺点阿?你说的缺点肯定比别人说的更客观。没办法,为了表现出来我不是一个RoR粉,只好总结点缺点,以飨RoR黑子们:
Ruby和Rails的一些缺点的总结:
ruby的问题我觉得主要是:
1.ruby本身的性能是比较差的,无法直接做一些计算密集型的任务
比方说大量的分词运算、语料训练什么的,用ruby写是不行的
2.ruby的C扩展很难写
正因为ruby性能差,所以很多情况下要依赖C写的底层库,但是写ruby的扩展C库是很困难的事情。一方面没有特别多的资料介绍,你能参考的只有《Ruby Hacking Guide》,另外一方面Ruby是带有GC的语言,C又是没有GC的,所以如果你对ruby的GC机制没有特别清楚的了解情况下,写C扩展会出现意想不到的问题:比方说你写的程序逻辑没有任何问题,但是和ruby配合起来就会不定期的出现错误,这就是你C程序的某个赋值变量可能会被ruby GC以你意想不到的方式销毁。
3.ruby的C扩展库质量不高,容易出现内存泄漏问题
正因为上面的原因,很多第三方的C扩展库质量不好,很容易出现内存泄漏问题,这是一个很头疼的问题,你很难定位,也很难解决,只能尽量避免使用第三方扩展C库。
Rails的问题我觉得主要是:
1.特别容易出现命名冲突
你自己写的代码里面给类增加的方法,动不动就和Rails给类扩展的方法名称冲突了。这种错误很隐蔽,很难发现。这也是ruby语言动态性带来的一个负面影响
2.Rails每次升级API变动都比较大
Rails升级是不太考虑向下兼容性的,所以每次升级的话,可能你很多代码都要改,更糟糕的是很多Rails插件特别喜欢以hack rails的方式来扩展Rails功能,那么Rails一升级,插件的兼容性几乎肯定是不行的,这个是比较痛苦的事情。
3.Rails的view方面还是比较原始的erb拼接字符串方式,像JSP那样原始,没有一个类似Java的velocity/freemarker那样的页面模版库,所以写helper动不动要用字符串去拼html片断,如果是特别复杂的view需要拼的话,代码就会写的很丑陋。
当然总体来说,RoR还是让我感觉非常满意的,特别适合互联网应用。 从无到有刚开始做一个网站或者一个产品,要非常聚焦,没有旁的多余功能,只有一个做的极其牛X的核心功能,牛X到别人没有办法模仿你,于是网站开始崭露头角;
等核心功能成功以后,网站开始声名鹊起,为了扩展用户规模,产品开始多元化,各种各样时髦功能,各种各样用户要求的功能纷纷上马,于是用户规模开始快速扩张;
等用户规模已经起来之后,开始聚焦商业目标,于是删繁就简,开始砍掉与商业目标不符合的枝节功能,加强和商业目标符合的核心功能,网站进入健康的商业循环;
大部分网站都可以做到第一个阶段,但其中大部分都会倒在第二个阶段,而迈过第二阶段能够做到第三个阶段的就凤毛麟角了。到了第三个阶段,一个产品才真正开始成熟起来,才具有顽强的生命力,在IT垂直领域里面,JavaEye处于第二个阶段,需要向第三个阶段转变。
也曾经盲目的想把JavaEye的规模做到行业最大,于是上了各种各样的产品和功能,很多都没有细化和雕琢,现在想来都有些多余,而符合商业目标的核心功能又用力不足。现在总算想明白一个道理:规模最大又如何?还是不赚钱。所以接下来怎么做就很清楚了。
另外一条思路是做平台,互联网的未来生态系统肯定是由平台和内容提供商构成的,你要么做平台,要么做内容提供商。但在IT垂直领域,用户规模和市场空间过于狭小,平台没有足够的空间生存,所以这条路不通。不要企图做大而全的门户,不要企图做无所不包的平台。
定位好目标,不要做无关的功能,突出符合商业目标的核心功能和产品,足矣!

㈤ 理解编码者的思想以及它如何塑造我们周围的世界

几年前,当记者克莱夫·汤普森开始写他的新书《编码和编码世界》时,他去看了音乐剧《汉密尔顿》。他的外卖?汤普森告诉我,开国元勋基本上都是现代程序员。

“汉密尔顿、麦迪逊和杰斐逊进入了”“发生这种事情的房间',汉密尔顿(出来)写了20行代码,基本上说,‘华盛顿将成为这个权力中心,将成为国家银行’。”。“他们推动了他们的软件更新,彻底改变了这个国家。”

贯穿历史,汤普森说,“一个专业的班级拥有巨大的力量。班上的人所能做的,突然变得极其重要,极其政治和关键。社会急需他们的技能,只有少数人能做出影响巨大的决定。”

1789年,这些人是律师或法学家;2019年,他们是编码者。“他们制定了规则来决定我们要怎么做。他解释说:“如果他们能让事情变得更容易,我们就会做更多的事情。”。“如果我们想了解当今世界是如何运作的,我们就应该了解一些关于编码者的东西。”

所以汤普森已经破解了所有这些东西的思维框架—(也是?)-强大,非常人性化。在他的新书《编码者:建立一个新部落和重塑世界》中,他阐述了编程的历史,强调了女性所扮演的先锋角色。他将这一行业的发展追溯到它目前的白人男性化状态,并揭示了同质化带来的挑战。汤普森组织了对各类程序员的采访,从Facebook和Instagram每天影响数亿人的程序员,到那些痴迷于保护数据免受同一家大型科技公司影响的程序员。根据他为史密森、连线和 *** 杂志数十年的报道,他向我们介绍了代码背后的思想,正在塑造和重新定义我们日常世界的人们。

编码者:一个新部落的建立和世界

的重塑来自着名的科技作家克莱夫·汤普森(Clive Thompson),在一本询问他们是谁的书中,这位杰出的人类学家对当今世界上最强大的部落计算机程序员进行了估算,他们是怎么想的,在他们的世界里什么称得上伟大,什么应该让我们停下来。

程序员中最常见的个性特征是什么?什么是优秀的程序员?”

有一些明显的特点,你可能期望擅长编码的人通常擅长逻辑性和系统性的思考,并将大问题分解成小的、可解决的步骤。

但是还有其他一些事情可能会让你感到惊讶。编码是难以置信的,令人沮丧的。即使是最微小的错误——一个放错位置的括号也可能会破坏一些东西,而且计算机通常不会给你任何关于什么是错误的简单线索。成功编码的人是那些能够处理这种史诗般的,不间断的,日常挫折的人。好的一面是,当他们最终把事情做好时,快乐和喜悦的爆发与他们在生活中所经历的任何事情都不一样。他们沉迷于此,这有助于他们度过接下来的几个小时和几天的挫折。

编码在某种程度上是一个非常艺术的企业。你在用文字制造东西,机器,所以它有手艺任何喜欢制造东西或做手艺的人,都会在编码中找到同样的乐趣。而编码员在工作的时候也经常寻求深度、深度的隔离;他们必须如此努力地集中精力,如此多的时间,以至于他们渴望大量的“独处时间”。不要在他们恍惚的时候打扰他们,否则你会毁掉数小时的精神宫殿建筑!从这个意义上说,它们让我想起了许多诗人或小说家,他们也更喜欢在长时间的沉浸式孤独中工作。

,但事实是,编码也是很多很多很多的实践。如果你愿意投入10000小时,几乎任何人都可以学会合理地做好它。这不是魔术,他们也不是魔术师。他们只是努力工作!”

女性最初在这个行业占据主导地位,但现在只是科技公司程序员的一小部分。他们为什么和如何被赶出去?”

有很多原因。[早些时候,]你看到很多女性在编码,因为(招聘)纯粹是基于能力和优点,善于逻辑,善于推理。但是,从20世纪60年代末70年代初开始,编码开始发展出这样一种理念:编码者应该更像一个脾气暴躁内向的人。其中一些人只是许多性格内向、脾气暴躁的人开始蜂拥而至编写代码。

[当时,]公司[意识到]软件不仅仅是他们工资单上的这一小部分,而是一个巨大的东西,成为他们组织的核心,例如他们如何做决定以及如何收集数据。这些公司说,好吧,我们要有编码员,他们需要有可能升为经理。那时,没有人雇佣女性做管理。

所以,你看到一个潜在的非常擅长编码的女性,但你会说,“对不起,15年后我们不会让她成为经理”,所以他们甚至都不会麻烦雇她来编码。即使你有女程序员在工作,当你在一个大项目上崩溃,每个人都在全职工作,女人们也必须回家。从字面上来说,公司规定女性晚上八点以后不能在公司上班,有些州的法律规定如果怀孕,她们就必须离开工作岗位。在大学里,在计算机科学学位的头20年里,

,你看到男人和女人的兴趣在不断上升。然后在20世纪80年代中期,发生了一些事情。所有像我这样的孩子(大部分是男性)都是在编程的过程中长大的,第一台电脑开始进入校园。这在课堂上造成了两分法。在第一年的课上,感觉就像一群自大的男孩,他们已经知道如何编码了,还有一群新来的男人,主要是女人,他们以前没有做过。教授们开始教黑客的孩子们。所以,所有在退学前没有编码的女人和男人。这些课程开始变得全是男性,而且基本上也在进行,“你知道,如果他们已经四年没有黑客攻击了,我们不应该让任何人进入这个程序。”

有连锁反应。这个行业变得非常,非常男性化,它开始期待女性不在场是正常的。它不被视为一个需要解决的问题,在大学和公司中从来没有受到过挑战。所以女人们会离开,用她们的才能去做别的事情。的确,在过去的十年里,学术界和公司开始考虑文化存在的事实,并被钙化了,需要解决。1982岁的“KDSPE”年轻人在电脑上编程。(丹佛邮递员)“KDSPs”的结果是“黑客”有点误入歧途。“KDSPE”“KDSPs”当公众听到“黑客”这个词时,他们通常会想到那些闯入计算机系统窃取信息的人。不过,如果你和真正的程序员在一起,他们称之为“cracker”。

对程序员来说,“hacker”这个词的意思就大不相同了,而且更具赞美和乐趣。对他们来说,“黑客”是任何对技术系统如何工作感到好奇的人,他想深入研究,找出问题所在,也许能让它做一些奇怪和新的事情。他们被好奇心驱使。当他们说“黑客”时,他们通常只是在谈论一些有趣的和有用的编码,制作了一个解决问题的小工具,找出如何使用现有的代码,并让它做一些新的和有用的事情。当他们说某件事是一个好的“黑客”时,他们指的是任何解决问题的方法,即使它做得又快又乱:关键是,嘿,问题已经解决了

大多数科技界以外的人从流行文化描述中了解编码者和硅谷。怎么办这些陈述漏掉了?他们做对了什么?”

在传统上,电影和电视中对编码器的大多数描述都很糟糕。通常他们会让他们做一些根本不可能的事情,比如用几下键盘就可以侵入五角大楼或空中交通管制系统。他们几乎总是把焦点放在“黑客”的阴暗面上,即侵入远程系统。我明白为什么,这是一出好戏!”

,但真正的程序员整天做的事情并没有那么引人注目。事实上,很多时候他们根本不写代码:他们盯着屏幕,试图找出代码中的错误。电视和大屏幕上的编码员不断地打字,手指模糊,代码从他们身上倾泻而出。在现实世界中,他们只是坐在那里想大部分时间。好莱坞从来就不擅长捕捉实际的编码工作,这是持久的挫败,因为你试图使一段破烂的代码最终工作。

说,最近有一些更好的描述编码器!《硅谷》(Silicon Valley)是一部喜剧,它模仿了科技界自鸣得意的过激行为,因此他们做了一项有趣的工作,歪曲了科技创始人和风险资本家关于他们的科技将如何“让世界变得更美好”的所有花言巧语。但他们常常很好地捕捉到编码者的心理。程序员常常会奇怪地痴迷于优化看似愚蠢的事情,而这正是真实的程序员所想的。他们会在漫长的,史诗般的,与世隔绝的,夜深人静的jags中尽他们最大的努力,jags也非常逼真。

同时,“Robot先生”很好地展示了真正的黑客行为,如果屏幕上有一段代码的话,它通常是有效的!“停止并着火”是另一个很好的例子,它展示了一个超级天才的程序员在编写代码的同时是多么的惊人,但是在想象一个普通人想要使用的有用的产品时却是多么的糟糕。这是非常现实的。

为什么你认为程序员没有预见到像Twitter和Facebook这样的平台会被坏人操纵

他们很天真,原因有很多。其中一个原因是,他们大多是年轻的白人,很少有过女性或有色人种在网上经常遇到的那种骚扰的个人经历。所以对他们来说,创造一个工具,让人们更容易在网上发布信息,在网上互相交谈,这会有什么问题呢?公平地说,他们确实是正确的:社会从他们在Facebook、Twitter、Instagram、Reddit或其他任何地方创建的交流工具中受益匪浅。但由于他们没有战争游戏的方式,恶棍和巨魔可以使用他们的系统来骚扰人们,他们没有在早期提出许多有用的保护措施,以防止它,甚至发现它正在进行。

所有这些服务的金融模式是“使它免费,快速增长,获得数百万用户,这是一个快速增长的好方法,但也意味着他们会制定算法来筛选文章,并找到“热门”的文章进行推广。反过来,这意味着他们最终大多会提升那些引发热点情绪的帖子,比如引发党派愤怒、愤怒或搞笑的帖子。任何一个每天筛选数十亿个帖子以寻找快速增长的帖子的系统,毫不奇怪,都会忽略那些枯燥而有条理的帖子,而选择那些极端的帖子。

,当然,这也使得这些系统很容易玩。当俄罗斯的附属特工想要干涉2016年的选举时,他们意识到他们所要做的只是在Facebook上发布一些东西,假装美国人在政治问题上采取极端和两极分化的立场,这些东西会在算法中得到分享、提升和投票。它奏效了。

美国人仍在接受这些大型科技公司在我们的政治中所扮演的角色。这在他们的员工中算什么呢?”

你在更多的新兴市场中看到了更多的道德思考雇员。我听说过Facebook员工的故事,他们现在有点不好意思承认自己在派对上的工作地点。这是新的;不久以前人们就开始夸耀它了。你还会看到一些迷人的劳工起义。谷歌和微软最近有各种各样的事情,从员工 *** 到员工 *** ,当时科技员工认为他们不喜欢他们公司为军方或(移民执法部门)工作。这也是非常新的,而且可能会增长。如果员工变得不耐烦,科技公司会不顾一切地雇佣和留住技术人员,这是一个致命的弱点。

你的书充满了精彩的轶事和故事。有没有一个你认为对科技行业和编码者最具启发性的?”

我最喜欢的是Facebook上的“Like”按钮。发明它的程序员和设计师最初希望它能通过一键点击轻松显示你喜欢的东西,在平台上释放积极性。这是一种典型的效率策略,就像程序员看待世界的方式。而且成功了!它确实释放了大量的积极性。

,但它很快就产生了奇怪的、意想不到的,有时甚至是糟糕的副作用。人们开始沉迷于他们喜欢的东西:为什么我的照片没有得到更多的喜欢?我应该换个帖子吗?我应该说些更极端或更愤怒的话来引起注意吗?五年后,发明“喜欢”的人对自己创造的东西有了更复杂的想法。他们中的一些人已经完全不再使用社交媒体。

这是一个伟大的故事,因为它展示了即使是一小段代码也有多么强大,以及它如何产生连其创建者都无法预见的副作用。

㈥ JAAV程序猿从8K到2W,他是怎么做到的

有一个做JAVA开发的程序员朋友,2年拿着8K的工资,能力不错,前段时间突然被挖去做Hybris,薪资薪资从8K涨到2W3。
在IT程序员的世界里,从来不缺乏跳槽的话题,因为跳槽能涨工资,跳槽成了程序员能涨工资的行业潜规则。
我们今天暂且不说程序员跳槽的那些是与非。今天主要想说说我这个朋友涨薪达到150%的背后有哪些值得我们深思的?要说程序猿跳槽涨薪很正常,但行业一般的涨薪在30%-50%,150%涨幅确实是不太多的,除非你有非常资深的技术和经验。
他能够做到,最主要的原因是在对的时间里遇到了对的机会,而他又恰巧抓住了这次机会。
传统观念来讲,也许学历的高下在一定程度上影响了程序员的初期就业,但无论如何,对于用人单位来说,对经验的看重更胜于学历。在这些工作经验之外。一些雇主更愿意为某些技术支付额外的薪水,我这个朋友恰巧对SAP
Hybris是有了解的,他看到了这是个机会。也许你根本还不知道Hybris是什么?可是他已经率先进入这个行业了,所以他的薪资会涨的这么快。

你所做的产品,你所拥有的技能,决定了你的价值
由于软件行业是高风险、高回报的职业,即使是同样的开发人员,JAVA开发和.NET开发的人薪资不一样。并且所在的公司,所做的产品由于品牌、市场运作等因素,价格也...天壤之别。你所做的产品,产品所能创造的市值也影响程序员所得到的报酬以及福利待遇。
我们都知道同样是做软件的,都是5年经验的SAP 实施要比JAVA开发的薪资高出几倍,SAP实施顾问是按天计算,因为SAP的客户都是高富帅的企业非富即贵,他们所面对的对象和SAP产品所产生的价值决定了SAP产品的实施人员得到的报酬高于JAVA开发人员。

眼界决定高度,技术有深度,更要有广度
另外相信大多数程序员都有这样一个观点:程序员大都是吃“青春饭”的,现在写程序的人里面,30岁以上的已经在逐渐减少,而35岁以上的则屈指可数,大部分程序员的黄金岁月是在24~28岁。而到了28、29岁以后,由于软件行业的飞速发展,很多自己以前学的东西逐渐换代,而由于程序员长期埋头于工作,想学习崭新的知识也是力不从心。落后的必然结果就是降薪乃至失业。
老实说,一个资深程序员的薪资在很多人眼里的确是高不可攀,这个行业也是实实在在的白领阶层。但是程序员的艰辛也是非旁人所能想象的,特别要想在竞争中出类拔萃,更需要很大的毅力。程序员高薪的秘诀无非一个:机遇+经验+灵感。虽然世界人人平等,并且大多数企业都在以高酬吸纳优秀人才,但是价值要靠自己创造。
一味的钻研某一项技术,乃至达到顶峰,这是很OK的。但是,科学的发展也是极快的。所以,在研究深度的同时,不要忘记关注当下流行的技术。
Java开发遍布天下的今天,我的朋友选择了一个还没有被关注的新的技术Hybris,这个技术又恰巧是一个被市场正在推崇的爆品。

一个新的职业背后永远是先入者吃肉,落后者喝汤
老实说我这个朋友转到Hybris,开始和我说的时候我也是惊讶了一下。当时正是我们森纵教育的Hybris的培训课程策划和研发刚刚完成上线,之前只是和他提过在做SAP电商的课程。他说正好有机会而且给予培训,查了一下相关的介绍和薪资觉得SAP
Hybris是个不错的机会就跳了。市场永远是这样,你先进去占到了资源,后边进去的就没有那么多的优越性。
现在一个Hybris相当于十年前的SAPFICO一样,在2015年从概念到落地成为SAP的核心。根据SAP四大咨询公司招聘Hybris实施顾问调查显示,2年Hybris顾问的薪资高出3-5年Java开发工程师。
无论是JA VA开发程序员、还是SAP实施顾问,还是其他新兴职业都是先入者有肉吃。这种优势也许你现在还没有看到,但是在2年、3年以后作为最早进入这个行业的你是就是人们常说的资深,这就是你在30岁,35岁以后发展的优势。

想拿高薪吗?那么就要领先别人成为精英!

之前你不了解Hybris没有关系,但是现在作为一个关注自己职业的JAVA程序猿你必须了解,因为它是决定你未来的职业高度。
关于SAP Hybris
2013年8月8日 - hybris和SAP在纽约举行的全球新闻发布会上宣布,SAP收购hybris交易完成
Hybris是全球发展最快的电子商务平台供应商,Hybris作为世界级企业电商平台成为众多企业的首选,关键在于Hybris提供的全渠道的商务解决方案。hybris的全方位渠道软件建立在单一的平台,基于开放标准,支持无限创新,并且总拥有成本(TCO)更低;其可扩展性和全球部署性使该软件成为公司电子商务平台的最佳选择。两家主要行业分析公司将hybris列为行业领袖、并将其电子商务平台列为市场前三名。
超过500家公司成为hybris的客户,其中包括全球B2B品牌格雷杰、蓝格赛、通用电气、汤森路透和3M,以及消费者品牌玩具反斗城、麦德龙、普利司通、宝洁、李维斯、尼康、老佛爷、米格罗、联想、耐克、雀巢和汉莎航空。hybris业务遍布全球15个国家。
Hybris代表着商务的未来!国外不管是百强公司还是新兴企业都已上SAP Hybris,中国2014年已经起步,成为SAP中国市场主力产品。
不管国际巨头企业还是国内高富帅的企业,都已完成SAP
ERP系统的建设,SAP传统模块和业务市场逐渐饱和,SAP在新市场上面临严峻挑战。在此环境下,O2O转型和全渠道商务已变得迫在眉睫!2015年SAP
Hybris 实现爆发式增长,SAP主要大客户都选择了Hybris产品。Hybris成为影响SAP业绩增长的“拳头”产品之一,而SAP
Hybris在中国的市场才刚刚开始。
SAP与hybris实现了所有零售商迫切期待的强大商务功能,该解决方案可为消费者提供跨实体和在线渠道的一站式视图和始终如一的体验,该方案完美融合了
Web、移动及其他媒介的B2B和B2C商务功能,包括强大的搜索与营销、主数据管理(MDM)/PIM、订单管理和 Web
内容管理等功能,采用以服务为导向、符合多种标准的现代化单一架构技术构建,并提供多种部署和定价选择。
Hybris市场的火爆必然带动Hybris相关职业和人才需求的递增式增长,如Hybris实施顾问、Hybris开发人员、Hybris运维等相关职业成为SAP新的职业需求。根据国内最大招聘网站前程无忧以及互联网招聘公司拉勾网调查显示,SAP
Hybris开发实施工程师岗位近半年职位数量增长2-3倍,Hybris电商开发人才紧俏。
Java是转SAP Hybris的最佳的任选,因为Hybris的开发与JAVA开发有很多的相关性,而Hybris又为JAVA开发者提供了开放性和灵活性,JAVA开发人员很容易入手。

㈦ 谁能告诉我:计算机程序设计语言发展史和对程序设计语言未来的看法

【摘要】

本文以自然辩证的观点探讨了计算机语言的发展历程,运用自然辩证法的基本理论、基本方法,系统分析了计算机语言的发展历史、现状和未来。并对其的发展趋势和未来模式做了探索性研究和预测,同时以哲学的观点阐述其发展的因果关系,揭示其事物发展的共性问题;最后文章介绍了在计算机语言发展历程中做出杰出贡献的科学家,以其在计算机事业中的突出表现来折射出人类智慧的伟大,以其不平凡的一生来激励和指导我们在计算机语言的发展中向着正确的方向前进。

【关键字】

自然辩证法 计算机语言 计算机技术 编程语言 因特网 面向对象

正文

一九九三年美国的克林顿政府提出了“信息高速公路”计划,从而在这十多年间在全球范围内引发了一场信息风暴,信息技术几乎触及了现代生活的方方面面,毫不夸张的说没有了信息技术,现代文明的生活将无从谈起;作为信息技术中最重要的部分,计算机技术无疑是其发展的核心问题,而我们知道计算机只是一台机器,它只能按照计算机语言编好的程序执行,那么正确认识计算机语言的过去和未来,就是关系到计算机发展的重中之重;以自然辩证法的观点认识和分析计算机语言的发展历程,将有助于更加全面地推动计算机技术的发展,有助于更加准确地掌握计算机语言发展趋势。

一、科学认识大门的钥匙--当代自然辩证法

自然辩证法,是马克思主义对于自然界和科学技术发展的一般规律以及人类认识自然改造自然的一般方法的科学,是辩证唯物主义的自然观、科学技术观、科学技术方法论。它主要研究自然界发展的总规律,人与自然相互作用的规律,科学技术发展的一般规律,科学技术研究的方法。

马克思、恩格斯全面地、系统地概括了他们所处时代的科学技术成功,批判吸取了前人的合理成分,系统地论述了辩证唯物主义自然观、自然科学发展过程及其规律性,以及科学认识方法的辩证法,以恩格斯的光辉着作《自然辩证法》为标志,创立了自然辩证法继续发展的广阔道路。

自然辩证法是马克思主义哲学的一个重要组成部分。在辩证唯物主义哲学体系中,自然辩证法与历史唯物论相并列。它集中研究自然界和科学技术的辩证法,是唯物主义在自然界和科学技术领域中的应用,它的原理和方法主要适用于自然领域和科学技术领域。

学习和运用自然辩证法将有助于我们搞清科学和哲学的关系,从而更加清楚地认识科学的本质和发展规律,更加全面的观察思考问题,只有加深了认识,我们才能更好地发挥主观能动性,迎接新的科学技术的挑战。下面我将以自然辩证法的观点来分析计算机语言的发展历程。

二、计算机语言的发展历程和发展趋势

计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。

1、计算机语言的发展历史:二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽 (konrad zuse)。几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。随着c, pascal,fortran,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型-----面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。面向对象语言由此必须支持新的程序设计技术,例如:数据隐藏,数据抽象,用户定义类型,继承,多态等等。

2、计算机语言的发展现状:目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类和编译类。

3、计算机语言的发展趋势:面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。下面是一张计算机语言发展图表,从中不难得出计算机语言发展的特性:

² 简单性

提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序

² 面向对象

提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用

² 安全性

用于网络、分布环境下有安全机制保证。

² 平台无关性

与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。

三、面向未来的汉语程序设计语言:

从计算机诞生至今,计算机自硬件到软件都是以印欧语为母语的人发明的。所以其本身就带有印欧语的语言特征,在硬件上cpu、i/o、存储器的基础结构都体现了印欧语思维状态的"焦点视角",精确定义,分工明确等特点。计算机语言也遵照硬件的条件,使用分析式的结构方法,严格分类、专有专用,并在其发展脉络中如同他们的语言-常用字量和历史积累词库量极度膨胀。实际上,计算机硬件的发展越来越强调整体功能,计算机语言的问题日益突出。为解决这一矛盾,自六十年代以来相继有500多种计算机语言出现,历经五代,至今仍在变化不已。

汉语没有严格的语法框架,字词可以自由组合、突出功能的整体性语言。在计算机语言问题成为发展瓶颈的今天,汉语言进入计算机程序设计语言行列,已经成为历史的必然。

1、 发展汉语程序设计语言的理由:

1)计算机语言问题解决,只能从人类语言中寻找解决方案;

2)计算机语言的现存问题是形式状态与功能需求的矛盾;

3)计算机硬件的发展已为整体性语言-汉语进入计算机程序设计语言提供了条件

2、 汉语程序设计语言的技术特点:

1)汉文字的常用字高度集中,生命力极强,能灵活组合,简明准确地表达日新月异的词汇,这些优点是拼音文字无法企及的。

2)汉语言的语法简易灵活,语词单位大小和性质往往无一定规,可随上下语境和逻辑需要自由运用。汉语言的思维整体性强,功能特征突出。

3)汉语程序设计语言的发明者采用核心词库与无限寄存器相结合的方法,实现了汉语言的词素自由组合;将编译器与解释器合一,使汉语程序设计语言既能指令又能编程;以独特的虚拟机结构设计,将数据流与意识流分开,达到汉语程序设计语言与汉语描述完全一致,通用自如。

具有汉语言特性的汉语程序设计语言的出现,打破了汉语言不具备与计算机结合的条件而不能完成机器编码的神话。还为计算机科学与现代语言学研究提出了一条崭新的路径,它从计算机语言的角度,从严格的机械活动及周密的算法上,向世人证实汉语的特殊结构状态,及其特殊的功能。

四、计算机语言之父——尼盖德

尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。

尼盖德是奥斯陆大学的教授,因为发展了simula编程语言,为ms-dos和因特网打下了基础而享誉国际。克里斯汀·尼盖德于1926年在奥斯陆出生,1956年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。

1961年~1967年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。因为表现出色,2001年,尼盖德和同事奥尔·约安·达尔获得了2001年a.m.图灵机奖及其它多个奖项。当时为尼盖德颁奖的计算机协会认为他们的工作为java,c++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世。”

尼盖德因其卓越的贡献,而被誉为“计算机语言之父”,其对计算机语言发展趋势的掌握和认识,以及投身于计算机语言事业发展的精神都将激励我们向着计算机语言无比灿烂的明天前进。

五、结束语

用科学的逻辑思维方法认识事物才会清楚的了解其过去、现在和未来,计算机语言的发展同样遵循着科学技术发展的一般规律,以自然辩证法的观点来分析计算机语言,有助于我们更加深入地认识计算机语言发展的历史、现状和趋势,有了自然辩证法这把开启科学认识大门的钥匙,我们将回首过去、把握现在、放眼未来,正确地选择计算机语言发展的方向,更好的学习、利用和发展计算机语言。

六、致谢

㈧ 程序员的悲哀是什么

“码农”这个词,不管是不是从事IT工作的人,都略有耳闻。这个词的诞生无从考究,不知是程序员的自嘲,还是外行带有颜色的嘲讽。总之,对于这个词,我是既无奈又无力反驳。确实,工作中,我们大多数底层程序员每日做的工作相当于流水线的作业。

大部分程序员是悲哀的,不是情商、衣着、自黑之类,悲哀的是没有决策权。项目做成什么样,那是领导和产品经理的事;用什么技术框架,那是架构师的事;数据库的设计,业务那是项目经理和产品的事;而作为一个普普通通的底层码农,我们只需要拿到需求,然后等设计给图子,流水化的写出实现代码。我们只是一个执行者,别人叫你干啥就干啥。最后项目做坏了,裁员的是谁?程序员。

这就是一个普普通通的“码农”。读书那会,我的老师跟我说,“如果从业十年,你依旧在写最基础的代码,做一个码农,那么就不要做程序员了,转行吧”。现实中,每个公司存在最多的就是这些“码农”,那种掌握核心技术,产于项目设计,技术架构的毕竟是少数,大多数程序员都处于被动接受,按需求完成代码的任务。

做程序员越久,越是感到:我们就是新时代的手工艺者。只有少数的人,从手工艺者,变成了发明手工艺制作机器的人,少部分人变成了设计手工艺品的人,少部分人变成了车间主任罢了。

“码农”这个词有着深深地悲哀

见过太多刚入行的菜鸟,像极了曾经那个满怀激情,梦想的自己。当第一次接触Java的面向对象思想时,那种兴奋,仿佛能用Java描述整个世界,仿佛自己就是上帝一般,在现实世界,创造出另一个虚拟世界。而现实中,一两年的流水化作业,冲淡了一切。

对于产品,仿佛是自己的孩子,从无到有,一点一滴,看着一个网站,产品,在自己的手下,满满长大,那种满足感,自豪感,油然而生,但是最后你希望它变得更优秀时,却发现它不受你控制,仿佛养了好几年的儿子,被人教唆去做坏事,你不能说任何话,因为抚养费不是你出的。

决定你有没有决策权的是你的纵向位置,也就是在本行业金字塔的位置,出类拔萃者说话就响。过惯了咸鱼生活,但谁又甘心做一个“码农”,我们希望发出自己的声音,成为那个有权利选择的人,这一切需要提高自己的技术,能力作为支持。在国外,程序员被称为程序设计师,而国内“码农”,区别可想而知。

㈨ 程序员的未来发展

社会对程序员的定位是满足技术需求,程序员自身所受的教育和积累的经验也使自主前程意识局限于技术路线。实际上,我们所看到的在技术方面有建树的前辈多是综合型的人才,单纯局限于技术思维的多有行为局限,也难看出自身的幸福感。

毕业几年了,一直都是从事程序员的工作,从以前只管努力学技术,到现在开始慢慢地思考以后的职业规划问题了。

十年三阶段

工程师的职业发展,前十年是个非常重要的阶段。从职业规划的角度来讲,建议把这十年分为三个阶段来设定目标:

第一阶段(前三年):打基础。立足培养技术能力和软技能。第二阶段(四年):从个人能力向团队组织能力转变。在沟通能力、协作能力和领导力上发力。第三阶段(四年):不断强化领导力(技术领导力和管理领导力)。

在我看来,一个工程师的养成可以分为四个阶段:

新人期

硬技能:理论转化实践软素质:养成基本的职业观

成熟期

硬技能:积累业务知识,积累技术知识软素质:固化职业观

发展期

硬技能:明确细化的职业发展方向,深入研究“可能技术, 可能管理, 可能两者兼具”软素质:逐步总结并形成自己的方法论

事业期

硬技能:释放自己,创造价值软素质:输出方法论,影响其他人

看到身边一些“大龄”程序员的出路,主要是这三条:做管理,自己创业和继续写程序。

做管理

做管理是绝大多数人的选择。原因嘛,当下中国职场的大环境如此:招聘单位一般不要年龄大的程序员,再加上你年龄大些后,实战经验丰富,不让你带人让谁去带呢?“大龄”程序员有着多年的开发项目经验,这些实战经验能一些岗位起到很重要的作用。比如:CTO,项目经理、产品经理。

相信在多年的工作中你的技术是无话可说的,但是管理的方式、为人处事的方法、稍稳妥的工作作风以及对于企业长远的眼光可能是你们真正需要加强的。

创业

自己创业的,这种人大多数是在工作中到了一定的岗位,有了一定的资本,综合能力提升到一定的水平,但跟搞管理一样,你还缺许多技术之外的东西

创业者要做的产品不是给客户的商品,而是企业本身。把企业看做一个系统,运转良好的系统,就是创业者要开发的产品,这个理念,对于运作企业是非常重要的,也从根本上回答了如何做好企业的问题。

如果单纯是因为自己工作不开心,对老板不满而愤然离职创业的,这种基本成功概率为零。

如果想继续抱着键盘安安静静地写程序,估计要在某个技术方向深度学习。比如做游戏就一直做游戏,做网络就一直做网络,其它方向的工作基本不在考虑范围内,这样才能在一个方向上积累下来;否则各个领域都会一点皮毛,但又没有精通的,企业几乎不需要这种人。

程序员找出路还是要尽量提前进行职业规划和准备,千万不要说什么:“走一步,算一步”的话。在这个一睁眼就是竞争的时代,你可以放松休息,但别人会继续前进,不会等你。

阅读全文

与现代程序员的观点相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:672
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:486
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:382
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:350
风翼app为什么进不去了 浏览:779
im4java压缩图片 浏览:362
数据查询网站源码 浏览:151
伊克塞尔文档怎么进行加密 浏览:893
app转账是什么 浏览:163