最近我读了一本名为《程序开发心理学》的书,颇有收获,想与大家分享。
关于团队间的互相学习与成长,我们常常向往高手云集的环境,认为那里是学习的最佳场所。但实际上,真正身处其中,我们往往会发现人与人之间的差距是如此悬殊,有时甚至会让我们产生无力感。在这样的环境中,如果我们只是在项目中分工合作,而不去主动拓展视野、寻求成长,那么我们可能无法真正学到什么。高手之所以卓越,往往是因为他们拥有丰富的经验和独特的思维方式。
书中提到,如果团队的共同目标仅限于产品层面,那么程序员之间可能并不会产生真正的互相学习。只有当团队成员目标一致,且这些目标与他们开发的具体产品无关时,团队中的成员才会通过互相学习共同提高。对此我深有体会,很多程序员在日常工作中并不会主动寻求学习机会。只有在导师的引导下,他们才可能获得一些经验的指导。但如果只是平级之间的合作,那么彼此间的学习机会可能会很少。即使经常合作,也可能只是在项目功能接口层面进行交流。
如果团队成员都拥有一个共同的评判标准,都渴望提高自己的代码质量,那么我们会进行代码审查。这个过程虽然可能会产生许多争议,但同时也是一个宝贵的学习机会。但遗憾的是,很多时候这种事情很容易流于形式,甚至精心准备的分享也会被听众忽略。但如果整个团队都对分享和代码审查充满热情,那么这将是一个查漏补缺、获取信息的绝佳机会。
把程序员简单地聚集在一起并不足以促成他们的互相学习。只有那些有共同理想、愿意交流、乐于解决难题、愿意听取对方意见和分享经验的小伙伴,才能在不知不觉中互相学习、互相指导。
人类总会本能地反对他人对自己的,即使面对难以接受的反面证据,我们也往往会坚信自己的程序是正确的。“这不是bug,重启一下试试”或“这不是bug,绝对是使用方式有问题”,这些回应反映了我们面对时的逃避心理。计算机不会欺骗我们,但我们对程序结果的解读却可能带有主观性。一个被普遍认为很好的功能,在另一个场景下可能被视为bug;而一个难以解决的bug,在另一种场景下也可能被当作一个理想的功能。
曾经我们遇到一个久攻不下的bug,程序中的一段内存会随机丢失。我们努力查找,程序员换了一波又一波,但依然找不到问题所在。突然有一天,我们模拟了一个场景进行测试,惊奇地发现这个带有“bug”的程序比任何人为构造的内存丢失场景都更能反映真实情况,而且在很长一段时间内都非常“稳定”。现在你还认为这是一个bug吗?
关于团队的高效性,有些主管与高效的程序开发团队存在冲突,并以各种理由解散这些团队。而有些主管虽然可能并不完全理解这些团队的运作方式,但他们至少懂得应该容忍这些团队的存在。在某些职场中,总有那么一两个团队效率极高,完成的事情质量上乘,但主管可能无法理解为何他们能做到而其他团队做不到。有的主管选择接受并信任他们,而有的主管则试图掌控每一个细节,导致一些超出认知范围的事情发生。
程序开发也具有社会效应。例如程序开发中的一个环节可能是口头交流信息,这在以往的运行过程中效果良好。但一旦换掉其中一名关键人员可能会导致效率的降低。在追求卓越的程序世界中,我们往往依赖产品设计之巧妙与系统流程的稳健来寻求成果。令人遗憾之处在于,我们活动于人类社会之中,程序的运行与实现,离不开人的介入。而这其中,总有一些难以言喻的微妙因素存在。
想象一下这样的场景:功能开发完成后,开发者最先的反应并不是在系统上简单点击完成,而是兴奋地呼唤测试团队,确认bug已被成功修复。这种真实的互动与沟通,是程序世界中的一道独特风景。
再来说说程序员与架构师之间的故事。当老板决定移除程序员与架构师交流的小憩之地——咖啡小屋时,本以为能提升效率,却没想到反而打乱了原有的秩序。原来,咖啡小屋虽小,却承载了程序员们与架构师之间高效的信息交流与问题讨论。在这里,小事情得以解决,方案得以梳理,节省了双方的时间。
关于程序员的作息,每个人都有自己的节奏。老板希望王铁蛋提前到岗,却忽略了背后的努力与付出。程序员在保障工作质量的也需要关注健康与生活品质。建议大家在忙碌之余,去健身房锻炼,保证充足的睡眠,这不仅是对自己的投资,也是对未来的期许。
在领导模式的探讨中,民主与集权各有利弊。民主性集体中,成员间的交流使得任务交接变得顺畅,但新成员的融入却需要时间与位置。而集权式集体则能快速适应新成员的加入,但任务的重新分配却需要时间与技术领导者的指导。
会议上的和谐氛围总是暂时的。当项目中的小乔提出任务延迟的问题时,虽然打破了和谐,却也提醒了大家项目的实际情况。质疑与不同的声音是项目成功的保障,确保团队意识到项目所需的时间与资源。但这样的声音往往被视为破坏和谐的因素。
关于天才程序员的话题,我想说:优秀的程序员并非天生如此,而是经过不断的培养与实践造就的。程序员的学习之路如同数学般循序渐进,需要掌握基础的知识与技能,才能游刃有余地应对复杂的技术挑战。深入的学习、广泛的交流、不断的实践是成为优秀程序员的必经之路。保持学习的热情与好奇心,敢于挑战跨界难题,乐于分享与交流,这样的你,总有一天会成为众人眼中的“天才”。
坚持实践、持续学习、勇于挑战是程序员成长的必经之路。当我们看到喜欢的东西时,不妨勇敢地去学习、去实践。无论是什么领域、无论难度如何,都应以开放的心态去尝试、去总结、去分享。只有这样,我们才能在编程的道路上越走越远,成为更好的自己。
文章来自《钓虾网小编|www.jnqjk.cn》整理于网络,文章内容不代表本站立场,转载请注明出处。