• 工作3年,仍在公司基层,原来我和高级程序员的差别在这里


    很多刚刚踏入职场的“初级程序员”常常会期待自己在不断提升技能和丰富实践经验后,有朝一日晋级为“高级程序员”。

    那么,这两者之间都有哪些区别呢?

    ​1. 从工作内容的角度出发,两者最大的区别,其实在于更关注的是“软件”还是“系统”。

    初级程序员关心编写软件。因此,会重视代码质量,采用最佳实践,尝试采用尖端技术。他们在学习新技术方面投入了大量时间。因为对他们来说,最终的目标是创建优雅的、可执行的、可维护的软件。

    ​而高级程序员关心构建系统。编写软件只是构建系统中的一个步骤。首先,他们需要对“一个软件是否需要创建”的问题做出思考,例如它会解决什么问题、为什么解决。并且,他们还会询问谁将使用该软件以及以何种规模使用该软件。同时,他们还需考虑软件将在哪里运行,以及如何监控它是否正常工作,软件是否真正解决了问题等。

    2. 从解决问题的思维上看,初级程序员大多数情况下解决的是单个问题,而高级程序员解决的是一类问题。

    比如很多普通程序员,在看到bug清完就觉得万事大吉了。哪怕同一个问题在生产环境出现多次,最多也就说一句“不会吧,怎么又出问题了”。这种对待问题的方式就是他的工作越来越忙,因为解决问题效率与投入的时间多少是成同比变化的。而高级程序员则在解决掉一个bug之后,通常会想一下能否通过什么方式找到现有代码中的同类问题,并把它们处理掉。甚至是考虑有没有什么办法能够一劳永逸的避免此类问题再次发生,比如封装一个SDK或者写一个组件,尽可能用一种低侵入的通用方式将问题扼杀在摇篮里。这种结果是不但自己轻松了,也造福了大家。

    ​3.从解决BUG的效率上看,高级程序员效率更高,效果也更好。普通程序员可以利用搜索引擎(百度、Google)寻找答案,还经常找不到好的解决办法,然后更换技术方案;高级程序员除了也利用搜索引擎寻找答案,还经常利用论坛,以前的项目等等之类的方式,一般bug都顺利解决。

     4.从处理需求的角度来说,高级程序员在“接”需求之前一般会先“砍”需求

    很多人在听需求讲解的时候,思考的是,这个功能能不能实现、怎么实现、难不难。大多数的提问也是基于这个思路展开的。可能也会提出“砍”需求的问题,但是理由大多是这个实现起来太麻烦了,这个没法实现之类。而高级程序员一般会从“做这个需求的目的是什么?”的角度去思考,所以“砍”需求会变成一件更容易成功,而且自然而然的事情。

    写在最后:

    虽然高级程序员从工作方面来说要比普通程序员优秀的多。但小编想强调的一点是:“高级”的头衔不等于“高级”的角色。因为在职场竞争力变得越来越重要的当下,对于程序员而言,夯实自身技术知识、提升技能固然重要,但这些并非是成为高级程序员的关键。对于高级程序员来说,他们不只是代码的搬运工,也不止专注于技术,他们具备思考、协作、沟通等其它多项职业能力。希望每位期待成长的程序员能在时光沉淀下,不为“头衔”而累,坚守进步的初心,方能始终。


    擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司致力于协助企业客户提升对运维数据的洞见能力,优化运维效率,充分体现科技运维对业务运营的影响力。

    ▶行业龙头客户的共同选择

  • 相关阅读:
    2023年湖北省专利导航、知识产权软科学研究及服务政策(申报条件、材料、时间)
    《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——Bubble气泡
    【Spring】面向切面编程详解(AOP)
    BufferCache与PageCache
    【机器学习】欠拟合及过拟合与学习曲线、误差来源
    mirror算法 O(1)空间复杂度实现二叉树遍历
    MASA Stack 第五期社区例会
    wsl端口转发远程链接
    【51】【keil】创建第一个工程(模板)
    理解Android中Dialog
  • 原文地址:https://blog.csdn.net/qq_37641528/article/details/127851079