说说职场中的交流和沟通 [转发]

原文链接

关于职场的交流和沟通,记得我之前好像写过一些。来 Coinbase 已经有快两年了,有了不少的成长,尤其是在职场交流上。说起来,每个公司都有核心文化(core values),Coinbase 的四大核心文化之一,便是清楚有效的交流(clear communication)。所以能感觉到,这里的人,尤其是管理者,对交流和沟通的标杆是相当高的。文化和氛围这东西可意会但很难言传,所以我只能尽我最大努力简单说说自己的体会和经验吧。

交流大致分四种,一种是各种书面的文档、email,自己写好或者发出去,别人大部分时候是异步的阅读,然后有些情况会有评论(comment)或者回复;第二种是一对一的对话,这可能是面对面的交谈,也可能是 slack 这样的工具上的对话;第三种是组会,或者是 slack 群里面多人的讨论;最后一种是演讲(presentation),就是你一个人给大家讲。

先说一些适用于所有情况的基本准则。

首先就是从交流对象的角度去考虑话要怎么说。职场的交流沟通和朋友相处间的交流,最大的区别:交流是你工作的一部分。换句话来说,在职场你说话写字不是为了抒发情感,不是为了发泄感情,而是为了办好事情,让对方了解你想让他了解到的问题和情况,或者是你对一个问题的看法或想法。这里面可能和平时说话不大一样的地方,就是首先你要把对方作为中心,而不是你自己。你要说的,不是你想说的,或者你觉得正确的语序和方式;而是怎么说,会让对方会感兴趣,一下子就明白,并且印象深刻。

我遇到过组里的人,跟外组的人解释一个东西,从头到尾一二三,每条都对。但是外组的人听完了,虽然点头,但是其实这三条里,真正需要那个组的人注意或者帮忙的,就完全被弱化了,甚至不知道对方是不是真的会完全领会基于这三点,他该注意什么,该做什么。所以这种情况,后面加一句:这里你们可能尤其需要注意的,是xxx。这样就能极大强化对话的效果。

另外,说话不在多,不在快,而在准确切到重点上。事实上,尤其是口头的交流,你说多了、快了、除非对方已经知道大部分的内容,大部分你说的,都成了无可奈何的耳旁风。先把最重要的点说了,具体那些细节,等着别人来问再给更多,而不是一股脑儿都倒给对方,大部分时候效果会好很多。

如果是回答问题,确定你真的明白了对方想问的是什么再回答。开会的时候遇到一个人问了问题A,结果另一个人回答了问题B。如果你还不好插话,是不是特别着急?

还有的时候对方因为对一些具体细节不熟悉,问的问题甚至可能不是他真正困惑想问的问题。这种情况在上级问一个下级所属事务相关的问题,但是对那部分事务又不那么熟悉的时候尤为经常发生,这时候如果问题听起来似乎太简单或者太奇怪,你就要试着去推测对方是不是应该想了解另一个问题只是问的方式不对。推测完了先确认你推测的对不对:“您的问题答案是xxx,但我想您是不是想了解xxx的意思?” 这样的去确认,如果对方说不是,你那个答案就够了,那就算了。如果说是,这样,你才有机会回答了实际的问题。

演讲还是组会,说话的时候不要只盯着自己的电脑或者大屏幕,看看大家的表情和眼神,看看是不是已经云游方外了,还是有困惑的表情。如果你不能把大家的注意力带到你身上,那你说再多也只是背景噪音。

其次就是养成一个习惯,帮别人划重点。这个在书面交流中尤其重要。什么意思呢?如果是文档,你的 summary 或者 overview 就要确保假如别人没时间看完,他仍然能准确知道整个文档主要的中心思想。如果是 email,我发长的 email 一定都有两个要素:一个就是最前面的 TL;DR (too long, don’t read),一个就是 email 里一定会有 10% 左右的文字是黑体

因为职位需要,现在经常发周报,以及一些给高层或者整个大组的信件。我们都知道,长的信件除非是那种重要到他们不看会后悔的,大部分人可能看个标题很快就标注已读并存档。谁也没有时间和耐心去在你的信件里找有没有什么值得注意的。这个时候,前面的 TL;DR 确保是你用一句话描述了的大家绝对不能错过的内容的概述。如果需要更多讲解,加一句:see details below。这就帮助大家快速决定是不是有必要去读你的全文。

然后 email 主体再学会用黑体点出最重要的内容,这样别人如果只有30秒跳读你的信件,就会读所有的黑体部分。只要你重点没划错,你就帮你自己让别人没有错过你想传达的信息。

