• Нужно ли провинциальное высшее IT образование?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Те, кто считает, что университет учит учиться, что он настраивает мозги на нужный лад — просто не пишите об этом здесь пожалуйста.

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

    На самом деле Вы хотите от нас не ответа на вопрос. На самом деле Вы решение уже приняли, и хотите от нас услышать подтверждение в его правильности. Ну так фиг Вам.

    Хотите уже сейчас идти формошлепствовать? You are welcome. Тысячи таких же, как Вы сидят на апворке зарабатывая на дошик. Хотите загнать себя в тупик - гоните. Быть может Вам удастся стать гением фриланса, к которому записываются за полгода. Если же нет - тут недавно вопрос был похожий - чувак в 30 лет спрашивал, как ему теперь дальше?
    Только не говорите, что 30 лет - это черт знает когда будет. Это будет гораздо скорее, чем вы думаете. И жизнь не кончится.

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

    Решение в любом случае за Вами.
    - С образованием Вас возьмут всюду, куда сможете пробиться
    - Без образования Ваш удел - фриланс и мелкие конторы, которые обычно кладут на наличие вышки.

    В ИТ нет легких и быстрых денег. Если Вы хотели этого - я Вас разочарую.
    Ответ написан
  • Как учить технический английский?

    @SashaKon
    Учусь Python/Django
    Внесу свои 5 копеек. Для пополнения словарного запаса очень помогает программа Anki, есть для ПК и для Андроида, iOS не знаю. Программа полностью бесплатна, колоды на трекерах можно скачать. Выставляешь по 10-20-30 слов и повторяешь каждый день.
    Ответ написан
    1 комментарий
  • Есть ли способ быстрее выделять блоки текста в браузере Google Chrome?

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

    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 комментариев
  • Как изменить горячую клавишу смены языка на Ctrl+Shift в Ubuntu 18.04?

    Надо установить gnome-tweaks:
    sudo apt-get install gnome-tweak-tool
    Далее вызываете gnome-tweaks, с левой стороны выбираете "Клавиатура и мышь".
    Под "Комбинация клавиш ... " есть кнопка "Дополнительные параметры раскладки" нажимаете и в окне выбираете "Переключение на другую раскладку". Там можно выбрать любую комбинацию от Alt+Shift и т.д.
    Ответ написан
    15 комментариев
  • Какова суть фреймворков и библиотек?

    Stalker_RED
    @Stalker_RED
    Библиотека это инструмент или набор каких-то инструментов.
    Бибилиотека для скачивания видео с ютуба
    Бибилиотека для кропа и ресайза картинок
    Бибилиотека для определения города по IP

    Фреймворк может использовать десятки или сотни разных библиотек. Это набор не только инструментов, но и готовых компонентов, и еще и рекомендация по их использованию.

    "набор для постройки скворечника"
    В комплекте молоток, гвозди, столярный клей, 20 деревянных досточек разных форм и расцветок и инструкция с тремая вариантами скворечника на выбор.

    Или вот два фреймворка:
    Ezva9I.pngzC6ZHT.png
    Можно ли их использовать вместе? (Конечно, никто не запрещает)
    Можно ли из этих деталей построить что-то совсем другое, не такое как в инструкции? (Конечно да)
    Можно ли с этими фреймворками использовать детали еще и из этого?
    lGjE1A.png
    (конечно можно, но придется что-то придумать для совместимости деталек. Быть может придется применить клей, изоленту, пластилин или жвачку. Или шуруповерт, или сварочный аппарат. Но ни в один комплект эти дополнительные инструменты не входят, как и скиллы к ним.)

    Можете посмотреть еще сюда, этот ответ частично покрывает ваш вопрос:
    Для чего нужны фреймворки, а-ля Laravel?
    Ответ написан
    Комментировать
  • Django vs Asp.net?

    Привет.

    1. Если живешь в 2 столицах России или одной из столиц Украина, РБ, то можешь учить Python (django), там есть работа в неплохих фирмах. Плюс на Python достаточно комфортно собирать проекты под себя (что я лично и делаю).

    2. Если живешь в каком-то другом городе (более менее адекватном по размеру), то однозначно .net(java), так как и ЗП хорошие, и работу будет проще найти. Да и в плане переезда в столицы, со знанием .net(java) будет проще.

    3. Если живешь в жопе, то учи php/1c.

    Я лично начинал с Python, собрал под них своим проекты (которые окупаются, что хорошо), потом взял себе стек Java - автоматизация. Накопил денег и буду переезжать в Питер уже под конкретные предложения по работе. на Java. С Питон ныкался повсюду, нигде не брали зеленого.
    Ответ написан
    Комментировать
  • Какие сложности могут возникнуть при изучении Java после C#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    типичные трудности изучения "следующего языка":
    - лень
    - прокрастинаяция
    - увиливание

    преимущества изучения "следующего языка":
    - ломка стереотипов и призм "первого языка"
    - расширение программистского понимания вне рамок языков

    в случае ява после шарпа (как и наоборот) и трудности, и бонусы минимальные. сами языки, ближе к друг другу, чем даже к C/C++, хотя оба их потомки. там больше проблем будет с окружениями и библиотеками - тут уже различия глобальные. вокруг каждого языка, собственная экосистема (.Net/Mono против JVM). при этом, эти экосистемы не пересекаются, и состоят в откровенной конкуренции. это имеет значение, когда уже подростаем до уровня готовности к реальному трудоустройству. но есть нюансик - на этом уровне, программист уже в состоянии без соплей, довольно быстро осваиваться в конкурентной экосистеме (понимая общие основные принципы)
    Ответ написан
    Комментировать
  • Как обратиться к элементам в ассоциативном массиве javascript?

    AngReload
    @AngReload
    Кратко о себе
    Почти правильно, надо так:
    var cPairs = {
            'Bitcoin':{
                'Cash':'BCHUSD',
                'Gold':'BTGUSD',
                'define':'Bitcoin'
            },
        }
        
    var currPair = 'Bitcoin', c = 'Cash';
    
    console.log(cPairs[currPair][c]);
    Ответ написан
    Комментировать
  • Где взять задачи по С#?

    @ryzhakpyth
    Программист - Недоросль
    Посмотрите сайт https://www.codewars.com/. Здесь задачи можно выбирать по уровню сложности, по категории(арифметика, ООП и др.). Также здесь поддерживается около 20 языков.
    Ответ написан
    Комментировать
  • Как определиться с профессией?

    Decadal
    @Decadal
    Почему вы думаете, что, если пойти к вороху айтишников на Тостере, они подскажут вам правильный путь по жизни? Учитесь, учитесь, прикидывайте, от чего вас не будет тошнить, если заниматься этим восемь часов в день пять дней в неделю... и снова учитесь.
    Ответ написан
    Комментировать
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    sim3x
    @sim3x
    1. Как повезет
    2. Зависит от региона
    3. Тайтлы, зп

    Если тошнит от технологий и ЯП, то вам не стоит идти в программинг
    Не может тошнить повара от не фирменной сковородки
    Ответ написан
    11 комментариев
  • Как законнектиться к серверам телеграма через ExportTelegramContacts(с гитхаба)?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    VPN
    Ответ написан
    Комментировать
  • Где можно регулярно почитывать статьи про информационную безопасность?

    NSA-bot
    @NSA-bot
    На Хабре с соответствующим тэгом. Там и на RSS можно подписаться, если практикуете.
    https://habrahabr.ru/hub/infosecurity/
    Ответ написан
    Комментировать
  • Назовите сайты где могут сделать лабы по языкам Rust, Javascript и Go, быстро и без обмана?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если бы мошенников можно было легко вычислить, их бы не существовало.
    Поэтому без обмана - нигде, нужно самостоятельно читать отзывы про исполнителей.
    А так - на любой фриланс бирже, где оплата после выполнения задания. Тот же "фрилансим".
    Но можно поискать тематические группы в ВК.
    Ответ написан
    Комментировать