Курсы по Java для новичков
677 subscribers
67 photos
1 video
4 files
74 links
Я Оксана Еськова - преподаватель Вуза с 20-летним стажем.
Научу писать код на Java c нуля.
Курсы c автоматической проверкой задач: https://stepik.org/users/23008752
Все вопросы сюда 👉 @aksana_yaskova
Download Telegram
Мы с Вами привыкли пользоваться десятичной системой счисления.
В ней десять цифр от 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
4. Кей Хорстманн. Библиотека профессионала. Том 1 “Основы” и том 2 “Расширенные средства программирования”. Издательство “Диалектика” , 2020
После изучения основ тем или иным способом – переходим к Хорстманну! Соответствует Java 11. Здесь побольше, чем просто основы: создание графических интерфейсов, работа в сети, формирование профессионального стиля программирования. Эту книгу использую по надобности. Тоже must have!

5. Блинов И.Н., Романчик В.С. Java. Методы программирования. Минск : издательство «Четыре четверти», 2013
Это учебник EPAM по Java. Начинать с него не стоит. Довольно труден для восприятия. Но “шлифануть” и проверить свои знания – самое то! Если Вы прочли Блинова и все поняли – считайте, что Вы готовый junior! А также рекомендую как программу обучения. Минус – ориентировано на Java 7, возможно немного устарело.

Книги по паттернам проектирования

6. Эрик Фримен, Элизабет Фримен, Кэти Сьерра, Берт Бейтс. Паттерны проектирования. Издательство “Питер”, 2021
Легкая и интересная. Обилие иллюстраций. Для начинающих подходит хорошо. Примеры на Java.

7. Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес. Паттерны объектно-ориентированного программирования. Издательство “Питер”, 2020
Знаменитая книга “Банды четырех”. Классика. Сложно воспринимается. Примеры на С++.
👍7
Студентам!
Я иногда занимаюсь репетиторством. И вот мне пришлось подтягивать студента одного из Минских вузов. У него были несколько лабораторных, причем в одной лабораторной ему предлагалось описать класс, содержащий информацию о городе. А затем в следующей лабораторной с темой “Наследование классов” предлагалось создать с помощью наследования класс “Отель города”.
Кто мне может сказать, что не так с этим заданием?
Да, все верно ответили Вадим и Никита! Здесь нет отношения наследования. Ведь отель не является частным случаем города! Вот если бы это был, например, мегаполис… Тогда да – можно наследовать от города.
К чему я это все? Как не запутаться студенту, когда приходится изучать наследование на задачах с такой постановкой?
Поэтому я решила для студентов ввести специальную скидку 25% на курс “Объектно-ориентированное программирование на Java”! Пишите в личку, присылайте фото студенческого билета (или другого документа, который подтверждает, что Вы студент).
Все студентам – хороших преподов и адекватных задач!
👍8
Всяк кулик свое болото хвалит?
Да, это я про выбор первого языка программирования. Каждый преподаватель пытается объяснить, что именно с его любимого языка программирования нужно начинать “входить в IT”. Но если все-таки попытаться быть чуточку объективным?
Тут нужно отметить, что однозначного ответа на этот вопрос нет. И все зависит от того, зачем (и когда) Вы начинаете изучать программирование.
Ситуация 1. Вы – школьник. И цель обучения – пробудить интерес к программированию. Тогда это однозначно Python или JavaScipt. Здесь все достаточно просто и много готовых библиотек и туториалов, по которым можно сделать что-то прикольное: бота, скрипт для операционной системы, простое оконное приложение…
Человеческий мозг получает удовольствие, когда у него что-то получается, когда он видит результат своего труда (причем чем быстрее, тем лучше). В общем – то, что нужно, чтобы увлечься!
Ситуация 2. Вы – студент 1 курса. И типичная программа Вуза предполагает изучение процедурной части С++… И это не зря. На данном этапе цель обучения – создать хорошую базу, “вставить мозги” будущему программисту.
Ведь Вы когда учитесь вождению, стараетесь учиться на механике, а не на автомате? Так и тут: если разобраться в С++ на вменяемом уровне, то изучить любой другой язык в дальнейшем не составит труда. Вы научитесь понимать то, что находится “под капотом” более современных языков и делает их такими “простыми”. Попробуете отладку программ, какую-никакую оптимизацию кода, разовьете алгоритмическое мышление.
И если Вы студент – то у Вас есть время и стимул работать над базой, которая в дальнейшем даст Вам возможность достигнуть более высокого уровня квалификации чем “быдлокодер” (по некультурному выражению моих студентов).
Тут есть одно “но”. Часто преподаватели Вуза и объектно-ориентированное программирование дают на С++. Не советую. Лучше для ООП переходите на Java или С#. Или на тот язык, который у Вас целевой и подходит для выбранной Вами сферы.
Ситуация 3. Нужно быстро начать зарабатывать деньги. Вы уже потратили годы в Вузе на обучение профессии, которая Вас не удовлетворяет? А теперь хотите войти в IT, но у вас семья и мало времени на раскачку? Тогда есть смысл изучать сразу язык, с которым найти работу проще. Язык распространенный, для которого много вакансий. Но при этом достаточно простой. Тут в помощь различные рейтинги типа TIOBE. Ситуация все время меняется. Но в топах опять же Python, Java и C#.
Ну, или Вы четко знаете, чего хотите. Например, мечтаете программировать под Android. Тогда выбираете Kotlin (можно начать и с Java). Или хотите писать под IOS – выбираете Swift.
Сначала потратьте месяц на выбор языка. Попробуйте несколько языков и ориентируйтесь на свои ощущения. Благо, на Степике полно бесплатных курсов для начинающих. А выбрав – бейте в одну точку. Ведь чтобы программировать на коммерческой основе, нужно знать не только сам язык. А еще нужны различные библиотеки и фреймворки. Каждый язык – это своя инфраструктура. Например, для Java-девелопера часто требуется знание Spring, JUnit, JSF. А также Git, XML, SQL и какие-либо СУБД, и много еще чего. И так для каждого языка.
Изучили ядро языка? Посмотрите объявления о вакансиях и выберите самые популярные требования! Начните разбираться с ними, и так постепенно обретете все необходимые навыки…
11👍3
Дорогие подписчики! Раз Вы здесь – значит, Вы уже знакомы с моими курсами на Степике. Вы – моя аудитория, для которой я стараюсь как могу.
Поэтому я решила сделать промокод SECRET10 на скидку 10% для подписчиков этого телеграмм-канала на все мои платные курсы:
Основы программирования на С/C++
Основы программирования на С/С++. Часть 2
Основы программирования на С/C++. Полная версия
Объектно-ориентированное программирование на Java
Убедительно прошу покупать курсы после перехода именно по этим ссылкам! Это связанно с комиссией Степика…
Ваша Оксана Еськова
🔥7
А Вы знаете, что такое сериализация и зачем она нужна? Если нет - посмотрите мое видео об этом. Конечно, материал выхвачен из контекста моего нового курса по Java (над которым работаю сейчас). Но представление получить можно... https://www.youtube.com/watch?v=AfDhCyy2Hsk
7
По следам 8 марта…
Вспоминая прошедший праздник борьбы за гендерное равноправие, хочется поговорить о роли женщин в сфере IT.
Традиционно много женщин – аналитиков и тестировщиков, не говоря об HR и прочих администраторах. Однако в разработке ПО их присутствие составляет всего лишь 17% в России и 11% в Беларуси, согласно данным IDC и БЕЛТА. В мировом масштабе эти цифры немного выше, около 30%. Почему такой разрыв? Всё дело скорее не в ментальных различиях, а в социальных стереотипах.
5
И вот история подтверждает это утверждение! На заре программирования это была преимущественно женская область!
Кто не знает Аду Лавлейс, дочь Байрона, которую считают первым программистом в мире? Еще до появления компьютеров она разработала алгоритм для "аналитической машины" Чарльза Бэббиджа. К сожалению, сама машина так и не была построена.
Во время Второй мировой войны был создан ENIAC - первый программируемый компьютер, на котором рассчитывались траектории ракет. И знаете, кто там работал? Шестеро женщин: Джин Бартик, Бетти Холбертон, Кей Антонелли, Мэрлин Мельцер, Френсис Спенс и Рут Тейтельбаум. На фотографиях к этому посту как раз изображены Мэрлин Мейцер и Рут Тейтельбаум, которые настраивают ENIAC.
А вот и ещё несколько великих женщин, заслуживших признание в мире разработки программного обеспечения:
Грейс Хоппер одной из первых создавала программы для компьютера ASCC (Mark I). Именно она создала первый компилятор для языка программирования и популяризировала идею машинно-независимых языков программирования
Кэтлин Бут вместе с мужем Эндрю, создала три компьютера: ARC, SEC и APE. Эндрю их проектировал, а Кэтлин писала на языке ассемблера "Автокод" и программировала машины. Кэтлин также стала автором первых учебников по программированию и профессором в университете.
Лоис Хайбт была одной из разработчиков FORTRAN, первого успешного языка программирования высокого уровня. Она также создала синтаксический анализатор арифметических выражений.
Барбара Лисков разработала принцип подстановки Лисков (LSP) и руководила разработкой языков программирования Клу и Argus.
Маргарет Гамильтон работала в НАСА над несколькими крупными космическими программами, включая программу "Аполлон", которая привела к высадке человека на Луну.
Мэри Келлер вместе с Джоном Кемени и Томасом Курцем создавала ядро DTS BASIC. В 1960-е она была преподавателем и популяризатором новой в то время науки — информатики, а ещё стала первым в истории доктором информатики в США. И при этом еще она была католической монахиней.
Радия Перлман разработала протокол STP, который решает проблему петель в топологии сети Ethernet, а также протокол маршрутизации IS-IS.
Это лишь малая часть истории женщин в программировании. А я хочу пожелать всем девушкам: не бойтесь вызовов, ломайте стереотипы и идите к своей мечте!
5🔥2👍1🐳1
Знатокам С/C++! Вопрос про нультерминированные строки классического С!
🔥2👍1