如何面对“大概什么时候能完成?”
你是否会像我曾经一样,油然生出一种英雄主义般的大气来,想爽快的答应“就这周!”,“两天内能搞定!”
别,别这样。我知道你很勤奋,你愿意为工作加班加点。为了在限定时间内达成目标,你恨不能天天加班到凌晨两点。你可能是职场新人,担心说出一句“这还不能确定”或者解释其中技术难点会让人怀疑你的才能。于是你拼啊拼啊,你对每一个设计不如意的地方不满意,不肯妥协,宁愿加班加点决不妥协。
最后,你提交了代码,你感到很累也很骄傲,然后恐惧着下一次加班加点。
你还能撑多久?
于是你抱怨公司的可恶,认为IT业很累很辛苦,觉得干的没什么意思,想跳槽,诸如此类……
你知道吗?有时候面对现在的糟糕生活,你有必要去洗一把脸,用逻辑推理的方式去看看造成这个局面的原因到底是什么。程序员总有一种天生的完美主义倾向,然而优秀的程序员是懂得如何控制它的。
我认为,面对“大概什么时候能搞定”,你的回答尽量应该是模糊的,如果对方是个讨厌模糊的,喜欢精确数字的人,请用最坏的打算时间再乘以1.5!如果不行,如果时间真的这么紧,你要冷静的考虑哪些需求可以放一放,如果还不行,你要告诉对方,快速编码会带来什么样的风险。你可以半个钟写出一个AVL树程序,如果直接扔进代码库去整合到工程中,你要知道是什么代价,即使它是正确的,你要经历多少心惊肉跳的时刻?每次程序崩溃,你会不会不由自主想到是否是它的问题?
对于“大概什么时候能搞定”这类提问,甚至更充满期待的“最快什么时候能搞定”,对方未必不是做技术的。大家都是程序员,或者曾经是程序员,并非不知道压力下编码的痛苦。然而,当你做领导的时候,你会这么问吗?我想会的。谁也不想下达一个任务,却永远不知道限期。这样我们的完美主义倾向很可能让事情无限拖延下去。所以,这个问题更深层次的原因,在于双方希望建立一种信任。“这个目标的达成对我很重要,可我不确认你是否全力以赴,我不得不给你施加压力,抱歉……”,这是一种潜意识里的内心活动。作为程序员,你该抱着理性、务实的态度去面对一个问题。你愿意全力以赴,好好工作。但你可以衡量任务的紧迫度和重要性,这时候更重要的不是对方一问,你一答,然后两人拍拍屁股走人。这不会是成功的沟通模式。你要让对方了解技术实现的瓶颈所在,或者你知识结构的不足,嘿,别藏起来,别打肿脸充胖子,然后晚上偷偷熬夜去补课。你要诚实一点,如果这次你熬夜作战成功,下次你就不会记得在平常时间给自己充电了。
人们常说工作“有压力”,特别是在IT职场。我认为工作是很有压力,但如果是大家齐心协力,并肩作战,那么干的再晚都会自得其乐。更大的压力是在沟通上,沟通成本之大有时超乎我的想象,甚至说是成败的关键也不为过。
抱怨不会改善你的职场生活,改善你职场生活的是对“什么时候能完成”的理解。学习沟通,别打肿脸充胖子,这是我习的的宝贵经验。努力改进,努力学习。如果你所在的企业是个毫无沟通氛围的企业,那么考虑走人,它不会是个能够发展的企业。别让自己陷入完美主义的陷阱中不能自拔。别让生活太难,你该有节奏的前进。
以上文章绝非对他人的说教,乃是对自己的复习。
转载于:https://blog.51cto.com/dothebest/143218
相关文章:

Angular Http
Http服务 HttpClient 是 Angular 通过 HTTP 与远程服务器通讯的机制。 启用Http服务的准备工作 要让 HttpClient 在应用中随处可用,需要在根模块的NgModule.imports 数组中加入 HttpClientModule。 Http方法返回单个值 HTTP 是一个请求/响应式协议。你发起请求&am…

