程序员理想中的工作环境

1. 弹性上班制

程序员群体是一群怀有Geek情结的家伙,追求相对的精神自由,在自己的时间安排上也喜欢自由自在、无拘无束。灵感来时,可以废寝忘食、疯狂Coding;思维乏术时,则可能漫不经心、无所事事,这时不如早点结束工作,放松心情,触发下一次的灵感。

常规企业的朝九晚五上班制度,说实话并不适合程序员一族,因为这种制度一定程度上扼杀了这个最需要差异性的群体的差异性,把程序员的Coding灵感等同于工厂流水线上机械手臂,希望按钮一按下,灵感发动,按钮再一按下,灵感结束。这是一种一厢情愿的想法。

所以对于高层次的程序员群体,请不要在作息时间上严格限制他们,因为他们不是装配工,有着独一无二的个体差异性,有着不同的思维G点,他们需要差异性的时间作息来调整自己的最佳状态,从而迸发激情和灵感。

上班时间的弹性有多大,比如早上8点——10点上班,下午4点——6点下班。只是一个相对的参考,因为个体的差异性有时候的确不容易完全包容,作为一个企业的运作,还是需要一定的时间规范,只不过尽可能地考虑到程序员群体的独特性思维。

2. 宽松的工作氛围

程序员群体讨厌管理,任何自上而下的所谓管理都容易引起程序员们的心理抵触,特别是那种死板的、指令式的管理模式,尤其让程序员们作呕。

程序员们希望自己做的事情是出于内心的意愿,那样他们就会干劲十足,而不是来自于经理计划文档中那条冷冰冰的文字,那怕是他们心里意愿的和经理的计
划本是同一件事。所以对于程序员群体的管理需要技巧,要化管理于无形,让他们感觉不到管理的痕迹,让他们感觉着做这些事情就是出自于他们自己的意愿。

总结来说就是让他们作为自己的管理者,而团队的管理者所要做就是培养他们这种自管理的能力。

正如K.K在他的大作《失控》中所阐述的思想:有机的活系统,依赖于分布式的自管理的子系统,而各个子系统又依赖于分布式的自管理的个体,没有中
枢,没有一个统一的自上而下的管理,每个个体相互联系,相互反馈,相互协作,创造了一个生机勃勃、充满活力的有机活系统。看似杂乱,却有条不紊地运转。

适度的压力可以产生做事的动力,但长时间的持续的压力却是扼杀激情和创造力的罪魁祸首。压力会让程序员焦虑,同时也会造成低劣的设计和代码实现,因

为交付的压力会让程序员对匆忙设计出来的方案妥协,而不会持续的优化找到最优方案。而一系列看似微不足道的缺陷设计集合到一起,就会形成让人意想不到的、
不可控制的乱象。

正所谓:一张一弛,文武之道也。偶尔的交付压力,可以让程序员执行效率提高,但却不是长久之计。让他们在完成既定目标的同时有自由思考时间,是一个
明智的选择,看似拖长了项目研发的进度,所获得的回报却是不容小觑的。因为每个个体表现优异,会叠加到整个集体的表现优异,正向反馈,正向循环,持续优
化,达到一种最佳的状态。

所以,“快”不见得是好事,“慢”也不见得是坏事。

3. 鼓励参与开源项目

开源项目社区的欣欣向荣,是一朵盛开的奇葩,无论怎么赞誉都不为过。

一些著名的开源项目,例如Linux,Apahce, openssl等等,数不胜数的优秀设计,给我们带来了多少的惊喜,同时也催生了多少的商业公司。

参与到开源项目中,是一个程序员从初级走向高级、完善技术的最有效途径之一。一些著名的开源项目,架构设计和Coding技巧上都属上乘之作, 浸淫其中,受益匪浅。

人们常说:成功的第一步就是模仿。在软件设计领域也是如此。当一个程序员通过理论学习掌握了一门语言的基本技巧后,要怎么样才能更上一层楼,快速提

升自己?实践,实践,再实践!而参与开源项目就是最好的实践之一。一是可以学到很多优秀的设计思想和Coding技巧,而是可以跟很多牛人并肩作战,讨论
技术。人生快事,莫过于此!

站在程序员个人角度,参与开源项目的益处显而易见。那么站在公司企业的角度,凭什么要让自己的员工耗费精力参与到开源项目中呢?这样有没有可能影响本职的工作呢?

俗话说:站的高的人才能看的更远!思维的高度决定行动的高度。企业管理者如果能够站的高一点,眼光能够看的远一点,就会领悟到让自己的员工参与到开源项目中对企业本身的益处也是显而易见。

例如下面几点:

- 公司业务本身使用的技术框架就涉及到开源项目,那么开源项目的发展就跟企业的发展息息相关。
- 员工本身技术能力的提高会带动自己团队整体技术能力的提高,对公司来说是可能是一件需要花费很大气力要做的事情。
- 让员工获得成就感,员工就会把这种积极的情绪带给团队和公司,营造一个积极向上的工作氛围。

当然,企业毕竟不是专职做开源项目的,主营的还是自己的业务。那么对员工工作时间上的安排要有一个大体的把握,既然鼓励员工参与到开源项目中,又要提醒他们不要影响到正常的研发工作。这是需要注意的地方。

4. 兴趣学习小组

学习,是人的一种天性,是人的一种权利,也是人毕生的追求。

身在企业,如果失去了学习的空间,被剥夺了学习的权利,没有了自我提升的空间,那么这个企业就不值得为之付出。

