• 进入软件行业的几点建议



    写在之前:今年年初给自己安排了一个任务,每个月写一遍感悟性的文章。促使自己沉淀并思考。 回望自己在软件行业的经历,总是感叹如果早知道某某事情多好。这篇文章主要写一些建议,如果这边文章有幸被你看到, 希望对你有帮助。


    1.多花一些时间学习面向对象设计

    When a novice is learning to program, the life span of the resulting code is usually measured in hours or days. Programming assignments and exercises tend to be write- once, with little to no refactoring and certainly no long-term maintenance. These programs are often not rebuilt or executed ever again after their initial production. This isn’t surprising in a pedagogical setting. Perhaps in secondary or post-secondary education, we may find a team project course or hands-on thesis. If so, such projects are likely the only time student code will live longer than a month or so. Those developers might need to refactor some code, perhaps as a response to changing requirements, but it is unlikely they are being asked to deal with broader changes to their environment.

                                                                                 --摘自《Software Engineering at Google》

    文章大意:

            当新手学习编程时,编码的生命周期通常以小时或天为单位。编程作业和练习往往是一次编写的,几乎没有重构,当然也没有长期维护。这些程序通常在初始生产后不再重建或再次执行。这在教学环境中并不奇怪。也许在中学或中学后教育,我们可以找到团队项目课程或实践论文。如果是这样的,项目很可能是学生们的代码生命周期超过一个月左右的时间。这些开发人员可能需要重构一些代码,也许是为了应对不断变化的需求,但他们不太可能被要求处理环境的更大变化。

    上面的文章说事情,大多是开发人员在学校里都都经理过的, 我从网上查了些资料,目前国内软件企业的寿命只有3到5年,在中国一个软件维护5年以上是很少见的, 面试过一些同行,他们参与的项目周期大多是3到18个月,项目交付后就不再维护。写过的代码除非改Bug很少再去大面积修改重构。

    在这样的背景下,开发人员很少会维护自己的代码。开发人员不会关注自己的代码,也不会对自己的代码做重构,精益求精。 也许你刚刚还在做CRUD,也许你刚刚还在做拷贝粘贴,也许你刚刚还在堆代码实现业务。 如果你看到这篇文章,我想说:如果不思考,做这些事情不会提高你的编码能力,也不会提升设计思维。 当写的代码多了, 看的源码多了, 认真思考了才会理解面向对象设计的重要性。 因为它无处不在。 值得花一些心思

    2.认清自己,同时学会思考

    刚刚参加工作的时候,我认为高级开发人员只是比初级开发人员经验多一些,了解的框架多一些。 所以学会使用一些框架后我就敢面试中级开发岗位,了解一些框架原理就敢说自己达到了高级开发人员水平。 

    现在我不再这么想, 初级开发人员和高级开发人员确实存在很大的差距。不光表现在知识和经验上。 举几个例子

    • 初级开发人员为了完成任务,很少考虑质量、维护成本以及产生的技术债务,高级开发人员会写简单的代码和高质量的代码,让软件系统更易于维护和扩展
    • 初级开发人员只是在低头完成自己任务,并不是很理解业务需求。 高级开发人员会思考,使用更好的工作方式开发高质量软件
    • 初级开发人员将知识视为成长杠杆和进步途径,而高级开发人员分享知识、验证知识、视图提升团队水平。 他们知道团队最大的失败点还是开发人员
    • 初级开发人员只看到了顺利的任务,这导致经常低估工作,高级开发人员会将问题和安全边际添加到评估中。确保项目低意外
    • 初级开发人员在项目失败的时候会感到恐惧,关系自己是否受到指责, 高级开发更知道中要的是理解什么导致了问题。考虑系统或者过程如何阻止或者避免同样的问题再次产生

    你可能天天在想某个新框架怎么用, 某个框架原理是什么, 说着把自己累死也要卷死别人的话。我想和你说, 很可能你把自己累死了,把别人卷死了, 也只是一个知识丰富的初级开发人员。让自己停下来吧。 想一想,自己最紧迫需要提高的是那些方面,那些方面是自己比较容易提高的。 然后再做打算。认清自己,同时学会思考。


     


    上一篇:如何发现和处理团队中的问题

  • 相关阅读:
    如何恢复电脑上删除的文件?
    SRS流媒体服务器:RTMP推流、拉流创建连接
    docker镜像(第二天)
    Tomcat
    uniapp封装一个可移动的定位图标
    PHP- PHP中与HTML标签的联合使用。注意:<?php 之后的需要有一个空格?>
    java实现钉钉机器人消息推送
    使用VSBT构建C和C++开源项目
    全光网络技术、标准、应用现状及展望
    测试开发——进阶篇2
  • 原文地址:https://blog.csdn.net/Beijing_L/article/details/127508117