以前遇到别人说:我 email 里都写了啊,你自己没注意看。我会觉得,他说的很有道理。但是现在的我就不一定认同。如果你真的能把 email 写到帮别人划重点,并且划对,其实别人漏掉重要信息的可能性会极小。

最后说一说哪些是满分之外的那100分。

如果你刚和另一个人讨论一个问题有了一些方案、思路、想法、尤其是决定时,第一时间尽可能把讨论内容汇总群发 email 给或者 shared slack 给所有可能相关的人。这一点对于经常需要做决定的人尤其重要。否则你可能会遇到后面有另一个不同的决定,或者有些事情和你的决定好像有矛盾,然后你再去说:我和谁谁谁早谈过了,决定要怎么怎么。你没告诉到所有该告诉的人,谁知道你决定了什么啊。

但是要注意的是,群发的目的是让大家得到一致的信息(on the same page), 内容发出去前只要条件允许,请务必先让参与和你讨论的人过目确认,避免不必要的误解。而不是让和你讨论的人从群发消息上意识到你俩的理解有出入,然后炸了。好的处理,你先给参与讨论的人看了,说我这样发出去有问题吗,对方确认没有问题,这件事就很圆满。没有这一步,到时候那人说:我什么时候说xxx了,根本不是那个意思,那你就去吵吧。吵赢吵输,你都丢掉了一部分人的信任。

任何时候不要给你老板一个惊喜。在没有十足把握下,重要的或者敏感的东西发出去之前,先让老板看一下。他忙或者信任你说不用看了,那是另一回事。但是这样问一下,可以避免很多让你后悔的情况。甚至,哪些东西该由你说,哪些东西你就该等着你的老板先去说,尤其不要出格。

有两个以上人问你同一个问题,就不要反复口头回答或者私聊里回答。尤其是回答起来还比较费劲的问题,把答案记录下来放在一个共享的文档或者网页上,作为标准答案,不断去完善这个标准答案。下次再有人问、再有100个人问,给他发个答案链接就行。就不用去抱怨为什么大家总问你这个问题了。

同样,如果有多个人对你的某个设计、说法、方案有误解,就可能不是别人的理解问题,而是确实容易引起误会,这个时候,静下心来去看看怎么可以做到或者写到更好,而不要轻易觉得是自己找不到知己,或者别人智商不够。

先写这么多吧,职场的交流和沟通绝对是门大学问。初级的人能把事情说对明白(但别人能不能懂要看其理解力高低),中级的人能把大部分人都说懂,高级的人是通过交流和沟通把一整个团队、甚至别的团队结结实实拉到一起,达到自己想要的目的,把问题解决。当然,我也还一直在学习,共勉之。

最短路径算法

import java.util.PriorityQueue;

public class Dijkstra {

	/**
	 * 1.假设带权有向图G的顶点集合为V,起始点为V0。
	 * 2.初始S={V0},T=V-S={其余顶点},其中集合S表示已经计算出最短距离的顶点,T是还没计算的剩余顶点。
	 * 3.初始化V0到其余各点的距离,D(V0,Vi)代表V0到Vi的最短距离,按如下规则。
	 * 3.若V0可以直接到达某个顶点Vi,则将边的权值赋给(V0,Vi),否则D(V0,Vi)=∞。
	 * 5.从T中选取一个与S中顶点有关联(直接相连)且权值最小的顶点W(这里用到了贪心法思想),加入到S中。
	 * 6.以W作为中间点,若V0到T中某个顶点Vi距离变短,则修改D(V0,Vi)的值。 
	 * 7.重复5)和6)直到T为空。
	 * 
	 * @param src
	 * @param dst
	 * @param graph
	 * @param n
	 * @return
	 */
	public static int dijkstra(int src, int dst, int[][] graph, int n) {
		// 排序队列
		PriorityQueue<Node> pNodes = new PriorityQueue<>();
		int[] visitLog = new int[n + 1];
		// 记录访问过的点
		pNodes.add(new Node(src, 0));
		while (!pNodes.isEmpty()) {
			Node tNode = pNodes.poll();
			// 由于已经排序了 直接返回的就是最短路径
			if (tNode.node == dst) {
				return tNode.cost;
			}
			if (visitLog[tNode.node] == 1) {
				continue;
			}
			visitLog[tNode.node] = 1;
			for (int i = 0; i < n; i++) {
				// 可联通且没有遍历过
				if (graph[tNode.node][i] < 1000 && visitLog[i] != 1) {
					pNodes.add(new Node(i, tNode.cost + graph[tNode.node][i]));
				}
			}
		}
		return -1;
	}

