热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

程序开发的心理研究

程序开发的心理研究本文只是根据本人的一些经验,还有外界的一些文章,总结出来的程序开发过程中程序员的心理的一些总结,并没有通过严格的验证。一、开发项目的原则<iframename"g

程序开发的心理研究

本文只是根据本人的一些经验,还有外界的一些文章,总结出来的程序开发过程中程序员的心理的一些总结,并没有通过严格的验证。

一、开发项目的原则

一般研究发现,一个人刚进行一个新的公司,或者接受一个新的任务,他总得要一个适应的过程,这段时间叫做适应期,这个过程根据不同的人所需要适用的时间长度不同,对于一个程序员来说,如果接受一个难度适中的项目,他一般需要3个月的时间来适应,当然,这个时间只是一个一般比较普遍的情况,可能有些人1个月就可以适应了,有些人搞了半年,还是对系统很不熟悉。这个适应期大概包括下面几个部分:1。对环境的适应。社会是由人组成的社会,当然程序员进行一家新的公司、或者一个新的环境,总免不了要跟人打交道,可能有人会说,“每次开发系统都是我独自一人完成”,恕我坦白一点的说,这样开发出来的系统根本不能算是一个系统,现代项目开发一般需要包括前期需求分析、需求文档开发、设计文档开发、代码编写、系统测试等。要使得这一总个流程顺利的进行下去,那就需要人与人之间的合作,所以一个程序员到了一个新的环境、面对一些陌生的人、总得有一点的时间相互之间进行交流,建立起一种友谊。2。对项目的适应。我们接受一个项目,不管是全新的还没开发的项目,还是已经处于维护状态的项目,我们总得对它的业务逻辑、开发风格、编程规范、系统构架等有一个了解。业务逻辑是指一个项目相关的操作是怎么进行的、各个操作具体如何操作等等。开发风格是系统原有是如何进行开发的,现在国内有很多系统都是一招了一个新人就叫他进行代码的开发,结果他等到开发完了才发现原来他花了很久才开发出来的类(javac++中的一种概念,相当于一个功能模块,可以被其它功能使用),其实系统早就已经有了,使用的时候这样调用就可以了,等等。编程规范大家应该都知道了,现在基本不同的语言都有自己的编程规范,比如说javajava编程规范,同时,不同的公司可能根据自己的情况定义了一些规范,比如说,判断一个变量是否为空,有些公司要求将null放在前面等。系统构架是指一个项目的总的框架是如何搭建的,采用哪种语言等,比如说、现在很多开发网上应用系统都采用StrutsSpringHibernate构架(采用java语言)。这些都需要一个适应的过程,如果对这些都还没了解清楚就匆忙的开发编写代码,那写出来的将会是一些格格不入的代码、不管这个代码单独拿出来看的时候是多么的完美。

适应期过后,接下来是一段比较长的稳定期。这段时间一般有半年到一年的时间。在这段时间里面,程序员对系统业务比较熟悉,开发系统得心应手,他们一般在定位一个系统问题的时候,能够比较快的查找出问题并处理,而不像一些新手一样,对系统调试N久之后,才将问题处理,之后才发现,问题只不过处理了一半,在其它地方存在的相同的问题没有处理,或者处理完一个问题之后,却导致其它地方出了问题。

稳定期过后,程序员开始陷入了厌烦期。这个厌烦期是没有期限的,随着时间的推移,程序员可能越来越讨厌自己的工作,他经常抱怨系统编码是如何的差劲,而完全忘记了这个差劲的系统也有他的一份功劳在内。他们工作的时候不像以前那样有积极性,经常在上班前2分钟到达公司,还可能在下班前半个小时就开始收拾东西、给家人打电话、等待的下班时间的到来。他们开始对反馈的一些问题应付了事,他们开始对新近来的员工指手画脚,在开会的时候发短信,等等。