2019第四周作业(基础作业+挑战作业)
基础题1: 输入一个正整数 n (1≤n≤10)和n 阶方阵a的元素,如果方阵a中的所有元素都沿主对角线对称,输出“Yes”, 否则,输出“No”。主对角线为从矩阵的左上角至右下角的连线,方阵a中的所有元素都沿主对角线对称指对所有…

Taglib原理和实现:再论El和JST
作者: WalkingWithJava 出处: Java研究组织 问题:你想和JSTL共同工作。比如,在用自己的标签处理一些逻辑之后,让JSTL处理余下的工作。 看这个JSP例子: <% String name"diego"; reque…

UWP Windows10开发获取设备位置(经纬度)
UWP Windows10开发获取设备位置(经纬度) 原文:UWP Windows10开发获取设备位置(经纬度)1.首先要在UWP项目的Package.appxmanifest文件中配置位置权限,如下图所示: 2.Package.appxmanifest后选择第三个选项卡…

[零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1)
MIS信息管理系统实战开发之使用MySQL实现保存开发背景ID、姓名、年龄为公共信息,而学生有成绩,工人有工资定义一个抽象类Person(ID、姓名、年龄),学生是其子类,有成绩,工人是其子类有工资ID如何…

【数论总结】-----励志写好一篇数论总结↖(^ω^)↗//正在施工...未完工
近期学了学数论,来写一波总结吧。 (1)排列组合,比较基础的东西了吧。//只写个概念吧,(逃: 概念:就是从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一…

