• Как закреплять основы javascript на практике?

    keeprock
    @keeprock
    1. Попытайтесь писать код без постоянно открытой документации или вообще оффлайн. Только Вы и Javascript :)

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

    Интересная практика, попробуйте.

    2. Берите большие проекты на GitHub, пытайтесь вникнуть в них и не бичуйте себя если не получается сразу.

    Я потратил много времени и нервов, думая что обязан понять проект за 1 день. Я ведь такой умный, почему я не могу сделать _insert_small_fix_or_feature_here_?! Иногда это не ваше незнание, а просто проект большой и запутанный. Всему свое время, главное занимайтесь каждый день.
    Ответ написан
    Комментировать
  • Как перевести положительное число в отрицательное и наоборот на JS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    if(array[i] === "0")
    Строгое сравнение, следовательно, никогда не сработает, если передавать числа, а не строки.

    array[i] = array[i] * (-1);
    А эта строка вообще всегда безусловно выполняется.

    function invert(array) {
      for (let i = 0; i < array.length; i++) {
        if (array[i] != 0) {
          array[i] = array[i] * -1;
        }
      }
    
      return array ;
    }

    5c07bacb8185e559423888.png
    Ответ написан
    1 комментарий
  • Как перевести положительное число в отрицательное и наоборот на JS?

    Decadal
    @Decadal
    У вас строгое сравнение с "0"
    Уберите кавычки для нуля вот здесь:
    if(array[i] === "0") {
    Ответ написан
    3 комментария
  • Как правильно учить Javascript?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вы наверное слышали, что каждый уважающий себя программист обязан написать несколько велосипедов? И JavaScript-программисты тоже так делают и еще как! Так вот в этом нет ничего плохого, это отличное самообучение.

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

    Не пытайтесь брать сразу сложные вещи, начинайте с малого. Как заметили выше, не смотрите пока что на очень сложные книжки, их читать сейчас почти бесполезно.
    Ответ написан
    6 комментариев
  • Идеальный программист. Как стать профессионалом разработки ПО. Что скажете по поводу этой книги?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Идеальных не бывает никого. Тем более программистов. А книгу, конечно, купите)
    Ответ написан
    Комментировать
  • Идеальный программист. Как стать профессионалом разработки ПО. Что скажете по поводу этой книги?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Стоит прочитать весь трёхтомник - "Идеальный программист", "Чистый код" и "Чистая архитектура". Первый как раз для новичков, для опытных в ней слишком много очевидного. Только будьте готовы к тому, что книга не будет учить вас чему-либо техническому, она про то, как правильно относится к работе.
    Ответ написан
    Комментировать
  • Какой хороший курс по JS (для среднего уровня)?

    vilka_2009
    @vilka_2009
    Верстаю
    1) Открыла для себя такой ресурс: Экзерцизм Суть в том, что ты берешь на выполнение задачу, скачиваешь, решаешь, загружаешь, проходишь авто-тесты, можешь обратиться к ментору за помощью (вроде как есть бесплатные и платные), можешь запросить оценку задания ментором. Я еще не пробовала, но планирую, и кажется это должно быть круто и удобно. Как раз для среднего уровня пойдет, чисто практика.
    2) Ну и посмотри интенсивы на htmlacademy.ru
    Вот, как раз для среднего уровня Профессиональный JavaScript, уровень 2
    Ответ написан
    Комментировать
  • Какой хороший курс по JS (для среднего уровня)?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    https://www.youtube.com/watch?v=bzuelEN1Kg8&list=P... вот это дело мозг хорошо поставило на место по части ES5, Еще зоракса послушай. learn.javascript.ru хорош, но нудноват...
    Ответ написан
    2 комментария
  • Какой код начать писать на JS?

    thousandsoulz
    @thousandsoulz
    lil frontie
    Пару месяцев назад был в подобном положении, тоже только html+css, по образованию далеко не программист. Начал штудировать learn.javascript.ru/. Затем начал работать в живых проектах, писать для них легкие скрипты типа плавных якорей, модалок, табов и т.п. Почти каждый день решал задачи на https://www.codewars.com для развития мышления и практики. А месяц назад в лоб получил задание: напиши калькулятор на чистом JS. Я был в ступоре, но начал писать. Правда, главное – начать. 6 дней работы и вот, выкатил, в продакшн, чего сам не ожидал. Попробуй тоже. Только чур не подглядывать.
    Ответ написан
    6 комментариев
  • Какой код начать писать на JS?

    @cluberr
    Советую прочитать вот эту книгу :
    1011395255.jpg
    там классно изложены все темы и идет последовательное построение Игры Морской Бой от простого к сложному
    постепенно изучаешь новые фишки и внедряешь их с пониманием того, для чего это нужно.

    Вот этот сайт очень мощный в плане прокачки практики: https://ru.hexlet.io/professions/frontend

    А еще очень советую решить весь список: ЗАДАЧИ ПО JAVASCRIPT ИЗ КНИГИ "ВЫРАЗИТЕЛЬНЫЙ JAVA...

    плюс сайт www.codewars.com - это отличный сайт на котором собрано огромное количество задач для оттачивания навыков программирования его используют для подготовки к собеседованиям в ведущие компании.

    ну и https://www.freecodecamp.org/
    Ответ написан
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Во первых: совершенству нет предела.
    Во вторых: невозможно объять необъятное и впихнуть невпихуемое.
    В третьих: как ты не крутись, а технологии развиваются быстрее, поэтому отставание неминуемо, как следствие приходится всегда чем-то жертвовать ради чего-то более важного.

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

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

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

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

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

    Коммерческая разработка - это, примерно, от 70% времени/сил на дебаг и фиксы, потому что мало где процессы поставлены грамотно. По хорошему до сего дня (а мне под 40) я только одну команду видел, где процессы прям вообще очень хорошо поставлены и мне посчастливилось какое-то время с ними поработать. За эти несколько месяцев я подрос на целую голову. Самостоятельно достичь сходных результатов было бы весьма затруднительно.

    Сам я сменил стек совсем недавно, начал в конце 15 года, и процесс продолжается до сих пор. Сменил я по одной простой причине - во всех моих прежних проектах большая часть логики с бэка уехала на фронт, и прекраснейший jQuery перестал справляться чуть более чем полностью. Он, по прежнему, хорош, но задачи, которые приходится решать, требуют совершенно других подходов. Для себя я выбрал React, но в целом на рынке имеются альтернативы. По моим данным очень большим спросом пользуется Angular 2+.

    Когда говорят о фронтенд разработке, постоянно говорят о технологиях, стеке, но почти никто не упоминает, что не стеком единым... Существенная часть разработки - это, для начала, понять задачу и построить у себя в голове модель. Заказчики бывают разные, от очень толковых, до очень безтолковых. Соотношение первых ко вторым примерно 1% и всё остальное... Т.е. в большинстве случаев тебе скажут минимум, своеобразно, плюс ты это поймёшь по своему. Потом, по ходу пьесы, в самые неподходящие моменты, начнут всплывать подробности, которые: забыли упомянуть; ну это же очевидно, ты же профи; мы сами не знали, это только выяснилось; ну это же мелочи, мы думаем тебе это будет не сложно; а ты не спрашивал; и т.п....

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

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

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

    Когда я менял стек, то я тоже был какое-то время 35-летним джуном. С этим ничего не поделать, потому что, внезапно, стек это не просто так, и имеется масса нюансов, которые с наскоку не освоишь. Чтобы все пощупать, попробовать на зубок, понять и осознать требуется время и усилия, иногда много времени и много усилий. Да, весь прежний багаж служит опорой и поддержкой, и там, где настоящий джун будет копаться недели, ты за пару часов по аналогии поймаешь идею и двинешь дальше. Но эти пару часов никто не отменял, а идей которые нужно отловить сотни, если не тысячи...

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

    Даже если тебе попадается практически идеальный проект, внезапно оказывается, что твоя оперативная память это 5-7+-2 объекта, а удерживать в голове одновременно нужно сотни...

    Зачем я все это рассказываю? Затем, что это реальность, которая для джунов не делает исключений.

    Термин "фигак-фигак и в продакшен" встречается повсеместно, т.к. ресурсы (деньги, время, кадры) практически всегда весьма жестко ограничены и ничего ты с этим не поделаешь.

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

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

    Теперь относительно того что делать - если в бэкграунде нет сильных скиллов по алгоритмике и структурам данных (олимпиады по программированию, универский курс информатики), то прям очень сильно рекомендую прокачать. Будучи наставником на нескольких курсах фронтенда я постоянно встречают студентов, которые "вроде бы" знают язык, но затрудняются скомпоновать пару циклов с условиями, вот буквально просто виснут на неопределенное время, причем без результата. Лично я рекомендую кодварс. Своих студентов я прокачиваю именно там. Достаточно прорешать 30-40 задачек, чтобы базовые скиллы ушли на уровень рефлексов и перестали парить мозг. Правда желательно решать это все с наставником.

    Косвенный бонус тут будет в том, что ты привыкнешь решать задачи на JavaScript. Я когда менял стек, поначалу мыслил на PHP, и подобный финт на кодварс позволил мне переформатировать мышление на JS. Вот мой профиль на кодварс как пруф: https://www.codewars.com/users/iCoderXXI

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

    Понять надо настолько глубоко, чтобы легко и просто, с юморком, рассказывать это любой первой встречной бабушке, да так, чтобы та всё поняла... Это вот прям залог успеха в JS, потому что все остальное держится на этих двух китах. В ютубе имеется курс Зоракса (Zorax) и JavaScript Weird Parts, оба про то же самое, первый на русском, второй на инглише. Кантор, безусловно, крут, но эти двое объясняют попроще и понятнее (имхо).

    После этого прокачиваемся в использовании встроенных методов JS, таких как map, reduce, includes, replace и пр. (на том же кодварс)

    После этого нужно прокачаться в ES6+, стрелочные функции, let/const, деструктурирование, рест оператор, классы, промисы, генераторы, async/await, декораторы - без этих продвинутых штук в современных фреймворках ловить нечего.

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

    Потом уже заостряемся на API форм, DOM, AJAX (fetch/axios), вебсокетах, Localstorage и пр.

    И вот только теперь можно переключаться на фреймворки. Проще всего освоить Vue (по слухам), наибольшим спросом пользуются React и Angular, для общего развития так же неплохо бы немного послушать про Ember.JS.

    React только на первый взгляд выглядит простым, на самом деле это только view-библиотека, а в любом нормальном SPA есть много чего еще кроме view, поэтому React всегда идет в компании Redux, Router, и еще целой толпы всего, что тоже придется осваивать, не только с точки зрения API, но и с точки зрения философии (а нахрена оно вообще сдалось?)

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

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

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

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

    Оптимистичный прогноз - 6-12 месяцев плотного фигачинга и ты в тренде.
    Ответ написан
    7 комментариев
  • Как правильно учить Javascript?

    @NewTypes
    На себя
    Я тупо смотрел курсы "Специалист", а потом лепил всякие фиговины которые мне лично интересны (попутно листая доки и книги). Нагрузка росла плавно, а результат оказался эффективным
    Ответ написан
    Комментировать
  • Как закреплять основы javascript на практике?

    DarthJS
    @DarthJS
    Вот тебе практическое задание:
    Сделай математическую игру.
    1е окно варианты выбора игры: сложение, умножение, вычетание, делени, всё вместе, 3 уровня сложности.
    2е окно (среднее) выводит рандомно пример, в зависимости от выбранного в 1м окне уровня, под которым будет форма ввода ответа
    3е окно результат: сколько верных ответов и сколько ошибочных, а так же сколько правильных ответов в процентном соотношении.

    З.Ы. Лично из моего опыта, видеоуроки то такое, мало от них толку. Разве что в чем-то загвоздка, можно попробовать посмотреть на эту тему урок, если хорошо обьясняют. А так лучше ищи либо придумывай примеры. Выше написали про to-do, сделай чисто для себя, будешь пользоваться им в дальнейшем походу дорабатывать, когда придет идея как это туду усовершенствовать.
    Ответ написан
    Комментировать
  • Как закреплять основы javascript на практике?

    theobroma
    @theobroma
    javascript developer (ReactJS)
    Люто рекомендую www.codewars.com.
    Просто чудо, что он есть. Его можно использовать для изучения многих языков. Думаю Вам, как и мне собственно, он будет полезен для освоения как JavaScript, так и CoffeeScript.
    Есть 8 уровней сложности. Ко многим заданиям прилагаются тесты. Так что заодно и с Test-driven development познакомитесь. Тесты есть готовые, но можно и свои пробовать писать.
    Задания можно обсудить в разделе "Discuss". Там все грамотно сделано и спойлеры скрыты.
    После выполнения доступно посмотреть на решения других пользователей и проголосовать за самое находчивое решение и за "best practice". Это дает не слабый левелап.
    Совет: делайте все на localhost, а после уже готовый код вставляйте для проверки в окно "Your Solution". Так проще поэтапно отслеживать код и можно потихоньку прийти к решению.
    P.S. Сам как раз решаю эти задачки и активно пользуюсь learn.javascript.ru для справки.
    Ответ написан
    1 комментарий
  • Как мне научиться учиться программированию?

    feycot
    @feycot
    TD;DR https://stepik.org/course/363
    https://www.youtube.com/watch?v=rrRZZ_3licM&list=P...

    Если тебе обещают, что научат программировать за 21 день - не верь им.
    Если тебе обещают, что трудоустроят - не верь им.
    Если тебе обещают, что это будет бесплатно - не верь им.

    Программирование это навык, поэтому нужно учить не язык, а развивать навык.
    Необходимо понять, что оно в себя включает - алгоритмы, структуры данных, абстрактное мышление, инженерное мышление.
    Если у тебя нет своей программы - доверься людям, которые прошли путь и могут порекомендовать ресурсы. Помни, что бесплатный сыр только в мышеловке. Либо ты тратишь кучу времени на систематизацию знаний, либо ты платишь за то, чтобы получить программу.
    Вот тебе ссылка на плейлист, посмотри, понравится ли тебе
    https://www.youtube.com/watch?v=rrRZZ_3licM&list=P...

    Я думаю, что дальше сам разберешься.

    Из литературы. Это из тех, что я читал или слышал о них:
    Грокаем алгоритмы (Адитья Бхаргава)
    Код. Тайный язык информатики (Чарльз Петцольд)
    Идеальный программист. Как стать профессионалом разработки ПО (Роберт К. Мартин)
    Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)
    Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)

    Помни, что нужно учиться непрерывно всю жизнь, если один раз вступил на этот путь, то назад дороги нет. Будешь видеть мир по-другому. Если тебе кажется, что ты все знаешь, значит ты не знаешь ничего.
    Ответ написан
    4 комментария
  • Как вы учите программирование / новые вещи?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Всё просто - я считаю прокрастинацию ленью и не позволяю себе ею оправдываться.
    Ответ написан
    Комментировать