
就在15年前的这一天,我动摇着膝盖,越过了一家小型省级互联网服务提供商的办公室。 我作为程序员的第一份真正工作。 几乎没有知识。 肚子里某处传来一阵惊恐的声音,建议转身逃跑,直到最后感到不高兴为止。 进进出出深呼吸,在这里,首席执行官已经把我带到一间小地下室里,指的是一台半组装的计算机,它的表现更好:“这是您的工作场所。 安顿下来。” 这样就开始了我的职业生涯。
但很快就到现在。 现在,我坐在莫斯科市中心久负盛名的商务中心舒适的办公室里,写下这些文字。 与大型国际品牌合作以及开发复杂的金融技术应用程序的背后。 已阅读数百本书,并撰写了数十篇文章。 伟大的躁狂症早已治愈。 管理职位被测试并被拒绝。 找到内心的平静。 对专业的热爱得以保留。 但是,这不是“我是个什么样的人”系列文章。 照常做,也会做得很好。” 本文是关于我犯了什么错误以及可以做得更好的事情。 本文回顾了我的职业生涯。
如果没有发展就换公司
我时不时地陷入那些明显超过了标准的公司。 看来他们付了很多钱,这里的一切都很熟悉和方便。 您早上来时,在咖啡机上选择常规模式。 您与Katya交换了会计方面的笑话。 您坐在椅子上,这早已成为您的情趣形状。 您打开笔记本电脑,然后进入众所周知的典型任务的日常工作。 注意! 这是一个陷阱!
工作不应该成为家务。 必须有挑战。 并非每天,也许不是每个月,但是如果您觉得太简单,那就该离开了。 无需担心困难。 如果在面试中您觉得这些家伙正在解决过于复杂的问题,并且您一定在第一天就搞砸了-此优惠适合您。 寻找最困难的任务,这是您可以改进的唯一方法,并且每天4小时都不会在自己喜欢的公司的厨房里退化
成为程序员,而不是程序员
编写代码!=解决问题。 代码只是解决问题的工具之一。 哦,实现这个简单语句的路要走多长时间。 浪费了多少时间。 我们的程序员被强大的代码所吸引。 看到Jira中的下一个任务,我们斜着看她的眼睛,宁可写代码! 一旦编写了代码,我们就会对这项任务失去兴趣,并选择新的任务。
不幸的是,我们很少面临透明和可理解的任务。 在打开IDE之前,我必须100%确保知道我要解决的问题。 一个好的标记是分解。 如果我可以逐步绘制解决方案并知道每个步骤将产生什么结果,那么我将打开编辑器并编写代码。
请记住:您作为程序员的价值并不在于具有四种异乎寻常的模式的优雅代码中。 由于代码的优美性,还没有公司成功(无论如何,我都不记得这些示例)。 始终牢记最终结果。
不要害怕尝试
每次启动一个新的宠物项目时,我要么以知名技术启动它,要么几周后转而使用它们。 它快得多了。 如果您有喜欢的兔子,用卡夫卡折磨的目的是什么? 如果数据结构很容易适合关系模型,为什么还要使其适合文档? 每次,我都需要快速进入产品的想法阻止了我的发展。 结果,我的大多数项目对github都是沉重的负担,这不仅给我带来了世界声誉,而且没有给我带来新知识。 为了跟上我设定的最后期限,我浪费了时间。
实验。 不用着急。 开拓视野。 如果您是技术方面的专家,请在工作中使用此知识,但要使用工作以外不熟悉的工具。 从心理上讲这很困难,因为您将了解,使用一种著名的编程语言,您已经可以从马尔代夫的项目中获得成名的好处。 而且您必须弄清楚为什么将咒语转换为int会给出字符代码而不是数字。
启动宠物项目
我早就明白:成为一个成功的程序员,仅仅成为一个好的程序员还不够。 您需要了解产品的开发范围,而不仅仅是专业。 但是如何实现呢? 我可以阅读数百本有关营销的书,如果不实践这些知识,它们将毫无用处。 我可以订阅该国最好的产品专家的电报频道,但是如果我没有要试用的产品怎么办?
自从我开始第一个宠物项目以来,对于我来说,与前线,质量保证,产品,营销人员和任何其他团队成员一起找到通用语言变得更加容易。 毕竟,我开始更好地了解他们的工作。 现代编程非常基于团队,而在我自己的项目上工作的经验有助于我与其他团队成员找到共同点。
学会分解
我一直都在正念方面有问题。 我在代码中犯了非常愚蠢的错误。 不是因为我听不懂或不知道该怎么做。 我只是不专心。 我以各种无聊的方式(例如,看着分针)来解决这个问题,但是没有任何帮助。 自然,每次遇到这样的错误之后,我的自尊心就会急剧下降。 如果自尊心为零,我们可以谈论什么样的发展?
解决方案以分解的形式出现。 更少的任务=更少的代码=更少出错的可能性。 我经常听到“此任务无法分解”的说法,但我个人认为任何任务都可以无限期分解。 如果无法成功,很可能您只是不完全了解该任务。
学习工具
长期以来,我将IDE用作易于导航的常规代码编辑器。 而且我还有一个老板,他专门用mcedit进行编程,并且经常在舞台上被问到:“谁没有你的IDE?” 或者我有一个开放的24/7终端,但我根本不知道如何使用它。 我住了很长时间,没有静态分析器和样式修复程序。 忽略热键。 而且我没有发现任何问题。
现在,我已经订阅了我工具的所有YouTube官方频道。 您可以从他们那里学到多少,真是太神奇了。 我仔细查看同事的工作过程,并经常采用对我来说似乎很有趣的东西。 此外,一些工具还向我们展示了一些弹出式窗口,它们告诉您如何改善交互过程。 不要忽略这一点。
参与开源
开源-很痛。 您的每个PR都会在显微镜下检查。 每个变量,每个字符。 每个测试都会受到质疑。 这不是您的团队负责人,而是:“哦,好吧,让我们如此着迷。” 您不会与这些人达成协议,也不会抱怨他们,也不会被授权粉碎。 他们甚至不付你钱。 在大约第二十五条评论时,我真的想将所有内容发送给nafig。
要有耐心! 与世界上最好的程序员一起工作,Opensource是一个提升技能的绝好机会(尽管这取决于项目)。 从小开始。 选择一些简单的工具或库。 转到问题部分,查看可以解决的问题。 我必须说通常在github上没有毒性。 如果您的PR被撕成碎片,那么他们将非常有建设性地做到这一点。 无论如何,以我的经验。
相信自己
有时我会遇到一些情况,想丢下所有东西并去建筑工地工作。 随身携带砖块。 这种情况可能不会以任何方式结束。 这改变了日常需求。 还是我不想学习的技术。 或集成完全缺少文档的第三方服务。 或仅仅是功能,以了解哪些需要金融服务人员的培训,并且所有产品专家都只会说英语。 我吓坏了,拖延了,放弃了,挫败了对猫的愤怒。
现在有一个技巧可以帮助我完成这些任务。 我只是永远记得最后我可以处理它。 总是应付。 并将永远如此。 您只需要坐下,学习,思考,整理,向正确的人提出正确的问题。 最主要的是要相信自己并保持冷静。 总的来说,也许这是我将在本文结束时提出的最重要的建议。 保持冷静并相信自己。 您可以处理。