小程序动态

15502933391

咨询热线

干货_软件开发从业18年,我总结了9个最有价值的经验

★★★提议隆哥蒙他们★★★2020年Java原创丘托韦库连载中中【000期】Java最全丘托韦库观念导图【020期】JavaSE系列产品丘托韦汇整(共18篇)【028期】JavaWeb系列产品丘托韦汇整(共10篇)【042期】JavaEE系列产品丘托韦汇整(共13篇)【049期】数据库系列产品丘托韦汇整(共6篇)【053期】开发工具系列产品丘托韦汇整(共3篇)【065期】数据结构与算法丘托韦汇整(共11篇)【076期】分布式丘托韦汇整(共10篇)【077期】综合性丘托韦系列产品(一)【078期】综合性丘托韦系列产品(二)【079期】综合性丘托韦系列产品(三)【080期】综合性丘托韦系列产品(四)【081期】综合性丘托韦系列产品(五)【082期】综合性丘托韦系列产品(六)【083期】综合性丘托韦系列产品(七)【084期】综合性丘托韦系列产品(八)【085期】综合性丘托韦系列产品(九)【086期】综合性丘托韦系列产品(十)【087期】综合性丘托韦系列产品(十一)【088期】综合性丘托韦系列产品(十二)【089期】综合性丘托韦系列产品(十三) 更多内容,点击上面白字查看作者 | Fernando Doglio译者 | 张健欣策划 | 褚杏娟从 14 岁起,我就已经开始在父母的卧室里写标识符。当时,通过非常慢的网络,我阅读任何人能够获得的小东西。20 岁时,做为一位 Web 开发者,我签了人生中的第一份劳动合同,当时学的是 PHP 和 JavaScript。在这个领域,我花了 18 年时间,才辨认出程式设计而已业余的一小部分。即使是空闲时间出于兴趣,我也不会停止编码,但组织工作中还有很多其他事。有些事,开发者往往很晚才能领悟到,这也是为甚么我想和大家分享我的经历,以及我觉得很关键的 9 个经验教训。1 放下刚愎自用开发者通常很刚愎自用。这是历史事实。为甚么呢?我指出,任何人认真对待他们业余的人单厢指出他们有点像音乐家。他们虽然不会在数百万人面前唱歌或者作画,但他们有时在以一类非常优雅高效的形式编写标识符、化解非常复杂的难题,他们同样为他们的组织工作感到自豪。开发者和数学家那样,补救的形式都有点像音乐家。正因如此,他们很维护他们的标识符——就像熊妈妈照顾她的后代那样。亲手写下这些标识符的他们,无法忍受别人对他指指点点。但这对任何人人都没协助。他们热爱他们的组织工作,但更关键的是他们正在补救。通过与他们讨论他们的设想和方案,可能会出现更快的替代方案。这没甚么不对的。历史事实上,合作通常会产生最差化解方案。我见过各种各样刚愎自用的开发者,但没见过哪种刚愎自用对开发者会有所协助。因此我的提议是:当你已经开始做为一位开发者组织工作时,请把你的刚愎自用抛掉,多听听他们对你组织工作的看法。专业委员会接受这种两个历史事实:更快的设想可能来自你的头脑之外,它们只会帮你提高他们的专业技能。只有倾听反馈,你才能赢。2 词汇而已辅助工具假如你只懂 JavaScript,大部份的难题单厢像钉子那样。千万别再称他们是一位 Java 开发者或 JavaScript 开发者。由于某些词汇的特性或语法,你可能会偏爱一些词汇,这很恒定。然而,假如你能学点别的小东西,就会受益匪浅。自学新词汇,尤其与你日常生活组织工作所用的本体论相同的词汇,会协助你打开路子,辨认出补救的相同办法。这一点我怎么强调也不过分:自学多种词汇并使用一段时间,你会从中受益。我几年前读过一本书《七周七词汇》,展示了各种可用的快捷键,这让我路子大开。很多选择是我唯独没想到过的,因为我太著眼于他们的日常生活任务和日常生活辅助工具,唯独没停下来看看其他小东西。他们是开发者,知道怎样通过标识符来补救,但千万别把他们放到两个箱子中,你会被这个箱子的大小所限制。看看这个箱子外面的小东西,跳出这个箱子思考,试试其他快捷键、其他词汇、其他补救的方式。即使而已一会儿,你也会带着捷伊设想和更大的心态做出更快的抉择。3 程式设计不须要记下大部份的小东西有时,开发新手指出他们须要把大部份事都记在心里,因此当他们意识到他们已经开始忘记怎样写两个简单的 for 语句时,就会感到很糟糕。这不仅是恒定的,而且我指出这也是健康的。有太多小东西须要梦境了,但他们其实不须要梦境,他们只须要拥抱这种两个历史事实:网络是另两个有力的辅助工具。就像他们须要 IDE 那样,他们须要网络来寻找标准答案。他们都这种做,假如你一已经开始就ych,就千万别在这种感觉上浪费时间。只须要寻找你的标准答案并化解你的难题。这种想一想:每一类词汇都有一类类似但又稍有相同的观测者(Observer)模式的同时实现形式。你指出甚么更现实?理解观测者模式有甚么好处以及它能化解甚么难题,还是读懂你所使用的每一类词汇怎样同时实现它?假如你知道它能化解你的难题,所以你就真的化解了你的难题。剩下的而已搜寻同时实现它的最差方式。其他搜寻也是那样。只著眼于他们业余中关键的补救的方面,让谷歌帮你慢慢回忆。这才是正确的形式。4 你须要终生自学或者说,“你应该终生自学”,这完全取决于你他们与否要跟得上行业的最新发展。假如你想要保持相关性,所以你就要一直自学。技术在发展,词汇在变动,这都很恒定。诚然,有些生态系比其他生态系变动得更快,跟得上他们的步伐似乎是一项艰巨的任务。但是,读懂你而已两个人,不可能无所不知,只需著眼于关键的事。假如你要专业委员会一件事,所以我的提议是专业委员会怎样自学。这听起来很傻,但这可能是一位开发者须要的首要专业技能。他们要在快速自学新专业技能方面表现得更快。否则,你将陷入被标记为“过时”的风险。同时,这也是本文提到的其他经验发挥作用的地方。变动、改变、捷伊挑战、没刚愎自用——大部份这些单厢协助你自学并拓展专业技能范围。你做的越多,效果就会越好。最终,你会辨认出大部份的词汇都是类似的。你将已经开始看到它们公共的根本,你将能够用其中任何人一类词汇组织工作。你所要做的就是阅读一些关键的小东西。你的整个业余生涯都要自学:新词汇新(老)程式设计本体论新组织工作方式补救的新方式与团队互动的新方式检查和测试标识符的新方式假如你还没准备好永远当一位学生,那你须要考虑下这个业余与否适合你。请注意,我不是说“立刻辞职”,而是考虑下与否愿意开放观念来持续自学。5 标识符要补救,而非完美这个难题我说过很多次,但是做为开发者,他们倾向于指出他们的标识符在发布之前须要是完美的。虽然这并没甚么不对,但也可能是两个潜在的难题。早期优化是两个难题,因为你可能在某件可能并不须要优化的事上花费大量时间,而且在某些情况下执行优化时,你会做出破坏功能的假设。所以,把注意力集中在须要做的组织工作和你正在尝试化解的难题上,一旦难题修复,立马测试、迭代结果,看看团队对你的化解方案有甚么设想——即使你已经看到了改进的方式。假如你须要花费两天以上的时间来让它完美,但它现在就可以投入生产,很有可能现在就应该投入生产。归根结底,你是在补救。补救越快,对你的用户就越好。6 先让标识符起作用,然后再优化跟得上面提到的观点那样,千万别陷入早期优化的黑洞。即使你指出你可以快速优化,但一旦你已经开始做,你就会辨认出时间膨胀效应是真的。做为软件开发者的首要任务是写两个功能或修复两个 bug 来让它起作用——无论标识符看起来多丑或者你的方案可能多么低效。假如它起作用了,你就证明了它是可行的。这就成功了一半。第二步是优化它。这是可选的一步。一些人容易忘记的细节,你可以用来优化标识符的时间取决于很多变量,这些变量有时不受你的控制。因此,集中精力让它起作用,然后再看看你与否真有时间来优化它。早期优化意味着要边写标识符边优化,这是一类危险的形式,因为优化时,他们都是在对执行时间、数据要求、内存需求以及其他他们尚未看到的因素进行假设,任何人这种的假设都可能是错误的,最终会在你的逻辑中引入 bug。想想 TDD 组织工作流:编写测试来理解你的功能须要做的大部份事(它将失败)。编写标识符来通过测试。现在考虑优化你的标识符。步骤 2 是必需的。你首先须要考虑通过测试,也就是说让功能起作用。测试不关心你使用的算法或者你与否使用了三层嵌套的 if 语句。稍后才会做那些,可能是标识符评审过程中的一部分。7 项目最后的 10% 往往要花费 90% 的时间假如你两个人独自组织工作,这一点尤其关键,但是团队也会有这种细节计算失误的难题。任何人两个做完项目的人单厢告诉你同样的事(这不仅仅适用于他们行业):你一已经开始会略过很多细节,最后才不得不考虑它们。这很恒定。他们都倾向于一已经开始著眼于重大的功能,将比较小的细节或已知的 bug 留到最后。但是它们仍然须要化解,这就是额外 90% 的组织工作。精细的组织工作比较花时间。你须要测试、修复、重新测试、写文档、执行用户培训、展示最终方案等等。当然,这取决于你的环境、客户以及很多其他因素,但总会有一些小东西。所以读懂:当你指出你已经写完标识符的时候,你很可能忘记了一些小东西。8 写过一次以上的标识符,须要进行抽象编码是关于抽象的行为。通过抽象通用逻辑,他们可以在其他地方复用它,但是一已经开始的时候,他们有时会注意不到抽象的关键性。这是我个人的经验法则:假如我在两个地方写了相同的标识符,所以就将它们放到两个函数中(或者两个方式,两个模块等等... 你懂的)。即使数字二对你来说很低,但是要考虑到将来你可能在其他地方使用抽象后的标识符。而且通过把它放到两个常用的地方,你现在就可以使用它了。抽象和规模有关。一段抽象的逻辑可以用很少的精力就被复用很多次,而到处复制粘贴标识符虽然很容易,但用的越多须要的精力就越多。想想,假如你因为两个 bug 不得不改变一段逻辑,而它在你的项目中被重复了 5 次,会发生甚么?你在修复这个 bug 时,会有 5 次机会犯错。同样的逻辑也适用于你的日常生活任务。假如你辨认出他们做某件事一次以上,所以它可能就可以用某种形式自动化。这是效率的关键,因此千万别仅仅在标识符中寻找重复模式,在你的动作中也可以寻找重复模式。假如你能自动化完成一项每天须要 10 分钟的任务,你两个月就能节省 5 个小时。9 副业项目不是必需的,但它们确实有协助有人说,假如你想要成为一位成功的开发者,你须要创建副业项目。我并不认同这一点。我个人认识很多优秀的开发者,他们只在朝九晚五组织工作时写标识符。老实说,我很钦佩他们。他们能够在做好组织工作的同时,享受他们的空闲时间做其他事。这绝对没甚么难题。然而,有时你须要一些额外的练习。有时你觉得他们落后于其他同事。而这时,副业项目就会有所协助。我不是说构建两个新项目,让数以百万计的人使用,或者对产业进行革命性改变,当然假如你喜欢的话,就去做。但是我讨论的是拷贝他们的项目,以便从中自学。我说的是通过化解 bug 或者增加额外功能来向他们的项目做贡献。你可以用副业项目来体验你不经常看到的地方。假如你每天写 8 小时的单元测试,也许可以考虑从头创建一些小东西并且开发一些功能。假如你厌倦了独自组织工作,可以考虑为现有的项目做贡献,体验一下怎样与他们协调组织工作。你可以使用副业项目来强化他们的薄弱环节,从而协助你提高他们的专业技能。但同样,千万别为了被指出是一位严肃的开发者,而指出你须要为他们组织工作或者拥有两个绿色的 GitHub 活动图。那太傻了。10 结论这是我做为一位开发者在过去 18 年中学到的最难的 9 个经验教训,希望通过我的分享,能对你的新(或者已经从事的)业余有所启示。原文链接:之前,给大家发过三份Java复试宝典,这次新增了一份,目前总共是四份复试宝典,相信在跳槽前两个月按照复试宝典准备准备,基本没大难题。《java复试宝典5.0》(初中级)《350道Java丘托韦:整理自100+公司》(中高级)《资深java复试宝典-视频版》(资深)《Java[BAT]复试必备》(资深)分别适用于初中级,中高级,资深级工程师的复试复习。内容包含java基础、javaweb、mysql性能优化、JVM、锁、百万并发、消息队列,高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级等等。看到这里,证明有所收获

相关文章

网友留言

发表评论

◎欢迎参与讨论