Мне Бы Хотелось Начать Программировать Раньше

Признаю, я допустил ошибку.

Мне следовало начать программировать раньше, намного раньше.

Возможно, это признание поможет кому-то свернуть на правильную дорогу.



Мне бы хотелось начать программировать раньше

Я управлял своей веб-студией в течение многих лет, не программируя сам.

Мы реализовали множество успешных проектов для клиентов, большинство из которых преуспевают и по сей день.

Они даже создали собственную мощную CMS с электронной коммерцией на основе ранее популярной платформы.

При этом, если честно, к созданию сайтов я всегда относился несерьезно.

Он возлагал больше надежд на свои стартапы и старался сделать клиентские сайты проще и быстрее.

Поэтому я постоянно ставлю перед разработчиками задачи упростить процесс создания сайтов, чтобы их могли делать обычные люди без излишних компетенций.

Да, получилось, сейчас трудозатраты на создание даже сложных интернет-магазинов невелики, но сделать CMS коммерческим продуктом так и не удалось.

И есть главная причина такого результата.

Проблема в том, что я не вникал в реализацию.

Совсем.

Я думал, это чертовски сложно .

Я боялся, что не смогу погрузиться настолько, чтобы заниматься реальными делами.

И как показала практика, зря.

Еще со школьных и университетских времен я имел общее представление о компьютерных системах и алгоритмах, и это помогало мне ставить перед программистами общие задачи, даже помогать им декомпозировать сложные задачи и сформулировать общий алгоритм решения, но все это происходило на интуитивном уровне.

без четких знаний, а по поводу конкретной реализации вообще ничего вменяемого предложить не смог.

Мне сказали, что не обладая профильными компетенциями, добиться успеха в этом бизнесе невозможно.

Невозможно создавать хорошие ИТ-продукты, не разбираясь в коде.

Но я почему-то восприняла это как данность, с которой ничего не поделаешь.

И тут жизнь заставила меня окунуться в чудесный мир разработки.

Я заглянул «под капот» и мне стало страшно: как вообще всё могло работать? Я говорю не только о своей продукции, но и о том, что происходит в отрасли в целом.

Меня поразило, насколько все хрупко, насколько далеки стандарты от идеалов, насколько широк и разнообразен стек технологий, сколько разных вещей нужно знать, чтобы что-то сделать.

И какие невероятные усилия требуются, чтобы сделать «хороший» код.



Давайте по порядку

Прошлым летом был наплыв клиентов и пришлось создать относительно много интернет-магазинов и сайтов.

А так как наша система продвинутая, то настройка бизнес-логики и наполнение сайтов прошла легко и быстро; основная проблема заключалась в создании красивого макета (не хватило возможностей блока с настройками без кодирования).

Поэтому нам пришлось нанять внештатных верстальщиков.

Я так и не понял, зачем так долго возились, ведь основа уже была и я начал разбираться в проблеме.

Я пытался сразу понять, что происходит в коде страниц наших сайтов, но не смог, это очень сложная структура вложенности дивов, куча классов, в которых черт ногу сломит. Мне было непонятно, как кто-то мог это понять.

Я называю эту проблему «Горе от ума».

Дело в том, что разработчики, как правило, очень умные люди и могут держать в голове более широкую логическую картину, чем среднестатистический неподготовленный человек.

Естественно, для них задача не кажется непреодолимо трудной, и они не принимают во внимание те секунды, которые складываются в минуты и часы, необходимые для понимания задачи; ситуация кажется им нормальной.

Ну думаю, ну не может же я быть настолько тупым, чтобы не понимать верстку, вот и решил изучить верстку отдельно от нашей системы.

Я установил на пробу несколько IDE, посмотрел несколько уроков на YouTube от Freelancer in Life и других, погуглил решения конкретных задач и, если я был совсем глуп, спросил своего разработчика.

По началу было крайне неудобно, но как-то так получилось, что я быстро освоил основы html и css. Особенно мне понравилось, как scss упрощает жизнь, также понравились все эти флексы и сетки, позволяющие добиться большей отзывчивости страниц.

При этом JavaScript у меня как-то не заработал, но тратить на него время я пока не стал.

После я немного углубился в проблему и сформировал некоторое представление о правильной технике верстки и о том, как логически разбить стили на файлы, чтобы быстро настроить стили.

Теперь, обладая знаниями, я более конкретно указал разработчику на проблемы избыточной вложенности, недостаточности смысловых элементов и неудобство работы с ранее существовавшим одним файлом для настройки стилей.

В результате Сергей (Привет!) довольно быстро создал новую профитную тему, где можно было гибко создавать шаблоны и работать со стилями в отдельных файлах, каждый из которых отвечает за свою логическую часть: переменные, общий шаблон, списки, блоки.

