Задать вопрос
  • Каков путь разработчика web-страниц?

    fodoyko
    @fodoyko
    DevOps и Infrastructure консультант
    Спойлер: я автор книги Самообразование веб-разработчика, указанной по ссылке выше, и путь изучения технологий, описанный в ней – это, по сути, мой путь (точнее, первые пару лет моего пути).

    Духовно ( =) ) я начал с того, что захотел научиться делать сайты. В какой-то момент "делать сайты" превратилось в "делать веб-приложения", но это уже детали.

    Технически я начал с изучения HTML/CSS, на которых написал сначала свою первую домашнюю страничку, а потом сверстал простой сайт для друга и ещё несколько небольших статичных сайтов. Полученных таким образом знаний мне вскоре хватило, чтобы получить первую оплачиваемую работу. Это был проект по переделке вёрстки одного крупного интернет магазина с таблиц на дивы. Сайт при этом должен был выглядеть чудесно в IE6 (были времена :( ) – слава богу, перед вами такой задачи не встанет в наши светлые дни.

    На том же интернет магазине я впервые получил деньги на JS код: писал небольшие скрипты на jQuery.

    Затем я перешёл к изучению всяких CMS типа ModX, ExpressionEngine, OpenCart и прочих штук. Изначально мне нужна была CMS для своего личного сайта, но в конечном счёте эти навыки помогли мне найти заказы в небольших фриланс-конторах в Перми. Дополнительно было много заказов по вёрстке с фриланс-бирж. Верстал я неутолимо, быстро и предельно качественно. Проблема заключалась в том, что на вёрстке я бы со своей целью "делать свои веб-приложения" далеко не уехал, поэтому писать html/css меня быстро задолбало. Тем не менее, навыки фронтенд-разработки пригодились в будущем не раз.

    Поэтому я взялся за изучение Ruby on Rails. Писал сначала для себя: сначала библиотеку рок-музыки, потом менеджер личных финансов (которым всё ещё пользуюсь). Затем кинул сообщение в ror2ru и получил несколько предложений о работе. Одно из них принял, где и познакомился со своим ментором на следующие много лет, вплоть до сегодняшнего дня. Так я попал в аутсорс компанию, в которой работал на вынос полтора года, совмещая это с универом. Задач было много, проектов много: постоянно приходилось учить тонны новых вещей. Желания тоже было много, поэтому необходимость мало спать и много мучиться над кажущимися невозможными задачами была в радость.

    Это были настолько интенсивные полтора (или два?) года работы, что под конец моих навыков, рекоммендаций и портфолио хватило для того, чтобы в 19 лет без высшего образования получить работу в Берлине, куда я успешно и перебрался, получив визу. А потом успешно сменил работу и теперь делаю крутые штуки в Babbel.com. High load, DevOps, автоматизация и всё такое прочее :-)

    Добавлю, что на всём моём пути у меня всегда был ментор. Сначала это был админ сайта любимого журнала по видео-играм и один из разработчиков того интернет магазина. Затем это был владелец той аутсорс фирмы, который перевернул моё представление о работе, научил работать и "довёл" меня до переезда в Берлин. И сейчас, на текущей работе, моим ментором считаю архитектора компании и некоторых разработчиков.

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

    PS.
    В прошлом году я опрашивал своих знакомых матёрых программистов о том, каков был их путь, какими были первые проекты и т.п. В итоге получилось 13 подробных интересных интервью, думаю вам будет интересно ознакомиться: mkdev.me/categories/byt-razrabotchika/posts/kak-st....
    Ответ написан
    Комментировать
  • Почему данном случае теряется контекст this?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Простой ответ:
    Берём метод:
    метод = function(){
      console.log(this)
    };
    и(не важно как) пихаем его в какие-то объекты.
    Получаем:
    хрень.метод() // this - хрень
    хрень.кишки.метод() // this - хрень.кишки
    метод() // this - window
    
    хрень.метод.call(хрень.кишки) // this - хрень.кишки
    метод.call(хрень.кишки) // this - хрень.кишки
    метод.call(null) // this - null
    
    элемент.addEventListener('оппа', хрень.метод) //  this -элемент
    элемент.addEventListener('оппа', метод) //  this -элемент
    элемент.addEventListener('оппа', хрень.кишки.продукт.метод) //  this -элемент

    По сути this для фукции - это то, что идёт перед точкой, кроме тех случаев когда он переопределён явно. Всё, никакой эзотерики.)

    fn.call(!this ? this : obj) - это чушь скорее всего. Если this - falsy, то ставим его как this при вызове функции fn, иначе ставим obj. Falsy this может быть только при явном указании(или в strict режиме, при вызове функции напрямую("без точки перед ней")), и скорее всего передача пустого this в таком случае просто сломает выполнение fn.

    Ну ещё следует упомянуть стрелочную фукнцию:
    метод = () => {
      console.log(this)
    };
    это можно считать за явное указание this, потому что this тут всегда привязан тот, что был при создании стрелочной функции, независимо от того как и откуда её вызывают.
    Ответ написан
    3 комментария
  • Как в Windows 11 на рабочем столе переименовать файлы без перемещения?

    MaximFoxWevo
    @MaximFoxWevo
    Нажми "ПКМ" по Рабочему Столу, выбери "Персонализация", дальше "Пуск" и отключи "Показывать рекомендуемые файлы в меню "Пуск", недавние файлы в проводнике и элементы в списках переходов". Мне лично помогло [Windows 11 24H2]
    67ada15684af6576262663.png
    Ответ написан
    1 комментарий
  • Почему не могу установить Git на Debian?

    Вам нужно отредактировать /etc/apt/sources.list, закомскнтировать упоминание диска, добавить нужные источники из интернета и выполнить apt update.

    https://wiki.debian.org/SourcesList

    В целом, чтобы с этим не возиться, лучше ставить Ubuntu
    Ответ написан
    Комментировать
  • Требование выдать паспортные данные администратора вебсайта?

    пускай компания обращается в суд и суд запрашивает все нужные данные в судебном порядке
    Ответ написан
    Комментировать