• Какие стратегии повышения зарплаты существуют?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Центральный показатель для бизнеса, а следовательно и руководителей, как людей представляющих интересы этого самого бизнеса - это коэффициент возврата инвестиций (ROI). Соответственно, сотрудник должен приносить компании больше денег, чем потребляет. Естественно, что чем выше разрыв между затратами и прибылью, тем лучше, поэтому фонд оплаты труда руководитель должен держать на том минимальном уровне, который гарантирует бесперебойную работу сотрудников. Один из факторов этой бесперебойности - низкая текучка. Сотрудников терять нежелательно. И чем ценнее для компании сотрудник, чем более он профессионален и/или чем больше на него завязано, тем дороже обходится его потеря. Натурально в деньгах. Придётся затратить больше, чем обычно, денег на поддержание работы без него. Придётся затратить деньги и время (те же деньги) на поиск, найм, введение в работу, возможно, обучение нового сотрудника. При этом он может оказаться совсем неподходящих и цикл придётся повторить. Или может оказаться просто хуже прошлого и эффективность отдела снизится. Поэтому, когда сотрудник приходит просить прибавку, руководитель оценивает может ли этот сотрудник уйти или только блефует, насколько легко его будет заменить, какой урон компании будет нанесён его уходом. Потом руководитель оценивает стоимость расширения ФОТ - есть ли резервы, какой сейчас ROI, будет ли больший ROI от реинвестиции этих средств во что-то другое? Если уход сотрудника будет стоить меньше, чем увеличение ФОТа, сотруднику откажут.

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

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

    @drLemmi
    "Российские" проекты, думаю, тоже сопровождаются на английском языке, ибо GitHub интернациональная платформа. Я бы посоветовал хотя бы с Google Translate посидеть, если с языком плохо. Будет долго, да, но без языка особо никуда и не влезть. Дерзай, и удачи!
    Ответ написан
    Комментировать
  • Зачем прописывать методы в Interface когда можно так же в классе?

    @Mercury13
    Программист на «си с крестами» и не только
    Ответ явоспецифичный. Потому что один класс может реализовать сколько угодно интерфейсов, но наследуется лишь от одного класса.

    Ответ концептуальный. Ромбическое наследование. От А наследуются B и C, от них обоих наследуется D.
    1) Если в A есть поле, в D что, это поле будет в двух экземплярах? А если оно protected и в B мы добавили метод, который его меняет?
    2) Если B и C переопределяют какой-то метод foo(), как быть D? А если нужна и версия B.foo(), и C.foo(), и они обе вызывают A.foo — получатеся D.foo вызовет A.foo дважды? А если в C есть второй метод bar(), который вызывает foo() и начинает вести себя не так, как надо, если мы берём реализацию B.foo()?
    В общем, множественное наследование — хорошая штука, но ромбическое — штука опасная. В языке, где любое множественное наследование неизменно ромбическое, всё, что остаётся — делать такие условия, при которых ни 1, ни 2 не сработает.
    Одно из таких условий — унаследоваться от одного класса и нескольких интерфейсов. 1) У интерфейса нет полей, и 2) эталонная реализация, существующая в некоторых языках программирования, в любом случае менее приоритетна, чем конкретная реализация из класса. Вызывать ту и другую нет смысла: если программист написал свою сверх эталонной — значит, он хочет сделать то же другим путём.
    Ответ написан
    Комментировать
  • Можно ли использовать сторонние библиотеки для своей?

    kozinakoff
    @kozinakoff
    iOS-developer
    Если речь про RxJava, то, вроде бы как, никаких проблем не должно быть.
    На гитхабе 100500+ таких библиотек, вот хотя бы популярная RxPermissions. Просто укажите в описании, что используете под капотом сторонние библиотеки.
    Ответ написан
    Комментировать
  • Какое есть приложение для управления компьютером хлопками в ладоши?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    что нибудь типа такого
    windowsprofi.ru/win10/sposoby-golosovogo-upravleni...
    для этого лучше не в ладоши,а в бубен ㋛
    5a204851cbc2f924828429.jpeg
    Ответ написан
    4 комментария
  • Что не даёт на C++ писать кроссплатформенные приложения?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Да, как бы, ничего не мешает писать один С++ код для множества платформ. Почти весь мой трудовой стаж связан именно с разработкой кроссплатформенных игр. Я работал с несколькими (самодельными и не очень) движками и имею свое собственное детище, прекрасно и однозначно собирающееся на 5 целевых платформ (Win, Mac, Linux, ios, Android), к которым без труда можно добавить и консоли, и новые платформы.

    Нет, вру, не без труда. Попотеть над слоем абстракции придется. Но попотеть придется только над ним, все остальное заведется само, т.к. изначально написано в стандарте C++, без расширений под конкретные компиляторы, и с применением ряда очень важных для кроссплатформенности подходов.

    Кроссплатформенность подразумевает решение ряда вопросов, которые и выливаются в слой абстракции над операционной системой. Эти вопросы, зачастую, решать никто не хочет. Несколько раз встречал такое сам и еще мне рассказывали о том, как тот или иной движок сперва был только под конкретную ###, а потом решили портировать на @@@. Оказалось, что компилятор, которым всегда и собирали движок, нашпигован расширениями языка, которые конечно же все пользовали на 100%, и при смене компилятора ни один файл исходников не остался без доброй сотни ошибок. Т.е. переписывать надо было ВСЁ.

    Mercury13 хорошо рассказал про Unicode пути к файлам. Drakonoved правильно подметил про разделители путей к файлам. Максим Гришин очень хорошо напомнил про порядок следования байт. Это все и есть часть этого ряда вопросов.
    У каждой платформы есть свой API, которого не будет на другой платформе. Но на другой платформе будет свой API, со своими именами и схожей функциональностью. И работу с API надо абстрагировать от универсального кода.
    Еще, на одной платформе у тебя может быть разомкнутый главный цикл обработки сообщений (Win), а на другой - замкнутый (Android). Надо подстраиваться. GUI везде разный, надо подстраиваться. Сама структура приложения на одной платформе может быть монолитной, а на другой - композиционной. Графические и звуковые API могут быть и кроссплатформенными, однако простоты использования это им не прибавляет. Инициализация все равно будет платформозависимой.
    На самом деле даже в рамках работы на одной платформе надо соблюдать ряд правил, чтобы иметь возможность из одного кода получать и 32-битное приложение, и 64-битное тоже. Об этом неплохо написано на сайте разработчиков PVS-Studio.

    И все это решается. От части - с помощью архитектурных приемов. Один из таких я уже показывал в другом своем ответе.
    И еще эти вопросы можно не решать.
    ДубльГИС, например, уже давно работает на базе Qt, что сильно упростило им кроссплатформенную жизнь. Qt решает ряд проблем кроссплатформенности.
    Ответ написан
    10 комментариев
  • Работа верстальщиком. Тупик в самостоятельном обучении. Что делать и как лучше выстроить обучение и поиск работы?

    snap44
    @snap44
    Фыр!
    За то время, что вы потратили на эту телегу, вы могли откликнуться на 2 десятка вакансий.
    На свой главный вопрос вы сами ответили: все индивидуально. И не только со стороны работника, но и работодателя. Кто-то фул-стака обзывает верстальщиком и предлагает 30к, а кто-то готов взять со знаниями меньше, чем у вас.
    Ответ написан
    Комментировать
  • Конвертер готового исходного кода PHP/JS в трудозатраты (специалисты: часы и рейт по каждому)?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    тут 2 варианта:
    1) попытаться сделать это все маленькой командой и получить на выходе недоалгоритм, который никому не будет нужен.
    2) нужна будет рабочая сила и бюджет как у гугла, с помощью которого уже получится реализовать действительно годный продукт с крутым ИИ на нейросетях и т.д.
    Ответ написан
    Комментировать
  • Какие книги по разработке игр стоит прочитать?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    gameprogrammingpatterns.com
    Сорян, что не на русском, но без английского в IT далеко не уедешь все равно.
    Ответ написан
    Комментировать
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

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

    mitaichik
    @mitaichik
    Как вытаскивать из БД написанно в доках https://developer.android.com/training/basics/data...

    Создавать можно либо напрямую new Button с последующей установкой всех параметров, либо лучше с помощью inflate (позволяет создать нормальный layout в xml).

    id присваивать не надо, надо ставить setOnClickLisener на кнопки.

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

    @Statusgman
    iOS developer
    Вы говорите об архитектурных подходах. Принципы DI применимы везде и в разработке под iOS тоже. Однако, необходимо понимать, какие проблемы Вы хотите решить, используя тот или иной архитектурный паттерн.
    Если вы только начинаете изучать разработку iOS, обратите внимание на MVC в представлении apple (DI там особо не пригодится). Столкнувшись с определенными проблемами MVC (толстый контроллер), можно посмотреть на MVP или MVVM.
    Вообще не стоит обращать внимание на то что "модно" - следует по возможности следовать основным концепциям хорошего кода (SOLID, KISS ...).
    Для начала я бы не уделял особого внимания архитектурам, а сосредоточился на основных вещах: использование storyboard и autolayout, UIKit, CoreData

    Что касается библиотек - популярные либы для работы с сетью AFNetworking (Alamofire для swift). Остальное по вкусу, можно посмотреть лучшие либы например здесь.
    Ответ написан
    Комментировать
  • Какой современный стэк iOS разработчика?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Всё зависит от компании куда пойдете. В любом случае смотрите всё и пробуйте. Расширенный кругозор всегда в плюсе.
    Я сейчас ухожу в компанию которая всё пишет в реактиве с mvvm. Ни с тем, ни с другим дела не имел. Но это не проблема для компании, потому что при должном опыте, такие вещи разбираются за неделю, и там это прекрасно понимают. Куда важнее общие знания платформы, солида и языка.

    По поводу библиотек: www.ioscookies.com
    Ответ написан
    5 комментариев
  • Как получить данные элемента ListView?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Ну просто кастуйте
    (Map<String, *что у вас там*>)adapter.getItem(position)
    А из мапы уже по ключу вытаскивайте.

    P.S.И вообще, все эти Simple/Array адаптеры - профанация. Делайте свой нормальный адаптер. А лучше возьмите RecyclerView и делайте с помощью него.
    Ответ написан
    3 комментария