• Что сейчас нужно в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    От выбранного вами направления возможно, на основе ваших интересов, меньшей конкуренции и других факторов, будет зависеть то, какой язык программирования вы выучите и каким стеком технологий будете пользоваться. Я и сам сейчас изучаю Java, так что в первую очередь необходимо изучить синтаксис языка (неважно будь то python, java, ruby и т.д.) и обязательно изучить парадигмы (ООП, АОП, функциональное программирование и др.). Также обратите внимание на структуру данных, алгоритмы и паттерны проектирования.
    Java это в основном либо enterprise разработка, либо мобильная разработка (java, kotlin). Знание одного ЯП недостаточно, так как вам нужно уметь обращаться с БД, а значит нужно уметь работать с SQL (MySQL, PostgreSQL, H2, Derby, MsSQL, Oracle и т.д.) и NoSQL (MongoDB). Если речь идет о вебе, то иметь представление об html 5, css 3, JavaScript & TypeScript (jquery, какой-нибудь фрейм - Angular, ReactJS, VueJS). Ну и конечно же фреймворки на Java (Spring, Play и др.).
    Я например, по мере изучения пишу пет-проекты или беру небольшие заказы на фриланс-биржах (парсеры, небольшие приложение с GUI, веб-приложения на Spring, REST сервисы и т.д.). Надо также ориентироваться на вакансии.
    Ответ написан
    Комментировать
  • Что выбрать? Kotlin или Flutter?

    @Kostik_1993
    Web Developer
    Вот и начались КАНИКУЛЫ у школьников на самоизоляции, они не могут гулять, так о будущем все думают. Какая ось заменит Android через N лет? А стать ли мне хакером и на какой для этого паблик подписаться? А что если я и гейм- и веб-разработчиком буду одновременно?

    Учить нужно то что актуально сейчас. Пока что это котлин. А после того как выучите котлин и поймете как все работает вам уже будет не трудно и в случае ухода его на второй план выучить Flutter
    Ответ написан
    3 комментария
  • Какие ИТ курсы по мобильной разработке выбрать?

    Zoominger
    @Zoominger
    System Integrator
    Никакие. Ну не научит вас "припадаватель", получающий копейки, чему-то стоящему.
    Читайте книги.
    Это ответ.
    Ответ написан
    2 комментария
  • Как написать программу работающую со сборщиком мусора?

    Vamp
    @Vamp
    Задание поставлено очень широко. Листинг из примера ниже будет ему в точности соответствовать:

    // Работа с большими объектами
    byte[] b = new byte[65536];
    b[0] = 1;
    System.out.println(b[0]);
    
    // и с маленькими
    String s = "123";
    System.out.println(s.hashCode());
    
    // и с финализируемыми объектами
    Object f = new Object() {
        @Override
        protected void finalize() {
            System.out.println("I'm finalized!");
        }
    };
    // Строго говоря, объекты b и s так же являются финализируемыми,
    // так как наследуют метод finalize() от своего предка.
    // Так что f можно было даже не писать.
    
    System.gc();
    System.gc();
    System.gc();
    System.gc();
    // В этом месте объекты b, s и f пережили 4 цикла сборки.
    // Наверное... ¯\_(ツ)_/¯
    //
    // Более точно можно сказать, запустив программу с
    // аргументом -verbose:gc или с помощью утилиты visualvm
    Ответ написан
    6 комментариев
  • Как запланировать уведомление в Android?

    @Shikato
    Android
    По хорошему веб приложение поднять которое бы узнавало дату запуска раз в час (чаще/реже) и, в случае успеха, отправляло бы через облачный сервер уведомление об этом в приложуху, также я бы реализовал поле которое бы после открытие приложения выдавала бы информацию по этому запросу к апи (чтобы наверняка не проспать запуск)).
    Ответ написан
    Комментировать
  • Как обрабатывать ошибки в retrofit2, где код ответа 200?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    200 - это не ошибка, а успешный результат
    Ответ написан
    6 комментариев
  • Какие вопросы по структурам данных на собеседовании являются самыми частыми?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Моя практика говорит, что ответы на каверзные вопросы перед собеседованием не заучишь. Если действительно понимаешь структуры, по которым будут спрашивать, то сможешь дать ответы на любые вопросы по ним. Не понимаешь - не сможешь.

    Если забуксуешь, постарайся уйти красиво :)

    5d806654b4f82358142796.png
    Ответ написан
    1 комментарий
  • Чем отличаются друг от друга DI через конструктор, поле и метод?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Дело не в критичности и приоритетах, дело в плюсах и минусах каждого подхода в конкретных ситуациях. Внедрение через конструктор удобно, позволяет инициализировать финальные поля и гарантирует правильное состояние объекта, но из-за него может распухать список аргументов конструктора. У внедрения в поле сплошные минусы, но зато его можно использовать с кодогенерацией. Внедрение через метод - средний вариант, в меру сочетающий достоинства и недостатки.
    Ответ написан
    Комментировать
  • Как правильно инициализировать Listener в Activity?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Сделать интерфейс ListenerHolder с методами add/removeListener, заимплементить его в активити. Во фрагменте кастовать активити к этому интерфейсу и совать в него себя.
    Ответ написан
    Комментировать
  • Чем на работе занимается junior?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Мне 17 лет и я активно пытаюсь встать на путь java разработчика.
    Отличное стремление (встать на путь разработчика, какого - не столь важно).

    Но меня интересует вопрос что я буду делать на работе в будущем (если у меня все получится).
    Заниматься разработкой.

    Какие задачи будут стоять передо мной.
    Первая задача, которую Вам поставят, я думаю, научиться правильно пользоваться пунктуацией и орфографией русского языка, в т.ч. использовать пробелы, запятые, вопросительные знаки и т.д. :)))

    Как примерно проходит рабочий день. Помогают ли в решении задачи.И прочее.
    В нашей компании процесс выглядит примерно так:
    0. Приходит на работу Junior, с каким-то базовым набором знаний, т.е. человек которому не нужно объяснять какие-то прописные истины
    1. Первые неделю-две новый сотрудник привыкает к обстановке, разбирается с кодом, назначением проекта (в котором работает), и так далее
    2. Потом ему начинают ставить какие-то реальные задачи, в задачник. Задачи с низким приоритетом, желательно максимально простые из доступных/возможных
    3. Он решает задачи, если возникают какие-то вопросы - подходит к руководителю отдела (в нашем случае ко мне), либо к непосредственному наставнику, либо и к тому и к другому...

    Собственно, вот и весь рабочий день. Помимо вопросов, обычно у нас есть некоторое время в рабочем графике, посвященное специально для обучения подопечных (джунов), во время которого наставник объясняет подопечному почему нужно делать "вот так, а не как-то иначе", и т.д., то есть время отведенное непосредственно на обучение/теорию для подопечного.

    Собственно и всё, никакой романтики. Особенности рабочего дня будут зависеть и отличаться в разных компаниях, так же как и коллектив, зарплата и прочие другие параметры, я привел Вам "наш" пример.
    Ответ написан
    2 комментария
  • На upwork не нужны разработчики только под Android?

    Dit81
    @Dit81
    Security researcher, pentester, internet-marketer
    Изучать одну систему тяжело, а сразу писать код для двух ОСей на нативных языках... Думаю стоит выбрать одну и копать, делая паралельно свои проекты и приложения. Посмотрите в сторону игр и их написания...
    Ответ написан
    Комментировать
  • Upwork как стартовать Android разработчику?

    jff
    @jff
    Автор блога и форума про фриланс jff.name
    Сложно ответить не имея информации о вашем профиле, ссылках на проекты и cover letter, но я попробую предположить:
    - В Entry level обычно гораздо больше конкуренции. В целом взять заказ с 20-30 заказов это вполне приемлемая статистика для не раскрученного профиля, а в нише работ не требующих серъезных навыков конкуренция еще выше.
    - Скорость ответа на проект важна (так как хорошо когда клиент видет в списке из 5 фрилансеров чем в списке из 50), но не так как раньше. Причина в ранжирования заявок в интерфейсе клиента, раньше они были завязаны на времени подачи, а сейчас ранжируются по "секретному" алгоритму апворк. То есть если вы подадитесь спустя час или два у вас будет неплохой шанс в случае если Upwork вас будет ранжирвоать выше.
    - Пытайтесь писать каждый cover letter с нуля, максимально конкретизируя его под текущую задачу заказчика, пишите меньше воды.
    - Если вы потратили на профиль несколько часов, то попробуйте потратить дополнительные 2-3 полных дня, это принесет свои плоды, посмотрите профили топовых фрилансеров в своей сфере.
    - На время перестаньте подавать заявки (пока не разберетесь в чем время), так как Upwork вас может забанить, за "несоответствие рынку", когда вы имеет много заявок и мало ответов от клиента.
    - По поводу направления Android. Постарайтесь выбрать какую-либо основные ниши, в основном это заключается в специализации на определенном функционале: геолокация, работа с REST, etc, но вполне может быть завязана на определенные технологии (например разработка андроид приложений на гибридных фреймворках).
    И несколько вопросов:
    - Можете поделиться ссылкой на профиль, проекты и приложить скрины cover letter? Плохой профиль, шаблонные cover letter и неправильный выбор проектов (например клиенты с плохим hire rate) могут быть ключем проблемы
    - Вас не нанимают на проекты или даже не отвечают?
    Ответ написан
    5 комментариев