Признаю, я допустил ошибку.
Мне следовало начать программировать раньше, намного раньше.
Возможно, это признание поможет кому-то свернуть на правильную дорогу.
Я управлял своей веб-студией в течение многих лет, не программируя сам.
Мы реализовали множество успешных проектов для клиентов, большинство из которых преуспевают и по сей день.
Они даже создали собственную мощную CMS с электронной коммерцией на основе ранее популярной платформы.
При этом, если честно, к созданию сайтов я всегда относился несерьезно.
Он возлагал больше надежд на свои стартапы и старался сделать клиентские сайты проще и быстрее.
Поэтому я постоянно ставлю перед разработчиками задачи упростить процесс создания сайтов, чтобы их могли делать обычные люди без излишних компетенций.
Да, получилось, сейчас трудозатраты на создание даже сложных интернет-магазинов невелики, но сделать CMS коммерческим продуктом так и не удалось.
И есть главная причина такого результата.
Проблема в том, что я не вникал в реализацию.
Совсем.
Я думал, это чертовски сложно .
Я боялся, что не смогу погрузиться настолько, чтобы заниматься реальными делами.
И как показала практика, зря.
Еще со школьных и университетских времен я имел общее представление о компьютерных системах и алгоритмах, и это помогало мне ставить перед программистами общие задачи, даже помогать им декомпозировать сложные задачи и сформулировать общий алгоритм решения, но все это происходило на интуитивном уровне.
без четких знаний, а по поводу конкретной реализации вообще ничего вменяемого предложить не смог.
Мне сказали, что не обладая профильными компетенциями, добиться успеха в этом бизнесе невозможно.
Невозможно создавать хорошие ИТ-продукты, не разбираясь в коде.
Но я почему-то восприняла это как данность, с которой ничего не поделаешь.
И тут жизнь заставила меня окунуться в чудесный мир разработки.
Я заглянул «под капот» и мне стало страшно: как вообще всё могло работать? Я говорю не только о своей продукции, но и о том, что происходит в отрасли в целом.
Меня поразило, насколько все хрупко, насколько далеки стандарты от идеалов, насколько широк и разнообразен стек технологий, сколько разных вещей нужно знать, чтобы что-то сделать.
И какие невероятные усилия требуются, чтобы сделать «хороший» код.
Давайте по порядку
Прошлым летом был наплыв клиентов и пришлось создать относительно много интернет-магазинов и сайтов.А так как наша система продвинутая, то настройка бизнес-логики и наполнение сайтов прошла легко и быстро; основная проблема заключалась в создании красивого макета (не хватило возможностей блока с настройками без кодирования).
Поэтому нам пришлось нанять внештатных верстальщиков.
Я так и не понял, зачем так долго возились, ведь основа уже была и я начал разбираться в проблеме.
Я пытался сразу понять, что происходит в коде страниц наших сайтов, но не смог, это очень сложная структура вложенности дивов, куча классов, в которых черт ногу сломит. Мне было непонятно, как кто-то мог это понять.
Я называю эту проблему «Горе от ума».
Дело в том, что разработчики, как правило, очень умные люди и могут держать в голове более широкую логическую картину, чем среднестатистический неподготовленный человек.
Естественно, для них задача не кажется непреодолимо трудной, и они не принимают во внимание те секунды, которые складываются в минуты и часы, необходимые для понимания задачи; ситуация кажется им нормальной.
Ну думаю, ну не может же я быть настолько тупым, чтобы не понимать верстку, вот и решил изучить верстку отдельно от нашей системы.
Я установил на пробу несколько IDE, посмотрел несколько уроков на YouTube от Freelancer in Life и других, погуглил решения конкретных задач и, если я был совсем глуп, спросил своего разработчика.
По началу было крайне неудобно, но как-то так получилось, что я быстро освоил основы html и css. Особенно мне понравилось, как scss упрощает жизнь, также понравились все эти флексы и сетки, позволяющие добиться большей отзывчивости страниц.
При этом JavaScript у меня как-то не заработал, но тратить на него время я пока не стал.
После я немного углубился в проблему и сформировал некоторое представление о правильной технике верстки и о том, как логически разбить стили на файлы, чтобы быстро настроить стили.
Теперь, обладая знаниями, я более конкретно указал разработчику на проблемы избыточной вложенности, недостаточности смысловых элементов и неудобство работы с ранее существовавшим одним файлом для настройки стилей.
В результате Сергей (Привет!) довольно быстро создал новую профитную тему, где можно было гибко создавать шаблоны и работать со стилями в отдельных файлах, каждый из которых отвечает за свою логическую часть: переменные, общий шаблон, списки, блоки.
, отдельные виды материалов и т. д. При этом html-разметки на страницах стало в разы (!) меньше, и соответственно исчезла вложенность, были удалены некоторые мусорные классы, а стили стали гораздо проще понимать.
(Внимание: не нужно смотреть код наших проектов, там еще много чего нужно улучшить.
Дело в том, что изменения относительны).
Я горжусь своим личным прогрессом.
Меня мотивировала острая необходимость изменить ситуацию.
Изучение небольшого кусочка стека сразу принесло свои плоды: процесс верстки стал стабильным, верстку могу доверить новому специалисту, проведя небольшое обучение и приведя примеры решений, в случае нехватки времени смогу все сделать сам, хотя и не так быстро, как опытный верстальщик, который делает это каждый день.
Следующий кризис, похоже, приведет к следующему этапу профессионального и личностного роста.
Следующий вызов
С годами мы постепенно добавляли множество функций в нашу CMS. Это было достаточно органичное развитие, потому что.поначалу электронная коммерция не пользовалась особым спросом, потом постепенно требования росли, сначала достаточно было каталога, потом заказов, а позже предприниматели доросли до эквайринга.
По мере развития отрасли и потребителей минимальный набор требований увеличивался.
А в наше время очень сложно загадать все желания сразу даже небольшому бизнесу.
Проблема в том, что фреймворк, на котором мы базировались, перешел на другую версию, и портировать все изменения экономически нецелесообразно, тем более, что его развитие пошло в тупиковом направлении, на мой взгляд. И раньше оно было чрезмерно жирным и сложным, а теперь все только усложнилось.
Нам нужна новая платформа с богатым функционалом.
Возможность кастомизировать проект без программирования очень важна.
Но некоторые модули все равно придется разрабатывать, поэтому программисту должно быть приятно работать с кодом, а новичку - легко его понимать.
Как вы понимаете, поиск идеального фреймворка или CMS все еще продолжается и может закончиться неудачей.
Поэтому возникла идея улучшить свои навыки программирования, чтобы внести необходимые улучшения.
Вопрос в том, как я могу освоить программирование за короткое время.
Я не ставлю перед собой задачу быть хорошим программистом, я просто хочу уметь разбираться в чужом коде, может быть, решать простые задачи, но, самое главное, проектировать грамотную архитектуру.
С одной стороны я понимаю, что времени потеряно немало, но с другой стороны, его еще достаточно, если правильно им распорядиться.
Я определенно не хуже думаю, чем когда был студентом.
Мне по-прежнему скучно концентрироваться на мелочах, но моя настойчивость возросла.
Появился опыт, который подсказывает, что можно выбросить из рассмотрения, а на чем стоит сконцентрироваться.
Из языков разработки мне нравится Rust, но он немного сложен для первого серьезного изучения языка программирования, тем более что практических проблем в его использовании у меня нет. Соответственно, у меня пока нет мотивации его изучать, но я знаю, что мне захочется с ним что-то сделать.
Я думаю, что Python мне подходит больше, он более универсален и мне нравится отсутствие лишних элементов в синтаксисе.
Экосистема веб-фреймворка Python не так богата, как у Php, но это даже лучше.
Чтобы начать изучать язык и работать с распространенными фреймворками, в Интернете есть много бесплатной информации: базовые курсы, сайты для энтузиастов, каналы на YouTube (один Тимофей Хирьянов чего стоит) и официальная документация по Python (даже если вы этого не делаете).
хорошо знаю английский, встроенный гугл переводчик хорошо работает в хроме).
А вот если делать что-то более сложное, то нужно понять, что хорошо, а что плохо, а это сложнее.
В идеале вам нужен опытный наставник, который подскажет, как лучше подойти к задаче с архитектурной точки зрения, куда не нужно пихать классы, и как найти более эффективный подход к реализации задачи.
Очень надеюсь, что кто-нибудь откликнется и поможет мне, пусть и не быстро, стать хорошим разработчиком.
Надеюсь, выгода будет взаимной.
Я не знаю, хватит ли у меня ума и сил, чтобы действительно сделать что-то практичное и полезное, я просто попытаюсь описать и спроектировать некоторые основные бизнес-правила CMS, которые мне хотелось бы использовать, как я это вижу.
Почему и почему я делаю то, что делаю – не знаю, просто не могу не делать это.
Возможно, вам нравится процесс изобретения, проектирования и внедрения чего-то нового и полезного.
Желаю всем полезной, осознанной деятельности с положительными результатами для всей планеты.
Теги: #Карьера в IT-индустрии #Продакт-менеджмент #обучение #саморазвитие
-
«За Лето Конверсия Утроилась»
19 Oct, 24 -
Ии, Который Не Просит Хлеба
19 Oct, 24 -
Пробуем Карты Api V2 Для Android От Google
19 Oct, 24