Курсы по Java для новичков
677 subscribers
67 photos
1 video
4 files
74 links
Я Оксана Еськова - преподаватель Вуза с 20-летним стажем.
Научу писать код на Java c нуля.
Курсы c автоматической проверкой задач: https://stepik.org/users/23008752
Все вопросы сюда 👉 @aksana_yaskova
Download Telegram
Инкапсуляция - зачем она нужна?
Решила начать серию вопросов и кратких ответов на собеседовании по Java. Буду стараться писать коротко и ссылаться на курс по ООП, где все уже подробно и с примерами…
И начнем с простого вопроса – что такое инкапсуляция и зачем она нужна?
Инкапсуляция – это принцип ООП, который означает сокрытие деталей реализации. Т.е. внутреннее устройство класса покрыто некой “оболочкой”, которая скрывает его от программиста, использующего этот класс.
Технически это чаще всего означает, что мы переменным класса даем модификатор private, а общение со внешним миром реализуем с помощью специальных методов (геттеров и сеттеров). Но вот зачем мы так делаем?
Для этого существует несколько причин:
💪 Во-первых, программист оперирует объектами, не задумываясь о том, как они “устроены”. А это снижает сложность его работы.
💪 Во-вторых, повышается безопасность кода и предотвращаются ошибки. Ведь таким образом мы изолируем код от несанкционированного доступа. В уроке 1.3 есть задача, которая ярко это демонстрирует:
Имеется класс Material, представляющий вещество. В нем два поля: название и плотность вещества. Если мы предоставим доступ к этим полям по-отдельности, то возможна ситуация, когда мы изменим плотность, а название останется от предыдущего вещества… Получаем потенциальную возможность ошибки в коде. Поэтому: делаем поля private, а сеттеры не вводим! Тогда поля отдельно друг от друга изменить будет нельзя, а только создать новый объект-вещество!

💪В-третьих, инкапсуляция – это потенциальная возможность менять “начинку” класса так, чтобы все ранее написанные программы с его использованием “не посыпались”.
Например, мы написали класс, который представляет собой коллекцию (т.е. набор объектов). И внутри него для хранения использовали массив. А со временем решили, что более эффективно использовать не массив, а список с полями связи. И нам ничего не мешает изменить внутреннее представление данных! Все написанные ранее программы с этим классом продолжат работать…
👍4🔥2
Напишите, какие вопросы на собеседовании (или просто вопросы) Вы хотели бы разобрать? И напоминаю, что на Степике полным ходом идет весенняя распродажа курсов! На все мои курсы скидка 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