• Как преодолевают порог новичка в разработке и как не остаться "вечным новичком"?

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

    Отдельно отмечу, что сейчас ожидайте очень тяжелую ситуацию на рынке, закрытие многих проектов развития, уход отрасли в поддержку существующих решений. Но при этом должен вырасти внутренний рынок (импортозамещение). То есть идет перестройка рынка.
    Ответ написан
    2 комментария
  • Как преодолевают порог новичка в разработке и как не остаться "вечным новичком"?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Отработайте хотя бы год. Потом разговаривайте о своих переживаниях с непосредственным руководителем. Если он вас не услышит, можно искать другую работу.
    Ответ написан
    2 комментария
  • Vue 2 или Vue 3?

    @Kostik_1993
    Web Developer
    На вопрос нельзя дать точного ответа. Решать вам опираясь на знания, опыт и требования вашего проекта

    Так например недавно я столкнулся что большинство мануалов Vue.js на TypeScript написаны для 3 версии
    С Nuxt все наоборот, пока только 2 версия. Но подучить стоит обе, ибо различий там не особо много, а в основе приложения будет лежать не версия фреймворка, а архитектура которой вы придерживаетесь. В любом случае у вас будет Vue, VueRouter, Vuex и взаимодействие между ними
    Ответ написан
    Комментировать
  • Vue 2 или Vue 3?

    yetanothercoder
    @yetanothercoder
    java(script) coder
    имхо рано еще, как минимум пока официальный раздел vue сайта с доками по 3ей - на отдельном домене у них: https://v3.vuejs.org/ - т.е. создатели (Эван и команда) видимо сами понимают и намекают насколько 3я версия еще сыровата и мало кем поддерживается, чтобы юзеры не путались и попадали сразу на старые доки пока еще.
    Ответ написан
    Комментировать
  • Как перевернуть карточку?

    Karponter
    @Karponter Автор вопроса
    Комментировать
  • SQL инъекция в UPDATE возможна ли?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Инъекция может быть через любой запрос.
    И защищать тоже надо любые запросы.
    Никогда не надо торговаться, "а можно я не буду защищать именно этот запрос? Ну мааааам!"
    Надо просто всегда следовать простым правилам - любая переменная попадает в запрос только через плейсхолдер

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

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

    То есть сама уязвимость никак не зависит ни от каких второстепенных факторов - типа запроса, передаваемых данных, способов их валидации, твоих знаний SQL. Это сам факт. Можно подставить свой код в запрос? Значит он уязвим. А как конкретно можно нагадить - это отдельная тема.

    Кроме того, любая уязвимость - это всегда ошибки. Если в $id будет пусто, то запрос вызовет ошибку. Если в $id будет слово select то запрос вызовет ошибку. Если будет слово "привет", то запрос вызовет ошибку. Оно тебе надо?

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


    Если вопрос "а можно я не буду защищаться?" вызван ленью, то это тоже решаемо. В принципе, лень - это очень важное качество для программиста. Главное - направить её в нужное русло.

    Если каждый раз писать по три строчки долго
    $sql = "INSERT INTO users SET email = ?, password = ?"; // заменяем на знаки вопроса
    $stmt = $db->prepare($sql); // подготавливаем запрос, получаем stmt
    $stmt->bind_param("ss", $email, $hash); // два знака вопроса - две переменных - две буквы s
    $stmt->execute(); // выполняем запрос

    То надо воспользоваться такой вещью, как программирование. И написать функцию, которая возьмет на себя всю рутинную работу.
    function prepared_query($mysqli, $sql, $params, $types = "")
    {
        $types = $types ?: str_repeat("s", count($params));
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param($types, ...$params);
        $stmt->execute();
        return $stmt;
    }

    и в итоге предыдущие 4 строчки превратятся в одну:
    prepared_query($db, "INSERT INTO users SET email = ?, password = ?", [$email, $hash]);

    или твой запрос:
    prepared_query($db, "UPDATE table SET test WHERE id = ?", [$id]);

    - просто, быстро, удобно и безопасно
    Ответ написан
    26 комментариев
  • SQL инъекция в UPDATE возможна ли?

    Fernus
    @Fernus
    Техник - Механик :)
    Смысл есть!

    UPD:
    Поясню...я тебе в $id передам 9999 or 1 = 1 и все записи нафиг потерпят изменения!
    Ответ написан
    2 комментария
  • Фриланс верстка под Vue/React?

    pobedash
    @pobedash
    Frontend JS dev, junior Python data scientist
    Я использую два варианта.
    1) Когда создаю страницы с данными, api для которых еще не готово и их четкой структуры нет - пишу свой тестовый объект, который содержит все ключевые поля, а потом передаю его образец на бэк.
    Таким образом шаблон уже готов под работу с реальными объектами, прописаны пропсы для компонентов, в шаблоне уже есть необходимые данные.
    По факту, шаблон один и тот же для всех, поэтому если ты сперва на фронте создаешь тестовую структуру, бэку уже удобно её использовать и модернизировать, а тебе на фронте потом нужно лишь изменить некоторые пропсы, в основном названия ключей и их типы.

    2) Если уж ничего нет и нужно просто верстка html+css пишу прям с текстом из макета, просто структура и стили, которые потом уже кто будет это использовать заменит на то что ему нужно, разобьет на компоненты и пропишет данные в шаблоне.

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

    Не утверждаю что это есть супер правильно, это всего лишь мой подход. Имхо, буду рад обсудить в коментах)
    Ответ написан
    Комментировать
  • Фриланс верстка под Vue/React?

    Если апи нет, то просто верстаете так, как написано в требованиях. По-другому впринципе никак. Если api нет, то должны быть примеры json, с помощью которых можно использовать fakeApi.
    Ответ написан
    Комментировать
  • Ругается, что я проп мутирую, почему?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Я не меняю prop href

    А что насчёт попытки задать дефолтное значение? Может, она рассматривается как мутация параметра:

    @Prop(String)
    href = '';

    Попытка, кстати, кривая:

    It's not supported to define each default property like @Prop() prop = 'default value'.
    Ответ написан
    3 комментария
  • Каким образом добавить поле в объекте в редьюсере?

    0xD34F
    @0xD34F
    return {
      ...state,
      plans: state.plans.map(n => {
        const item = n.find(m => m.id === action.id);
        return item
          ? n.map(m => m === item ? { ...m, value: action.value } : m)
          : n;
      }),
    };
    Ответ написан
    1 комментарий
  • Стоит ли мне продолжать учиться разработке?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    2 недели назад начал учить java по одной из книг "для чайников", проще говоря самые основы. Чувствую что мне это нравится, но замечаю что в упражнениях делаю откровенно глупые ошибки в коде - "{" не в ту сторону ";" забыл поставить, "int" не написал перед объявлением переменной. Обычно до того, как в дело включается компилятор подвоха не замечаю, даже при проверке кода своими глазами. Это сильно бьёт по самооценке и ставит под вопрос мои интеллектуальные способности.

    Все мы спотыкались... в этом нет ничего страшного. Со временем все придет)

    Как это лечится?

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

    Получится ли у меня стать хорошим разработчиком, если я начинаю свой путь в it с такими проблемами?

    Даже не сомневайтесь. Все получится. У каждого из нас бывают взлеты и падения, каждый из нас спотыкается (даже профессионал).
    В IT есть фраза, если код сработал с первого раза, то значит, что-то не так))

    Мне 28 лет, пол мужской, программистом никогда не был (на случай, если это поможет ответить на вопросы).

    Мне тоже 28 лет, сам не программист, изучаю разработку на Java, тоже мужского пола, если это поможет вам не падать духом и просто усердно заниматься)))
    Ответ написан
    Комментировать
  • Стоит ли мне продолжать учиться разработке?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1) и основное! Поставьте себе среду разработки. IDE! Будет на порядок легче!
    Возьмите или eclipse или idea. Это интегрированные среды для java. Не будет глупых ошибок.
    2) продолжайте изучать!
    Ответ написан
    Комментировать
  • Стоит ли мне продолжать учиться разработке?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    Сложности — это нормально. Не стоит их бояться. С каждой ошибкой, которую вы разобрали и поняли вы уже растёте, как разработчик.

    Тут главное не загонять себя, что мол вот не получилось, значит надо всё бросить. Никаких проблем у вас нет. Каждый разработчик проходил через это, потому что никто не родился сразу со знанием программирования.
    Ответ написан
    Комментировать
  • Стоит ли мне продолжать учиться разработке?

    @DDwrt100
    Это нормально, с опытом придет более внимательный взгляд, плюc IDE будет чуть чуть помогать.
    Грубо говоря это не проблемы даже, и никак не говорит о том будете ли вы хорошим разработчиком или плохим.
    Если нравиться , то почему бы вам не продолжать ?
    Ответ написан
    Комментировать
  • Стоит ли мне продолжать учиться разработке?

    tema_sun
    @tema_sun
    Представьте себе такой вопрос от ребенка: "Вы знаете, я тут две недели назад попробовал начать ходить. Но совершаю какие-то глупые ошибки, то не ту ногу вперед ставлю, то спотыкаюсь, то падаю. Как вы думаете, стоит ли мне продолжать учиться ходить или это не для меня?"
    Ответ написан
    Комментировать
  • Почему при умножении 5 на 5 выходит 251?

    @antonwx
    Бряки-то ставить надо наверное
    public static void main(String[] args) {
    			Scanner in = new Scanner(System.in);
    			System.out.print("Input a number: ");
    			int a = in.nextInt();
    			System.out.print("Input a number: ");
    			int b= in.nextInt();
    	
    			System.out.println("Введите действия с числами\n 1.сложить\n 2.вычесть \n 3.Умножить \n 4.Поделить");
    			int t=in.nextInt();
    			switch (t) {
    			case 1:
    				System.out.print(a+b);
    				break;
    			case 2:
    				System.out.print(a-b);
    				break;
    			case 3:
    				System.out.print(a*b);
    				break;
    			case 4:
    				System.out.print(a/b);
    				break;
    			}
    		}

    System.in, кстати, не закрывают
    Ответ написан
    Комментировать
  • Как проверить существование вложенного массива?

    makssof
    @makssof
    Web-разработчик
    if(isset($value['properties']['CompanyMetaData']['Phones'])){
        //do smth
    }
    Ответ написан
    1 комментарий
  • Тестовое задание (Junior Frontend), приемлемое ли?

    @kirill-93
    Вертел я такие задания при устройстве на работу.
    Однажды тоже устраиваясь в "крутую" контору прислали большое задание. Все выходные убил на него. Потом еще две недели мурыжили собеседованиями и в итоге не взяли.
    Я с тех пор никогда не соглашаюсь на тестовые задания, которые займут больше получаса моего времени.
    Объемные задания должны оплачиваться. Если они очень требовательно отбирают сотрудников, то сначала надо дать простое задание/прособеседовать и уже если человек их устраивает, давать объемное задание и платить.

    UPD
    Не слушайте, пожалуйста, бред об опыте и пользе для вас. Из таких "будущих хороших специалистов" потом веревки вьют, типа "поработай по вечерам, это ж опыт для тебя!" или "давай ты теперь и по субботам выходить будешь, а мы тебя за это серьёром называть будем!". Очень работает с наивными молодыми людьми.
    Вы поймите, что все эти разговоры про опыт и пользу для вас - это уловки с целью сэкономить и вас обмануть. Всем плевать на ваш опыт, им нужно денег меньше вам заплатить и все.
    Огромное тестовое задание - это неуважение к кандидаду.
    Давай представим обратную ситуацию: я прихожу к потенциальному работодателю и говорю: "Давайте я у вас тут недельку посижу без каких-либо обязательств, а вы мне зарплату платите. А потом посмотрим, может быть останусь, а может уйду". Нормально? Ситуация выглядит именно так, потому что работодатель не делает одолжения принимая на работу, он "покупает" ваше время и ваш опыт и все.
    Ответ написан
    13 комментариев