CodeGym /课程 /Frontend SELF ZH /程序员之路

程序员之路

Frontend SELF ZH
第 47 级, 课程 4
可用

6.1 职业阶梯

职业阶梯

程序员本身也会根据其资质进行划分。以前有“码农”、“程序员”和“黑客”这样的称谓,但现在都用美国IT的称呼。

对于开发者来说,有6个主要级别:

  1. Intern Software Engineer
  2. Junior Software Engineer
  3. Middle Software Engineer
  4. Senior Software Engineer
  5. Tech Lead
  6. Principal Software Engineer

各个国家的某些参数可能有所不同,但大体意思如下:

Intern Software Engineer — 这是实习生。他们处于学习编程的过程中,没有商业经验或参与大型项目的经验。通常在经验丰富的同事的监督下工作。 他们在工作中的主要任务是学习代码库和软件开发基础,执行简单的编码任务并参与测试。

Junior Software Engineer — 这已经是程序员了,但没有严肃的商业经验或经验不足一年。 在更有经验的开发人员指导下工作,实现项目部分并参与代码审查周期。 这个职业阶段专注于技术技能的深化和理解项目任务。

Middle Software Engineer(或简称Software Engineer):在技术决策上有更多自主权,负责项目的重要部分,开始指导较不经验的同事并更积极地参加架构讨论。通常有2-5年的实际经验。

Senior Software Engineer:负责设计和实现复杂系统,提供团队内部的指导和领导,参与项目的战略规划并通常代表团队与客户和其他利益相关者沟通。通常有5-10年的经验。

TechLead:作为技术负责人,对项目的最终技术结果负责,指导开发,解决最复杂的任务,确保遵循技术标准并协调开发人员的活动。

Principal Software Engineer:在最高技术水平上工作,常常参与形成公司的技术战略,开发创新解决方案并确立技术标准,是技术领导者的主要导师并在复杂的技术问题上是关键专家。

这很有趣

大公司可能有额外的角色和子角色。例如,在Google有这样的角色:

  • Staff Software Engineer (L6):对其部门的技术政策有重大影响。
  • Senior Staff Software Engineer (L7):从事大规模和复杂的项目,确定公司的技术发展战略方向。

6.2 Lego-产品

很久以前(1975年),Pascal语言的创造者Niklaus Wirth写了一本书《Algorithms + Data Structures = Programs》。自那时以来,许多事情已经发生了变化。

现代软件产品与10年前以及20年前的产品完全不同。 1975年更不用说:从那时起已经过去50年了。

现代程序员不再手动编写程序。他更像是从现成的部分(库)中组装它,并编写代码来帮助这些部分交互。

现代软件产品可能由数十和数百个程序组成,其中一些在用户的计算机、移动设备上运行,而大部分在数据中心的服务器上运行。

许多这样的程序,如web服务器或数据库,已经编写好了。只需要正确配置它们即可正常工作。虽然随着时间的推移,配置过程可能变得如此复杂,以至于实际上变成了开发。🤦‍♂️

程序员不断与自己斗争。与其在不同程序中重复编写相似的代码,他们更愿意编写库,可以根据自己的需求进行配置(调整),并仅在必要的地方进行连接。

在过去的20年里,程序员编写了很多库、框架和开源存储库。 它们真的有几百万个。现在,从头开始编写整个代码被认为是不好的做法。相反,需要从优质和经过验证的解决方案中组装程序——库、框架、包和模块。

但这样的做法也已过时。过去10年的趋势是迁移到云——提供给你程序所需的一切的大型数据中心。想要数据库?我们这里有数百个供你选择。想要少见的 独特web服务器——我有。只要你有钱,任何愿望都可以实现。

6.3 “我是工程师” (c) Elon Musk

太空中的火箭

不再需要编写复杂而乏味的东西。现在,如果你需要某些很酷的复杂功能,总是有库。你只需:a)知道它存在,b)找到合适的(可能有几十个不同质量的替代品),c)了解如何将其集成到你的项目中。

这种方法使得工作变得更加有趣。现在你可以快10倍地为产品添加新功能。30年前,如果你需要一个web服务器,你需要自己编写。20年前——购买、安装和配置。现在——只需进入“云”的管理面板并开启它。

这也是Frontend流行的原因之一。复杂的后端现在可以用JavaScript和Node.js编写,或者只需在云数据中心中“启用”各种服务。Frontend不再严重依赖于后端的限制,彻底展开了它的威力。从它的受欢迎程度来看,它显然很好地履行了它的角色。

还有就是Frontend开发者的职业已经转变为Frontend Fullstack Software Engineer。 现代Frontend开发人员必须了解数据库的工作原理,以便合理地与其协作。 理解HTML & JavaScript, NginX以配置前端和后端的协作。Docker也是必须的——已经是行业标准。

现代开发与20年前的情况几乎不一样。现代程序员编写代码不超过50%的时间。其余的时间他在阅读文档,学习新技术和参加会议(会议)。独行的程序员早已成为过去。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION