Курсы по Java для новичков
677 subscribers
67 photos
1 video
4 files
74 links
Я Оксана Еськова - преподаватель Вуза с 20-летним стажем.
Научу писать код на Java c нуля.
Курсы c автоматической проверкой задач: https://stepik.org/users/23008752
Все вопросы сюда 👉 @aksana_yaskova
Download Telegram
А Вы знали, что на YouTube существуют интерактивные ролики, в которых можно “поворачиваться” на 360 градусов? Для меня это открытие! Оказывается, чтобы снять такое видео, нужна специальная камера с линзами “рыбий глаз”…
Посмотрите, как это работает (обратите внимание на стрелочки в левом верхнем углу, которыми можно управлять изображением) https://www.youtube.com/watch?v=sPyAQQklc1s
🔥3👍2
Programming for Beginners – это серия курсов по программированию для начинающих на платформе stepik.org. Я помогу Вам сделать комфортный старт в изучении языков С++ или Java. Разберем основы языка и потренируем алгоритмическое мышление.
Постараюсь сделать все возможное, чтобы Вы полюбили программирование так, как люблю его я! 😍.
Переходите по ссылкам и выберите подходящий курс на Степике:
🔖 “Основы языка Java” (Бесплатный)
🔖 “Объектно-ориентированное программирование на Java”
🔖 “Основы программирования на С/С++. Полная версия” (Программа обучения из двух частей)
🔖 Мой канал на YouTube: https://www.youtube.com/@Programming_for_beginners
Для всех подписчиков скидка 10% по промокоду SECRET10.
Для студентов скидка на курс по ООП 25%. Пишите в личку и присылайте фото студенческого билета или другого документа (чтобы подтвердить, что Вы студент).
Важно! Для покупки курсов переходите именно по указанным ссылкам. Это даст мне возможность сэкономить на комиссии платформе. Благодарю за понимание!
4
Дорогие друзья! С наступающим Новым Годом и Рождеством!
Желаю Вам в 2024:
• чтобы учеба приносила радость и удовольствие;
• чтобы трудности закаляли, а не приносили отчаяние;
• чтобы мечты сбывались;
• и рядом были родные и любимые!
А в качестве подарка от меня - промокод NEWYEAR на скидку 15% на все мои платные курсы:
Основы программирования на С/C++
Основы программирования на С/С++. Часть 2
Объектно-ориентированное программирование на Java
Промокод действует до 8 января 2024 года. Хочу напомнить, что Вы можете купить курс в подарок другу, коллеге или ребенку. И это хороший повод напомнить о своем добром отношении, даже если Вы далеко...
👍3
В преддверии праздника не хочется говорить о серьезном… Поэтому Вот Вам для настроения подборка анекдотов про программистов:
***
Жена посылает мужа—программиста в магазин:
— Купи батон колбасы. Да, и спроси, есть ли яйца. Если есть — возьми десяток.
Программист приходит в магазин:
— Батон колбасы, пожалуйста. Ага, спасибо. А яйца у вас в продаже есть?
— Есть.
— Тогда, пожалуйста, ещё девять батонов колбасы.
***
Программист решил занять у друга 1000 рублей, но для ровного счёта занял 1024.
***
Приходит программист к окулисту. Тот его усаживает напротив таблицы, берет указку:
- Читайте!
- "БНОПНЯ"... Доктор, у вас что-то не то с кодировкой!
***
1 монитор - обычный программист, 2 монитора - продвинутый программист, 3 монитора - системный программист, 4 монитора – охранник
***
Объявление: 55—летняя женщина, мать троих программистов, просит кого-нибудь не психованного научить ее интернету.
👍8
Тут задачку подкинули в комментариях...Решать ее можно по-разному. Например, переписывать в новый массив то, что должно остаться… Но я предлагаю вариант изменения того же самого массива, но в конце тогда остаются не используемые ячейки. Переменная n (размер массива) уменьшается в процессе.
Хороший повод применить метод нисходящего проектирования…
1 шаг. Расписываем в общих чертах алгоритм, заменяя комментариями не детализированные фрагменты:

for (int i = 0; i < n; i++) { //i - индекс очередного анализируемого числа
bool find = false;
//проверить, есть ли в массиве ранее такое число
if (find) { //есть
//удалить из массива все такие числа далее после i
}//если нет - ничего не делаем, переходим к следующему
}
Здесь лучше было бы использовать не for, а while. Ведь ограничитель цикла n будет изменяться, а это плохо для цикла for. Обычно for используется тогда, когда число повторений цикла известно заранее. Но в условии было именно for, поэтому оставим так….

2 шаг. Детализируем первый комментарий:

//проверить, есть ли в массиве ранее такое число
for (int j = 0; j < i; j++) { //j - индекс очередного элемента перед i
if (arr[j] == arr[i]) {
find = true;
}
}

3 шаг. Детализируем второй комментарий:

//удалить из массива все такие числа далее после i
for (int k = i + 1; k < n; k++) { //k - индекс очередного элемента после i
if (arr[k] == arr[i]) {//число найдено
//удаляем k-й элемент из массива
k--; //чтобы остаться на месте, когда k будет увеличиваться
n--; //число элементов стало меньше
}
}
4 шаг. Детализируем удаление k-го элемента:

//удаляем k-й элемент из массива
for (int m = k + 1; m < n; m++) {//m - индекс элемента после удаляемого
arr[m - 1] = arr[m]; //следующий подвигаем на место предыдущего
}

5 шаг. Собираем все вместе и – вуаля:
for (int i = 0; i < n; i++) { //i - индекс очередного анализируемого числа
bool find = false;
//проверить, есть ли в массиве ранее такое число
for (int j = 0; j < i; j++) { //j - индекс очередного элемента перед i
if (arr[j] == arr[i]) {
find = true;
}
}
if (find) { //есть
//удалить из массива все такие числа далее после i
for (int k = i + 1; k < n; k++) { //k - индекс элемента после i
if (arr[k] == arr[i]) {//число найдено
//удаляем k-й элемент из массива
for (int m = k + 1; m < n; m++) {//m - после удаляемого
arr[m - 1] = arr[m]; //след. на место предыдущего
}
k--; //чтобы отаться на месте, когда k будет увеличиваться
n--; //число элементов стало меньше
}
}
}//если нет - ничего не делаем, переходим к следующему
}
Пока праздники, балуюсь нейросетями... Пытаюсь создать логотип будущего курса "Java для продолжающих". Ну, Вы знаете - моя фишка - совы. И вот пока что получается... Как Вам? Кстати, одна из них создана по моему фото. Угадаете, какая?
🔥7
Друзья! Поговорим сегодня о переводе целых чисел из одной системы счисления в другую… Очень полезный навык для программиста!
2👍1
Мы с Вами привыкли пользоваться десятичной системой счисления.
В ней десять цифр от 0 до 9. Но “вес” цифры зависит от ее позиции в числе:
235 – это 2 сотни, 3 десятка и 5 единиц.
Количество цифр, которое можно использовать в позиционной системе счисления, называется “основанием”.
Позиции цифр в числе можно мысленно пронумеровать справа налево, начиная с 0. Т.е. крайняя правая позиция имеет номер 0, левее ее – номер 1, еще левее – номер 2, и т.д.
Значение числа получается как сумма произведений цифры на основание системы счисления в степени «номер позиции».
В двоичной системе счисления две цифры: 0 и 1, а основание = 2.
В восьмеричной системе счисления восемь цифр от 0 до 7, а основание = 8.
В шестнадцатеричной системе счисления используются цифры от 0 до 9 и буквы от A до F (т.е. A ->10, B ->11, и т.д. F->15). Основание = 16.
Примеры перевода чисел в десятичную систему счисления показаны на рисунке.
Потренируйтесь сами, переведите в десятичную систему счисления из двоичной:
111 и 10111, из шестнадцатеричной: 27A и 777, из восьмеричной: 33 и 106. Ответы напишите в комментариях…
Мы научились переводить в десятичную систему счисления. А если нужно наоборот? Например, у нас есть число в привычной нам десятичной системе счисления, а перевести нужно в двоичную или шестнадцатеричную?
Такой перевод легко сделать, выполняя целочисленное деление на основание другой системы счисления. Если переводим в двоичную систему – делим на 2. В шестнадцатеричную - делим на 16!
Полученное частное опять делим на основание системы счисления, и так до тех пор, пока не получим 0.
После этого все остатки выпишем в обратном порядке:
393 : 16 = 24 (ост 9) 24 : 16 = 1 (ост 8) 1 : 16 = 0 (ост 1) Выписываем остатки в обратном порядке:
393(десятичное) = 189 (шестнадцатеричное)

А теперь потренируйтесь и переведите число 751 из десятичной в двоичную, восьмеричную и шестнадцатеричную системы счисления!
👍2
Когда вырастила сына-программиста, а он привез тебя в Париж!
🔥156👍2
Я всегда говорила о том, что хотеть быть программистом нужно не ради денег... Это занятие должно сильно нравиться, иначе не преуспеть. Но все же, все же... Эта профессия дает многие возможности, которые в других сферах достичь гораздо сложнее! Позаботиться о детях, родителях, любимых - это ли не достойная цель? Идите к ней! И когда совсем лень и напала прокрастинация - пусть эта мысль Вам поможет...
8
Осенью на Степике проводили опрос учеников о их целях. И оказалось, что 13,6% людей учатся потому, что им нравится сам процесс обучения… Я сначала подумала: “Ну не может быть! “ Все-таки это слишком большой процент учеников, а Степик не использует ни геймификацию, ни edutainment (вот Вам новое слово!)
Но потом поймала себя на мысли – а я ведь тоже получаю удовольствие от учебы! И главный фактор этого удовольствия – возможность почувствовать победу… Когда задача, наконец, решилась! Когда то, что было темно и запутанно, стало ясным и простым!
И дело тут не в забавных персонажах, как в JavaRush. И не в игровом контенте, как в обучалках для маленьких детей. Тут главное – “не спугнуть” естественный интерес. А спугнуть его ой как легко: слишком сложная задача, слишком занудный текст, слишком длинное видео… Но и легкие задачи тоже не вариант – скучно долбить одно и то же, как дятел!
👍4
Мои книги по Java
1. Берт Бейтс, Кэти Съерра. Изучаем Java (Head First Java) М.: Эксмо, 2022.
Эту книгу лучше читать в бумажном варианте. Плюсы: легкая и интересная, много картинок. Подходит для новичков, особенно для школьников. Минусы: иногда некорректный перевод, неудачные кроссворды. В целом для знакомства – хорошо, но для подробного изучения Java лучше Эккель или Шилдт.

2. Брюс Эккель. Философия Java (Thinking in Java) 4-е изд. – СПб.: Питер, 2019
Моя первая книга по Java. Плюсы: хорошо объясняется ООП, подходит для старта, вообще классика! Минусы: ориентирована на Java 6, есть неточности перевода (читайте оригинал 😊), лучше подходит для тех, кто уже знаком с С++.

3. Герберт Шилдт. Java. Полное руководство. 12-е издание Издательство “Диалектика”, 2022 (есть еще “Руководство для начинающих”).
Данное издание про Java 17. Плюсы: очень подробно. Минусы: слишком подробно! На мой взгляд: лучше прочесть “Руководство для начинающих”, а потом использовать справочник по Java от Oracle.
👍5