根据上面我们可以发现,一个程序员新接触一个新的项目的时候,我们要给他一段时候熟悉系统,而不管他是多么强的一个高手。很遗憾的是,现在国内很多公司一招了一个新人,就开始压一大堆任务给他,而完全不给他们适应的机会。这样产生出来的经常是一个千疮百孔的系统,甚至完全就是一个失败、无法使用的系统。当一个人开发对现在的系统厌烦的时候,就要开始分配新的任务给他,让他去熟悉、开发新的系统,而不要总抱着这样的想法,就是现在系统他最熟悉了,让他开发最合适,让他去开发新系统还要让他花时间去熟悉新系统等等。这样下去的结果可能有两种,一是开发人员被迫辞职了,剩下来的就是一个没有人熟悉的系统,招来的新员工在这个系统上花费了大量的时候,才搞个一知半解,甚至系统可能就这样寿终正寝了。还有一种结果就是开发人员因为高工资继续留下来,但是系统的开发进度越来越慢,bug越来越多,开发人员也变得有恃无恐的,而领导层却越来越担心由于开发人员辞职导致系统无法进行下去。

二、今天周末、早点回家吧!

我想国内企业最擅长的就是剥削劳动者的劳动力的,甚至有人叫嚷着:“没有程序员是不需要加班的”。他们将一个又一个的任务压在程序开发人员的身上,将完成时间压缩后再压缩,直压得开发人员两眼冒星,口吐三口鲜血后在当天的工作日志上写道:“今天是我连续第三天通宵了,今天总共处理了283个系统问题,最后系统终于跑起来了,用户终于同意通过了检查,我光荣的完成了使命!”。

在这里我并不想批驳公司对程序开发人员的剥削,这种高强度开发对系统的影响,它最终也会损坏到公司的利益。项目开发跟一般工厂上组装一件电器是不一样的,我们的项目要实现一个功能,是有很多中实现方式的,还要考虑系统构架、可重用性、可读性等。比如说,一个好的系统构架,你会发现实现起功能来又快又好,而且能够应付系统开发过程中业务逻辑的变化,而一个差的构架,实现起功能来很困难,而当业务逻辑变化时,你会发现几乎所有的代码都需要重新修改,这会令你陷入绝望的境地,而不像一个好的架构那样修改一下配置文件或者两段代码都搞定了,这其中的快慢有时可以用N次方来形容的。而恰恰是这种好的构架在前期需要大量的时候进行设计,如果一味求快的话,那么开发人员根本就没有时间进行一个好的构架的设计,这样前头快的做法,将会对后续的开发带来影响,使得开发起来更加困难。可重用性也是一样,如果考虑可重用性的话,那么可以将一些逻辑抽象出现,写出一个类,这样,还后续开发的时候,如果有相同的逻辑,就可以使用这个类了,如果对这个逻辑进行修改的话,那只要修改了这个类,所有的逻辑都同时改变了。如果完全不考虑这些的话,那么后续开发都要开发类型的代码,如果对逻辑修改的话,那么将是很麻烦的事情,当然,这个进行抽象成一个类的动作,比自己开发更花时间,但是更好。对于可读性,对于一个紧急的开发,你可能发现里面连一个注释都没有,很可能开发人员后来翻出这些代码来看的时候,他已经不记得这到底是什么意思了,甚至连是不少他开发的都不记得了。

所以,我想说的就是,不要给程序开发人员太大的压力,只要适中就可以了。还有,不要一味的要求开发人员干活,要适当的表现出对他们的关心,比如说,周末的时候,跟他们说:“今天周末,早点回家吧!”,这样对开发人员的作用是很大的。

三、监狱里的囚犯

我想大概国内的软件公司是全世界男女比例最失调的吧,随便走进那家公司,你经常会看到的是大批的男性开发人员的,而作为女性的一般都是些文员,市场人员,资料开发人员等,领导层他们有自己的想法,他们这样想着,如果招了一个女性开发人员进公司的话,那么她晚上就不能加班太晚,不然还得负责她的安全。还有,在中国程序员眼里,女性程序员大多不懂编程,整天问东问西。还有,领导们可能担心招了女性程序员之后,会影响到大家的情绪,可能是造成公司内部分裂的根源,等等。同样的,也是女性自身方面的问题,国内的女性一般偏向于学习文科方面的东西,在大学里面,学习理科的女性要比男性少得多。等等这些都造成了现在程序开发行业阳盛阴衰的现象。

