• Нужна ли здесь база данных? В каком случае стоит использовать БД в простом приложении?

    @orbit070
    Такие данные можно хранить разными способами: записывать в файл, использовать shared preferences, базу данных. В сохранении в файл такой информации смысла нет, выбирайте между shared preferences и базой данных. SP обычно используют для сохранения пользовательских настроек (что вписывается в вашу задачу), база данных обычно используется для хранения данных более контентного характера(например список книг правильнее и удобнее хранить в базе данных). В вашем случае без разницы где именно хранить, но я бы не усложнял базой данных и использовал shared preferences.
    Ответ написан
  • Каков алгоритм работы программиста?

    @orbit070
    Как я понял, программист изначально учит синтаксис языка и основы (структуры данных, управление потоком, операторы и тд), затем открывает сайт вакансий и смотрит какие библиотеки/фреймворки указаны в вакансии, учит их и устраивается, и затем решает данные ему задачи с помощью этих библиотек/фреймворков и собственно все?

    В яблочко. В зависимости от конкретных компаний стек может немного отличаться(например где-то вместо библиотеки А используют библиотеку Б), но это незначительно. Главное знать основную связку язык+фреймворк, все остальное по ходу дела можно освоить. Ну и выбор библиотек и прочего не ложится на ваши плечи, в компаниях как правило уже есть готовый набор всего, что они используют, вам просто остается освоить из этого списка то, чего не знаете
    Ответ написан
    Комментировать
  • Приложения Duolingo,Bussu,Lingualeo! Какая примерная стоимость их разработки?

    @orbit070
    Стоимость разработки самого приложения это капля в море от стоимости упаковки, контента, продвижения и вывода продукта на рынок. Разработанное приложение это не конечный продукт. Приложение на каждую из платформ будет стоить несколько сотен тысяч рублей, но повторюсь, это стоимость лишь голого приложения, которое ещё не конечный продукт.

    Ну и самое главное что вам нужно знать: ваши улучшения если окажутся крутыми то могут быть введены вашими конкурентами и у вас перед ними не останется никаких преимуществ, а у них будет все то же что у вас + миллионная аудитория и бренд. Так что если это не кардинально новый формат продукта то не тратьте силы и средства.
    Ответ написан
  • Что можете сказать об IT Hub колледже?

    @orbit070
    Попасть может любой, кто будет платить 30 т. р. в месяц.

    Тратя 30к в месяц в нормального ментора через два года можно стать тем, кто будет решать, принимать на работу окончивших этот колледж или нет
    Ответ написан
    Комментировать
  • Как правильно спроектировать базу данных?

    @orbit070
    Таблица Рейтинг постов вида (post_id, user_id).
    Таблица Рейтинг комментов вида (comment_id, user_id).
    Таблица комментов вида (post_id, comment_id).

    Для того чтобы при каждом обращении не считать с нуля рейтинг делается элементарная штука: в таблице Постов заводите дополнительное поле Рейтинг. И каждой раз когда кто-то ставит плюс(ну или минус) помимо добавления(или удаления) записи в таблицу Рейтинг постов вы так же увеличиваете(или уменьшаете) поле Рейтинг в таблице постов. Аналогично заводите такое же поле Рейтинг в таблице комментариев и при каждом плюсе/минусе комментария помимо добавления в таблице Рейтинг комментариев увеличиваете(уменьшаете) счетчик-поле рейтинг в самой таблице Комментарии
    Ответ написан
    3 комментария
  • C помощью каких инструментов можно создать сайт любой сложности?

    @orbit070
    На вопрос невозможно дать однозначный ответ.
    Если сильно постараться, то на любом языке и стеке можно сделать почти все что взбредет в голову, это уже зависит от склонности человека к извращениям. Более адекватным подходом является подбор инструментов отталкиваясь от задач. Задачу вы не озвучили, поэтому посоветовать что-то по существу не видится возможным.
    Ответ написан
    4 комментария
  • Есть ли нюансы при использовании бесплатного плана в Firebase?

    @orbit070
    1. Достаточно ли базового бесплатного плана к примеру для приложение (Vue.js+Firebase) внутреннего пользования, для малого бизнеса (ведение учета, графики зависимостей и т.д.), в плане бд, хостинга, количества запросов и т.д. ?

    В большинстве случаев достаточно. Если не ошибаюсь в прошлом году публиковали статистику, согласно которой лишь чуть более 1% проектов превышали бесплатный тариф, что как понимаете очень мало.

    2. На сколько вообще распространена практика использования бесплатного плана Firebase для продакшен ?

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

    3. Есть ли какие-то нюансы при использовании в продакшен такого плана ?

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

    4. Достаточно ли являются защищенными данные в БД ? Нужна ли для защиты дополнительная утилита?

    Дополнительная защита не нужна, вряд ли существует что-то более защищенное, чем сервисы гугла.
    Ответ написан
    2 комментария
  • Сколько лет нужно чтобы стать полноценным программистом С++?

    @orbit070
    Во-первых скажу так: если вы не фантазер, который думает что сможет через 3-5 месяцев уже работать полноценным джуном(а таких тут очень много), то все отлично. Даже уделяя правильному обучению 3-4 часа в день(больше просто неэффективно), за год вы вполне сможете стать полноценным джуном, тем более что для вас все это не совсем с нуля, хоть и давненько было.
    Второе: как уже обратили внимание - даже если вы потратили месяц другой на c++ не стоит считать это достаточным основанием, чтобы связать жизнь с этим языком. Изучите, где применяется он и подумайте - интересно ли вам это будет. Я несколько лет занимался тем, что мне изначально было не по душе, как итог - переучиваюсь на андроид разработчика уже несколько месяцев. Не совершайте таких ошибок, пара месяцев ничто, чтобы из-за них продолжать учить то, что не "торкает".
    Третье: все-таки 34-35 это не далеко за сорок. Да, джунов преимущественно хотят видеть 20илетних, но ваш возраст очень далек от того, когда прям нет. В общем вперед, надеюсь через год увидеть на хабре статью, в которой рассказываете как у вас все получилось)
    Ответ написан
    1 комментарий
  • Как создать базу данных для игроков в онлайн игре?

    @orbit070
    Вопрос конечно каша, но давайте попробуем:
    1) Никаких двух бд не надо
    2) Для пользователей создается таблица например Users, в которой хранятся почта, хеш пароля, имя, и т.д, то есть информация об аккаунте
    3) Для персонажей игры создается отдельная таблица например Heroes. В ней храните уже информацию о персонаже игры и поле user_id, чтобы было понятно какому пользователю принадлежит персонаж.
    4) Все остальные таблицы вроде Инвентарь и прочее должны ссылаться на таблицу Heroes и хранить hero_id.
    5) Профит
    Ответ написан
    3 комментария
  • Востребованный, "проверенный" стек технологий. Что выбрать, чтобы быстро найти работу?

    @orbit070
    чтобы уже через 3 месяца или полгода устроиться на работу за хлеб за первым отытом

    Полгода еще ладно, про 3 месяца забудьте, потому что
    (я занимаюсь по 13 часов в день

    не эквивалентно занятиям 3+ часа в день на протяжении 4х дней. Даже если вы каким-то мистическим образом можете в день 13 часов учить что-то(во что я ни за что не поверю), то даже если это так, то все равно эффективность такого обучения сильно падает спустя 3 часа. Даже опытные программисты не часто способны несколько часов подряд программировать, но при этом работать намного легче чем учить что-то новое. Есть даже такая штука - бывает сидишь уже под конец дня 2-3 часа не можешь решить задачу или пофиксить баг, башка не варит и вообще не понимаешь что происходит и почему не работает. Но стоит тебе прийти на следующий день на свежую голову и буквально за 10-15 минут проблема решается. Желание и рвение это конечно хорошо, но ресурсы нашего организма имеют свою позицию на это счет, так что 13 часов в день это самообман, поверьте.

    А на счет стека и прочего: свой путь нужно начинать не с выбора языка программирования, а с выбора того, чем вы хотите заниматься. Вы когда выбирали java для чего его выбирали? Если например вы хотели разрабатывать под андроид - то заходите на hh, открываете 20 вакансий андроид разработчика -> выписываете оттуда все требования -> получаете нужный стек.
    Ответ написан
    6 комментариев
  • Как хранить Настройки пользователя?

    @orbit070
    На вопрос невозможно дать однозначный ответ. Все перечисленные способы имеют право на жизнь в тех или иных ситуациях, но:
    1) Я бы не советовал захламлять излишне таблицу user, получите огромную кашу.
    2) Json я бы рекомендовал только в исключительном случае, все-таки это уход от нормальных форм.
    3) Наиболее каноничным является вынесение настроек в отдельную таблицу вида user_settings(user_id, setting1, setting2, ...).

    Касательно уведомлений - так как уведомления собой представляют чаще набор, то каждое отдельное уведомление вписывать в таблицу с настройками конечно можно и удобно, но не совсем по феньшую. Если пунктов уведомлений не так много, то можно их вписать прям в таблицу настроек, то есть вроде этого user_settings(user_id, setting1, setting2, ..., notification1, notification2, ...). Но этот вариант не является гибким, потому что к примеру для каждого отдельного уведомления могут в дальнейшем потребовать настройки(например приоритет уведомления). Поэтому наиболее правильным будет завести одну таблицу для настроек профиля как указано выше, а вторую таблицу для уведомлений вида user_notifications(user_id, notification_id, notification_name, priority, ...). Так все будет очень гибко и будет соответсвовать нормальным формам.
    Ответ написан
    4 комментария
  • Какую справедливую формулу можно использовать для вычисления истинной симпатии (лайки) к ответу на Тостере?

    @orbit070
    Нужно будет в первую очередь собрать статистику по времени появления каждого лайка с момента ответа, но насколько мне известно время лайка тут нельзя посмотреть. Хотя если попросить админов может дадут эти данные. Если есть время появления лайков, то исходя из этого дальше плясать, например, присвоив лайкам коэффициенты, на которые стоит их умножать: то есть если допустим нам статистика показала, что в течение первого часа ответы получают больше лайков например в 2 раза, чем за все остальное время, то каждый лайк считаем как 1, в то время как все лайки спустя час считаем как 1*2, чтобы уравнять неравные условия. Но это тривиальный пример для демонстрации идеи уравнивания лайков, на деле нужно больше множителей и тщательно исследовать различные промежутки времени. Помимо этого, огромное значение имеет день недели и время, когда был задан вопрос. В те же выходные дни тухляк.

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

    @orbit070
    Видеокарта дискретная не нужна, встроенной графики процессора достаточно. Любого десктопного i5 достаточно, i7 тем более. Оперативной памяти минимум 16гб. Это не желательно, а минимум для комфортной работы, у меня 8гб и их не хватает на студию и браузер.
    Ответ написан
    3 комментария
  • Как правильно настроить аутентификацию в firebase при помощи email и password?

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

    Метод "createUserWithEmailAndPassword()" - для регистрации.
    По аналогии есть метод для логина - "signInWithEmailAndPassword()".
    О них можете почитать тут.

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

    @orbit070
    Проект имеет большой потенциал, вероятность того, что он стрельнет - 90%

    Так думает каждый человек, который пилит какой-то проект. Выстреливают 2-5%. Просто статистика.

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

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

    1. Запускать в одиночку, бороться со всеми проблемами на лету

    Поначалу многим кажется, что можно в одиночку тянуть проект, но к сожалению это не так. Я скажу больше: даже элементарно роль разработчика в одиночку не всегда можно тянуть, а вы хотите быть одновременно разработчиком/тестировщиком/админом/маркетологом/менеджером/управленцеми/бухгалтером/юристом/и т.д. Если бы такая формула работала, то в компаниях вместо 15-и зарплат всем этим людям, платили бы одному умельцу, но даже если такой умелец существует, который прожил три жизни и вобрал в себя все эти знания и умения, то все равно ничего не выйдет, ведь в сутках всего 24 часа. В общем это невозможно, как бы вам этого ни хотелось. Я понимаю, что соблазн велик и делить с кем-то потенциально жирный кусок мяса не хочется(делить, потому что денег у вас я как понял нет, значит придется отдавать долю в проекте), но у вас выбора почти нет. История знает единицы случаев, когда кто-то в одиночку запускал успешный бизнес в интернет-пространстве. Просто изучите историю и поймете - почти за всеми известными цифровыми продуктами стоят команды, потому что физически в одиночку это почти невозможно. Я готов руку на отсечение отдать, что если это будет работающий продукт, вы даже роль разработчика собой не закроете, не говоря уже об остальном, потому что там работы не на одного человека. Если вы думаете что админить, девопсить, тестировать, багфиксить, внедрять новый функционал и тд можно в одиночку, то вы очень сильно заблуждаетесь.

    Итого: нужно найти в себе силы и снять розовые очки. Сделали проект - хорошо. Теперь пойдите и найдите 50 человек, которые скажут, что продукт им может быть полезен. Как только они скажут "круто я бы пользовался" - скажите отлично, вот мой сайт, пользуйся. Так вот если из этих 50и человек хотя бы 3 человека заплатят деньги - то поздравляю, вы создали действительно что-то полезное, и польза продукта подтверждена. Теперь берете пару сотен долларов и ищете наиболее дешевые каналы привлечения клиентов - пробуете разные виды рекламы. Если на двести долларов привлекли например 10 платящих клиентов, то один клиент вам обошелся в 20 долларов. При этом например ваш продукт(для примера) стоит 25 долларов, получается экономика сходится - потратили 20 получили 25. Любой инвестор с удовольствием рассмотрит ваш проект и с большой долей вероятности даст денег. Удачи
    Ответ написан
    Комментировать
  • Как грамотно построить общение, чтобы HR первым назвал вилку зарплаты?

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

    @orbit070
    Как же мне плохо становится от подобных вопросов, сколько вы зарабатываете, что готовы просто так на ровном месте переплатить десятки тысяч рублей за красивый корпус? Я не шучу, десятки тысяч рублей за красивый корпус - у некоторых зп такая. Зайдите в любую группу вк по сборкам или на любой ютуб канал и спросите там - поверьте там ребята самые лучшие сборки по соотношению цена качество предложат, вам останется просто купить все эти компоненты и попросить в магазине собрать их воедино за 2 тысячи рублей. Сэкономленные десятки тысяч пожертвуйте в детский дом. Есть канал на ютуб "техно кухня" - там самые шарящие ребята, найдете кучу сборок в разных ценовых сегментах, выбирайте любую и готово. Они даже сами собрать могут, разогнать и отправить вам на адрес, за 0.5% от стоимости, в компе за 100к это лишь 5к рублей, в то время как компания о которой спрашиваете в компе за 100к возьмет минимум 30к
    Ответ написан
    23 комментария
  • Как редактировать данные firebase?

    @orbit070
    Для обновления/редактирования данных там используются методы put и patch.
    Put - если записи нет то он создаст новую, а если запись есть - то он перезапишет все данные.
    Patch - добавит/удалит/изменит данные в записи без изменения самой записи.

    Примеры
    Ответ написан
    1 комментарий
  • Как тестировать Android приложение чтобы оно работало на разных устройствах корректно?

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