- 浏览: 1074457 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
如果你想要开启作为web开发人员的职业生涯,那么你需要涉及的不仅仅是知道如何写代码。
有一些通用的软技能几乎可用于每个领域——包括技术行业。
成为软件开发人员涉及的不仅仅是编写代码。自从我开始我的第一份作为软件开发人员的工作之后,我很快就知道了这一点。如果你想要在这个领域茁壮成长的话,那么你需要学习“特定的技能系列”。
你看,每一家公司都有一个大局。除了写代码,你需要利用其他技能,使自己更有影响力,从而赚取更多的money。
在我作为一名开发人员的任职期间,我学会了除了编程之外还需要掌握的技能。下面我将分享6个令人惊讶的技能,作为一个有抱负的开发人员你一定不能错过哦。
一、技能#1:书面沟通
在开始每天的工作之前,你可能需要先回复邮件。电子邮件迅速成为了生产力的死亡陷阱。与此同时,电子邮件也是展示你对别人有多大价值的门户。书面技能依然是事实业务沟通的领头羊。
既然书面沟通技巧是如此之重要,于是我花了很多时间来掌握发送电子邮件并快速得到回复的技术。
我所有的电子邮件不但设计友好,而且会尽快切入正题。这是我在邮件中要求技术需求的4个步骤:
1、感谢对方发送电子邮件。这适用于每封电子邮件。例如:感谢你与我联系。
2、强调他们的要点并说明你已了解。例如,“如果我理解正确的话,你是想……”。
3、提出问题,以确保你理解他们想要什么。
4、在他们回答你的问题之后,按照步骤2的方式回复以确认你理解的内容。
这些步骤将提前节省你大量的时间,让你突出于那些没有做到位的人。书面交流是开发者武器库中一项最被低估的技能。当然要想正确表达自己的想法需要多年的实践,但用好这个武器往往会有“杀人于无形”的奇效。
二、技能#2:教学相长
如果你是一个初学者,那么你可能认为你没什么可以教人的。但现实情况是,你也许可以。
当我开始我的第一份web开发工作时,我认为我需要花更多的时间向别人学习。但不是所有的情况都是如此。事实上,我做到了学习与教学的结合。我们公司已决定从SVN转移到Git。而我得到这份工作也是因为我的主要卖点就是大量的Github代码仓库。
当我加入的时候,我发现这是一支正在蓬勃成长的团队,并且转移到Git对于我们而言是有压力的,因为它是一个更好的协作工具。
这真是一个超现实的体验,因为,这是我人生中第一次不得不用标记来武装自己以及在白板上画图。虽然只是一些简单的图表,用来演示git是如何工作的以及它如何与Github互动。还有解释如何最佳利用分支。
请记住:这只是在公司待满一个月之后。从那以后,我一直是头脑风暴会议的一部分,解释Rails中一切的工作原理,从会话到嵌套表单。
在你第一份开发工作中,通过教学,你可能最终会给人一种你比他们更知识渊博的印象。即使你不认为自己是“专家”或“高级开发者”。
在每一家公司里,总有共享的知识池。当我教人的时候,我会对此作出贡献,同时带走别人的经验和见解。
基本上说来,每个人都会贡献自己的经验和观点到这个知识池中。而这便是大规模的教学相长。
三、技能#3:专注
任何职业,无论是画家还是作家,专注于小细节才有可能一步步累积至伟大。如果你想产出令人惊艳的工作,那么你得小心注意并调整方法。
如果你对细节的关注还不到位,那么关键是要具备处理专注的能力。
完全专注于一项任务的能力在我们当前这个世界里是呈现递减状态的。Twitter,Facebook和Reddit正在不断诱惑我们的注意力。Cal Newport在他的《Deep Work》一书中指出,为了有一个有影响力的就业,人们必须放弃浅层的工作并拥抱深层的工作。
浅层工作被定义为只有短期利益的工作。例如,你可以花一天用来撰写和回复邮件,但会因此而错过深层工作。深层工作是需要全神贯注并最终导致实际成果的工作。
作为一个开发者,这个技能不能被低估。我们的工作是建立有用的东西。而创造有价值的东西是需要大量时间的。少一点消费者的心态,多一点生产者的心态。
可能会有用的一种技术手段是番茄工作法。下面是它的工作原理:
· 设置25分钟的定时器
· 专注于一个任务25分钟
· 25分钟结束后,休息5分钟
· 任何浮现出来和任务无关的想法,你可以先写下来以便于以后来关注。
· 你重复循环四次(或更多)
这种技术之所以伟大是因为它使你一次专注于一件事情。它可以帮助你产出更有意义的工作,而不是每隔几分钟查看Twitter或Facebook。
四、技能#4:了解大局
那些主要产品围绕代码的开发人员需要执行一种小心以及平衡的行为。一方面,从发布到产品来帮助企业成长。另一方面,你要保证不会给你将来的同事留下难以维护的代码。而且以及当然,用户也得享受于软件。
但是,首先,此刻你能做的就是编写代码。当你开始作为一个开发人员提高自己的时候,你将——回过头去重构原先的代码。让你的软件更适应将来在上面工作的开发人员。
有一个伟大的概念是DRY(don’trepeat yourself)原则。其基本思想是写一个只需要改变一次的代码片段,如果你决定将来更改它的话。这种方法既是程序员的福音,也有利于企业。
然而,所谓的大局并不仅仅涉及到代码。大多数的大公司遵循Peter Drucker的原则。如果你学过MBA,那么你一定听说过Peter和他的管理原则。如果没有,那么建议阅读他写的书。
Peter对西方公司产生了深远的影响。他提出的最重要的概念之一是成本中心和利润中心。在销售和市场营销工作的人被认为是企业的利润中心。他们增加收入。必须控制企业成本以最大限度地提高收入。作为开发人员,你既可以是利润中心也可以是成本中心。
管理你的职业生涯的最佳方式是了解你适合企业内部的哪个位置。这会附加你的价值,并让你的职业生涯走得更远。
五、技能#5:社交技巧
许多人认为,像Google这样的公司创造了一种从自上而下的文化。不过,你和你的同伴也在建立文化。而培育这种团队范围的文化的最佳方式是通过你自己的社交技巧。
回想一下你的现实生活,而不是工作生活。你的朋友圈中有没有这样一个人是每个人都期待看到的?他们的存在可以带来欢笑和深刻的讨论。他们不传播流言和谣言。在有人需要帮助时他们会及时伸手。总而言之,他们被描述为是一个够意思的哥们或菇凉。
这样的人也存在于工作场所。而你的目标应该是尝试成为那样的人。
成为一个每个人都期待看到的人。建立用一种建设性的心态说出意见的勇气。这与你认为自己是一个内向或外向的人无关。
慢慢的,你的事业、你的技术技能将和这个领域中的其他人相同。但是如果你想在职场中获得成功,那么你需要成为团队成员。你必须能够和他人交流,能激励他人,并值得信赖。因为在一天结束时,如果你不能与别人进行联系,那么你将永远无法让别人接受你的想法,无论多大或多小。最终你只能接受其他人的想法,而不是给出你的想法。
六、技能#6:发现并处理问题
程序员的作用是解决问题。但要解决问题,首先必须去发现问题究竟是什么。
世界上最容易的事情是记住一堆命令或复制和粘贴在Stackoverflow上的代码。真正的能力是知道发生了什么事的大局观。如果你正在解决工作中的一个大问题,那么最好是把它分解成微小的可编辑的片段。
先查看问题本身。想想代码试图解决的问题。
1、它使人更容易购买吗?
2、它做报告吗?
3、创建这个软件的目的是什么?
然后,看一下当前的解决方案(如果存在的话)。最后,考虑当前的解决方案是如何解决这个问题。(如果它能解决的话)。
一旦你高度概括了这个应用程序,那么你就可以进入应用程序的功能部分。利用问题、解决方案和细节技术来进一步分解问题。这些框架步骤帮助我理解了不同的开源项目,例如Disourse。
七、结论
某些工作技能是普遍的,无论你是不是在高科技职业。例如,沟通和团队合作。我真心希望我能在干第一份web开发的工作之前就意识到这些软技能的重要性。
对于程序员需要学习的软技能,你也可以看看这篇文章:对程序员非常重要的24个软技能
有一些通用的软技能几乎可用于每个领域——包括技术行业。
成为软件开发人员涉及的不仅仅是编写代码。自从我开始我的第一份作为软件开发人员的工作之后,我很快就知道了这一点。如果你想要在这个领域茁壮成长的话,那么你需要学习“特定的技能系列”。
你看,每一家公司都有一个大局。除了写代码,你需要利用其他技能,使自己更有影响力,从而赚取更多的money。
在我作为一名开发人员的任职期间,我学会了除了编程之外还需要掌握的技能。下面我将分享6个令人惊讶的技能,作为一个有抱负的开发人员你一定不能错过哦。
一、技能#1:书面沟通
在开始每天的工作之前,你可能需要先回复邮件。电子邮件迅速成为了生产力的死亡陷阱。与此同时,电子邮件也是展示你对别人有多大价值的门户。书面技能依然是事实业务沟通的领头羊。
既然书面沟通技巧是如此之重要,于是我花了很多时间来掌握发送电子邮件并快速得到回复的技术。
我所有的电子邮件不但设计友好,而且会尽快切入正题。这是我在邮件中要求技术需求的4个步骤:
1、感谢对方发送电子邮件。这适用于每封电子邮件。例如:感谢你与我联系。
2、强调他们的要点并说明你已了解。例如,“如果我理解正确的话,你是想……”。
3、提出问题,以确保你理解他们想要什么。
4、在他们回答你的问题之后,按照步骤2的方式回复以确认你理解的内容。
这些步骤将提前节省你大量的时间,让你突出于那些没有做到位的人。书面交流是开发者武器库中一项最被低估的技能。当然要想正确表达自己的想法需要多年的实践,但用好这个武器往往会有“杀人于无形”的奇效。
二、技能#2:教学相长
如果你是一个初学者,那么你可能认为你没什么可以教人的。但现实情况是,你也许可以。
当我开始我的第一份web开发工作时,我认为我需要花更多的时间向别人学习。但不是所有的情况都是如此。事实上,我做到了学习与教学的结合。我们公司已决定从SVN转移到Git。而我得到这份工作也是因为我的主要卖点就是大量的Github代码仓库。
当我加入的时候,我发现这是一支正在蓬勃成长的团队,并且转移到Git对于我们而言是有压力的,因为它是一个更好的协作工具。
这真是一个超现实的体验,因为,这是我人生中第一次不得不用标记来武装自己以及在白板上画图。虽然只是一些简单的图表,用来演示git是如何工作的以及它如何与Github互动。还有解释如何最佳利用分支。
请记住:这只是在公司待满一个月之后。从那以后,我一直是头脑风暴会议的一部分,解释Rails中一切的工作原理,从会话到嵌套表单。
在你第一份开发工作中,通过教学,你可能最终会给人一种你比他们更知识渊博的印象。即使你不认为自己是“专家”或“高级开发者”。
在每一家公司里,总有共享的知识池。当我教人的时候,我会对此作出贡献,同时带走别人的经验和见解。
基本上说来,每个人都会贡献自己的经验和观点到这个知识池中。而这便是大规模的教学相长。
三、技能#3:专注
任何职业,无论是画家还是作家,专注于小细节才有可能一步步累积至伟大。如果你想产出令人惊艳的工作,那么你得小心注意并调整方法。
如果你对细节的关注还不到位,那么关键是要具备处理专注的能力。
完全专注于一项任务的能力在我们当前这个世界里是呈现递减状态的。Twitter,Facebook和Reddit正在不断诱惑我们的注意力。Cal Newport在他的《Deep Work》一书中指出,为了有一个有影响力的就业,人们必须放弃浅层的工作并拥抱深层的工作。
浅层工作被定义为只有短期利益的工作。例如,你可以花一天用来撰写和回复邮件,但会因此而错过深层工作。深层工作是需要全神贯注并最终导致实际成果的工作。
作为一个开发者,这个技能不能被低估。我们的工作是建立有用的东西。而创造有价值的东西是需要大量时间的。少一点消费者的心态,多一点生产者的心态。
可能会有用的一种技术手段是番茄工作法。下面是它的工作原理:
· 设置25分钟的定时器
· 专注于一个任务25分钟
· 25分钟结束后,休息5分钟
· 任何浮现出来和任务无关的想法,你可以先写下来以便于以后来关注。
· 你重复循环四次(或更多)
这种技术之所以伟大是因为它使你一次专注于一件事情。它可以帮助你产出更有意义的工作,而不是每隔几分钟查看Twitter或Facebook。
四、技能#4:了解大局
那些主要产品围绕代码的开发人员需要执行一种小心以及平衡的行为。一方面,从发布到产品来帮助企业成长。另一方面,你要保证不会给你将来的同事留下难以维护的代码。而且以及当然,用户也得享受于软件。
但是,首先,此刻你能做的就是编写代码。当你开始作为一个开发人员提高自己的时候,你将——回过头去重构原先的代码。让你的软件更适应将来在上面工作的开发人员。
有一个伟大的概念是DRY(don’trepeat yourself)原则。其基本思想是写一个只需要改变一次的代码片段,如果你决定将来更改它的话。这种方法既是程序员的福音,也有利于企业。
然而,所谓的大局并不仅仅涉及到代码。大多数的大公司遵循Peter Drucker的原则。如果你学过MBA,那么你一定听说过Peter和他的管理原则。如果没有,那么建议阅读他写的书。
Peter对西方公司产生了深远的影响。他提出的最重要的概念之一是成本中心和利润中心。在销售和市场营销工作的人被认为是企业的利润中心。他们增加收入。必须控制企业成本以最大限度地提高收入。作为开发人员,你既可以是利润中心也可以是成本中心。
管理你的职业生涯的最佳方式是了解你适合企业内部的哪个位置。这会附加你的价值,并让你的职业生涯走得更远。
五、技能#5:社交技巧
许多人认为,像Google这样的公司创造了一种从自上而下的文化。不过,你和你的同伴也在建立文化。而培育这种团队范围的文化的最佳方式是通过你自己的社交技巧。
回想一下你的现实生活,而不是工作生活。你的朋友圈中有没有这样一个人是每个人都期待看到的?他们的存在可以带来欢笑和深刻的讨论。他们不传播流言和谣言。在有人需要帮助时他们会及时伸手。总而言之,他们被描述为是一个够意思的哥们或菇凉。
这样的人也存在于工作场所。而你的目标应该是尝试成为那样的人。
成为一个每个人都期待看到的人。建立用一种建设性的心态说出意见的勇气。这与你认为自己是一个内向或外向的人无关。
慢慢的,你的事业、你的技术技能将和这个领域中的其他人相同。但是如果你想在职场中获得成功,那么你需要成为团队成员。你必须能够和他人交流,能激励他人,并值得信赖。因为在一天结束时,如果你不能与别人进行联系,那么你将永远无法让别人接受你的想法,无论多大或多小。最终你只能接受其他人的想法,而不是给出你的想法。
六、技能#6:发现并处理问题
程序员的作用是解决问题。但要解决问题,首先必须去发现问题究竟是什么。
世界上最容易的事情是记住一堆命令或复制和粘贴在Stackoverflow上的代码。真正的能力是知道发生了什么事的大局观。如果你正在解决工作中的一个大问题,那么最好是把它分解成微小的可编辑的片段。
先查看问题本身。想想代码试图解决的问题。
1、它使人更容易购买吗?
2、它做报告吗?
3、创建这个软件的目的是什么?
然后,看一下当前的解决方案(如果存在的话)。最后,考虑当前的解决方案是如何解决这个问题。(如果它能解决的话)。
一旦你高度概括了这个应用程序,那么你就可以进入应用程序的功能部分。利用问题、解决方案和细节技术来进一步分解问题。这些框架步骤帮助我理解了不同的开源项目,例如Disourse。
七、结论
某些工作技能是普遍的,无论你是不是在高科技职业。例如,沟通和团队合作。我真心希望我能在干第一份web开发的工作之前就意识到这些软技能的重要性。
对于程序员需要学习的软技能,你也可以看看这篇文章:对程序员非常重要的24个软技能
发表评论
-
2018071904积累
2018-07-19 10:04 476https://www.imooc.com/article ... -
201806182117
2018-06-18 21:19 485https://blog.csdn.net/mosheng ... -
2018020508积累
2018-05-08 19:14 422https://blog.csdn.net/babyupup/ ... -
2018020404积累
2018-04-06 12:06 01.https://www.cnblogs.com/wxgb ... -
2018020328积累
2018-04-06 11:52 4031.https://blog.csdn.net/quinc ... -
2018020322积累
2018-03-22 10:59 0http://mysql.taobao.org/month ... -
2018020315积累
2018-03-15 23:24 0js中 a=b||0; 在这里||代 ... -
2018020308积累
2018-03-08 15:55 01.http://blog.csdn.net/liu943 ... -
2018020304积累
2018-03-04 18:37 450http://blog.csdn.net/lengcong ... -
20180228积累
2018-03-03 21:28 500https://jackywu.github.io/art ... -
20180225积累
2018-02-25 20:42 434生存发展的法则哈,管理层不想被偏门技术人员挟持,可技术人员 ... -
20180223积累
2018-02-24 09:35 401google浏览器点击链接 ... -
20180222积累2
2018-02-22 22:48 453http://www.aboutyun.com/threa ... -
异构数据源海量数据交换工具-Taobao DataX 下载和使用
2018-02-22 09:36 658DataX介绍 DataX是一个在异构的数据库/文件系统之 ... -
积累20180203
2018-02-03 13:18 349TRUNCATE TABLE 在功能上与不带 WHERE ... -
工作的常识
2018-02-01 11:19 520SN码是Serial Number的缩写,有时也叫Serial ... -
软件开发工作总结
2018-01-31 18:59 3491、分享第一条经验: ... -
war包不自动解压
2018-03-22 10:41 893war包放到了tomcat7下的webapps中不解压 , ... -
maven项目的不同
2018-01-07 15:41 01.maven的web项目和Java项目的创建 2.ecl ... -
电脑休眠和睡眠的区别
2018-01-07 08:55 634电脑休眠和睡眠的情况是不分台式和笔记本的! 休眠;就是把应用环 ...
相关推荐
### 关于《Thinking in ...综上所述,《Thinking in Java》第四版不仅是一本优秀的学习资料,也是每个Java程序员都应该拥有的参考书籍。无论你是Java初学者还是有一定经验的开发者,都能从中获得有价值的知识和技巧。
书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。本书的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员。读者基本不需要...
Joshua Bloch所著的《Effective Java》是每个Java开发者都应该阅读的经典之作。它提供了许多关于如何有效使用Java API的实用建议,涵盖设计模式、代码优化、异常处理等方面,帮助开发者写出更安全、更高效、更可维护...
本书延续了Ivor Horton讲解编程语言的独特方法,从中读者可以学习Visual C++ 2005的基础知识,并全面掌握在MFC和Windows Forms中访问数据源的技术。此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++...
在IT行业中,调试技巧和工具是程序员的必备技能。以下是一些关于调试的详细知识点: 1. **断点**:在代码的特定位置设置断点,使程序在该点暂停,以便检查当前的变量值、调用堆栈等信息。 2. **单步执行**:在程序...
很多人误以为必须彻底理解每一个语言特性才能编写高质量的代码。然而,这种观念不仅耗时,而且对于日常编程来说并非必要。实际上,掌握基础语法和常用库的使用才是提高效率的关键。 #### 为何会出现这一误区? 1. ...
- **版权与版本声明**: 在每个文件的头部都应明确标出版权信息以及当前版本号。 - **头文件结构**: - 包含必要的预处理器指令和类型定义。 - 通过`#ifndef`、`#define`和`#endif`来防止重复包含。 - **定义文件...
总的来说,《Python Tricks》是一本值得每个Python开发者拥有的书籍。无论你是刚刚接触Python的新手还是已经具备一定经验的开发者,都能够从中获得宝贵的知识和灵感。通过学习本书介绍的各种技巧,你可以大大提高...
《高质量C++/C编程指南》不仅是一本技术手册,更是每一位C++/C程序员提升编程技能、改善代码质量的宝贵资源。通过遵循本书提供的规范和建议,程序员可以编写出更易于维护、更高效且更安全的代码。无论你是刚入门的...