На вчерашний вопрос все ответили верно! Действительно, первый вариант кода будет работать быстрее. И причины этому в функции strlen(), которая вызывается всякий раз, когда мы проверяем, не пора ли закончить цикл.
Как работает strlen()? В нее передается указатель на начало строки. Отталкиваясь от этого начала, функция продвигается по строке до конца, т.е. до символа ‘\0’. И попутно считает количество символов.
Получается, что на каждой итерации цикла строка str пробегается от начала до конца. Если, например, в строке 20 символов, то это выполняется 20 раз! А в первом варианте с циклом while мы проходим по строке только один раз!
Как можно ускорить второй код? Один раз вычислить strlen() и записать во вспомогательную переменную, которую затем использовать для проверки окончания цикла!
Как работает strlen()? В нее передается указатель на начало строки. Отталкиваясь от этого начала, функция продвигается по строке до конца, т.е. до символа ‘\0’. И попутно считает количество символов.
Получается, что на каждой итерации цикла строка str пробегается от начала до конца. Если, например, в строке 20 символов, то это выполняется 20 раз! А в первом варианте с циклом while мы проходим по строке только один раз!
Как можно ускорить второй код? Один раз вычислить strlen() и записать во вспомогательную переменную, которую затем использовать для проверки окончания цикла!
❤2
А теперь вопрос для знатоков Java:
short x = 3;
short y = 4;
short z = x + y;
System.out.println(z);
❤2
Рада, что большинство ответили верно на этот простой тест! (А те, кто ответил неправильно, очевидно изучали С++ :)
Действительно, перед выполнением любой операции короткие типы (short и byte) приводятся к типу int. Поэтому результат сложения x + y имеет тип int.
В Java запрещены неявные сужающие преобразования. Поэтому мы не можем значение типа int присвоить переменной result типа short – возникает ошибка компиляции!
Можно было бы написать так: short result = (short)( x + y); т.е. использовать явное приведение типа.
Сергей и Дмитрий молодцы!
Кстати, в языке С++ компилятор ничего бы не заметил! И на консоли благополучно бы появилась 7! Там тоже при выполнении сложения тип повышается до int, но потом при присваивании сужается до short снова!
Т.е. Java более строго типизированный язык программирования!
Действительно, перед выполнением любой операции короткие типы (short и byte) приводятся к типу int. Поэтому результат сложения x + y имеет тип int.
В Java запрещены неявные сужающие преобразования. Поэтому мы не можем значение типа int присвоить переменной result типа short – возникает ошибка компиляции!
Можно было бы написать так: short result = (short)( x + y); т.е. использовать явное приведение типа.
Сергей и Дмитрий молодцы!
Кстати, в языке С++ компилятор ничего бы не заметил! И на консоли благополучно бы появилась 7! Там тоже при выполнении сложения тип повышается до int, но потом при присваивании сужается до short снова!
Т.е. Java более строго типизированный язык программирования!
Учиться программированию лучше у профессионала?
Практика показывает, что очень часто профессиональному программисту трудно научить новичка. Почему же у нас “не складывается” с профи?
👨🚀 Ему кажется, что “это же очевидно”! С высоты своего опыта трудно вернуться назад и объяснять простые вещи, не пользуясь всеми своими знаниями.
🤬 Порой трудно не раздражаться, отвечая в сотый раз на один и тот же вопрос.
👶 Ему не хочется возвращаться в ощущения новичка (они не самые приятные)! Растерянность перед новыми понятиями, невозможность запомнить элементарные вещи. Вроде вчера ты это делал, а сегодня опять все изгладилось из памяти… Б-рр!
Поэтому на начальном этапе важнее найти хорошего педагога, чем классного программиста! Человека, который может спуститься на твой стартовый уровень, увидеть те грабли, на которые ты вот-вот наступишь, объяснить на понятном языке и терпеливо отвечать на “глупые” вопросы…
И этот педагог – я! 😊
Если Вы полный новичок в программировании, то советую начать с курса “Основы программирования на C/C++”. Это самый подробный курс для начинающих. А для скидки в 10% держите промокод: SECRET10
Ну, а если четко знаете, что Java is my love, то добро пожаловать на курс “Основы языка Java”. Он не такой подробный, но зато бесплатный 🤑
Практика показывает, что очень часто профессиональному программисту трудно научить новичка. Почему же у нас “не складывается” с профи?
👨🚀 Ему кажется, что “это же очевидно”! С высоты своего опыта трудно вернуться назад и объяснять простые вещи, не пользуясь всеми своими знаниями.
🤬 Порой трудно не раздражаться, отвечая в сотый раз на один и тот же вопрос.
👶 Ему не хочется возвращаться в ощущения новичка (они не самые приятные)! Растерянность перед новыми понятиями, невозможность запомнить элементарные вещи. Вроде вчера ты это делал, а сегодня опять все изгладилось из памяти… Б-рр!
Поэтому на начальном этапе важнее найти хорошего педагога, чем классного программиста! Человека, который может спуститься на твой стартовый уровень, увидеть те грабли, на которые ты вот-вот наступишь, объяснить на понятном языке и терпеливо отвечать на “глупые” вопросы…
И этот педагог – я! 😊
Если Вы полный новичок в программировании, то советую начать с курса “Основы программирования на C/C++”. Это самый подробный курс для начинающих. А для скидки в 10% держите промокод: SECRET10
Ну, а если четко знаете, что Java is my love, то добро пожаловать на курс “Основы языка Java”. Он не такой подробный, но зато бесплатный 🤑
Stepik: online education
Основы программирования на C/C++
Для новичков этот курс станет идеальной отправной точкой. Вы научитесь разбираться в основных типах данных, использовать базовые алгоритмические конструкции и уверенно работать с массивами. К окончанию курса вы разовьете алгоритмическое мышление и получите…
❤7
Видео или текст – что лучше воспринимается?
“Видео уроки – это потеря времени!” VS “Людей, способных читать текст, сегодня меньшинство” – такие противоположные мнения я иногда слышу или читаю в Итернете.
Не знаю, как Вы, а я склоняюсь к первой версии. Но не все так однозначно…
Какие плюсы текстового урока:
• Легко вернуться к предыдущему материалу и повторить.
• Можно просмотреть в быстром темпе.
• Легко найти место, где остановился или отвлекся.
• Можно рассмотреть все детали программы, которые в видео уроке не успеваешь уловить.
• Легко делать копи-паст 😊 (Хотя лучше не нужно!)
Но и видео тоже не бесполезно:
• Проще показать, как что-то настроить, подключить, запустить.
• Можно увидеть не только окончательный вариант кода, но и путь, которым мы приходим к такому результату.
• Легче показать отладку или использование фишек IDE.
• Презентация в видео – это возможность задействовать “клиповое мышление”, когда один слайд = одна мысль.
Т.е. глобально оба эти способа представления знаний нужны. Хорошо сочетать их между собой, что я и делаю в своих курсах.
При этом нужно учитывать, что видео должно быть коротким. Это не лекция в ВУЗе, на которую выделяется два часа. Невозможно сохранять активное восприятие столько времени, не закрепляя теорию практикой! Оптимальная длительность видео – 10 минут.
А Вам какой способ восприятия информации ближе?
“Видео уроки – это потеря времени!” VS “Людей, способных читать текст, сегодня меньшинство” – такие противоположные мнения я иногда слышу или читаю в Итернете.
Не знаю, как Вы, а я склоняюсь к первой версии. Но не все так однозначно…
Какие плюсы текстового урока:
• Легко вернуться к предыдущему материалу и повторить.
• Можно просмотреть в быстром темпе.
• Легко найти место, где остановился или отвлекся.
• Можно рассмотреть все детали программы, которые в видео уроке не успеваешь уловить.
• Легко делать копи-паст 😊 (Хотя лучше не нужно!)
Но и видео тоже не бесполезно:
• Проще показать, как что-то настроить, подключить, запустить.
• Можно увидеть не только окончательный вариант кода, но и путь, которым мы приходим к такому результату.
• Легче показать отладку или использование фишек IDE.
• Презентация в видео – это возможность задействовать “клиповое мышление”, когда один слайд = одна мысль.
Т.е. глобально оба эти способа представления знаний нужны. Хорошо сочетать их между собой, что я и делаю в своих курсах.
При этом нужно учитывать, что видео должно быть коротким. Это не лекция в ВУЗе, на которую выделяется два часа. Невозможно сохранять активное восприятие столько времени, не закрепляя теорию практикой! Оптимальная длительность видео – 10 минут.
А Вам какой способ восприятия информации ближе?
🔥2
Обнаружила ужасную вещь!
Оказывается, в моем курсе по Java нет урока, где объяснялась бы отладка программ в Intellij Idea! А я-то думала: почему многие ученики не умеют находить ошибки в своих алгоритмах?
Исправляюсь: добавила урок в курс “Основы языка Java”. Плюс выложила видео на Ютубе. Это как раз тот случай, когда видео будет полезнее текста!
Обязательно освойте навык поиска ошибок с использованием отладчика! https://www.youtube.com/watch?v=Q8cK7duLK9g
Оказывается, в моем курсе по Java нет урока, где объяснялась бы отладка программ в Intellij Idea! А я-то думала: почему многие ученики не умеют находить ошибки в своих алгоритмах?
Исправляюсь: добавила урок в курс “Основы языка Java”. Плюс выложила видео на Ютубе. Это как раз тот случай, когда видео будет полезнее текста!
Обязательно освойте навык поиска ошибок с использованием отладчика! https://www.youtube.com/watch?v=Q8cK7duLK9g
YouTube
Отладка программ на Java в Intellij Idea
Простой пример использования интегрированного отладчика в Intellij Idea.
Ссылки на мои курсы по программированию на платформе stepik.org:
Основы программирования на С/C++: https://stepik.org/a/55918
Основы программирования на C/C++ Часть 2: https://stepik.org/a/116440…
Ссылки на мои курсы по программированию на платформе stepik.org:
Основы программирования на С/C++: https://stepik.org/a/55918
Основы программирования на C/C++ Часть 2: https://stepik.org/a/116440…
❤🔥2🥰2
ООП – это зло?
Попробуйте загуглить эту фразу. Сколько Вы получите ссылок, на всякие лады осуждающих и проклинающих объектно-ориентированное программирование? А сколько раз Вам самим хотелось бросить это мутное дело – изучать ООП, и вернуться к родному и привычному процедурному программированию?
Даже мой коллега, прекрасный (реально!) преподаватель программирования с многолетним стажем, называл C++ “птичий язык” и утверждал, что ООП сводится к обработке событий нажатий на кнопки в оконном приложении, а все остальное – искусственная мура!
Но на самом деле проблема не в том, что ООП – это плохо, а в том, что иногда оно применяется неправильно или не к месту.
Сколько ходит в сети мемов про то, как танк наследуется от пулемета! Сколько раз я объясняю студентам, что наследование возможно только тогда, когда наследник “is a”, т.е. является частным случаем предка! Но все равно находятся люди, которые наследуют покупку от товара или командировку от человека!
Представьте себе, что
• использование ООП стало для Вас органичным и простым,
• Вы научились создавать классы за пять минут, используя встроенные возможности Intellij Idea или другой IDE,
• слово “полиморфизм” не вызывает у вас ассоциацию со словом “пофигизм”,
• исключения из разряда “караул, ошибка!” стали инструментом реализации алгоритма,
• вы узнаете паттерны проектирования “в лицо”.
В общем, представьте себе, что Вы постигли философию Java (привет, Брюс Эккель)! Тогда все последующее изучение этого языка станет для Вас логичным, подобным нанизыванию еще одной бусины (стандартного класса) на ниточку объектно-ориентированной структуры.
Вот почему нужно сначала разобраться в ООП, в том, как эта философия проявляется в конкретном языке программирования, а потом уже изучать все явные и тайные возможности этого языка.
Именно в этом состоит цель моего курса “Объектно-ориентированное программирование на Java”. Структурированная теория + нетривиальные задачи помогут обойти сложности восприятия принципов ООП и сделают дальнейшее изучение Java понятным и легким.
А Вы считаете ООП сложным или вредным для программиста?
Попробуйте загуглить эту фразу. Сколько Вы получите ссылок, на всякие лады осуждающих и проклинающих объектно-ориентированное программирование? А сколько раз Вам самим хотелось бросить это мутное дело – изучать ООП, и вернуться к родному и привычному процедурному программированию?
Даже мой коллега, прекрасный (реально!) преподаватель программирования с многолетним стажем, называл C++ “птичий язык” и утверждал, что ООП сводится к обработке событий нажатий на кнопки в оконном приложении, а все остальное – искусственная мура!
Но на самом деле проблема не в том, что ООП – это плохо, а в том, что иногда оно применяется неправильно или не к месту.
Сколько ходит в сети мемов про то, как танк наследуется от пулемета! Сколько раз я объясняю студентам, что наследование возможно только тогда, когда наследник “is a”, т.е. является частным случаем предка! Но все равно находятся люди, которые наследуют покупку от товара или командировку от человека!
Представьте себе, что
• использование ООП стало для Вас органичным и простым,
• Вы научились создавать классы за пять минут, используя встроенные возможности Intellij Idea или другой IDE,
• слово “полиморфизм” не вызывает у вас ассоциацию со словом “пофигизм”,
• исключения из разряда “караул, ошибка!” стали инструментом реализации алгоритма,
• вы узнаете паттерны проектирования “в лицо”.
В общем, представьте себе, что Вы постигли философию Java (привет, Брюс Эккель)! Тогда все последующее изучение этого языка станет для Вас логичным, подобным нанизыванию еще одной бусины (стандартного класса) на ниточку объектно-ориентированной структуры.
Вот почему нужно сначала разобраться в ООП, в том, как эта философия проявляется в конкретном языке программирования, а потом уже изучать все явные и тайные возможности этого языка.
Именно в этом состоит цель моего курса “Объектно-ориентированное программирование на Java”. Структурированная теория + нетривиальные задачи помогут обойти сложности восприятия принципов ООП и сделают дальнейшее изучение Java понятным и легким.
А Вы считаете ООП сложным или вредным для программиста?
Stepik: online education
Объектно-ориентированное программирование на Java
Окунитесь в мир объектно-ориентированного программирования! Научитесь создавать и использовать классы, разберитесь с принципами ООП и их реализацией в Java, изучите паттерны проектирования приложений.
Если Вы новичок в ООП и к тому же изучаете Java – этот…
Если Вы новичок в ООП и к тому же изучаете Java – этот…
❤8
Инкапсуляция - зачем она нужна?
Решила начать серию вопросов и кратких ответов на собеседовании по Java. Буду стараться писать коротко и ссылаться на курс по ООП, где все уже подробно и с примерами…
И начнем с простого вопроса – что такое инкапсуляция и зачем она нужна?
Инкапсуляция – это принцип ООП, который означает сокрытие деталей реализации. Т.е. внутреннее устройство класса покрыто некой “оболочкой”, которая скрывает его от программиста, использующего этот класс.
Технически это чаще всего означает, что мы переменным класса даем модификатор
Для этого существует несколько причин:
💪 Во-первых, программист оперирует объектами, не задумываясь о том, как они “устроены”. А это снижает сложность его работы.
💪 Во-вторых, повышается безопасность кода и предотвращаются ошибки. Ведь таким образом мы изолируем код от несанкционированного доступа. В уроке 1.3 есть задача, которая ярко это демонстрирует:
💪В-третьих, инкапсуляция – это потенциальная возможность менять “начинку” класса так, чтобы все ранее написанные программы с его использованием “не посыпались”.
Решила начать серию вопросов и кратких ответов на собеседовании по Java. Буду стараться писать коротко и ссылаться на курс по ООП, где все уже подробно и с примерами…
И начнем с простого вопроса – что такое инкапсуляция и зачем она нужна?
Инкапсуляция – это принцип ООП, который означает сокрытие деталей реализации. Т.е. внутреннее устройство класса покрыто некой “оболочкой”, которая скрывает его от программиста, использующего этот класс.
Технически это чаще всего означает, что мы переменным класса даем модификатор
private, а общение со внешним миром реализуем с помощью специальных методов (геттеров и сеттеров). Но вот зачем мы так делаем? Для этого существует несколько причин:
💪 Во-первых, программист оперирует объектами, не задумываясь о том, как они “устроены”. А это снижает сложность его работы.
💪 Во-вторых, повышается безопасность кода и предотвращаются ошибки. Ведь таким образом мы изолируем код от несанкционированного доступа. В уроке 1.3 есть задача, которая ярко это демонстрирует:
Имеется класс Material, представляющий вещество. В нем два поля: название и плотность вещества. Если мы предоставим доступ к этим полям по-отдельности, то возможна ситуация, когда мы изменим плотность, а название останется от предыдущего вещества… Получаем потенциальную возможность ошибки в коде. Поэтому: делаем поля private, а сеттеры не вводим! Тогда поля отдельно друг от друга изменить будет нельзя, а только создать новый объект-вещество!
💪В-третьих, инкапсуляция – это потенциальная возможность менять “начинку” класса так, чтобы все ранее написанные программы с его использованием “не посыпались”.
Например, мы написали класс, который представляет собой коллекцию (т.е. набор объектов). И внутри него для хранения использовали массив. А со временем решили, что более эффективно использовать не массив, а список с полями связи. И нам ничего не мешает изменить внутреннее представление данных! Все написанные ранее программы с этим классом продолжат работать…
Stepik: online education
Объектно-ориентированное программирование на Java
Окунитесь в мир объектно-ориентированного программирования! Научитесь создавать и использовать классы, разберитесь с принципами ООП и их реализацией в Java, изучите паттерны проектирования приложений.
Если Вы новичок в ООП и к тому же изучаете Java – этот…
Если Вы новичок в ООП и к тому же изучаете Java – этот…
👍4🔥2
Напишите, какие вопросы на собеседовании (или просто вопросы) Вы хотели бы разобрать? И напоминаю, что на Степике полным ходом идет весенняя распродажа курсов! На все мои курсы скидка 15% до 26 апреля!
❤3
Аннотации в Java
Аннотация – это комментарий особого вида. Т.е. она несет информацию о коде, но частью кода не является. Начинается аннотация со знака @.
Например, аннотация @Depricated перед описанием метода означает, что этот метод устарел и использовать его не рекомендуется. Компилятор будет выдавать предупреждение, если встретит вызов такого метода.
Второй пример будет понятен тем, кто проходит курс “Объектно-ориентированное программирование на Java”. Когда мы создаем переопределение метода в наследнике, то предваряем его аннотацией @Override:
Можем мы не писать @Override? Можем! Для нашего кода ничего не изменится. Но только в том случае, если наш переопределяемый метод написан верно! Т.е. его интерфейс полностью совпадает с интерфейсом такого же метода суперкласса.
А если я сделаю ошибку в названии метода: toStrin() ? Без аннотации @Override компилятор никаких проблем не заметит. Он просто будет считать, что это новый, другой метод.
А вот если @Override будет, то компилятор скажет: “Позвольте! Что-то я такого метода в суперклассе не нахожу!”. В результате Вы вовремя заметите ошибку и исправите ее!
Тема аннотаций очень обширная. Ее нельзя охватить в одном посте. Но в следующем курсе под кодовым названием “Прокачай Java” я обязательно посвящу этой теме целый модуль!
Кстати, как Вам название курса? Может, предложите свое?
Аннотация – это комментарий особого вида. Т.е. она несет информацию о коде, но частью кода не является. Начинается аннотация со знака @.
Например, аннотация @Depricated перед описанием метода означает, что этот метод устарел и использовать его не рекомендуется. Компилятор будет выдавать предупреждение, если встретит вызов такого метода.
Второй пример будет понятен тем, кто проходит курс “Объектно-ориентированное программирование на Java”. Когда мы создаем переопределение метода в наследнике, то предваряем его аннотацией @Override:
@Override
public String toString() {
return title + ";" + artist + ";" + time;
}
Можем мы не писать @Override? Можем! Для нашего кода ничего не изменится. Но только в том случае, если наш переопределяемый метод написан верно! Т.е. его интерфейс полностью совпадает с интерфейсом такого же метода суперкласса.
А если я сделаю ошибку в названии метода: toStrin() ? Без аннотации @Override компилятор никаких проблем не заметит. Он просто будет считать, что это новый, другой метод.
А вот если @Override будет, то компилятор скажет: “Позвольте! Что-то я такого метода в суперклассе не нахожу!”. В результате Вы вовремя заметите ошибку и исправите ее!
Тема аннотаций очень обширная. Ее нельзя охватить в одном посте. Но в следующем курсе под кодовым названием “Прокачай Java” я обязательно посвящу этой теме целый модуль!
Кстати, как Вам название курса? Может, предложите свое?
Stepik: online education
Объектно-ориентированное программирование на Java
Окунитесь в мир объектно-ориентированного программирования! Научитесь создавать и использовать классы, разберитесь с принципами ООП и их реализацией в Java, изучите паттерны проектирования приложений.
Если Вы новичок в ООП и к тому же изучаете Java – этот…
Если Вы новичок в ООП и к тому же изучаете Java – этот…
🔥9
Это серия курсов по программированию для новичков на платформе stepik.org.
Я – Оксана Ивановна Еськова (@aksana_yaskova). Больше 20 лет преподаю языки программирования в Вузе. Знаю все сложности и проблемы новичков. Поэтому:
• умею объяснять кратко и понятно;
• подаю информацию последовательно и не требую поиска в Интернете;
• даю задачи от простого к сложному, интересные и не типовые.
Я помогу Вам сделать комфортный старт в изучении языка Java:
👌 Разберем основы языка программирования достаточно глубоко, но без воды.
👌 Потренируем алгоритмическое мышление: будет много практики (задачи с автоматической проверкой). Не нужно ждать преподавателя, чтобы узнать, верно ли решение!
👌 Теоретический материал дублируется в двух видах – текстовый и видео.
👌 Постоянная поддержка: слежу за комментариями, отвечаю на вопросы и помогаю с решением задач ежедневно!
Постараюсь сделать все возможное, чтобы Вы полюбили программирование так, как люблю его я! 😍.
Если Вы – студент 1-2 курса Вуза, школьник старших классов, или взрослый, который хочет “Войти в IT”, но не знает – с чего начать, то мои курсы для Вас!
Переходите по ссылкам и выберите подходящий курс на Степике со скидкой 10%:
🔖 “Основы языка Java”. Курс для старта изучения Java с нуля. Цена 500 рублей.
🔖 “Объектно-ориентированное программирование на Java” Предполагает знание основ Java. Цена 2300 рублей. Для студентов скидка на этот курс 25%. Чтобы получить, пишите в личку 👉 @ aksana_yaskova.
🔖 “Прокачай Java” Предполагает знание основ Java и ООП. Цена 2300 рублей.
🔖 “Java Core: программа курсов” Программа включает все три курса по Java (по очень привлекательной цене 4350)
Мой канал на YouTube: https://www.youtube.com/@Programming_for_beginners
Важно! Во всех платных курсах есть бесплатные промо-уроки. Но для покупки курсов переходите именно по указанным ссылкам. Это даст мне возможность сэкономить на комиссии платформе. Благодарю за понимание!
Я – Оксана Ивановна Еськова (@aksana_yaskova). Больше 20 лет преподаю языки программирования в Вузе. Знаю все сложности и проблемы новичков. Поэтому:
• умею объяснять кратко и понятно;
• подаю информацию последовательно и не требую поиска в Интернете;
• даю задачи от простого к сложному, интересные и не типовые.
Я помогу Вам сделать комфортный старт в изучении языка Java:
👌 Разберем основы языка программирования достаточно глубоко, но без воды.
👌 Потренируем алгоритмическое мышление: будет много практики (задачи с автоматической проверкой). Не нужно ждать преподавателя, чтобы узнать, верно ли решение!
👌 Теоретический материал дублируется в двух видах – текстовый и видео.
👌 Постоянная поддержка: слежу за комментариями, отвечаю на вопросы и помогаю с решением задач ежедневно!
Постараюсь сделать все возможное, чтобы Вы полюбили программирование так, как люблю его я! 😍.
Если Вы – студент 1-2 курса Вуза, школьник старших классов, или взрослый, который хочет “Войти в IT”, но не знает – с чего начать, то мои курсы для Вас!
Переходите по ссылкам и выберите подходящий курс на Степике со скидкой 10%:
🔖 “Основы языка Java”. Курс для старта изучения Java с нуля. Цена 500 рублей.
🔖 “Объектно-ориентированное программирование на Java” Предполагает знание основ Java. Цена 2300 рублей. Для студентов скидка на этот курс 25%. Чтобы получить, пишите в личку 👉 @ aksana_yaskova.
🔖 “Прокачай Java” Предполагает знание основ Java и ООП. Цена 2300 рублей.
🔖 “Java Core: программа курсов” Программа включает все три курса по Java (по очень привлекательной цене 4350)
Мой канал на YouTube: https://www.youtube.com/@Programming_for_beginners
Важно! Во всех платных курсах есть бесплатные промо-уроки. Но для покупки курсов переходите именно по указанным ссылкам. Это даст мне возможность сэкономить на комиссии платформе. Благодарю за понимание!
👍18🔥1
Курсы по Java для новичков pinned «Это серия курсов по программированию для новичков на платформе stepik.org. Я – Оксана Ивановна Еськова (@aksana_yaskova). Больше 20 лет преподаю языки программирования в Вузе. Знаю все сложности и проблемы новичков. Поэтому: • умею объяснять кратко и понятно;…»