	public static void main(String[] args) {
		int graph[][] = { { 0, 2, 3, 6, 1000, 1000 }, { 2, 0, 1000, 1000, 4, 6 }, { 3, 1000, 0, 2, 1000, 1000 },
				{ 6, 1000, 2, 0, 1, 3 }, { 1000, 4, 1000, 1, 0, 1000 }, { 1000, 6, 1000, 3, 1000, 0 } };// 地图

		System.out.println(Dijkstra.dijkstra(0, 3, graph, 6));
		System.out.println(Floyd.floyd(0, 3, graph, 6));
	}
}

/**
 * 
 * @author shichaopeng
 *
 *
 *
 *         邻接矩阵graph储存路径,同时最终状态代表点点的最短路径。如果没有直接相连的两点那么默认为一个很大的值(不要溢出)!而自己的长度为0.
 *         从第1个到第n个点依次加入图中。每个点加入进行试探是否有路径长度被更改。
 *         而上述试探具体方法为遍历图中每一个点(i,j双重循环),判断每一个点对距离是否因为加入的点而发生最小距离变化。如果发生改变,那么两点(i,j)距离就更改。
 *         重复上述直到最后插点试探完成。
 * 
 *         状态转移方程为: dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j])
 *         其中dp[x][y]的意思可以理解为x到y的最短路径。所以dp[i][k]的意思可以理解为i到k的最短路径dp[k][j]的意思可以理解为k到j的最短路径.
 */
class Floyd {

	/**
	 * 
	 * @param src
	 * @param dst
	 * @param graph
	 * @param n
	 * @return
	 */
	public static int floyd(int src, int dst, int[][] graph, int n) {
		int[][] r = new int[n][n];
		for (int i = 0; i < r.length; i++) {
			for (int j = 0; j < r.length; j++) {
				r[i][j] = graph[i][j];
			}
		}
		for (int k = 0; k < n; k++) { // 任意2点插入点 让后动态规划
			for (int i = 0; i < n; i++) {
				for (int j = 0; j < n; j++) {
					r[i][j] = Math.min(r[i][j], graph[i][k] + graph[k][j]);
				}
			}
		}
		return r[src][dst];
	}

}

class Node implements Comparable<Node> {

	public int node;
	public int cost;

	public Node(int node, int cost) {
		super();
		this.node = node;
		this.cost = cost;
	}

	@Override
	public int compareTo(Node o) {
		return cost - o.cost;
	}

}

纪念刘和珍君

正因为他是和我们一样的普通人,所以他的行为格外英雄。 [李文亮医生 事件]


中华民国十五年三月二十五日,就是国立北京女子师范大学为十八日在段祺瑞执政府前遇害的刘和珍杨德群〔2〕两君开追悼会的那一天,我独在礼堂外徘徊,遇见程君〔3〕,前来问我道,“先生可曾为刘和珍写了一点什么没有?”我说“没有”。她就正告我,“先生还是写一点罢;刘和珍生前就很爱看先生的文章。”
这是我知道的,凡我所编辑的期刊,大概是因为往往有始无终之故罢,销行一向就甚为寥落,然而在这样的生活艰难中,毅然预定了《莽原》〔4〕全年的就有她。我也早觉得有写一点东西的必要了,这虽然于死者毫不相干,但在生者,却大抵只能如此而已。倘使我能够相信真有所谓“在天之灵”,那自然可以得到
更大的安慰,——但是,现在,却只能如此而已。
可是我实在无话可说。我只觉得所住的并非人间。四十多个青年的血,洋溢在我的周围,使我艰于呼吸视听,那里还能有什么言语?长歌当哭,是必须在痛定之后的。而此后几个所谓学者文人的阴险的论调,尤使我觉得悲哀。我已经出离愤怒了。我将深味这非人间的浓黑的悲凉;以我的最大哀痛显示于非人间,使它们快意于我的苦痛,就将这作为后死者的菲薄的祭品,奉献于逝者的灵前。

真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。这是怎样的哀痛者和幸福者?然而造化又常常为庸人设计,以时间的流驶,来洗涤旧迹,仅使留下淡红的血色和微漠的悲哀。在这淡红的血色和微漠的悲哀中,又给人暂得偷生,维持着这似人非人的世界。我不知道这样的世界何时是一个尽头!
我们还在这样的世上活着;我也早觉得有写一点东西的必要了。离三月十八日也已有两星期,忘却的救主快要降临了罢,我正有写一点东西的必要了。

