Курсы по Java для новичков
677 subscribers
67 photos
1 video
4 files
74 links
Я Оксана Еськова - преподаватель Вуза с 20-летним стажем.
Научу писать код на Java c нуля.
Курсы c автоматической проверкой задач: https://stepik.org/users/23008752
Все вопросы сюда 👉 @aksana_yaskova
Download Telegram
Напишите, какие вопросы на собеседовании (или просто вопросы) Вы хотели бы разобрать? И напоминаю, что на Степике полным ходом идет весенняя распродажа курсов! На все мои курсы скидка 15% до 26 апреля!
3
Channel name was changed to «С++/Java для новичков»
Вот такие комментарии мотивируют меня делать мои курсы! Доброе слово и кошке приятно :)
👍15🥰1
Аннотации в Java
Аннотация – это комментарий особого вида. Т.е. она несет информацию о коде, но частью кода не является. Начинается аннотация со знака @.
Например, аннотация @Depricated перед описанием метода означает, что этот метод устарел и использовать его не рекомендуется. Компилятор будет выдавать предупреждение, если встретит вызов такого метода.
Второй пример будет понятен тем, кто проходит курс “Объектно-ориентированное программирование на Java”. Когда мы создаем переопределение метода в наследнике, то предваряем его аннотацией @Override:
@Override
public String toString() {
return title + ";" + artist + ";" + time;
}

Можем мы не писать @Override? Можем! Для нашего кода ничего не изменится. Но только в том случае, если наш переопределяемый метод написан верно! Т.е. его интерфейс полностью совпадает с интерфейсом такого же метода суперкласса.
А если я сделаю ошибку в названии метода: toStrin() ? Без аннотации @Override компилятор никаких проблем не заметит. Он просто будет считать, что это новый, другой метод.
А вот если @Override будет, то компилятор скажет: “Позвольте! Что-то я такого метода в суперклассе не нахожу!”. В результате Вы вовремя заметите ошибку и исправите ее!
Тема аннотаций очень обширная. Ее нельзя охватить в одном посте. Но в следующем курсе под кодовым названием “Прокачай Java” я обязательно посвящу этой теме целый модуль!
Кстати, как Вам название курса? Может, предложите свое?
🔥9
Channel name was changed to «С++/Java для новичков | Оксана Еськова»
Это серия курсов по программированию для новичков на платформе 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
Важно! Во всех платных курсах есть бесплатные промо-уроки. Но для покупки курсов переходите именно по указанным ссылкам. Это даст мне возможность сэкономить на комиссии платформе. Благодарю за понимание!
👍18🔥1
Курсы по Java для новичков pinned «Это серия курсов по программированию для новичков на платформе stepik.org. Я – Оксана Ивановна Еськова (@aksana_yaskova). Больше 20 лет преподаю языки программирования в Вузе. Знаю все сложности и проблемы новичков. Поэтому: • умею объяснять кратко и понятно;…»
Стоит ли платить за курс?
Недавно приобрела себе курс о том, как вести свой телеграм-канал. Прошла половину – и все! Потому что прокрастинацию никто не отменял…
Но мысль об уплаченных кровных рублях постоянно сверлила мне мозг, что в итоге заставило продолжить изучение! Кто знает, сделала бы я это, если бы курс был бесплатным?

Так что вот вам причины, по которым стоит, на мой взгляд, покупать образовательные курсы:
💡 Это мотивирует не бросать обучение (хотя бы из жадности)!
💡 Вся информация собрана в одном месте, излагается в авторском стиле (главное – правильно выбрать автора 😊)
💡 Есть кому задать вопрос, если все же что-то непонятно. С бесплатными курсами это проблема!
А если этот курс на Степике, то тут главная фишка – автоматическая проверка задач! Ведь стать программистом можно только написав много, очень много кода!

Но сэкономить при покупке курса можно: для этого есть распродажи Степика! Кстати, весенняя распродажа почти завершилась: завтра последний день…
Но у Вас еще есть шанс запрыгнуть в последний вагон и купить мои курсы со скидкой 15% 👉 https://stepik.org/users/23008752/profile?preview=true
👍13
Параметры функции main()
Мы с Вами привыкли к такому заголовку функции main() в С++:
int main() {…}

Но иногда Вы можете встретить в книгах или в статьях другой вариант ее описания:
int main(int argc, char* argv[]) {…}

Что же означают argc и argv?
Эта запись используется тогда, когда мы предполагаем вызывать функцию не из IDE, а из командной строки. Тогда после имени программы (exe – файла) можно указать строки, которые передаются в нее в качестве параметров main(). Например, имя файла, из которого программа должна будет читать данные:
…>echo.exe data.txt

• argc содержит количество параметров, передаваемых в функцию main. Причем argc >= 1. Ведь даже если мы не передаем никакой информации, первым параметром считается имя программы.
• argv[] - массив указателей на строки, соответствующие параметрам. В примере вызова, который приведен выше, argv[0] – это имя программы “echo.exe”, а argv[1] – это имя файла ”data.txt”.

В такой программе желательно сначала проверить, переданы ли какие-то параметры из командной строки (а то вдруг она запускается из IDE):
if(argc==1) {
printf("Нет имени файла при запуске %s \n",argv[0]);
_getch();
return 0;
}
👍6🔥31
Как же сложно найти первую работу в ИТ...
Если у вас бывали такие мысли, то хочу Вас познакомить с сервисом decide-career.com. Мне очень понравился этот стартап молодых ребят из Казани.

decide-career.com — это виртуальный карьерный ассистент для поиска работы в ИТ-отрасли
Что умеет Ассистент?  🚀

📝 Создание резюме в диалоге — отвечаете на персонализированные вопросы, видите примеры ответов и из ответов получается резюме. Также доступен анализ резюме. Вы можете получить рекомендации о том, как усилить свое резюме в один клик!

🗣 Тренажёр для интервью — готовьтесь к собеседованиям в комфортном темпе и уютной атмосфере, чтобы сразить HR-менеджера и получить самый сочный оффер. Мы собрали самые распространённые вопросы, которые вы можете услышать на интервью, и выяснили с какой целью их задают работодатели, а также подготовили для вас готовые примеры ответов. Предупреждаем, все вопросы осилить за один вечер не удастся, даже не пытайтесь!

🔍 Поиск вакансий — просто выберете вашу специальность, настройте фильтры желаемого стека, выберите грейда и откликайтесь, откликайтесь, откликайтесь! Вакансии более чем с 200 телеграм-каналов в одном интерфейсе. И скоро источников вакансий будет еще больше!

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


