面试时为什么问职业生涯规划
“Troubleshooting” is one of the most misunderstood words in tech. It is simulatenously one of the most commonly used and misused words. Yet, rigorous troubleshooting technique is probably the most invaluable skill you can develop if you want to build a successful career in tech.
“疑难解答”是科技界最容易被误解的词语之一。 类似地,它是最常用和误用的单词之一。 但是,如果您想建立成功的技术职业,那么严格的故障排除技术可能是您可以开发的最宝贵的技能。
The reason it is important to develop rigorous technique is it provides a framework that simplifies and enables quick root cause identification. It can also be applied programmatically to track down the culprit(s) of a problem — so it takes frustration and guesswork out of the equation. With enough repetition, that technique becomes habit and even allows you to respond effectively to problems you aren’t especially familiar with.
之所以要开发严格的技术很重要,是因为它提供了一个简化并能够快速识别根本原因的框架。 它也可以通过编程方式应用于跟踪问题的根源,因此可以消除挫折感和猜测。 重复足够多的技巧就会成为习惯,甚至可以让您有效地应对自己不太熟悉的问题。
Notice how I mentioned that troubleshooting “enables quick root cause identification”, tracking down “the culprit(s) of the problem” and responding to “problems you aren’t especially familiar with.” The truth about troubleshooting is it is not a way to “snipe” problems. Troubleshooting alone is not a “fix”. Effective troubleshooting IS, however, a methodical technique that allows you to identify what you are solving for.
请注意,我曾提到如何进行故障排除“能够快速识别根本原因”,跟踪“问题的元凶”并响应“您不是特别熟悉的问题”。 关于故障排除的真相是,它不是“窥探”问题的方法。 单独进行故障排除不是“解决方案”。 有效的故障排除是一种有系统的技术,可让您确定要解决的问题。
When I started my career, I wish I understood how important a methodical technique is to timely problem resolution. In that respect, I wanted to share a flavor of troubleshooting I have found to be effective so others may get a lead on learning methodical technique early in their career.
当我开始我的职业生涯时,我希望我理解有条理的技术对于及时解决问题的重要性。 在这方面,我想分享一些我发现有效的故障排除方法,以便其他人可以在他们职业生涯的早期阶段学习方法性技巧。
The Split Half Method
分裂半法
The split half method is a specific troubleshooting technique that not only identifies all the potential sources of failure in a system but also quickly eliminates those points of failure until the component that is the source of the issue is identified.
拆分一半方法是一种特殊的故障排除技术,它不仅可以识别系统中所有潜在的故障源,而且可以快速消除那些故障点,直到确定了作为问题根源的组件。
As this method is applied to the field of computing, I like to use it in conjunction with the OSI model to create a highly effective troubleshooting process. Here are the steps I use in this process:
当此方法应用于计算领域时,我希望将其与OSI模型结合使用以创建高效的故障排除过程。 这是我在此过程中使用的步骤:
List the essential components required to allow an application, service or system to function according to the seven layers of the OSI model 根据OSI模型的七个层列出允许应用程序,服务或系统运行所需的基本组件 Draw a line through the middle of the list, dividing it into two equal parts 在列表的中间划一条线,将其分为两个相等的部分 Devise a test you can carry out to eliminate one-half of the total list as a culprit 设计一个可以消除总列表一半的测试方法 Draw a line through the middle of the remaining list, dividing it into two equal parts 在剩余列表的中间画一条线,将其分成两个相等的部分 Devise a test you can carry out to eliminate one-half of the remaining list as a culprit 设计可以进行的测试以消除剩余一半的罪魁祸首 Repeat steps 4 and 5 until you have determined which component is the source of the problem 重复步骤4和5,直到您确定哪个组件是问题的根源 Use your expertise, experience and research to address issues with that component 利用您的专业知识,经验和研究来解决该组件的问题Applying the Split Half Method
应用拆分一半方法
This method can seem a bit nebulous for somebody following it for the first time but it can be easily demonstrated using a practical example. The example I will use is when an end-user is not getting emails when connecting to an email server through an email client.
对于第一次使用此方法的人来说,此方法似乎有些模糊,但可以通过实际示例轻松地进行演示。 我将使用的示例是当最终用户通过电子邮件客户端连接到电子邮件服务器时没有收到电子邮件时。
First you would list the components required to connect from an email client to the email server, down through the layers of the OSI model:
首先,您将列出OSI模型各层中从电子邮件客户端连接到电子邮件服务器所需的组件:
The Outlook application, including files loaded into memory and settings Outlook应用程序,包括加载到内存和设置中的文件 The emails themselves, which may be in html, plain text or rich text 电子邮件本身,可以是html,纯文本或RTF The session with the application server, using exchange, smtp, authentication and etc. protocols 使用交换,SMTP,身份验证等协议与应用程序服务器进行会话 Transport-layer connectivity via protocols such as TCP or UDP 通过TCP或UDP等协议进行传输层连接 Network connectivity over network layer and routing protocols, such as DHCP, DNS and ICMP 通过网络层和路由协议(例如DHCP,DNS和ICMP)的网络连接 Physical (ethernet or Wi-Fi) connectivity between the computer and the switch or router 计算机与交换机或路由器之间的物理(以太网或Wi-Fi)连接 Electrical connectivity between the different components of the computer ports, cabling and switch ports 计算机端口,电缆和交换机端口的不同组件之间的电气连接 Note: Typically you would list the components of a system down through the OSI model on the client side and up through the OSI model on the server side. For brevity, I have not done that here. 注意:通常,您将通过客户端的OSI模型向下列出系统的组件,而通过服务器端的OSI模型向上列出系统的组件。 为简便起见,我在这里没有这样做。When we draw a line halfway through the list of components from the client side all the way to the server side, the first logical test you can devise is to find out if the problem is with the computer or the server. This can easily be tested by checking if another computer is having problems connecting to the server. If other computers are not having trouble connecting, the issue is probably with that one computer. If other computers are having trouble, you should move on to troubleshooting the server.
当我们从客户端一直到服务器端在组件列表的中途画一条线时,您可以设计的第一个逻辑测试是找出问题出在计算机还是服务器上。 通过检查另一台计算机是否在连接服务器时遇到问题,可以轻松地对此进行测试。 如果其他计算机没有连接问题,则问题可能出在那台计算机上。 如果其他计算机出现问题,则应继续对服务器进行故障排除。
For the purposes of this demonstration we have determined the problem is on the computer side so we draw a line halfway through the list of OSI components for the computer. This has us determining whether the issue is with network connectivity and below or with logical connectivity and above. By pinging the server from the computer, we quickly determine that network connectivity exists.
为了进行演示,我们确定问题出在计算机方面,因此我们在计算机的OSI组件列表的一半处画了一条线。 这使我们可以确定问题是网络连通性和更高级别还是逻辑连通性和更高级别。 通过从计算机ping服务器,我们可以快速确定存在网络连接。
Eliminating Potential Culprits Using Split Half Method
使用分裂半方法消除潜在的罪魁祸首
Because each component of a system, according to the OSI Model, relies on the component from the layer below, we can eliminate half of the potential culprits of an issue through the first cycle of this method. In our example regarding email client connectivity, we can eliminate network connectivity and any component below it as a culprit of the issue. This is what our new list looks like:
因为根据OSI模型,系统的每个组件都依赖于下一层的组件,所以我们可以在此方法的第一个周期中消除问题的一半潜在原因。 在有关电子邮件客户端连接的示例中,我们可以消除网络连接及其下方的任何组件,这是问题的根源。 这是我们的新列表如下所示:
The Outlook application Outlook应用程序 The emails themselves 电子邮件本身 The session with the application server 与应用程序服务器的会话 Transport-layer connectivity 传输层连接In the second cycle of this method, you can draw a line through the middle of the remaining half of components that are potential culprits of the problem. Separating the “emails” and “session” components, the next logical test to run is whether certain emails are not coming through or whether the client is not connecting with the server. An easy way to test this is by having the end-user send her or himself an email. If it comes through, then the issue is not with connectivity to the server. If it doesn’t come through, there is likely a connectivity issue between the application and the server.
在此方法的第二个周期中,您可以在剩余的一半组件中间画一条线,这些组件可能是问题的元凶。 将“电子邮件”和“会话”组件分开,下一个要运行的逻辑测试是某些电子邮件是否没有通过或客户端是否未与服务器连接。 一种简单的测试方法是让最终用户向她或他自己发送电子邮件。 如果通过,则问题不在于与服务器的连接。 如果没有通过,则应用程序和服务器之间可能存在连接问题。
We are going to imagine that there is a connectivity issue for the purposes of this discussion. It can get a bit complicated to determine if it is a “transport-layer based” or “session based” connectivity issue but, following the gist of this article, there are a number of potential tests you can run to determine which it is.
我们将想象为了进行讨论,存在连接问题。 确定它是“基于传输层”还是“基于会话”的连接问题可能会有点复杂,但是,按照本文的要旨,您可以运行许多潜在的测试来确定它是哪个。
Repeating the Split Half Method to Refine Your Results
重复半分割法以优化结果
If necessary, you can run another pass of the split half method to refine your results even further. Listing the individual components required to make a connection between client and server more granularly, you can determine what protocol at the transport or session layer may be the issue . In order to use the split-half method to quickly eliminate culprits, you would list the components in order based on which one is triggered first through the one that is triggered last.
如有必要,您可以运行另一半分割方法,以进一步优化结果。 列出在客户端和服务器之间建立连接所需的各个组件,可以确定在传输或会话层使用哪种协议。 为了使用对半分裂方法快速消除元凶,您将按照先触发的组件到最后触发的组件的顺序列出组件。
This last part of the exercise is beyond the scope of this article but you can see how this methodology can quickly narrow down potential issues to the point that you can utilize your skills and experience to solve the problem.
练习的最后一部分不在本文讨论范围之内,但是您可以看到这种方法如何快速缩小潜在问题的范围,以至于您可以利用自己的技能和经验来解决问题。
Relying on Your Expertise to Solve the Problem
依靠您的专业知识来解决问题
At the end of the process, you will most likely have to rely on your specialized skills and experience to solve the problem — remember troubleshooting methodology is useful for identifying the culprit(s) of the problem not the fix.
在过程的最后,您很可能必须依靠自己的专业技能和经验来解决问题-记住故障排除方法对于确定问题的根源而不是解决问题很有用。
Having said that, many situations I have been in have required that I used this methodology to filter out potential causes of the issue so I could identify the solution. In addition, in those same situations, I have saved many hours or days of work by using this methodology.
话虽这么说,但我遇到的许多情况都要求我使用此方法来过滤出导致问题的潜在原因,以便找出解决方案。 另外,在相同的情况下,通过使用这种方法,我节省了很多小时或几天的工作。
This is not to say it is a requirement to use this methodology in all circumstances. As your skills and experience develop, you will be able to intuitively identify solutions when bypassing some or all of the steps listed here. When intuition fails, though, this method is an important tool to have in your toolbox to get to the bottom of the most difficult issues.
这并不是说在所有情况下都必须使用此方法。 随着技能和经验的发展,绕过此处列出的部分或全部步骤,您将能够直观地确定解决方案。 但是,当直觉失败时,此方法是工具箱中最重要的工具,可用来解决最困难的问题。
Want the skinny on other valuable problem solving techniques learned over years of experience? Read What 7 Years as “The IT Guy” Taught Me About Problem Solving.
是否希望通过其他多年经验积累的其他有价值的问题解决技术? 阅读“作为IT专家的7年”,教我有关解决问题的知识 。
翻译自: https://medium.com/the-innovation/what-i-wish-i-knew-about-troubleshooting-when-i-started-my-career-d69e478f5128
面试时为什么问职业生涯规划
相关资源:jdk-8u281-windows-x64.exe