Fullstack-为什么凉爽,或者如何从工作中获得乐趣

最近,在哈布雷( Habé)的Fulsteki文章评论中发生了激烈的战斗-这些是永恒的MIDL。 如果你不想受苦,不要走这条路

我将尝试表达我的观点,即完整堆栈真的很酷,以及为什么沿着这条路走也很好。

也许下面的文字将帮助某人踏上这条道路,反之亦然,这将保护脆弱的人们免受其侵害。 一般来说,欢迎来猫。

** AHTUNG! 以下所有内容都不是最终的真理,而是我(这个世界)的主观视野。


首先,让我们将下面将要讨论的术语定义在同一信息字段中,因为 全栈的概念对于每个人都是不同的(就像分为初中/中/高级和其他排名表一样)。

最普遍的观点是,fullstack是一名开发人员,一个人可以完全由他自己来做项目,从后到前。

你们中的有些人可能会说:“嗯,在我的团队中,中间人可以”,这在大多数情况下是不正确的。 如果前端开发人员可以在支持代码中修复/添加某些内容,并深入研究数据库查询,那么这仍然不是完整的堆栈。
毕竟,项目开发不仅是前后代码,而且还在为最终产品构建/配置/支持基础架构。 编写代码还不够,仍然需要使它在对象上工作。 对象可以是默认情况下带有LAMP的5美元VPS,以及AWS / Azure之类的云网络,甚至是您自己的基础设施,其中存在着相当真实的硬件,从服务器/工作站到路由器。

因此,我们不是在谈论“ fullstack-dev”,而是在谈论“ fullstack-in general”。 从谈判阶段到签字完成阶段,都可以拉一个人的项目。

我不会弯曲手指,列出全职专家应该和不应该知道的内容,因为 这是一个非常模糊的清单。 最后,有人设法提交和推广“一种工具的项目”,比如说使用Java与NoSQL,但是今天我们不再讨论这一点。

那么, 如何成为全栈开发人员,您需要成为全栈开发人员还是朝着一个方向发展更好?

简短地浏览一下表面上的正负号。

缺点


可能是最明显的缺点-接受这样一个事实:从拥有最现代的工具和技术到代码的质量,您在所有方面总是( 永远 )不如高度专业的开发人员。 如果您有雄心壮志,那么您总是想站在进步的最前沿,您想弯曲自己的手指, 然后看着其他人像狗屎一样 -全栈并不是您的方式。

全职寻找工作比一种技术的开发人员容易得多。 但是,找到一份高薪工作仍然更加困难。 矛盾吧? 但是,在大多数情况下都是这种情况(除非我们当然希望将完整堆栈用作完整堆栈,而不是作为“ Java程序员”使用)。 人们从工作的第一天/几个月开始就需要支付高额费用,通常他们不需要“既有胡扯,有收割者,又有花花公子”-在通用机制中,您需要另外一个运转良好的齿轮来完成一项任务并将其做好, 就像提利德所说的 。 当然,有例外,但没有我们想要的那么多。

一件头盔工作意味着资源的有限性。 即 您无法实现真正​​的大型软件产品。 即使有足够的知识,也不会有足够的时间。 您将无法发布杀手级游戏(小型独立开发是好的,但与它们无关),操作系统或Mega-Office-XXL。 如果人们承担了太大的项目却没有计算出他们的实力,通常会感到筋疲力尽。 如果您喜欢做游戏,或参加大型项目(通常是国际项目),或者想参加极限活动,那么就读一所大学(从事现役工作2至3年)后,在任何一个领域就可以获得高薪-您也不在这里。

你必须一直学习。 不断。 很多 为了不同的东西。 如果您不寒而栗地回顾了多年的学习,会议和网络研讨会会激起您的不喜欢,如果您不准备花费数小时阅读数百万吨的信息垃圾,寻找其中有用的粒子,如果您对必须管理的技术感到厌烦,无论您的意愿和喜好如何-您不需要全栈路径。 您需要了解(并接受)这里需要一些Zen。 您只需将自己拖到正在发生的事情上,这并不是每个人都可以做到的。

永远不要忘记,一个人实际上是一个单任务的人,但是您将不得不不断模仿多任务模式(不同的语言,不同的开发环境,不同的方法,但是“编写代码”和“部署基础结构”的概念是不同的)。 相信我,起初这是非常困难的,并且会导致速度降低和很多错误。

