• Кто из нас прав про Инкапсуляцию в ООП?

    @yestodev
    Понимать инкапсуляцию только как сокрытие не совсем правильно.
    Сокрытия данных можно добиться например в Си. Который вообще не является языком с парадигмой ООП.

    Так что связь функций и данных - это более правильное определение. Плюс от языка к языку, и от книге к книге определения отличаются. Создатель ООП (Алан Кей) вообще понимал ООП совсем не так, как оно реализовано в моей уютненькой Java, например. И ничего. :)
    Ответ написан
    Комментировать
  • Как устроен современный сайт?

    @yestodev
    Не очень понимаю зачем нужен именно "топовый сайт". Топовые сайты - это доступ к приложениям через тонкий клиент в виде браузера, с трудом сотен и тысяч разработчиков (фейсбук, нетфликс и так далее).

    Я предлагаю несколько более простое решение. Попробуйте написать приложение с погодой, которое будет брать данные от любой популярной бесплатной погодной API, и будет выдавать результат с некоторой графической обработкой (иконка солнышка если солнечно, дождика если дождь).
    Благодаря этому можно будет понять сразу несколько вещей:
    HTTP протокол, работа с запросами, JSON/XML, обработка данных, отображение данных в зависимости от результата.
    После можно попробовать поработать с куками, запомнить выбор города, и, при повторной загрузке сайта, сразу отдавать данные согласно прошлого запроса.
    Потом можно попробовать сделать простой TODO-list, с простейшей авторизацией, без подсаливания, с простой работой с БД, чисто по логину-паролю.

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

    Это простейшие задачи, но даже для того чтоб научиться их решать - нужно потратить колоссальное количество времени и сил. И только после этого - можно начать разработку интернет магазина.

    Нельзя строить машину без понимания работы двигателя внутреннего сгорания (электродвигателя, как угодно). Без работы подвески и так далее. Нельзя подойти, взять кувалду, выбить кузов и ждать что это внезапно станет машиной и поедет.
    Либо берите "не бит, не крашен, сел и поехал" (тильда, вордпресс и прочие) автомобиль, и занимайтесь просто настройкой, чуток подкрашивая, навешивая спойлеры и неоновый свет.
    Либо если хотите строить автомобиль (движок магазина, блога, соцсеть) с 0, то учите как все работает с самых низов, никаких магических путей обойти это не существует.

    P.S.
    Из ответа по технологиям что я использую:
    БД - PostgreSQL,
    Front - Flutter/Angular/React (от задачи)
    Back - Java + Spring

    Кто-то использует JS стек MERN/MEAN. Кто-то пхп, кто-то го, тут выбор огромен. Типовые задачи можно решать огромным количеством подходов с использованием огромной вариативности по инструментам.
    Ответ написан
    Комментировать
  • Почему не выводит и показывает красным в Java?

    @yestodev
    Автору можно дать один главный совет:

    Возьмите тот ресурс по которому сейчас занимаетесь, выбросите его из головы и больше никогда не вспоминайте. Код космически плох, и не потому что вы новичок, а потому что вас учат не пойми чему.

    Классы в Java служат для какой-то цели, для какой цели создаются классы у вас - совершенно непонятно, кроме того что, как сказано выше, создание классов в main - чушь

    // Class declaration
    public class Test {
    
        // number exponentiation
        public int squareNumber(int i) {
            return i *= i;
        }
    
        // factorial
        public int factorial(int i) {
            return (i <= 1) ? 1 : (i * factorial(i - 1));
        }
    
        // main method
        public static void main(String[] args) {
            Test test = new Test(); // new instance
            System.out.println(test.squareNumber(5)); // 25
            System.out.println(test.factorial(5)); // 120
        }
    }


    Так же ознакомьтесь с тем что такое camelCase, как это принято в java и так далее. Это простой, но крайне важный вопрос для понимания.
    Ответ написан
    3 комментария
  • Начать со Swift или Dart для новичка?

    @yestodev
    Мне кажется навыки Питона лучше развивать

    Я сам использую Dart\Flutter как язык мобильной разработки, но я бы советовал все же учить питон
    Потому что питон не только про формошлепство + можно использовать текущие навыки

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

    @yestodev
    Эм, если касается курсов, то только htmlacademy.ru
    Ответ написан
    Комментировать
  • Как сверстать такой график?

    @yestodev
    Например вот так:
    www.humblesoftware.com/flotr2
    Ответ написан
    Комментировать
  • Как автоматически менять текст на сайте в зависимости от даты?

    @yestodev
    https://learn.javascript.ru/datetime
    Тут все варианты представлены достаточно широко.
    Если не разберетесь - наймите специалиста среди фрилансеров, вам без проблем сделают.
    Ответ написан
    Комментировать
  • Какую школу по онлайн обучению языку JAVA с нуля вы можете посоветовать?

    @yestodev
    Хекслет ок, но это больше не обучалка, а сайт который заставляет думать на нужном языке.
    Для старта подойдет хорошо.
    Ответ написан
    1 комментарий
  • Как сделать что бы цена менялась от условий?

    @yestodev
    Попробуйте визуализировать исполнение. Что у вас получается? Я лично вижу not defined с первой строки. :)
    Ответ написан
    Комментировать
  • Какую выбрать книгу для изучения JavaScript?

    @yestodev
    Дам совет от себя, как новичка от мира JS.
    Могу посоветовать не книги, а скорее решение математических задач. :)
    Прям берем любой вопрос, от простого до сложного и решаем, желательно разными методами:
    Сортировки, факториалы, площади, матрицы, что угодно, в порядке усложнения.

    Т.е. нужно сперва заставить себя мыслить на языке (тут очень неплохо подходит такое объяснение: ты хорошо знаешь иностранный язык, когда ты мыслишь на этом языке непроизвольно) и как можно больше писать, обращать внимание на суть написанного, а не искать "а где же тут { закрывается".
    Брать хорошие и интересные решения других людей и разбирать их, научиться читать код и вникать в то, что он означает.

    И самое главное ни в коем случае не читать книг по типу "построй свой отзывчивый сайт", "как создать интернет-магазин" и прочий мусор от мира компьютерной литературы. Уметь программировать !== знанию отдельных инструментов одного конкретного языка.

    Ставим себе задачу: я хочу сделать так, чтобы весь текст на страничке после "." разбивался на абзацы. Пытаемся решить самостоятельно, гуглим, вникаем в решение других (если не получилось самому), пытаемся изменить задачу и решить самостоятельно. Решили задачу - едем дальше, ставим новую.
    Этот процесс даст очень много понимания в начале пути, а потом можно уже и Флэнаганов читать, подправлять знания в правильное русло.

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

    А, ну и побольше математики, правда. Решение математических задач обусловлено строгой логикой, это очень помогает! Вспоминаем (например) как искать площадь треугольника сперва на бумаге, потом пишем это в IDE.
    Это более долгий путь, но как по мне, так он более основательный.
    Ответ написан
    3 комментария