Да си правиш собствени инструменти
Една от повтарящите се теми в живота ми е премахването на неудобства. Независимо дали става дума за личния ми живот или за работата ми, винаги съм се стремял да улеснявам както себе си, така и хората около мен.
През двайсетте ми, това най-често се изразяваше в безкрайно търсене на най-добрия софтуер за дадена задача. Този подход ми служеше отлично години наред, докато изграждах уменията и най-вече увереността си. С времето обаче начинът ми на мислене се промени – от „Кой инструмент да използвам?“ към „А защо просто не си го направя сам?“
Да се учиш, докато създаваш
Никога не съм бил човекът, който се хвърля с главата напред в нов проблем. Предпочитах първо да прочета документацията, да разбера как изглежда цялостната картина и едва след това да започна да пиша код.
През последните няколко години обаче това се промени. Може би „нетърпелив“ не е най-точната дума, но започнах все повече да възприемам уроците и документацията като отправна точка, а не като последната инстанция. Те са чудесни, за да научиш синтаксиса или да вземеш някой изпит, но рядко ти дават разбирането, което идва с реалния опит.
Опитът определено има своята роля. След като си решил достатъчно подобни проблеми, започваш да разчиташ, че ще намериш решение в движение. Добавете към това бума на AI, както и неочакваното свободно време, и реших да си поставя предизвикателство: един проект, с който да науча няколко нови технологии и да го завърша за по-малко от седмица.
Изборът на проект
Проектът на практика сам се избра. Личният ми сайт стоеше недовършен от години.
Отчасти причината беше липсата на време, но основната беше, че не ми се занимаваше с WordPress или някоя друга сложна CMS система, само за да публикувам по някоя статия от време на време. Исках нещо много по-просто: пиша Markdown файл, изпълнявам команда и постът е публикуван.
Нямах нужда от визуален редактор или сложен процес за публикуване. Имах си IDE, а когато не съм пред компютъра – Notes на телефона. Целта винаги е била една и съща: максимално улеснение.
Не просто генератор за статични сайтове
Не се опитвах да създам популярен генератор за статични сайтове. Целта ми беше да се уча, докато го правя.
Правенето на нещо от нулата ме принуди да вземам архитектурни и технически решения, които повечето онлайн уроци просто прескачат. Всяко решение водеше до нов въпрос, а всеки въпрос – до поредното задълбаване в детайли. В крайна сметка научих много повече, отколкото ако просто бях минал някой курс или бях пресъздал примерен проект.
Много от тези задълбавания заслужават отделни статии. В следващите няколко поста ще разкажа за решенията, които взех, технологиите, с които експериментирах, и неочакваните резултати, до които стигнах. Генераторът за статични сайтове никога не беше крайната цел – той беше просто извинението да си поиграя с идеи, които отдавна ми се въртяха в главата.
За финал
Един от най-важните уроци, които DevOps ми даде, не беше Kubernetes, CI/CD или Infrastructure as Code. Беше осъзнаването, че ако дадена задача е повтаряща се или ненужно трудна, не е задължително да търсиш по-добър инструмент – можеш просто да си го направиш сам.
Почти всички инструменти, които ще създам, никога няма да бъдат използвани от повече от шепа хора. И това е напълно нормално. Да направиш нещо, което да се хареса на масовата аудитория, изисква съвсем различен начин на мислене и различни умения. А истината е, че това много рядко – ако изобщо – прави живота на хората по-лесен.