• Какие вы знаете бесплатные ресурсы по обучению Java с нуля?

    @fullstackly
    hyperskill.org
    Ответ написан
    Комментировать
  • На сколько глубокие знания в Java необходимы для начала осваивания Android API и последующей разработки?

    ProgramCodePav
    @ProgramCodePav
    Front-end developer. Love open source
    Прочитай книгу Head First Java и понабирай код из книги (пару задач). И все. Можешь начинать изучать Android и сразу писать на него.
    Для грамотности в коде советую прочитать java code convension - соглашение о об именовании переменных и прочее.

    Вот книжка, которую я читал (но советую посмотреть свежие рекомендации в сети или на хабре, так как книги очень быстро выходят по Android): Satya Komatineni Dave MacLean - Android 4 для профессионалов

    Во время работы с Android продолжай изучать Java (вот отличный списочек - habrahabr.ru/post/153373/).

    При чтении и понимании java могут возникнуть проблемы с коллекциями и обобщениями. Вот пара ссылок, помогающих понять коллекции:
    1. habrahabr.ru/post/162017 - коллекции в целом
    2. habrahabr.ru/post/128017 - коллекция hashmap (но там имеются ссылки, по которым можно посмотреть другие коллекции)

    И еще две ссылки, которые нашел в избранном, для начинающего - самое то:
    1. habrahabr.ru/post/124484 - AsyncTalk
    2. habrahabr.ru/post/142256 - UI thread

    Задавай вопросы, если есть. Самое интересное, что программирование на java Android похоже на JavaEE и перепрыгнуть (если что) будет не так сложно. Java очень похож на C# и Java - это правда очень простой язык)

    Ах, да. Вот еще интересный проект (правда фремиум, но несколько десятков задач можно решить бесплатно онлайн) - javarush.ru

    Успехов!
    Ответ написан
    Комментировать
  • Что значит моделирование обьектов реального мира в ООП?

    @luna3956
    Представьте, что Вам нужно написать программу, в которой ведется учет частных домов на какой-нибудь улице. Ключевой единицей будет дом - объект из реального мира. Чтобы описать его с помощью программного кода для этого отлично подходит ООП. В нем есть такое понятие как класс, он является по сути моделью/структурой объекта из реального мира. В нашем примере с домом это будет примерно такой класс:
    class House {
    
      string address;
      int numOfRooms;
      ...
    
      House(string address, int numOfRooms)
      {
        this.address = address;
        this.numOfRooms = numOfRooms;
      }
    
    }


    Теперь же в самой программе чтобы оперировать таким объектом из реального мира как дом вам достаточно написать примерно следующее:

    House h = new House("Улица Вязов дом 13", 5);

    То есть в переменной h у нас теперь хранится объект/ссылка на объект, являющийся представлением объекта из реального мира - пятикомнатного дома, который находится по адресу "Улица Вязов дом 13".

    Или например собаку(тоже объект из реального мира) можно описать таким классом:

    class Dog {
    
      string name;
      string breed;
    
      Dog(string name, string breed)
      {
        this.name = name;
        this.breed = breed;
      }
    
    }


    И теперь чтобы в программе "создать собаку" с каким-то именем и породой достаточно написать:

    Dog d = new Dog("Бобик", "Бульдог")

    Это очень упрощенные примеры, но думаю вполне подойдут для того, чтобы вы поняли каким образом объекты реального мира моделируются благодаря ООП.

    P.S сам код это не ява а просто псевдокод для наглядности
    Ответ написан
    Комментировать
  • Как планировать архитектуру приложения?

    Beshere
    @Beshere
    Разработчик
    Правильная архитектура - это высший пилотаж. К этом идут, и не все доходят.

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

    Этого было бы достаточно, чтобы быть хорошим программистом в 20 веке. Увы, дальше придётся учиться:
    1. "Чистая архитектура" Мартин
    2. "Совершенный код" Макконнелл
    3. Паттерны ООП https://refactoring.guru/ru
    Ответ написан
    Комментировать