工作之余,召集几位志同道合的同事,为了一个共同的学习兴趣,开办一个兴趣学习小组,相互讨论,共同成长,岂不快哉!

兴趣学习小组的形式可以多种多样,譬如:

- 共同研读一本书籍,写下自己的读书心得,然后跟大家交流。
- 组织读书会,大家在一起共同研读经典之作,交流新的,获取灵感。
- 组织编程道场,就一个题目进行设计、编码、测试,在实践中获取真知。

组织活动的时间上要把握好,不能太频繁,不然会影响正常的工作生活节奏;但也不能跨度太长,不然会造成断片,大家的积极性会逐渐降低。比如两周组织一次活动,我觉得还是可以接受的。

来源:51CTO

时间: 2025-01-01 02:31:33

程序员理想中的工作环境的相关文章

自学的程序员如何找到好工作?

2016 年有位年轻的程序员在 Quora 上提问求助: 我今年 17 岁,从 14 岁开始编程.我主要关注 Java 语言,并在 AP 计算机科学这门课上拿了 5 分.我相当精通 Java(比如语法.主要类.GUI/JFrame 等),HTML5 和 CSS3 也不错.我感觉自己缺乏很多有用的技能,来帮助我在人才市场上推销自己(比如数据库的工作原理,以及我应该使用哪些工具),我很好奇其他人是如何学习这些东西的.我打算去大学拿一个软件开发的学位,但我开始感到有点沮丧,觉得读大学的目的就是为了工作

Java程序员面试中的多线程问题总结_java

很多核心 Java 面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的.这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到. 0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问.如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果. 1.解释实现多线程的几种方法?

程序员想找好工作?那就学好Linux吧!

近期,USNews最新公布了3721.html">2014年全美最佳职业TOP100,其中软件开发者名列该榜单榜首.软件开发者从事在各行各业,其中Linux人才是软件开发者中"僧少粥多"的一份职业.而从人们使用的手机到最大型的超级计算机集群,无一不在使用Linux内核和Linux编译的软件,Linux的应用很广泛.有新的调查显示,Linux人才是为数不多至今依然热门的职业之一. 然而,很多技术精湛的软件工程师都缺乏或没有Linux编程方面的经验,Liunx专业人才无论在

Java程序员面试中的多线程问题

很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的.这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到. 0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问.如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果. 1.解释实现多线程的几种方法? 一

Python程序员开发中常犯的10个错误_python

Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库.与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块. 在平时的工作中,Python开发者很容易犯一些小错误,这些错误都很容易避免,本文总结了Python开发者最常犯的10个错误,一起来看下,不知你中枪了没有. 1.滥用表达式作为函数参数默认值 Python允许开发者指定一个默认值给函数参数,虽然这是该语言的一个特征,但当参数可变时,很容易导致混乱,例如,下面这段函数定义: 复制代码 代码如下: >>

如何让你的程序员不要厌倦工作?

作为一个程序员,我从来没有在同一家公司工作超过两年.每换一份新工作都是一次很好的职业变动,在这个行业里跳槽如同家常便饭.但是我的前东家们对 我的离去并不开心,他们其中一些人花了很大力气想要挽留我,但是我已经对一成不变的工作感到厌倦了,真的不想在同一家公司再待下去. 免责声明:我很幸运地生活在一个程序员工作岗位供大于求的地方,所以对我来说在换工作永远不止一个选择. 如今我成为了 Enki 公司的合伙人与 CTO,同时我还要负责在公司里面打造工程师文化.我工作内容的一部分就是确保我们的程序员不要对工

喜欢夜间工作的程序员

在程序员中大家都知道的一个说法,程序员就是把咖啡因转换为代码的机器,如果随机问一个程序员,他们什么时候效率最高,他们的答案可能会是在深夜.有一个流行的趋势是早上4点起床,然后开始完成疯狂一天的某些工作,也有少数人则喜欢4点上床睡觉. 毫无疑问,这一切的前提都是为了避免分心,那时候你除了可以看看房门,你还能干什么呢? 而且当时所有的事情都集中在3件事上,你的日程表.昏昏欲睡的大脑.明亮的电脑屏幕. 程序员的日程表  在2009年,Paul Graham曾写过一篇文章叫做the maker's sc

那么问题来了,为什么程序员后半夜的工作效率异常高?

简评:有种流传甚广的说法:如果你想将咖啡豆磨成代码,那就去买台"程序员"好了,这恐怕就是为什么有一种编程语言叫做"Java"(一种咖啡豆)吧.确实,如果你在一家编程高手云集的互联网公司工作,问问你身边那些程序员们,他们一般什么时候效率最高,点子最好?得到的答案,大部分是后半夜. 单纯比较效率的话,自然是上午最高,下午次之,再次是晚上10点到2点,最后是夜里3点到凌晨6点,但对于做IT的人来说,这个时间好像恰恰相反.如果只是为了避开无谓的干扰,何不关上门,带上耳机,为

公司环境舒适程度决定程序员水平高低?

千万不要惹程序员不开心,否则吃亏是你自己是什么造就了最优秀的程序员?丰富的工作经验.优厚的待遇,还是多年的实践?答案都是否定的.在科技界,有一个奇怪的现象:来自同一家公司的程序员的水平相差无几.为什么会是这样?因为最重要的因素是程序员所处环境的舒适程度,这一点决定了他们的水平高低.为了验证这种看法是否正确,美国软件工程专家汤姆•德马克(TomDeMarco)和蒂莫西•李斯特(TimothyLister)设计了一个名为"编码战争游戏"(CodingWarGames)的研究.这项研究旨在确