zoukankan      html  css  js  c++  java
  • 技术人员的成长之路

    作为技术人员,有时会对前进的方向感到迷茫,主要是由于缺乏一个稍微长远的规划,按部就班的工作,无法产生量变到质变的成长。

    对于技术人员来说,一般可以分为五级:

    1 新手:只能按照指令一步步地走。新手没有接触过当前行业,所以只能按照指令一步步地走完过程。

    2 初级:能够完成一个局部工作。不需要给出指令,只需要给出一个局部工作的目标,初级可以完成这一局部工作,但初级没有形成全局概念,不知道自己所做的内容在全局所占据的份量有多重。

    3 中级:能够完成全局工作。这一层面的技术人员,对于一个领域的方方页面都能够了解,在给定目标的情况下,可以独立完成一个项目,可以带人,不会频繁求助高级。

    4 高级:具备主动性,能够根据环境纠正自己的目标和手段。高级能够站在一个中立的层面考虑什么应该做,什么不应该做,怎么样代价最小,需要权衡付出与收益。

    5 专家:凭直觉工作,每击必中要害。在长期的解决问题过程中,专家形成了丰富的经验积累,可以快速抓住问题的关键点。

    以上的分级,有一个重要的分水岭——中级跨向高级。中级及以下(以下统称中级)都是为别人而开发,高级及以上(以下统高级)都是为自己而开发。所以,在主动性,做事目的、手段方面,中级与高级都存在着本质的区别。以下就来看看这三方面的区别。

    由被动到主动

    人做事的时候,有着内在的动力来推动。作为中级,事情都是由别人安排的,自己不愿意主动承担责任。类似于这样的说话方式,会出现在中级身上:

    l  怎么需求又变了,能不能把需求确定了再做

    l  这样做不行的,框架已经定好了,只能按那样的方式来做

    l  我辛辛苦苦写的这么多代码,又白费了

    l  这个还是不要改了吧,改起来很难的,我担心出问题

    l  这个问题不是我这边出的,是XXX那边的接口问题

    以上可以看到,中级作为一个被动完成任务的状态,会尽量让事情少摊到自己身上。并且会多有抱怨,因为对于中级来讲,一个不断改变的需求产生的原因总是别人的原因,与自己无关,自己只是一个代码的实现者。我们可以看看高级对应的说话方式大概会是怎么样:

    l  这个需求为什么要改成这样,能跟我详细说明一下不,我看看是不是值得改一下

    l  我跟架构组沟通一下,这样改一下应该可以让整个项目变得更加简单

    l  我先做的这个原型,代价很小,我们已经确认了原型,现在我开始写代码做实现

    l  我觉得这样改可以让整个项目更加简单,当然,直接一刀切会有很大的影响,我们看看怎么切过来

    l  这的确是个问题,我来跟进一下,找一下原因

    高级作为一个主动解决问题的人,会考虑到业务方的需求,对所需要付出的代价做一些权衡,不会推脱问题,会将问题先收下来,进一步去找问题的原因,会尽量让一个项目变得简单可理解,勇于根据现实的改变来调整当前的目标和技术手段。

    从积极性方面来讲,一种主动积极的心态才能为自己创造更多的机会。中级被动的状态,把复杂的事情推脱掉,进而也阻断了自己解决复杂问题的机会,从而能力不能得到提升。中级会一个误区,认为可以自己通过看书,看视频来获得提升。但可以说,最有效的提升方式,就是通过实际地解决问题,让自己的能力得到提升。看书、看视频在能力提升方面起的作用是,在实际解决问题的过程中,会给一个思路,让人把问题给总结起来,加深对解决问题的理解,能够让解决特殊问题变为解决比较普遍的问题。

    所以,如果中级没有在主动性方面有一个根本性的转变,中级就会停留在原地。同时,有了转变,就能够有着越来越多的机会提升自己,进而与中级快速拉开距离。这样的距离,就是一个分水岭,中级还是那个中级,但高级很快就不是那个高级了。

    完成任务到表达自我

    针对于同一个目标,中级与高级的处理方式有着不同的态度。中级是为了完成任务,所以接受到的目标越是清晰,越是不变,对自己来讲越是有利。实际上,我们所面对的大多数都是中级,这就迫使高级人员需要将目标描述得清晰、可视化。

    高级对待同一个目标的态度是,这又是一次提升自我我机会,我要挖掘这一次机会的所有价值。目标不清晰,没有关系,我可以通过沟通来将目标弄清楚,这样可以锻炼我的沟通能力。框架有问题,没有关系,我可以尝试着做一定的修改,看看是不是那样做可以简化项目,这可以锻炼我的抽象能力。我一定要将这个项目做得很完美,无论是用户体验,还是代码格式,我都要写好,这样才能挖掘这一次机会的所有价值。咦,我发现代码有很多是重复的,嗯,我需要写一个代码生成器,生成那些重复的代码。我发现所有的 Dao 都有 insert/update/delete/select 方法,我可以写一个通用的 Dao,利用 java 的继承机制,这些方法就不会再写了。达成目标,就是把我方方面面的想法都表现出来的过程。这就是高级的表达自我的过程。

    一个给定的项目,都有着现实的价值,也就是说,一个项目都有着对应的用户群体,做好一个项目,就是拿现实的、客观的评判标准来评判自己的想法是不是对的,自己做的事情是不是有价值的。中级不会考虑到这一个层面,所以中级只是简单地完成任务。高级则会考虑这个项目的价值在哪里,高级自己可以借助这一个项目过程印证自己的哪些想法。

    被工具使用到使用工具

    在确定目标之后,中级会使用自己熟悉的工具和手段来达成目标。中级作为一个胜任者,对于一个明确的目标,有着很熟悉的工具和手段,是可以完成目标的。同时, 中级的极限也就是针对具体的目标,采用熟悉的手段达成目标 。

    高级对于一个目标的认知是,通过一个有价值的目标来确认自己的想法,所以不会受限于工具与手段,并且为了让自己的抽象能力得到提升,更愿意花时间去研究新工具、新手段,进而让解决问题的方式变得更加简单。高级会重视生产力这一概念,提升自己的生产能力。提升生产能力,主要就是提升个人使用工具的能力。

    抛开工具,人与人之间差别是不大的。人与人的差别大距离拉开,就在于不同的人使用的工具不同,或者对同一个工具的使用有效程度不同。这里要注意:工具除了包含了扩展行动能力的交通工具,扩展表现能力的PPT、Word,扩展编码速度的Eclipse、Idea等, 最重要的是,工具也包含了扩展思维能力的思维模式 。

    实际上,人每使用一种新的工具,都要有与之相应的思维模式来匹配。比如,作为开发人员,不能用 Eclipse 的快捷键来对 Idea 起作用,要从 Eclipse 转到 Idea ,就需要把之前的一切思维习惯都改变掉。以下将介绍中级向高级转变的方法,本质上就是提供新的思维模式工具,让开发人员在使用新的思维模式工具的过程中,让自己产生改变。

    摘自:https://www.cnblogs.com/1si2/p/devroad.html

  • 相关阅读:
    将SpringBoot应用Docker化并部署到SAP云平台
    另一种办法直接在宿主机上的文件夹内查看Docker镜像运行的日志文件
    Dockerfile里的VOLUMES关键字
    Effective C++笔记(三):资源管理
    Denoise Autoencoder简单理解
    Visual Tracking with Fully Convolutional Networks
    Effective C++笔记(二):构造/析构/赋值运算
    effective c++读书笔记(一)
    Robust Online Visual Tracking with a Single Convolutional Neural Network
    C++卷积神经网络实例(一)
  • 原文地址:https://www.cnblogs.com/aurain/p/8402107.html
Copyright © 2011-2022 走看看