最后,如果工作场所不涉及任何职业阶梯,总是有被这种情况束缚住并停止发展的风险。 可悲的是,成千上万的潜在优秀工人坐在小桌子上,完全没有做他们10年前想要的事情。 是的,他们可以在Windows Server中,* nix中(也许在Java和Python中)进行操作,它们在C#中支持某些技术,很久以前,“企业门户”是用PHP + JS编写的,但是没有更多的任务了,一切都在办公室中调试了,一切正常。
值得一提的是,在35到40年间跨越边界,将人们内心的保守主义包括在内,再​​加上这种舒适的沼泽,最终导致一种“没有把手的手提箱”。 而且,打破这种恶性循环每年变得更加困难。 警惕这种情况,因为胡须和毛衣的生长速度比那些已经写了十年的狭窄专家还要快。

也许今天有足够的恐怖电影,让我们来谈谈专业人士


你什么都可以做。 好吧,或者差不多。 从公司网站到移动应用程序。 毕竟,您不限于1-2种技术。 您甚至可以在单个Intranet上构建您的微型帝国。

如果您已经进行了很长时间的全栈工作(最重要的是-成功),那么可以很轻松地领导开发团队。 成为建筑师。 那些在任何重大项目中处于最前沿的人。

如果您是个闷闷不乐的内向人,那就爱汽车,而不喜欢别人-在偏远的地方赚钱。 悠闲地领导几个项目,您可以赚很多钱,而不必花费精力与团队沟通。

如果您想与人交流,您会使用一种已暂停(或训练有素)的语言(或者您只是一个意志力狡猾的内向者)-您可以通过渗透客户的灵魂来赚取更多的钱。

应该理解,您将永远没有工作。 如果您是正确的全筹码,那么您应该在任何技术上都处于中间位置。 甚至在“高级中间人”上(这是Google不会带领团队走上街头,而是在一个或多或少严肃的项目中-很容易的时候)。

最后,一些简单明了的(提示,并非所有人,也并非总是如此)提示。 我将自觉地专注于代码库,而不是基础架构,以免引起读者的兴趣。

提示一。 不要让你的骄傲凌驾于你之上 。 这很重要。 认为有些人做的比您更好。 向他们学习,如果可能的话。 从根本上讲,“你们全都是狗屎,但我全是人,我能做的一切”的做法是错误的,而且不仅打击虚荣,而且打击钱包。 如果您爱自己和金钱,请遵循以下建议。

秘诀二。 几年一次或两次,很高兴在一个狭窄的专家团队中工作。 这大大提高了技能,因为该技术不是停滞不前,而是以机车的速度奔波,并且狭窄的专家试图成为潮流。 如果有这样的机会,请不要错过它,学到很多东西,在旧项目中发现很多瓶颈,不要让它们出现在新项目中。

秘诀三。 不要试图学习ALL YaP。 首先,这根本不可能,其次,没有必要。 在您的项目中使用经过精心研究的技术,这些技术是您真正的“签名者”。 您需要研究新的核材料(至少用于一般开发),但是只有在对它们真正了解之后,才应将其应用于实际项目中。 从语言直接转换为语言,以及如何使用它们,以何种质量使用,例如从Java切换到Kotlin或Scala可以获得什么好处。 如果您不了解这种优势,则可能是该语言尚未成熟,或者(您很有可能)自己。 “给了两个星期的时间去阅读斑点,我会写这个东西”的方法是一个不好的方法。

秘诀四。 如果您查看1-3年前的开发代码而又不想修复它,则很可能会遇到危机,例如开发人员的危机(或在各个方面都没有理想的代码)。 尝试技巧2。

秘诀五。 从开始的那一刻开始,发展客户群。 建立权威。 您和您的发展应该知道。 无论您是在企业工作还是在远程站点上工作,都是无关紧要的。 如果您在与人沟通时没有困难,请务必花时间与客户沟通。 并且双重需要-与需要使用您的产品的人员直接沟通。 因此,您将能够更好地思考未来项目的架构。

秘诀七。 衡量工具和任务。 请勿从大炮向麻雀射击。 仅仅因为一个原因,就无需部署具有二十一点和对社会责任感低的女孩的本地基础设施。 您可以自定义它。 而且您也不需要将5MB JS框架拖到该站点上(只是因为您可以在其中)。

无需从背面向正面拖动背面的位置。 相反,不要。 请记住,如果您的项目突然间拐杖太多,而其技术规格在开发过程中并未更改100,500次,则意味着您对体系结构的设计不佳。 如果可能,请更正它,否则请确保在以下任务中考虑此问题。

第八届理事会。 正确设置优先级。 请记住,您的任务首先是使产品尽可能方便可靠 。 即使您对美丽有肥厚的感觉,也应将美丽带入最后。

ew 也许这足以开始。

谢谢大家的关注。

哦,是的,我差点忘了……让我们开始吧!

Source: https://habr.com/ru/post/zh-CN430430/


All Articles