• Есть ли польза от codewars?

    theobroma
    @theobroma
    javascript developer (ReactJS)
    2 года назад CodeWars помог мне выучить JavaScript. Сухая теория не заходила вообще, а вот с практикой совсем другое дело... Решал задачки 8-7 kyu. На уровнях выше начинаются уже не основы языка, а больше упор на алгоритмы, знание математики и т.д. На 7 уровне не должно возникать проблем точно.
    Пишу код для решение на locahost в своем редакторе или IDE. Дебажу в консоли браузера. Когда вижу, что результат похож на правду, копирую код с редактора в окно для решения CodeWars. Проганяю предложенные тесты. Если все ОК, то сабмит, а если нет, то смотрю результаты тестов и допиливаю решение.
    Результаты не открываю пока сам не решу. В топовых и хитрых решения других всегда разбираюсь.
    Не стоит сильно зацикливаться на определенной задачи, которая не получается... Возможно не хватает знаний языка программирования. Бывает, что не могу понять условие задачи как таковое... Можно немного заморочиться, но если не идет, то смело откладываю на потом. Неудачи снижают боевой дух, а это ничем не помогает.
    Ответ написан
    2 комментария
  • Почему чувствую себя бесполезным и ни на что не способным на первой работе по специальности?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Если не соблюдаете пост (который начался сегодня) - можете нажраться, чтобы снять нервное напряжение. А потом от души послать эту контору "по матушке" и сказать, как я всегда говорю "Пусть сдохнут от зависти те работодатели, кому мы не достались".
    Если написание кода само по себе Вам не приносит удовольствия - лучше в ИТ не идти. Да, байки о гигантских зарплатах основаны на реальности. Да, специалистов не хватает. Но между Вами и этим всем стоит огромная ТОЛПА полуграмотных "формошлепов", ремесленников, способных только на черную работу. Вам придется сначала стать одним из них, а потом подняться выше их - если сможете конечно.
    Вам не повезло с командой, но такие команды - это вовсе не исключение. Сто тысяч подобных команд, где жесточайшая конкуренция, где ты каждый день должен доказывать "коллегам", что ты не хуже их etc.
    Да, есть другие команды. Где коллеги могут подсказать, а начальство не ипет по любому поводу. Ищите.

    И самое главное - не отчаиваться :)
    Ответ написан
    6 комментариев
  • Установил автопрефиксер и выводит в консоль ошибку как исправить?

    Это не ошибка, это предупреждение, по сути оно работе не мешает, но если бесит легко фиксится, нужно в предложенном в доках pipe заменить browsers: ['last 2 versions'] на overrideBrowserslist: ['last 2 versions'] и тогда предупреждение пропадает))
    .pipe(autoprefixer({
                overrideBrowserslist:  ['last 2 versions'],
                cascade: false
            }))
    Ответ написан
    4 комментария
  • Хватит ли пк для программирования?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Откуда вы все беретесь? Requirements VS Code - 1GB RAM. Это минимум. Это же браузе!

    Итак. Для программирования этого компьютера более чем достаточно. Тут самая большая проблема - это браузер. Вся современная сеть под него прогибается. Чтобы было попроще могу рекомендовать разве что легковесный браузер под i686-ым линуксом. Например, arch или gentoo, но лучше arch, с сорсами будут траблы из-за небольшой памяти (свапаться на сборке это жестоко). Под окружением i3 или xfce. Самое главное как можно меньше рюшек. Можно openbox даже поставить, но без докера грустно на нем. Теперь что. Точно не веб. Ну то есть можно какой-нибудь бекенд попилить, или минималистичный фротенд. Но это будет грустно. Лучше пойти те же алгоритмы на acmp-подобные состязания)) Ну или тру геймдев - directx 9 по архивным туторам и/или opengl.

    А вот теперь на чем. Вообще вполне себе вариант - vs 2010, можно даже express. Но еще лучше поставить emacs/vim, обмазать плагинами на интеграцию с компиляторами/дебагерами и жить прекрасной жизнью. Причем по возможностям вряд ли vim будет оч сильно отставать. Ну и да, лучше вим - его чаще качают до IDE и он более unix-way как мне показалось (не говорите мне про Столмана!).

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

    А вот когда программирование начнет приносить доход - в первую очередь надо заменить компьютер. Включая монитор. Сапожник без сапог - забавная штука. Но это если.
    Ответ написан
    1 комментарий
  • Вы в браузере набрали адрес сайта, нажали Enter. Расскажите максимально подробно о технических процессах происходящих далее?

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

    0) Пользователь вбивает в адресную строку браузера адрес сайта (нажимая клавиши на клавиатуре, которые замыкают определённую дорожку в матрице, по которой происходит определение нажатой клавиши, что через шину USB в какой-то момент передастся OS, где это поймает HID-драйвер и вызовет определённое прерывание, что OS передаст как событие/или_ещё_как в программу, которая вызовет соотвествующую функцию из API менеджера окон, которая изменит содержимое строки и в результате когда-то будет перерисован UI-элемент, а если нажат был Enter, то начнётся следующее).
    1) Браузер вытащит из input'а строку с запросом и посмотрит, похоже ли это на адрес. Если да, то добавит недостающие уточнения (например, http или file протокол, порт и подобные довольно стандартные вещи). Если нет - то скорее всего создаст запрос в поисковую систему, установленную по умолчанию (я более не буду опускаться до таких бессмысленных деталей, как вызовы API-функций, иначе я буду набирать это сообщение ОЧЕНЬ долго). В любом случае на выходе мы по сути получим URL, который надо загрузить. Протокол file:// мы рассматривать не будем, ftp далеко не везде есть, https:// на не хватит вечности, так что остановимся на http, который по сути есть tcp/ip по умолчанию на 80 порту с определённым форматом общения.
    2) Окей, url есть. Теперь нам нужен адрес, к которому обращаться. Так как http это tcp/ip - нам нужен ip адрес. Здесь нам помогают dns-сервера. Обычно, нормальный провайдер устанавливает у себя кэш-сервера dns, которые не обращаются по стопицот раз за vk.com к ответственному серверу com-зоны. Давайте не будем отвлекаться на то, как происходит там общение, если что - вот (вики тем хороша, что часто содержит внизу релевантные ссылки). Скажу лишь то, что на выходе мы получаем ip адрес(а).
    3) Имея адрес мы можем запросить страницу. Собственно, всё что после первого слэша - это как-бы параметры для http-сервера: какую именно страницу запрашивать, он всё же не телепат. Конечно, можно было бы немного схитрить и отправить читать про tcp/ip, но ведь существует и shared-hosting. Ограничемся лишь его упоминанием. Собственно, по полученному адресу отправляется GET запрос, который и обрабатывает сервер, находящийся по полученному IP-адресу.
    4) Сервер же, получив адрес, начинает распарсивать строку, медленно вытягивая нужные данные из баз-данных и настроек, выполняются сотни скриптов, иногда делается ещё не одна сотня различных запросов на другие сервера (здесь и разного вида метрики и разного вида HADOOP и т.д.). Пройдя сквозь скрипты и темплейторы в самом конце мы получаем html-страницу, готовую к употреблению. Её-то сервер и отправит в ответе (после заголовков, конечно).
    5) Вот и началось самое интересное. Получив html страницу браузер начинает жутко надругаться над CPU, HDD и GPU, попутно сжирая тонны RAM и мусоря в swap. Виной всему нереальные для полного соблюдения стандарты от небезызвестной w3c.org. Для облегчения многие делают костыли, вроде webkit, а некоторые и вовсе забивают на него и пилят свой стандарт с преферансом и картёжницами (впрочем, в последнее время становиться лучше). Здесь снова начинаются сотни вызовов API ОС, windows manager'а и прочих библиотек, вроде boost, qt или libpng. В ходе работы в RAM строится макет, по которому потом строится нечто вроде PDF (тоже сильно векторный), что, потом, обрабатываясь быстрыми шейдерами на GPU, выдаётся на экран. Опять же, многое пропущено, но вряд ли кому-либо, кроме парня в свитере с оленями, действительно интересно, как работает GDI, DirectX или OpenGL.
    6) Ах да, мы же забыли про тысячи js-скриптов, миллионы картинок и анимации с котиками, а также о таких дополнительных плюшках, как flash-player или java-weblets. В кратце, что js, то и flash и java - это виртуалка, со специальной архитектурой. Они, виртуалки, конечно разные (хотя flash и js довольно похожи, ещё бы - ECMAScript один и тот же). JS - самый интегрированный внутрь браузера, он же и самый медленный чисто визуально (ибо последние два имеют доступ к быстрому GPU), хотя самый быстрый в попугаях. Второй постепенно вымирает и представляет из себя, так же как и третий специальную shared-библиотеку, о которой браузер как-нибудь узнал и которой скармливает специальное содержимое помечанное специальным тегом html. Третий уже почти умер и встречается лишь изредка или в каком-нибудь энтерпрайзед со страшным legacy-базой. Ну здесь из сылок разве только гугл. Ибо сколько всего - даже не сообразишь. Да и вообще, эта тема ещё скучнее GDI, DirectX и OpenGL и к свитеру с оленями требуются ещё очки с толстенными стёклами, дающие стопицот к терпению и задроству над матаном. Если в кратце, то в случае JS, всё что было загружено в память и не думает выгружаться и формирует этакое дерево - DOM, над которым с помощью специального API и происходят модификации. При этом, перед тем как исполниться, весь JS-код компилируется, в нативный для VM байт-код. То же самое в общем-то и со вторым и третьим, разве только они не имеют доступа к DOM и организовать его - дело тех ещё костылей. Ах да, забыл ещё про Silverlight (или как оно там пишется), который сдох, не успев родиться. Так же как и Java, жив в серьёзном энтерпрайзе, не поскупившийся не "дешёвую" поддержку MS.
    7) Ну... А дальше пользователь нажимает на нужную гиперссылку и всё по новой.

    За кадром остались такие костыли, как ajax, websockets и прочая асинхронная ересь. С ней всё в миллионы раз сложнее. И к очкам со свитером потребуется ещё и... а чёрт их знает, что они там ещё носят. Ну да ладно, я искренне завидую тем парням (и девушкам), которые разбираются во всей этой машине. Целиком. Ибо это лишь верхушка айсберга. Разбавленная не лучшей памятью и ужасным гуглом.

    P.S. Не бейте сильно за грамматические и синтаксические ошибки. Спеллчекер приказал долго жить, да и 5 утра как никак.

    UPDATE
    На хабр выложили неплохой перевод дающий некоторое представление, как браузер ругается над памятью и процессором. Хотя и весьма поверхностное,
    Ответ написан
    26 комментариев
  • Как/на чем заработать обычному верстальщику?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Общие советы, что уже были даны:
    + учи js,
    + учи english хотя бы до intermediate,
    + генерируй портфолио,
    + какой же верстальщик без своего сайта? сделай его идеальным и храни там своё портфолио и контакты, по возможности ставь на создаваемые сайты свой копирайт со ссылкой на портфолио (конечно, если заказчик не возражает),
    + в свободное время потерзай какой нибудь backend (RoR или Django)

    От себя добавлю: бросай PHP и никогда о нём не думай, может он и становиться лучше, но ему никогда не избавиться от своего тёмного прошлого (и переменных со знака доллара, вот ужас!). Когда будет пара хороших отзывов, смело иди на фриланс биржи, вроде odesk. C RoR и хорошим, красивым, технологичным, кроссбраузерным фротендом там вполне можно иметь и по $100 в час.

    Ах да, учись быстро копипастить. Использовать плагины. Избавляйся от всяческих попыток напилить велосипед, даже если так будет быстрее и лучше. Со временем, это мастерство позволит тебе делать сайты со скоростью пулемёта. Тогда ты постигнешь тёмный дзен и получишь свою порцию печенек. Я на полном серьёзе, когда ты поднимаешь сервер за 2 минуты, ставишь на него Bootstrap за 1 минуту и подгоняешь его (натягиваешь вёрстку из заранее созданных темплейтов) за 5 минут, обвешиваешь нужными виджетами из js, html5 и css3 за 5 минут и через 15 минут после получения заказа отправляешь заказчику наступает странное чувство эйфории. Конечно, это непостяжимый дзен, как всегда, по закону Мёрфи, какая-нибудь библиотека отвалиться, что-нибудь заглючит, а где-нибудь поползёт вёрстка и дебаг займёт пару часов, но всё же, делать полноценный сайт за 3 часа - бесценно. Для всего остального есть MasterCard.
    Ответ написан
    48 комментариев