在四十余被害的青年之中,刘和珍君是我的学生。学生云者,我向来这样想,这样说,现在却觉得有些踌躇了,我应该对她奉献我的悲哀与尊敬。她不是“苟活到现在的我”的学生,是为了中国而死的中国的青年。
她的姓名第一次为我所见,是在去年夏初杨荫榆女士做女子师范大学校长,开除校中六个学生自治会职员的时候。〔5〕其中的一个就是她;但是我不认识。直到后来,也许已经是刘百昭率领男女武将,强拖出校之后了,才有人指着一个学生告诉我,说:这就是刘和珍。其时我才能将姓名和实体联合起来,心中却暗自诧异。我平素想,能够不为势利所屈,反抗一广有羽翼的校长的学生,无论如何,总该是有些桀骜锋利的,但她却常常微笑着,态度很温和。待到偏安于宗帽胡同〔6〕,赁屋授课之后,她才始来听我的讲义,于是见面的回数就较多了,也还是始终微笑着,态度很温和。待到学校恢复旧观〔7〕,往日的教职员以为责任已尽,准备陆续引退的时候,我才见她虑及母校前途,黯然至于泣下。此后似乎就不相见。总之,在我的记忆上,那一次就是永别了。

我在十八日早晨,才知道上午有群众向执政府请愿的事;下午便得到噩耗,说卫队居然开枪,死伤至数百人,而刘和珍君即在遇害者之列。但我对于这些传说,竟至于颇为怀疑。我向来是不惮以最坏的恶意,来推测中国人的,然而我还不料,也不信竟会下有残到这地步。况且始终微笑着的和蔼的刘和珍君,更何至于无端在府门前喋血呢?
然而即日证明是事实了,作证的便是她自己的尸骸。还有一具,是杨德群君的。而且又证明着这不但是杀害,简直是虐杀,因为身体上还有棍棒的伤痕。
但段政府就有令,说她们是“暴徒”!
但接着就有流言,说她们是受人利用的。
惨象,已使我目不忍视了;流言,尤使我耳不忍闻。我还有什么话可说呢?我懂得衰亡民族之所以默无声息的缘由了。沉默呵,沉默呵!不在沉默中爆发,就在沉默中灭亡。

但是,我还有要说的话。
我没有亲见;听说,她,刘和珍君,那时是欣然前往的。自然,请愿而已,稍有人心者,谁也不会料到有这样的罗网。但竟在执政府前中弹了,从背部入,斜穿心肺,已是致命的创伤,只是没有便死。同去的张静淑〔8〕君想扶起她,中了四弹,其一是手枪,立仆;同去的杨德群君又想去扶起她,也被击,弹从左肩入,穿胸偏右出,也立仆。但她还能坐起来,一个兵在她头部及胸部猛击两棍,于是死掉了。
始终微笑的和蔼的刘和珍君确是死掉了,这是真的,有她自己的尸骸为证;沉勇而友爱的杨德群君也死掉了,有她自己的尸骸为证;只有一样沉勇而友爱的张静淑君还在医院里呻吟。当三个女子从容地转辗于文明人所发明的枪弹的攒射中的时候,这是怎样的一个惊心动魄的伟大呵!中国军人的屠戮妇婴的伟绩,八国联军的惩创学生的武功,不幸全被这几缕血痕抹杀了。
但是中外的杀人者却居然昂起头来,不知道个个脸上有着血污……。

时间永是流驶,街市依旧太平,有限的几个生命,在中国是不算什么的,至多,不过供无恶意的闲人以饭后的谈资,或者给有恶意的闲人作“流言”的种子。至于此外的深的意义,我总觉得很寥寥,因为这实在不过是徒手的请愿。人类的血战前行的历史,正如煤的形成,当时用大量的木材,结果却只是一小块,但请愿是不在其中的,更何况是徒手。
然而既然有了血痕了,当然不觉要扩大。至少,也当浸渍了亲族;师友,爱人的心,纵使时光流驶,洗成绯红,也会在微漠的悲哀中永存微笑的和蔼的旧影。陶潜〔9〕说过,“亲戚或余悲,他人亦已歌,死去何所道,托体同山阿。”倘能如此,这也就够了。

我已经说过:我向来是不惮以最坏的恶意来推测中国人的。但这回却很有几点出于我的意外。一是当局者竟会这样地凶残,一是流言家竟至如此之下劣,一是中国的女性临难竟能如是之从容。
我目睹中国女子的办事,是始于去年的,虽然是少数,但看那干练坚决,百折不回的气概,曾经屡次为之感叹。至于这一回在弹雨中互相救助,虽殒身不恤的事实,则更足为中国女子的勇毅,虽遭阴谋秘计,压抑至数千年,而终于没有消亡的明证了。倘要寻求这一次死伤者对于将来的意义,意义就在此罢。
苟活者在淡红的血色中,会依稀看见微茫的希望;真的猛士,将更奋然而前行。
呜呼,我说不出话,但以此记念刘和珍君!