, отдельные виды материалов и т. д. При этом html-разметки на страницах стало в разы (!) меньше, и соответственно исчезла вложенность, были удалены некоторые мусорные классы, а стили стали гораздо проще понимать.

(Внимание: не нужно смотреть код наших проектов, там еще много чего нужно улучшить.

Дело в том, что изменения относительны).

Я горжусь своим личным прогрессом.

Меня мотивировала острая необходимость изменить ситуацию.

Изучение небольшого кусочка стека сразу принесло свои плоды: процесс верстки стал стабильным, верстку могу доверить новому специалисту, проведя небольшое обучение и приведя примеры решений, в случае нехватки времени смогу все сделать сам, хотя и не так быстро, как опытный верстальщик, который делает это каждый день.

Следующий кризис, похоже, приведет к следующему этапу профессионального и личностного роста.



Следующий вызов

С годами мы постепенно добавляли множество функций в нашу CMS. Это было достаточно органичное развитие, потому что.

поначалу электронная коммерция не пользовалась особым спросом, потом постепенно требования росли, сначала достаточно было каталога, потом заказов, а позже предприниматели доросли до эквайринга.

По мере развития отрасли и потребителей минимальный набор требований увеличивался.

А в наше время очень сложно загадать все желания сразу даже небольшому бизнесу.

Проблема в том, что фреймворк, на котором мы базировались, перешел на другую версию, и портировать все изменения экономически нецелесообразно, тем более, что его развитие пошло в тупиковом направлении, на мой взгляд. И раньше оно было чрезмерно жирным и сложным, а теперь все только усложнилось.

Нам нужна новая платформа с богатым функционалом.

Возможность кастомизировать проект без программирования очень важна.

Но некоторые модули все равно придется разрабатывать, поэтому программисту должно быть приятно работать с кодом, а новичку - легко его понимать.

Как вы понимаете, поиск идеального фреймворка или CMS все еще продолжается и может закончиться неудачей.

Поэтому возникла идея улучшить свои навыки программирования, чтобы внести необходимые улучшения.

Вопрос в том, как я могу освоить программирование за короткое время.

Я не ставлю перед собой задачу быть хорошим программистом, я просто хочу уметь разбираться в чужом коде, может быть, решать простые задачи, но, самое главное, проектировать грамотную архитектуру.

С одной стороны я понимаю, что времени потеряно немало, но с другой стороны, его еще достаточно, если правильно им распорядиться.

Я определенно не хуже думаю, чем когда был студентом.

Мне по-прежнему скучно концентрироваться на мелочах, но моя настойчивость возросла.

Появился опыт, который подсказывает, что можно выбросить из рассмотрения, а на чем стоит сконцентрироваться.

Из языков разработки мне нравится Rust, но он немного сложен для первого серьезного изучения языка программирования, тем более что практических проблем в его использовании у меня нет. Соответственно, у меня пока нет мотивации его изучать, но я знаю, что мне захочется с ним что-то сделать.

Я думаю, что Python мне подходит больше, он более универсален и мне нравится отсутствие лишних элементов в синтаксисе.

Экосистема веб-фреймворка Python не так богата, как у Php, но это даже лучше.

Чтобы начать изучать язык и работать с распространенными фреймворками, в Интернете есть много бесплатной информации: базовые курсы, сайты для энтузиастов, каналы на YouTube (один Тимофей Хирьянов чего стоит) и официальная документация по Python (даже если вы этого не делаете).

хорошо знаю английский, встроенный гугл переводчик хорошо работает в хроме).

А вот если делать что-то более сложное, то нужно понять, что хорошо, а что плохо, а это сложнее.

В идеале вам нужен опытный наставник, который подскажет, как лучше подойти к задаче с архитектурной точки зрения, куда не нужно пихать классы, и как найти более эффективный подход к реализации задачи.

Очень надеюсь, что кто-нибудь откликнется и поможет мне, пусть и не быстро, стать хорошим разработчиком.

Надеюсь, выгода будет взаимной.

Я не знаю, хватит ли у меня ума и сил, чтобы действительно сделать что-то практичное и полезное, я просто попытаюсь описать и спроектировать некоторые основные бизнес-правила CMS, которые мне хотелось бы использовать, как я это вижу.

Почему и почему я делаю то, что делаю – не знаю, просто не могу не делать это.

Возможно, вам нравится процесс изобретения, проектирования и внедрения чего-то нового и полезного.

Желаю всем полезной, осознанной деятельности с положительными результатами для всей планеты.

Теги: #Карьера в IT-индустрии #Продакт-менеджмент #обучение #саморазвитие

Вместе с данным постом часто просматривают: