拒绝经验过剩,“程序员的工作只能是代码”?(附零基础学习资料)

这里本文的目录

  • 前言
  • 浪费时间重构
  • 他们的重心放在了顾全大局而非代码
  • 对他们来说,设计文档不可或缺
  • 永远在追逐未来
  • 写在最后
  • 零基础Python学习资源介绍
    • Python学习路线汇总
    • Python必备开发工具
    • Python学习视频600合集
    • 实战案例
    • 100道Python练习题
    • 面试刷题
  • 资料领取
  • 好文推荐

前言

似乎软件工程师都有一个自然而然的成长过程:从缺乏经验的新手,发展到中级工程师,进而成为经验过剩的工程师。一旦软件工程师进入经验过剩阶段,他们对代码的兴趣就会降低!那么哪些迹象表明你已经经验过剩了呢?(文末送福利)

奇怪的是,无论你在哪家公司工作,大多数经验丰富的工程师都会体验出一些相同的特征。由于他们缺乏对代码的关注,在设计上浪费的时间比写代码的时间还长,因此会拖累每位工程师编写代码的速度。

从新手工程师到经验过剩的工程师的转变并非一蹴而就。然而,经过多年甚至几十年的磨练,这些工程师都会逐渐转变成经验过剩的工程师。几乎每一家公司都是如此,而且不断应对这些人的需求和不必要的忙碌工作真的很令人沮丧。

无论你是新手工程师还是经验过剩的工程师,本文都可以指出经验过剩的工程师的特征,从而帮助你避免这种发展趋势。

浪费时间重构

@techleadhd(https://Twitter.com/techleadhd)是目前最活跃的工程师之一,他在最近的一篇Twitter帖子中表达了他对编写代码的真实看法。

很明显,他不相信写代码,相反,他暗示删除和重构代码很有价值。他认为这种工作不应该被称为软件清理,而是应该叫做软件工程。
拒绝经验过剩,“程序员的工作只能是代码”?(附零基础学习资料)_第1张图片
我们应该设计代码而不是维护代码。

维护代码的工作可以由别人胜任,就连实习生都可以胜任。

软件工程师应该花时间编写旧的低效代码,而不是尝试改进旧的基础架构。为了保证系统正常工作,你甚至可以通过“胶带”把这些代码组织到一起,将来必然有别的工程师接管我们的代码,在现阶段我们无能为力。然而,经验过剩的工程师总是觉得有必要维护旧代码。

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在文末领取。

他们的重心放在了顾全大局而非代码

在这里,我只想澄清一点:顾全大局和业务并不软件工程师的工作,我们的工作只有代码!

经验过剩的工程师习惯于重视大局胜过代码本身。他们喜欢提出的问题包括:“谁会受到这个项目的影响?”,“最终用户将如何与代码交互”以及“我们将如何维护这些代码?”等等。

他们浪费了大量时间来了解项目的范围以及对公司的影响。有时,他们甚至会挑战领导,认为自己有“卓越的解决方案”。如果他们一味地专注于“影响”和“优先级划分”等诸如此类微不足道的事情,怎么可能有时间写完所有的代码呢?

将所有时间都花在各种会议、统计指标和代码审查上,我们只能眼睁睁看着写代码的时间一分一秒流逝。

经验过剩的工程师对缺乏经验的工程师没有信心,对此我们一点也不会感到惊讶。缺乏经验的工程师只会全力以赴写代码,并按照吩咐做事,即便范围可能过于复杂。

这是因为优秀的程序员不会质疑他们的工作。相反,无论面对何种请求,他们都会低下头写代码。无论何时,对公司产生的影响都应该留给业务去评判。我们作为程序员的工作就是实现代码,而不是设法搞清楚哪些工作有价值,或如何适应公司的战略。

我们需要提醒经验过剩的工程师:你们是程序员,不是领导。

对他们来说,设计文档不可或缺

出于某种原因,经验过剩的工程师总是想要设计文档。

无论项目的规模大小,不考虑设计文档,全神贯注写代码可以快速推进项目。你大可不必纠结你需要哪些对象,或代码需要实现哪些操作场景。

从我们的角度来看,我们发现将一切记在脑海中要容易得多。即使拥有数千行代码,也并非难以管理。

我们不会用略微不同的对象或其他东西重复创建同一个功能。

我们不会使用多个对象创建重复的功能。

为什么经验过剩的工程师如此关心这些问题呢?

最后,如果我们不需要花时间思考设计文档,那么就可以将写代码的速度提高十倍,而且能够更有效地工作。

他们不喜欢“过于复杂”和“过度设计”
拒绝经验过剩,“程序员的工作只能是代码”?(附零基础学习资料)_第2张图片
有时,我认为有些工程师不会考虑其他人的代码。

因此,在创建一个模块的时候,你可以利用在学校学到的所有技术,将所有面向对象的概念都融合到一起,然而他们认为这种代码属于过度设计。

就个人而言,我认为他们只是不愿认真思考别人出色的工作。

花点时间理解对象A继承了对象B,而B调用函数C,而C又调用函数D,有时选项F或G会从配置文件E中获取信息,而E会通过函数F解析来自数据库G的数据,然后将日志存储在Hadoop,CouchDB和S3中,这很难吗?

他们会抱怨说,这些代码太优雅或过度设计。保留精心设计的代码,易于维护的生产环境,这些不过是掩盖他们懒惰的托辞。他们只想让年轻的工程师编写过于简单的代码。

虽然,简单的代码方便阅读和理解。但作为工程师,我们面对的不仅仅是简单的工作,我们需要面对复杂的问题,创建复杂的解决方案。

永远在追逐未来

我只知道目前使用过的几个框架,而且我只需要知道这几个框架。

然而,经验过剩的工程师花了大把时间学习新的框架和语言,或者新的设计原则。

这一切似乎都在浪费时间。作为一名工程师,在大学毕业后你就应该掌握所有的技术,之后的技术都不重要。有些人甚至还在leet code上做练习和学习,好像他们要去参加面试一样。软件工程师又不需要担心失业。

难道不是每个人都会在大学学习编程语言吗?

写在最后

经验过剩的工程师阻碍了整个社会的发展。

他们通过坚持重构代码、追求设计文档并不断的学习,不断推进软件的进步。如果没有经验过剩的工程师,如今的世界肯定已经发明了飞行汽车,还有智力超越人类的机器人。然而,如今我们还在坚持使用280个字符的推文,还不断被亚马逊的广告骚扰——自从上周从网上购买了一个马桶盖以后,这些广告就一直在向我推销同类的马桶盖。

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在文末领取。

如果你对Python感兴趣的话,推荐这套python学习资料,毕竟小编也是用这套方法自学的

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的。

一方面是学习时间相对较短,学习内容更全面更集中。

零基础Python学习资源介绍

Python学习路线汇总

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

Python必备开发工具

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

Python学习视频600合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

100道Python练习题

检查学习结果。

面试刷题



在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

好文推荐

了解python的前景: https://blog.csdn.net/weixin_49892805/article/details/127196159

python有什么用: https://blog.csdn.net/weixin_49892805/article/details/127214402

你可能感兴趣的:(程序员,python,开发语言,程序员,python代码,python学习资料)