• Как выбрать направление развития, или "Это только в начале скучно, или дальше также?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вы хотите работу, которая будет являться развлечением? Игрой? Это, конечно, круто, но такого не бывает. Точнее, бывает, но за это вы сами должны платить деньги, а не вам. В работе очень часто нужно переступать через себя, идти на какие-то компромиссы. В работе вы должны достичь какой-то цели, оказать услугу, выпустить продукт, показать результат, и это не обязательно должно быть приятным, по крайней мере не всегда и не везде. Если я чего-то действительно хочу, то я продолжаю есть кактус и продвигаться к цели. А вы что хотите? Веселья? Или чего-то более серьёзного? Определитесь, за вас это решение никто не примет.
    Ответ написан
    1 комментарий
  • Каково отношение работодателей к диплому от Университета Синергия?

    @vanillathunder
    Большого преимущества не даст, но и хуже не становится от этого диплома.
    Ответ написан
    Комментировать
  • Работа тестировщиком не дает никаких полезных навыков в плане дальнейшего трудоустройства разрабочиком?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Если вы будете заниматься автоматизированным тестированием вам волей-неволей придется понимать устройство приложения. Хотя бы очень поверхностно. Чем лучше автоматизатор тем лучше его понимание устройства приложения. И тут все зависит от вас, станете вы интересоваться устройством приложения глубже или нет. Требовать от вас этого никто не станет. Будете интересоваться - через какое-то время сможете стать разработчиком.

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

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

    У меня сложилось впечатление, что вы хотите через тестирование попасть в разработку. Я бы не стал так делать. Так вы ни хорошим тестировщиком не станете, ни хорошим разработчиком. Я сознательно отказался от работы разработчиком, и остался автоматизатором. Потому что знаю как они работают, и мне иногда грустно. Стать еще одним производителем багов - нет спасибо. А у меня уникальные навыки. Я решаю интересные задачи. Я ковыряюсь в приложении, чтобы понять где к нему прицепиться, чтобы получить нужную информацию. Нормальные интерфейсы, к сожалению, порой не предусмотрены. Я постоянно тусуюсь с разработчиками. Мы обсуждаем баги и я иногда могу подсказать подход к их решению, могу помочь отфутболить баг, или если баг не наш, перенаправить его с нормальным комментарием. Могу зайти в бюро к разработчику и спросить почему баг еще не пофиксили, причем именно техническую причину, и понять ее. Могу прочитать лекцию разработчикам о том, что важно писать внятные коммит-мессаджи. Знаю как пользоваться Джирой. Например трансформировать баг в таск и наоборот. Знаю наши информационные системы. Могу подсказать как с помощью нашего интрумента тестирования продебажить трудно воспроизводимое состояние. Могу читать стектрейс и лог иприложения, и понимая как работает наша программа, обьяснить разработчику, что проблема наша, а не во фреймворке или где-то еще.

    Просто я тянусь к знаниям и не считаю себя умным и "все итак знающим".

    Можно конечно все время сидеть в бюро и добавлять n+1 тест в тестовый набор у уходить в 17 часов домой. От вас зависит.

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

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Чтобы разобраться с кодом проекта, достаточно уметь отлаживать, читать чужой код и знать свою IDE.
    Будете сидеть и нервничать по этому поводу, тогда точно не сможете вникнуть. Просто расслабьтесь, спрашивайте у коллег что непонятно, узнайте архитектуру проекта, почитайте чужие коммиты и другие задачи, чтобы понимать, как развивался проект, и в каком направлении развивается сейчас. Как правило, не нужно сразу зубрить весь проект, достаточно выполнять задачи, пусть даже первое время не очень быстро, но по крайней мере стараться, и регистрировать что делаешь (коммиты, в задаче описывать, спрашивать совет, показывая, что ковыряешь что-то а не тупо сидишь).
    Как оценивать время на выполнение новых задач, с которыми я на прошлой работе не сталкивалась?

    Ну с этим проблемы у многих. Часто, чтобы легче было точно знать сроки на проект, нужно разбить его на множество маленьких подзадач, и каждой задачке примерно оценить время выполнения. Потом все суммировать, и умножить на 2 :-)
    Ответ написан
    1 комментарий
  • Самые неожидаемые вопросы на собеседовании?

    @Vitsliputsli
    Проводить собеседование нужно уметь, это не такая простая вещь как кажется. Вас скорее всего собеседовал чисто технарь, в таких случаях, часто собеседование скатывается в экзамен по его любимым игрушкам. Если у вас отличный взгляд, то шансов нет, все альтернативы и предложения будут проигнорированы, и он будет продолжать грузить тем, на что молится. Собеседований на таких "собеседованиях" не бывает, вас не будут слушать и не будут что-либо рассказывать, их время слишком дорого, а вы лишь соискатель, который претендует играть в их песочнице.
    Идеальный вариант, это технарь-менеджер, человек, который понимает техническую часть, но в тоже время умеет общаться с людьми (это не просто, технарь из 1 абзаца тоже думает что умеет). Благодаря этому навыку, он не будет считать себя богом и вполне сможет посмотреть на вопрос со стороны, или даже допустить, что бывают разные решения.
    Другой вариант, это чисто менеджер. Но это больше, когда претендуете на руководящую или частично руководящую должность. Тут разброс очень широкий, самый печальный вариант, когда менеджер считает себя технарем, тогда сверху еще наслаиваются проблемы из 1 абзаца. В основном же, это вполне нормальные интервью, но может быть много вопросов "за жизнь". Бывают и своеобразные, так есть методика "агрессивного собеседования" - собеседующий опаздывает на 10-15 минут (это должно заставить кандидата нервничать), затем без каких-либо разговоров засыпает вопросами, всячески показывая, что это кандидат заинтересован, а не они. Иногда это может и работает, но когда такое применяют в IT, у кандидата формируется ощущение, что он разговаривал с некомпетентным быдлом. Хотя все это лишь то, что видел я.
    Мне кажется, если человек действительно нужен, то его возьмут. Но не все компании проводящие собеседования действительно набирают людей.
    Ответ написан
    2 комментария
  • Какая ВУЗовская база необходима, для того, чтобы по праву считать себя техническим специалистом и развиваться в этом направлении дальше?

    Griboks
    @Griboks
    Если у вас есть диплом, то вы по праву специалист (не по диплому, а по жизни). Естественно, диплом должен быть получен честным путём.

    Темы нужны такие, которые заложены в официальной программе специальности. Я могу согласиться только с тем, что слово "кашпо" не стоило учить в школе. Всё остальное может рано или поздно пригодиться.

    Если вы действительно хотите стать каким-то профессионалом, то выбирайте направление (узконаправленную профессию) и учите всё, что указано в требованиях к кандидатам на jun/mid/snr.

    Удачи.
    Ответ написан
    Комментировать
  • Обязательно ли иметь российские гражданство при приёме на работу в сфере веб разработки?

    @HellWalk
    Мне вот интересно, люди, которые пишут "не важно" - сами пробовались устроиться без гражданства, без прописки?

    Собеседование вы может и пройдете, но как дойдет дело до оформления - этот вопрос сразу поднимется.

    Знакомый устраивался в Москве на работу, без московской прописки - так ему в отделе кадров порекомендовали "сделать как можно быстрее".
    Ответ написан
    Комментировать
  • Курс введение в IT для гуманитария (не программирование)?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Книги из серии "Windows для чайников" (если там Windows) или "Linux для чайников" (если там Linux)
    Ответ написан
    Комментировать
  • Как выполнять функцию python каждый день в определенное время?

    MaxLevs
    @MaxLevs
    Используя стандартный модуль threading.
    Пример
    from time import sleep, time
    from functools import wraps
    
    
    def mult_threading(func):
         """Декоратор для запуска функции в отдельном потоке"""
         @wraps(func) 
         def wrapper(*args_, **kwargs_): 
             import threading 
             func_thread = threading.Thread(target=func,  
                                            args=tuple(args_),  
                                            kwargs=kwargs_) 
             func_thread.start()
             return func_thread 
         return wrapper
    
    
    #  Сразу делаем функцию многопоточной
    @mult_threading 
    def some_func(x, y, name="Petia", df=None, *args, **kwargs): 
         sleep(5) #  Тут мы чего-то доолго ждем / вычисляем / etc
         print("X = %s; Y = %s; Name=%s; df=%s" % (x, y, name, df)) 
         print("Another args:", args, kwargs)
    
    
    #  ==Проверяем работу==
    #  Стартуем нашу долгоиграющую функцию
    some_func(4, 7, df=11, 21, clone="SomeClone")
    
    #  Занимаемся очень важными делами
    for Z in range(25): 
        print(Z)
        sleep(0.2)


    Результат
    5c46b2b44f46b621492560.gif
    Ответ написан
    3 комментария
  • Как сделать авто-прием друзей вк?

    Noizefan
    @Noizefan
    обязательно поможем.
    1) изучи "Pythone"
    2) найди в апи вк нужные методы
    3) разработай софт
    Ответ написан
    3 комментария
  • Как соотносится токсичность в IT с другими сферами деятельности?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Есть две основные причины того, что так много разговоров про токсичность именно в ИТ:
    1. Низкий порог входа. Как следствие вайти в айти пытается огромное количество не просто неквалифицированных, но и откровенно тупых и ленивых людей.
    2. Высокий уровень представленности в интернет-пространстве. У других профессий меньше возможностей обсуждать свою работу в Интернете.

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

    Lumore
    @Lumore
    Front-end developer
    Ответ написан
    Комментировать
  • В чем отличие прикладной информатики от программной инженерии?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Программу никому неизвестного ВУЗа нужно узнавать в этом вузе.
    Но в любом случае современное веб-программирование там не изучают.

    ИТ область - это область с высоким порогом входа.
    Высокий порог входа не пустые слова. Это сложно. Это очень сложно.
    Это даже для того, чтобы понять чем прикладная информатика отличается от программной инженерии, вам бы поучиться годик, ибо в двух словах пояснить так, чтобы все стало понятно - не получится.

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

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

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

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Не будет стоить овчинка выделки, ей-Богу.

    Хабр - это не "экспертное ИТ-сообщество", как возможно думают некоторые. Это группа людей, имеющих примерно одинаковые мнения по некоторым вопросам, которая внутри своей "тусовки" поддерживает очень четкую, очень жесткую и очень строгую систему - есть некие критерии, о которых ты должен писать так, а не иначе. Если напишешь иначе - тебя сразу же всячески уничтожат в пределах всех этих "карм", "репутаций" и прочего мусора. Есть некий набор положений, типа "А хорошо, Б плохо, делать В хорошо, делать Г плохо". От них отступать нельзя.

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

    Я этот тренд раскусил не сразу но довольно быстро и самовыпилился с хабра, попросив только тостер не трогать. А с хабра, все что относилось ко мне, было выпилено.
    Ответ написан
  • Когда человек становится программистом?

    @spaceatmoon
    Всё просто. Когда вы этим зарабатываете и неважно насколько хорошо.
    Ответ написан
    1 комментарий
  • Зачем на IT собеседовании или перед ним спрашивают "есть ли у вас офферы от других компаний"?

    Я обычно спашиваю после, чтобы знать, сколько у нас времени на раздумье, как сильно торопиться с решением. Иногда бывает, что мы очень нравимся кандидату, он может ради нас отказаться от другого офера, а у нас с ним не получится, к примеру. От такой ситуации тоже страхуюсь.
    Ну и до могут спрашивать по той же причине. Один мне как-то позвонил и говорит: давайте встречаться сегодня, а то мне сегодня ответ надо дать по оферу в другую компанию! Нет, мы, конечно, умеем быстро принимать решения, но стараемся хотя бы до утра ждать все-таки, и это очень помогает! А тут - такое)
    Ответ написан
    Комментировать
  • Как относитесь к курсам на Stepik?

    dadster
    @dadster
    учить инглиш тут - https://t.me/langhacks
    Норм, отличные курсы, одни из лучших в СНГ. ОДнако, авторы разные, поэтому качество может чуть-чуть разнится. Но в целом - 10 из 10, это не Udemy, где 99% шлака.
    Ответ написан
    Комментировать
  • Как относитесь к курсам на Stepik?

    Dit81
    @Dit81
    Security researcher, pentester, internet-marketer
    Я проходил там один курс по web-безопасности, но хочу пройти еще несколько... Впечатления очень хорошие! Много нового и интересного и уроки ведут хорошие лекторы и специалисты
    Ответ написан
    Комментировать
  • Как относитесь к курсам на Stepik?

    @JihadTV
    Отличный сервис, очень много курсов от крутых отечественных преподавателей.
    Ответ написан
    Комментировать
  • Оценка своего уровня. Как улучшить код?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. Используйте const вместо let для определения переменных которые не переопределяются в коде. Это помогает снизить когнитивную нагрузку с человека читающего код и негласный стандарт в React разработке.

    2. Такие вещи как globalStyles и конфигурацию store лучше вынести в отдельные файлы. Они могут со временем хорошо разрастись.
    По поводу globalStyles, вы вообще можете вынести их в отдельный css файл.

    3. Вместо:
    {
      isModal
      ? <Route path="/auth" component={AuthPopup} />
      : null
    }

    лучше:
    {isModal && <Route path="/auth" component={AuthPopup} />}


    4. Вместо:
    function mapDispatchToProps(dispatch) {
        return {
            autoLogin: () => dispatch(autoLogin()),
            getBrowser: () => dispatch(getBrowser()),
            getMedia: () => dispatch(getMedia())
        }
    }


    лучше:
    const mapDispatchToProps = {
      autoLogin,
      getBrowser,
      getMedia,
    };


    5. Точки с запятыми в конце то есть, то нет. Определитесь и приведите код к одному виду.

    6.
    & label {}
    & input {}
    & span {}

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

    7. Почему папка со страницами называется Containers? Дань бойлерплейтам?

    8. Использование trailing comma является хорошей практикой.

    9.
    import {combineReducers} from 'redux';
    import photoReducer from './photoReducer';
    import authReducer from './authReducer';
    import globalReducer from './globalReducer';
    
    export default combineReducers({
        photoReducer, authReducer, globalReducer
    })


    Все таки приятней работать с хранилищем в котором ключи не имеют в названии слова reducer:
    import {combineReducers} from 'redux';
    import photo from './photoReducer';
    import auth from './authReducer';
    import global from './globalReducer';
    
    export default combineReducers({
      photo, 
      auth,
      global,
    });


    10. Забудьте вообще, что в языке есть возможность использовать вложенный тернарный оператор:
    return e === 'invalid-email' ? 'Неверно указан e-mail'
        : e === 'user-not-found' ? 'Указанный e-mail на найден'
        : e === 'wrong-password' ? 'Неверный пароль'
        : e === 'email-already-in-use' ? 'Указанный e-mail уже используется'
        : e === 'network-request-failed' ? 'Нет подключения к интернету'
        : e === 'operation-not-allowed' ? 'Произошла ошибка, попробуйте снова'
        : e === 'popup-closed-by-user' ? 'Окно авторизации закрыто пользователем'
        : e === 'account-exists-with-different-credential' ? 'Аккаунт уже существует с другими данными, используйте другой способ авторизации'
        : e

    Это одна из самых худших практик в JavaScript разработке. Тут лучше подойдет конструкция switch case

    11. Константы actionTypes лучше вынести в папку constants и разложить по разным файлам, иначе со временем у вас там будет свалка.

    12. Вместо:
    import {SET_ACTIVE, CHANGE_VALUE, SET_DEFAULT, UPLOAD, UPDATE_IMAGE, SET_IMAGE_ERROR, SET_LIKE, SET_COMMENT, ADD_ARTICLE_SUCCESS, FETCH_ARTICLES_START, FETCH_ARTICLES_SUCCESS, FETCH_ARTICLES_ERROR} from '../actions/actionTypes';

    Лучше:
    import {
      SET_ACTIVE,
      CHANGE_VALUE,
      SET_DEFAULT, UPLOAD,  
      UPDATE_IMAGE,
      SET_IMAGE_ERROR,
      SET_LIKE,
      SET_COMMENT,
      ADD_ARTICLE_SUCCESS,
      FETCH_ARTICLES_START,
      FETCH_ARTICLES_SUCCESS,
      FETCH_ARTICLES_ERROR,
    } from '../actions/actionTypes';


    13. Попробуйте внедрить библиотеку reselect. И для получения значения из store вместо записи вида:
    function mapStateToProps(state) {
        return {
            browser: state.globalReducer.browser
        }
    }


    использовать селектор:
    const mapStateToProps = state => ({
      browser: browserSelector(state),
    });
    Ответ написан
    12 комментариев