遍历Treeview每个节点并初始化(C#)
搞了好久,哎,C#的一些控件用起来还没习惯,所以折腾啊。 TreeView的形成,必然要初始化,数据记录是从数据库中取得的,那么要先取再遍历。介绍下心得吧。 首先,数据预期显示结果如下 其次ÿ…
codeforces3A
Shortest path of the king CodeForces - 3A 棋盘上的国王被单独放置。尽管他是孤独的,但并未伤心,因为他有事关全局的重要性。例如,他必须正式访问方格 t 。由于国王不习惯于浪费自己的时间,因此他想用最小的移动步数࿰…

for...in和 for...of
在对数据或者对象进行遍历时,经常使用的两种方法是 for...in和 for...of,那么这两种方法有什么区别呢? for…in for...in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性。 语法: for (variable in object) {// statem…

J2EE复习(二)XML
2019独角兽企业重金招聘Python工程师标准>>> XML(eXtensible Markup Language)简介XML 可扩展标记语言XML是一种您可以用来创建自己的标记的标记语言。XML由万维网协会(W3C)创建 XML和Html比较比较内容 …

Angular 路由
Angular 路由 简单路由配置 每个带路由的 Angular 应用都有一个Router(路由器)服务的单例对象。 当浏览器的 URL 变化时,路由器会查找对应的 Route(路由),并据此决定该显示哪个组件。 路由器需要先配置才…

leecode第二十题(有效的括号)
class Solution { public:bool isValid(string s) {int start0,ends.size()-1;if(end-1)//万万没想到,他把空字符串当成true了return true;int ss[end1];//歪方法,把左括号全部<0,右括号都>0,且同类型符号绝对值一样for(int…

开始Hibernate介绍
1.介绍 一个框架 一个Java领域内的持久化框架 一个ORM框架 2.持久化 和数据库相关的各种操作 保存 更新 删除 查询 加载:根据特定的OID,把一个对象从数据库加载到你内存中。 OID:为了在系统中找到所需的对象,需要为每一个对象分配…

STL容器[06]
Linux文件锁学习笔记 转载于:https://www.cnblogs.com/motadou/archive/2009/11/25/1610328.html

ASP.NET 2.0在SQL Server 2005上自定义分页
这篇文章讲述了如何利用SQL Server 2005的新特性来简单高效的实现分页。对于那些暂时还没用到SQL Server2005的人们,请看在大规模数据中的高效分页方法。如果需要,这篇文章会补上这里讲到的内容。 出处:http://aspnet.4guysfromrolla.com/demos/printPag…

简单安装与使用composer
1、下载composer.exe工具,然后进行安装 这一步需要找到你使用的php版本文件 2、windowsr cmd 输入composer 安装中国镜像,提高使用效率 https://pkg.phpcomposer.com/ 赋值到cmd中执行即可。 1、找到自己的php环境地址并进入,如…

[推荐]C#快速开发3d游戏工具--Unity3d
最近有幸接触了一点Unity3d的东西,和大家分享一下。 Unity3d 简介 是一款可视化的,3d游戏开发软件。可以进行手动绘制3d场景,自己添加摄像机角度,3d模型设计,事件触发,对于园子里大家很感兴趣的地方在于&am…

Angular 可观察对象(Observable)
可观察对象(Observable) 可观察对象支持在应用的发布者和订阅者之间传递消息。 可观察对象是声明式的 —— 即定义的用于发布值的函数,在有消费者订阅它之前,这个函数不会实际执行。 可观察对象可能会发出的三种通知: 通知类型说明next必要…

select框高度问题
<div class"article-start-box"> <span class"categery">分类栏目</span> <select style"position: absolute;z-index: 1;margin-left: 40px;" class"choose" οnmοusedοwn"if(this.options.length>6)…

c#技巧教程(连载)
c#技巧教程系列_1 http://www.rayfile.com/files/e03d922e-2418-11de-858a-0019d11a795f/ 转载于:https://www.cnblogs.com/manwu2008/archive/2009/04/08/1431823.html

JavaScript 数据拷贝
JavaScript 数据类型 基本数据类型:字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。引用数据类型:对象( Object )、数组( Array ) 和 方法…

Java链表和递归
删除链表的指定元素: public class ListNode {public int val;public ListNode next;public ListNode(int x){valx;}//链表节点的构造函数//使用arr为参数,创建一个链表,当前的ListNode为链表头节点public ListNode(int arr[]){if(arrnull||a…

设计模式笔记(9)---组合模式(结构型)
Gof定义 将对象组合成树形结构以表示“部分--整体”的层次结构。Composite使得用户对单个对象和组合对象使用具有一致性。 在面向对象系统中,我们经常会遇到一类具有”容器“特征的对象---即他们在充当对象的同时,又是其他对象的容器。比如在一些管理系统…

npm install出现的错误
在使用cnpm 安装node依赖包的时候,出现上述错误,网上搜索,说是有两个解决方案: 虽然提示不适合Windows,但是问题好像是sass loader出问题的。所以只要执行下面命令即可; 方案一: cnpm rebuild n…

射频放大器芯片3阶截点计算与芯片选择
在选用射频放大器芯片时,除了需要考虑增益、噪声指数等指标外,线性指标也是必须关注的参数。在射频或微波多载波通讯系统中,三阶交调截取点IP3(Third-order Intercept Point)是一个衡量线性度或失真的重要指标。交调失…

Python-接口自动化(二)
python基础知识(二) (二)常用控制流 1、控制语句 分支语句:起到一个分支分流的作用,类似马路上的红绿灯 循环语句:for while 可以使代码不断重复的执行 2、判断语句:关键字是if..eli…

Angular CLI在线安装和离线安装
Angular CLI 安装方式 默认已经安装了 Node.js 和 npm 包管理器。 1. 在线安装 可以使用外网的情况下,可以使用在线安装的方式。 要使用 npm 命令全局安装 CLI,请打开终端/控制台窗口,输入如下命令: npm install -g angular/…

近来工作和面试一些人的感受(原)
最近公司招聘,面试了很多人,有牛人 - 无所不能的,自认为没必要再提高的牛人,有硕士,有啥都不懂乱投简历的,有简历项目经验写几十个的各种技术都精通的,还有水平一般却要求薪水很高的,…

关于vue+webpack的一点配置
开发环境跨域访问: config/index.js 增加proxyTable里的内容,然后可以在config/dev.env.js中设置访问地址的origin为"/api" 本地图片访问问题: 一般,放在static下,图片访问地址设置成‘./static/....’ js等…

2.5Gb/s混合集成光发射机
0、引言<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />在信息呈爆炸式发展的今天,光纤通信已成为现代信息网络的主要传输手段,近几年国家干线网大部分仍采用2.5Gb/s系统, 10Gb/s系统正积极研制开发&…