这种现象所引起的后果就是国内很多的男性开发人员都很内向,不善于跟女性交流,见了女性有些还会脸红。很多在公司里面勤勤恳恳,工资也不低,人长得也不衰,但是就是没有女朋友。他们的生活是压抑的(至少是性压抑吧)。这让我想起了一个事情,曾经有人做过实验,让一个男性从一个关押着女性囚犯的监狱旁边走过,这群女性囚犯大多是被关押了很久的,在这期间,她们根本就没有接触过男性,虽然那个男的只是从旁边走过,那些女性囚犯只是听到了那个男的声音,但是在女性囚犯中马上产生一阵骚动,她们大部分人的女性荷尔蒙都在那个是否明显增多了。我想用这个来形容现在的程序员是最好不过了。程序员就好像被关在监狱里的囚犯,白天干活,经常加班,晚上回去就睡觉,第二天又开始新的工作。他们在公司里的经常是在处在一个被压迫的状态,很少有时间进行其它的活动等。

我想这是有害的,中国如果继续这样发展的话,将会阻碍软件行业的发展。领导应该多考虑招一些女性的程序员,多组织一些活动等。让程序员感觉到公司里面的一些人性化管理,这就是一个公司的软环境,让程序员安居乐业的软环境。


推荐阅读
  • 深入探讨前端代码优化策略
    本文深入讨论了前端开发中代码优化的关键技术,包括JavaScript、HTML和CSS的优化方法,旨在提升网页加载速度和用户体验。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • DirectShow Filter 开发指南
    本文总结了 DirectShow Filter 的开发经验,重点介绍了 Source Filter、In-Place Transform Filter 和 Render Filter 的实现方法。通过使用 DirectShow 提供的类,可以简化 Filter 的开发过程。 ... [详细]
  • RobotFramework之资源文件资源文件导入资源文件资源文件与用例前置、后置结合使用资源文件资源(Resource):用户关键字的 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文汇集了我在网络上搜集以及在实际面试中遇到的前端开发面试题目,并附有详细解答。无论是初学者还是有一定经验的开发者,都应深入理解这些问题背后的原理,通过系统学习和透彻研究,逐步形成自己的知识体系和技术框架。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本文深入解析了HTML框架集(FRAMESET)的使用方法及其应用场景。首先介绍了几个关键概念,如如何通过FRAMESET标签将主视图划分为多个独立的区域,每个区域可以加载不同的HTML文件。此外,还详细探讨了FRAMESET在实际开发中的优缺点,并提供了具体的实例代码,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 如何在 Angular 4 中实现跨域调用百度人脸识别 API? ... [详细]
  • 在使用 iframe 嵌入外部页面时,经常会遇到页面加载不同步的问题。当嵌入的页面响应较慢时,这种异步加载会导致用户体验不佳。本文介绍了如何通过监听 iframe 加载完成的事件来解决这一问题,并提出了针对双滚动条问题的有效解决方案,以提升整体的用户体验和页面加载效率。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • Web自动化测试:表单提交与页面跳转的高效实现
    Web自动化测试:表单提交与页面跳转的高效实现 ... [详细]
  • 整合百度UEditor编辑器于ASP后端的实现步骤与技巧
    随着微软停止对XP系统的支持,公司已全面升级至Windows 7。早期网站创建时使用的编辑器仅兼容IE6浏览器,而如今系统更新后,原有的编辑器已无法满足新环境的需求。本文详细介绍了如何将百度UEditor编辑器整合到ASP后端,包括实现步骤和实用技巧,确保网站在新系统下仍能高效运行并提供良好的用户体验。 ... [详细]
  • 探讨 JavaScript Scale 函数在 Angular2 中的比例应用与优化策略 ... [详细]
author-avatar
米粒多可爱几_642
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有