Перейти на сайт → https://decide-career.com/?utm_source=influence&utm_medium=cpc&utm_campaign=aksana_yaskova
(попробовать сервис можно бесплатно)
🔥4
Как учиться без учителя?
Онлайн-образование сейчас на вершине популярности. При этом очевидным его недостатком является невозможность живого общения с преподавателем. Однако я уверена, что если дело касается обучения программированию – то это недостаток надуманный!
Вот представьте, что я в аудитории на 20 человек. Чтобы указать на ошибки конкретного студента, мне нужно открыть его код и вникнуть в него (возможно, пару раз запустить программу). Потом я объясняю проблему, но студент чаще всего не запоминает ничего. И с тем же вопросом он обратится ко мне еще не раз…
А что в это время делают остальные студенты? В лучшем случае – пишут свой код дальше или ждут своей очереди. В худшем – жуют булочки и украдкой открывают Counter Strike! 😲 Представили? И по-вашему, это эффективное обучение?
А вот как я работаю с учеником на Степике: открываю код и спокойно, без спешки вникаю в суть дела. Потом пишу сообщение с советами, ориентированное именно на этого ученика и его ошибки. Это сообщение можно прочесть несколько раз, если сразу что-то не дошло… Можно почитать ответы другим ученикам и найти ответ там, ведь ошибки часто повторяются…
В чем тут подвох? Правильно: в скорости ответа! К сожалению, не все преподаватели поддерживают свои курсы 😥
Но я понимаю важность обратной связи! Поэтому на моих курсах я ежедневно (кроме воскресенья) проверяю комментарии и отвечаю на них. Вот что пишут об этом в отзывах мои ученики:
👌 “Так же хотелось бы отметить автора курса, который постоянно на связи и оперативно реагирует на замечания и мелкие недоработки.” (Павлов Михаил)
👌“На любой вопрос есть обратная реакция от преподавателя. Все объясняется, сложные моменты подсказываются. Непонятные - разжевываются еще раз.” (Хэт)
👌 “Радует то, что лектор всегда на связи, адаптирует задачи для незрячих, отвечает на все вопросы, объясняет все непонятные моменты.” (Павел Москалев)
Хотите учиться онлайн, но не терять контакт с преподавателем? Тогда подписывайтесь на мои курсы на Степике:
🔖“Основы языка Java” (https://stepik.org/course/124803/promo). Бесплатный курс для старта.
🔖 “Объектно-ориентированное программирование на Java” (https://stepik.org/a/133183)
🔖 “Основы программирования на С/С++. Полная версия” (https://stepik.org/a/197220)
👍155
Дождалась! Степик начал рекламировать мой курс!
На днях получила на почту письмо-рассылку от Степика. Среди множества курсов по Python там оказался и мой курс по ООП на Java. Это успех!?
🔥24👍2
С 1 июля цена на курсы по С++ возрастет! Курсов по Java это пока не коснется.
Продвижение Степика имеет и обратную сторону… Мне настоятельно рекомендуют поднимать цену на курсы ☹️ Бизнес – он такой…
А для подписчиков этого канала я дарю промокод FRIENDS, который еще в течение месяца даст Вам возможность купить курсы по С++ по прежней цене. Ну, а до 1 июля еще есть вариант к старой цене применить промокод SECRET10 для скидки 10%!
Переходите по ссылкам:
✔️ Основы программирование на C/C++.
✔️ Основы программирования на C/C++. Часть 2.
✔️Основы программирования на С/C++. Полная версия.
🔥4👍2
Java VS Python
В последнее время на курсе “Основы языка Java” появилось много людей, пришедших после изучения Python. Понятно, что они находятся в шоке и пишут комментарии вроде:
Чем дальше изучаю Java, тем больше люблю Phyton :))

Эх, где-то в сторонке громко рыдает Python со своим
name = input()
print('Привет,', name)

Уже скучаю по f-строкам pythona.

да, это вам не питон...

Конечно, Python прост для изучения. Но эта простота коварна. Тяжело приходится потом переходить на другие языки… Да и многие вещи остаются “под капотом”, не до конца понятными, как это работает.
Именно поэтому я считаю, что начинать обучение программированию нужно с C/C++. Ну, на худой конец – с Java. Это как научится вождению на механике. Перейти на автомат – нет проблемы. А вот обратно…
Кроме того, нужно понимать, что языки эти принципиально разные. : Python – это интерпретируемый язык. А программа на C++ или Java предварительно обрабатывается компилятором. Поэтому там в принципе невозможна динамическая типизация переменных, как в Python.
Но в итоге нет ничего невозможного для человека с интеллектом 😊 И бывшие питонисты могут распробовать и полюбить Java:
Несколько раз хотел бросить изучение данного курса. После питона java заходил тяжело. Тяжело не в смысле сложности, тяжело в смысле синтаксиса. Чтобы написать один и то же код требуется намного больше печатных символов. А эти скобки и точки с запятой! А статическое определение типов данных! Но урок от урока я втянулся. И даже много задач решил без среды разработки на мобильнике. Хочу поблагодарить автора за хороший курс. Буду прокачивать полученные знания на LeetCode. Хотелось бы более сложных задач.
Boris Strelnikov
👍84
Почему С++ такой сложный?
На самом деле, нет 😉. Язык становится простым, если понять его концепцию и привыкнуть к синтаксису. Но у начинающих программистов изучение C/C++ действительно может вызвать трудности. И вот почему:
1. Сложность синтаксиса:
На моих курсах по С++ и Java периодически появляются свидетели “Поколения Python" и пишут комментарии, что они в шоке от синтаксиса. Ну что сказать? Есть такое 😳
2. Управление памятью:
В C++ управление памятью осуществляется вручную. А это требует от программистов понимания динамического распределения и освобождения памяти. Ошибки здесь могут приводить к утечкам памяти и другим проблемам.
3. Концепция указателей:
А это вообще отдельный ужас! Некорректная работа с указателями часто приводит к критическим ошибкам и сбоям программы.
4. Обширность стандартной библиотеки:
Стандартная библиотека C++ слишком велика, что создает трудности в ее изучении новичками. Что стоят только две библиотеки работы со строками: в стиле С и C++!
5. Отладка и тестирование:
Из-за низкоуровневого характера C++ отладка программ может быть сложной и трудоемкой задачей.
6. Большое количество парадигм программирования:
C++ поддерживает несколько парадигм программирования (процедурное, объектно-ориентированное, функциональное программирование). Это может сбивать с толку начинающих, которые пытаются понять: когда и как использовать каждую из них?

В общем, С++ - не самый простой язык для изучения! Поэтому так важно найти хороший ресурс, где понятным языком объясняются сложные вещи! Где задачи и тесты не дадут важной информации пройти мимо Вашего сознания! Где… Ну, Вы знаете – где 😃
И напоминаю, что до конца июля Вы еще можете купить курсы по старой цене! Просто переходите по ссылкам и применяйте промокод FRIENDS:
Основы программирования на C/C++. Полная версия
Основы программирования на С/C++
Основы программирования на С/C++. Часть 2.
👍14
Четыре ошибки при работе с указателями в С++
Указатели — это одна из самых сложных и запутанных тем для начинающих программистов. Неправильное использование указателей может привести к серьёзным ошибкам: утечкам памяти и даже сбоям программ 😱.
Что такое указатель?
Указатель — это переменная, которая хранит адрес другой переменной в памяти. Использование указателей позволяет работать с динамической памятью, передавать большие объекты в функции без их копирования и создавать сложные структуры данных (например, связные списки и деревья).
Типовые ошибки при работе с указателями:
1. Использование неинициализированных указателей
int* ptr;
*ptr = 5; //присваиваем значение указателю "в никуда"

Всегда инициализируйте указатель перед использованием!
int k = 8; //обычная переменная
int* ptr = &k; //присваиваем указателю адрес k
*ptr = 5; //значение 5 записывается в переменную k

2. Утечки памяти
Используйте delete для освобождения динамической памяти, чтобы не было утечек! Иначе со временем динамической памяти может не хватить.
int* ptr = new int(10); //выделение и инициализация динамической памяти
//использование памяти
delete ptr; //освобождение памяти

3. Двойное освобождение памяти
Попытка дважды освободить одну и ту же область памяти приведет к неопределенному поведению программы. Поэтому обнуляйте указатель после освобождения памяти. Новое применение delete к такому указателю не вызовет проблем.
int* ptr = new int(10); //выделение и инициализация динамической памяти
//использование памяти
delete ptr; //освобождение памяти
ptr = nullptr; //предотвращает двойное освобождение

4. Неправильное использование указателей и массивов
Указатели позволяют ускорить работу с массивами, но только в том случае, когда они являются подвижными!
int arr[4] = {5,7,8,9};
int* ptr = arr; //ставим указатель на начало массива
for (int i = 0; i < 4; i++) {
cout << *(ptr + i) << " "; //не быcтрее, чем arr[i]
}

for (int i = 0; i < 4; i++, ptr++) { //продвигаем указатель
cout << *ptr << " "; //так быстрее!
}

Указатели в C++ — мощный инструмент, но они требуют внимательного и ответственного подхода.
А я напоминаю, что еще три дня Вы еще можете начать изучать С++ по старой цене! Просто переходите по ссылкам и применяйте промокод FRIENDS:
Основы программирования на C/C++. Полная версия
Основы программирования на С/C++
Основы программирования на С/C++. Часть 2.
🔥5👍4
Приближается День Знаний! Для меня это праздник со слезами на глазах… Почему со слезами - преподаватели поймут!😉
Это день надежд и новых планов для учеников и студентов. И я хочу поддержать Вас в этом! Объявляю свою собственную мини-распродажу курсов! С 27.08 по 7.09 на все мои курсы скидка 25%. Переходите по ссылкам и включайтесь в интенсивную учебу сразу на старте!
Основы программирования на С/C++. Полная версия
Основы программирования на C/C++
Основы программирования на C/C++. Часть 2
Объектно-ориентированное программирование на Java
🔥17