diff --git a/README.md b/README.md index be82b19..30eab51 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,48 @@ -# Интенсив StartJava — программирование на Java для начинающих +# StartJava — курс программирования на Java для начинающих -![41687911-6998bd4e-74f2-11e8-8f36-841919089170](https://user-images.githubusercontent.com/29703461/44985570-739f4c00-af89-11e8-9c9f-bfd22ffeecb5.jpg) +![header](https://user-images.githubusercontent.com/29703461/177752588-4b3a45fc-3abf-4d9f-ada4-fa3cbc25f315.png) -Вы решили начать изучать язык программирования Java и, возможно, в будущем хотели бы пройти обучение и на других наших [курсах](https://topjava.ru/) и получить достойную профессию разработчика! -Но знаний еще не хватает и выполнить вступительное домашнее задание (его вы получите сразу после регистрации на проекте) на курсе [BaseJava](https://topjava.ru/basejava) не получается... +Если вы оказались на этой странице, значит, решили начать изучать язык программирования Java. Если вы достаточно упорны и терпеливы, то рано или поздно старания принесут ожидаемые плоды — вы освоите профессию разработчика. В современном мире — это один из немногих видов деятельности, который позволит вам чувствовать себя прекрасно во всех отношениях. Но достичь этого положения очень не просто: не каждому суждено в итоге стать программистом. -Что бы помочь вам начать программировать, наша команда разработала курс — StartJava +Чтобы облегчить ваше обучение, помочь начать программировать, видеть прогресс и повысить шансы на успех, мы разработали авторский курс StartJava, который значительно ускорит процесс освоения Java, заложив прочный фундамент для дальнейшего и более глубокого его изучения. Курс StartJava является первым шагом на пути к профессии Java-программист. Именно с него следует начинать изучать этот язык. -Все уроки интенсива содержат наши авторские видео, а также ссылки на дополнительные материалы и домашние задания, которое позволят вам закрепить изученные темы +**Отметим достоинства курса:** +- тщательная и качественная проверка ДЗ, минимум, два раза в день +- ответы наставником на любые вопросы, связанные с изучаемыми темами +- ДЗ проверяется до тех пор, пока оно не будет решено +- терпеливый наставник без вредных привычек :) +- большое количество практических заданий разной сложности на каждую тему +- множество тестов на пройденные темы после каждого урока +- написание выпускного проекта и ревью его кода наставником +- авторские видеолекции и статьи с пошаговым разбором материала +- обилие дополнительных источников для углубленного изучения материала +- учебный материал хорошо структурирован, последователен и понятен: подается с постепенно возрастающей сложностью +- обучение не только Java, но и всем сопутствующим технологиям и инструментам: от работы в консоли до Git и баз данных +- обучение техникам Clean Code, Refactoring и форматированию кода с первого урока +- получение навыка писать красивый и читаемый код — его качество вырастет в разы +- привитие культуры профессиональной работы с кодом и правильных привычек +- закладывание качественного и серьезного фундамента для дальнейшего изучения Java +- развитие мышления программиста, а также умения искать решение проблем +- подготовитесь к поступлению на курс BaseJava +- наконец-то почувствуете прогресс от обучения и начнете программировать -Также предлагаем вам посмотреть наш вебинар на тему ["Как стать Java-программистом"](https://vk.com/wall-18505771_829) +**Общие сведения:** +- электронный сертификат по окончанию на русском и английском языках +- среднее время обучения 10 недель +- курс можно проходить в удобные для себя время и темп +- старт обучения сразу после оплаты +- по завершению - скидка на курс BaseJava +**Формат обучения:** +- вы смотрите наши авторские видеолекции, изучаете дополнительный материал, выполняете ДЗ +- по мере готовности сообщаете наставнику, что его нужно проверить +- он проверяет и пишет, что требуется исправить +- вы исправляете, он снова проверяет. И так повторяется до тех пор, пока ваше решение не будет соответствовать условию ДЗ и представлению наставника о том, как его нужно выполнить +- если все верно, то наставник напишет, чтобы вы выполняли следующее ДЗ + +Курс очень интересный и насыщенный, постоянно развивается и улучшается. Если еще есть сомнения, то [ознакомьтесь с отзывами](https://vk.com/topic-18505771_38447031?offset=80) выпускников. + +Также предлагаем вам посмотреть наш вебинар на тему ["Как стать Java-программистом"](https://vk.com/wall-18505771_829). ## Программа интенсива - **Занятие первое** @@ -23,8 +55,9 @@ - [Ветвление: if, if else](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#-7-ветвление-if-if-else) - [Циклы: for, while, do while](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#-8-циклы-for-while-do-while) - [Система управления версиями Git](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#-9-система-управления-версиями-git) - - [Домашнее задание](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#-10-домашнее-задание) - - [Советы по выполнению домашнего задания](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#11-советы-по-выполнению-домашнего-задания) + - [Итоговые домашние задания](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#10) + - [Опросник](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#11) + - [Общие рекомендации по выполнению ДЗ](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#12) - **Занятие второе** - Разбор домашнего задания @@ -32,7 +65,8 @@ - Что такое класс - Что такое объект - Инкапсуляция: геттеры/сеттеры - - Домашнее задание + - Итоговые домашние задания + - Опросники - **Занятие третье** - Разбор домашнего задания @@ -40,15 +74,18 @@ - Компиляция Java-программ. Часть II - .gitignore - Домашнее задание + - Опросники - **Занятие четвертое** - Разбор домашнего задания - - Среда разработки — IntelliJ IDEA - - Массивы. Цикл for each + - Среда разработки IntelliJ IDEA + - Массивы. Цикл foreach - Задачки на массивы - Сортировка массива методом пузырька - Класс java.util.Arrays - - Домашнее задание + - Итоговые домашние задания + - Выпускной проект + - Опросники - Бонусные видео - **Занятие пятое** @@ -58,19 +95,24 @@ - Домашнее задание ## Рекомендуемые книги - - [Изучаем Java](https://www.ozon.ru/context/detail/id/7821666/) - - [Pro Git](https://git-scm.com/book/ru/v2) - - [Объектно-ориентированный подход. Мэтт Вайсфельд](https://www.ozon.ru/product/obektno-orientirovannyy-podhod-vaysfeld-mett-vaysfeld-mett-211432428) - - [Java Programming for Kids (есть русский перевод)](http://myflex.org/books/java4kids/java4kids.htm) - - [Книга для детей: Яша учится программировать](https://drive.google.com/file/d/1ukTlzMrFX3Zj8X9TXp6U-mJUH1fOKUED/view?usp=sharing) +- [Список книг для начинающего Java-программиста](https://topjava.ru/blog/spisok-knig-dlya-nachinayushchego-java-programmista) -## Полезные курсы +## Полезные плейлисты - [Яков Файн: "Введение в программирование на языке Java"](https://www.youtube.com/playlist?list=PLkKunJj_bZefB1_hhS68092rbF4HFtKjW) - [Мирончик И.Я.: "Основы программирования на языке Java"](https://www.youtube.com/playlist?list=PL4535B9D2F8203AC7) +## Полезные ссылки + - [Вопросы и ответы для подготовки к собеседованию](https://github.com/enhorse/java-interview) + - [Программа для сохранения вашего зрения](https://justgetflux.com/) + - [Топовый курс для изучения английского с нуля](https://youtube.com/playlist?list=PLD6SPjEPomauFCdDQwuHubP7F2yIVJnwN) + - [Google Переводчик — плагин для браузера](https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb?hl=ru) + - [Клевая музыка для кодинга](https://www.youtube.com/channel/UCwVQIkAtyZzQSA-OY1rsGig) + - [Плагин для браузера: переводит на русский язык видео с YouTube](https://github.com/ilyhalight/voice-over-translation) + +## Благодарности + - Спасибо всем, кто дает обратную связь по урокам — она помогает нам делать этот курс еще лучше + ## Контакты - - информация о курсах, процессе обучения, трудоустройстве: [topjava.ru](https://topjava.ru/) - - наша группа в [vk](https://vk.com/topjavaru) - - skype автора курса (Максим): *canbezam* - - для общения по данному проекту подключайтесь в группу в мессенджере [Slack](https://join.slack.com/t/startjava/shared_invite/enQtMjk1ODAxNjgzMjY1LWNlNmY5MzFlMGNjMGYzMDI4MTk3YWM1Zjc3ZDhmZjAwNmE3NzUzYWNiY2ViMjg2NTk3NjBkMGI5NWZmYjhjMjk) - - Максим в Slack: [*@chimax*](https://startjava.slack.com/messages/@chimax) + - Информация о курсах, процессе обучения, трудоустройстве: [topjava.ru](https://topjava.ru/) + - Наша группа в [vk](https://vk.com/topjavaru) + - Мой telegram: *ch1max* diff --git a/lesson 1.md b/lesson 1.md index 5eb3b3b..747a42a 100644 --- a/lesson 1.md +++ b/lesson 1.md @@ -1,7 +1,9 @@ > ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) — эта иконка означает, что рядом с ней находится ссылка, содержащая видеоурок: кликайте на нее для его просмотра +## [Отзывы выпускников о курсе](https://vk.com/topic-18505771_38447031?offset=100) +## [Демонстрация проверки ДЗ наставником](https://youtu.be/H_PYOW9Qq80?si=isPC3-aYYPhDWL5B) -# ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) [Занятие первое](https://drive.google.com/file/d/1l2g_mGPw3XEJ9OyURaXosRVqmeDz4kId/view?usp=sharing) +# Занятие первое ## Темы занятия 1. [Подготовка рабочего окружения](#1) @@ -13,74 +15,67 @@ 1. [Ветвление: if, if else](#7) 1. [Циклы: for, while, do while](#8) 1. [Система управления версиями Git](#9) -1. [Домашнее задание](#10) -1. [Советы по выполнению домашнего задания](#11) +1. [Итоговые домашние задания](#10) +1. [Опросники](#11) +1. [Общие рекомендации по выполнению ДЗ](#12) + +# [Видеообзор курса StartJava](https://youtu.be/vM1ygW7pKTE) +- На данный момент проверка ДЗ проводится в **Telegram** в индивидуальном режиме +- Обязательно читайте книги из [списка](https://topjava.ru/blog/spisok-knig-dlya-nachinayushchego-java-programmista) параллельно изучаемым темам ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 1. [Подготовка рабочего окружения](https://drive.google.com/file/d/1gWrBFrly3BdXKq868Xr0QkGtpM9FCmI4/view?usp=sharing) -- Установите Java SE Development Kit 8: - - для пользователей [Windows](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) - - для пользователей [Ubuntu Linux](http://help.ubuntu.ru/wiki/java) - - альтернативная сборка [JDK 8](https://libericajdk.ru/pages/java-8u275/) для всех платформ (не требует регистрации; при установке автоматически прописыват в `PATH` путь до папки с java) -- Откройте консоль и введите в ней `java -version`, а затем `javac -version` -- Если при этом возникнет ошибка `"java/javac" не является внутренней или внешней командой, исполняемой программой или пакетным файлом`, то - - [занесите](https://youtu.be/EEqScHr_bec) в переменную окружения `PATH` полный путь до папки, где хранятся файлы `java` и `javac`. Перезапустите консоль -- Напишите в консоли для вывода значения переменной `PATH` одну из следующих команд: - - `echo %PATH%` (для Windows) - - `$PATH` (для Linux) -- Убедитесь, что в отображаемом результате присутствует путь до указанных выше файлов -- Установите систему контроля версий [Git](http://git-scm.com/downloads) -- Создайте аккаунт на [GitHub](https://github.com/) -- Для удобной навигации по файлам на GitHub установите расширение для браузера — [Octotree](https://www.octotree.io/download) -- Скачайте и установите [Sublime Text](https://www.sublimetext.com/3). Именно в нем мы будем писать наши программы (с четвертого урока перейдем на IntelliJ IDEA) -- Выполните [настройку](https://docs.google.com/document/d/1Ebi46kxKng45PLBH2dXpCnXXCHRI18rwXuDrXskWaa0/edit?usp=sharing) Sublime Text - -Использовать какую-либо из IDE до четвертого урока — запрещено! Консоль, Sublime Text и "голый" Git — ваши лучшие друзья! + +- [Установите и настройте Java](https://topjava.ru/blog/ustanovka-i-nastroyka-java) +- Скачайте и установите [Sublime Text 4](https://www.sublimetext.com/download). Именно в нем мы будем писать наши программы (с четвертого урока перейдем на IntelliJ IDEA) + +**[Отключите](https://chromefaq.ru/nastrojki/kak-perevodit-stranitsy-v-google-chrome-s-anglijskogo-na-russkij#i-6) в браузере автоперевод страниц. Из-за него уроки могут отображаться некорректно** **Материалы:** +- [Знакомство с языком Java](https://www.youtube.com/live/QGHGR0xEcFA?si=xW98gPEVGZX_UrG5) - [Что такое JDK? Введение в средства разработки Java](https://topjava.ru/blog/what-is-the-jdk) - [Что такое JRE? Введение в среду выполнения Java](https://topjava.ru/blog/what-is-the-jre) - [Что такое JVM? Знакомство с виртуальной машиной Java](https://topjava.ru/blog/what-is-the-jvm) -- [Популярность Java-технологий в 2019 году](https://topjava.ru/blog/sostoyanie-java-v-2019-godu) +- Отчет о популярности Java-технологий в [2019](https://topjava.ru/blog/sostoyanie-java-v-2019-godu), в 2023 ([1](https://drive.google.com/file/d/1KAqubG1ETRfRioEcM46M-OKOh2ZNpzJQ/view?usp=sharing), [2](https://drive.google.com/file/d/14V5UBnbGI7pSa2_kIir36eilF36LiZOD/view?usp=sharing), [3](https://www.jetbrains.com/ru-ru/lp/devecosystem-2022/java/)) ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 2. [Первая программа](https://drive.google.com/file/d/1anXQBZ80wvfzozUNlfhy1wtS-eS50cZi/view?usp=sharing) -Перепишите данный код в Sublime Text: +- Изучите статью [Java с нуля: первая программа](https://topjava.ru/blog/pervaya-programma-na-java). В ней показано создание простой программы MyFirstApp с main-методом, а также дается подробный разбор каждой строки кода: ``` java public class MyFirstApp { public static void main(String[] args) { - System.out.println("Hello, world"); + System.out.println("Write once, run anywhere"); } } ``` -и сохраните его в файле под названием `MyFirstApp.java` + +- [Настройте](https://topjava.ru/blog/nastroyka-sublime-text-dlya-java) Sublime Text для Java +- [Настройте](https://topjava.ru/blog/nastroyka-sublime-text-dlya-java#7) проверку правописания для Sublime Text **Материалы:** -- [Обзор и настройка Sublime Text](https://youtu.be/xWhTf_o86Lg) — видео дано для ознакомления с возможностями редактора. Это не значит, что вам нужно делать все то, что делает его автор (youtube) -- [Установка плагина Terminal для SublimeText](https://youtu.be/9cFW481D2lU) (youtube) -- [Первая программа на Java – Hello World](http://pr0java.blogspot.com/2015/03/java-hello-world.html) -- ["Hello World!" Application](https://docs.oracle.com/javase/tutorial/getStarted/application/index.html) -- [Java "Hello World" Program](https://www.journaldev.com/481/java-hello-world-program) -- [Java main method](https://www.journaldev.com/12552/public-static-void-main-string-args-java-main-method) +- [Обзор и настройка Sublime Text](https://youtu.be/xWhTf_o86Lg) — видео дано для ознакомления с возможностями редактора. Это не значит, что вам нужно делать все то, что делает его автор (youtube) +- [Установка плагина Terminal для SublimeText](https://youtu.be/9cFW481D2lU) (youtube) — можно использовать либо этот плагин, либо `Terminus` ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 3. [Ручная компиляция и запуск программы](https://drive.google.com/file/d/1u0jyGJkFFLUwfj0c21uY2i2louNtIm_3/view?usp=sharing) Для компиляции и запуска программы необходимо в консоли перейти в папку, в которой находится файл `MyFirstApp.java`, и ввести последовательно следующие команды: - `javac MyFirstApp.java` — компиляция java-файла - `java MyFirstApp` — запуск программы -Для того, что бы русский текст корректно отображался в консоли, компилируйте свои программы с помощью ключа `-encoding utf8`: -- `javac -encoding utf8 имя_класса.java` +Для однофайловых программ, начиная с Java 11, процесс компиляции и запуска можно совместить в одной команде: +- `java MyFirstApp.java` -Если вы используете windows 10, то можно [настроить](https://drive.google.com/file/d/1LTDN9reLiQFdlgc8Nnx4itfMQ0hhxgkb/view?usp=sharing) ОС на поддержку Юникод. В этом случае ключ `-encoding utf8` уже не требуется. +Для того, чтобы русский текст корректно отображался в консоли, компилируйте свои программы с помощью специального параметра `javac -encoding utf8 имя_класса.java` + +Более подробно об этом рассказывается в статье [Компиляция и запуск Java-программ](https://topjava.ru/blog/kompilyatsiya-i-zapusk-programm-na-java) + +А из статьи ["Основы командной строки для Java-программиста"](https://topjava.ru/blog/osnovy-komandnoy-stroki-dlya-java-programmista) вы узнаете о самых нужных и часто используемых командах консоли для работы с файловой системой **Материалы:** -- [Работа с командной строкой Windows](https://www.youtube.com/watch?v=8_tkUJhuogA) (youtube) +- [Getting Started with Java](https://dev.java/learn/getting-started/) - [Введение в командную строку Windows](https://www.youtube.com/user/Iidsp/videos) (youtube) -- [Работа с Java в командной строке](https://habr.com/post/125210/) -- [Сответствие консольных команд Windows и Linux](https://white55.ru/cmd-sh.html) ## 4. Этапы компиляции и запуска -![levels](https://user-images.githubusercontent.com/29703461/108978900-25bbb880-769b-11eb-91e9-528b66eda9c2.jpg) +![Frame 303](https://github.com/ichimax/startjava/assets/29703461/613d6100-8fc1-4054-9811-cf143b61d32c) ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 5. [Байт-код](https://drive.google.com/file/d/19Tl7dEpPszjQfulzQBEwyn9sQL0DK3ji/view?usp=sharing) Для отображения байт-кода класса необходимо в консоли перейти в папку, в которой находится файл `MyFirstApp.class`, и написать: @@ -88,7 +83,7 @@ public class MyFirstApp { **Материалы:** - [Java байт-код «Hello world»](https://habr.com/post/264919/) -- [javap — Disassembles one or more class files](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javap.html) +- [javap — Disassembles one or more class files](https://docs.oracle.com/en/java/javase/17/docs/specs/man/javap.html) ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 6. [Переменные: примитивные типы данных](https://drive.google.com/file/d/1mrsKC-wU7NpxQiNt47rgfySsDGTwB8Wb/view?usp=sharing) @@ -97,146 +92,97 @@ public class MyFirstApp { - [Примитивные типы данных](http://developer.alexanderklimov.ru/android/java/types.php) - [Variables](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html) - [Primitive Data Types](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) +- [Про размеры типов данных](https://youtu.be/3BmznLJAgaA?t=782) -![var](https://user-images.githubusercontent.com/29703461/39386134-d0843ce6-4a7b-11e8-8a0f-94224b256386.png) - -## Все домашние задания показывайте ментору по одному, не копите их! -- [Чек-лист](https://docs.google.com/document/d/1CcFKdXwgnL3h65izX1oY6PtUKQe9DV-I-YEQQ2RKu74/edit?usp=sharing) наиболее часто совершаемых ошибок при форматировании Java-кода. Ориентируйтесь на него при форматировании своих программ +![var](https://user-images.githubusercontent.com/29703461/155842985-5fae137b-3967-4fe6-893c-0d2a018815a5.png) -**Домашнее задание:** -- Создайте класс **Variable** с методом **main** -- Объявите в методе переменные всех существующих в Java примитивных типов данных. Каждой переменной присвойте значение -- В качестве значений используйте информацию о своем компьютере: количество ядер, частота процессора и тд. -- Выведите все значения переменных на консоль -- Разберитесь с [Git/GitHub](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#9): почитайте рекомендации о том, как с ними работать, настройте свой локальный репозиторий -- **Покажите Д/З наставнику** (пришлите ему ссылку с решенным ДЗ на ваш репозиторий на github) +- **Домашнее задание:** + - Разберитесь с [Git/GitHub](https://github.com/JavaOPs/startjava/blob/master/lesson%201.md#9) + - Пришлите наставнику ссылку на удаленный репозиторий с решенными ДЗ + - ["Именование переменных"](https://docs.google.com/document/d/1Dv-eo8acvOVFJtUVbaWd1Mfb77Q1IiTlhepgy56qMbc/edit?usp=sharing) + - ["Примитивные типы данных"](https://docs.google.com/document/d/1kJqeCC-fKWUjBjrmHJ1mjDu45SGRL39Q5vW4DmLJflA/edit?usp=sharing) ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 7. [Ветвление: if, if else](https://drive.google.com/file/d/1r-UVn4Z9OhV-SUvJdMrC6EG_v9qowAJS/view?usp=sharing) -![turpal](https://user-images.githubusercontent.com/29703461/39215173-9afa64b4-481f-11e8-9731-fa60a8439f71.jpg) **Материалы:** - [Ветвление в Java](https://javarush.ru/groups/posts/2726-vetvlenie-v-java) -- [Оператор if else](https://youtu.be/ryR033ld_N0) (youtube) -- [The if-then and if-then-else Statements](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html) - -**Домашнее задание:** -- Создайте класс **ConditionalStatement** с методом **main** -- Перепишите псевдокод, приведенный ниже, с помощью Java -- Используйте переменные, условные операторы, оператор ! [(логическое НЕ)](http://developer.alexanderklimov.ru/android/java/logic_operators.php) -- Выводите сообщения на консоль -- Не используйте переменные типа String - -``` java -ЕСЛИ(возраст > 20) { - сообщение -} +- [Оператор if-else](https://youtu.be/ryR033ld_N0) (youtube) +- [Тернарный оператор](https://topjava.ru/blog/ternarnyy-operator-v-java) +- [The if-then and if-then-else Statements](https://dev.java/learn/language-basics/controlling-flow/) -ЕСЛИ(мужскойПол) { - сообщение -} - -ЕСЛИ(!мужскойПол) { - сообщение -} - -ЕСЛИ(рост < 1.80) { - сообщение -} ИНАЧЕ { - сообщение -} +![turpal](https://user-images.githubusercontent.com/29703461/39215173-9afa64b4-481f-11e8-9731-fa60a8439f71.jpg) -ЕСЛИ(перваяБукваИмени == ‘M’) { - сообщение -} ИНАЧЕ ЕСЛИ(перваяБукваИмени == ‘I’) { - сообщение -} ИНАЧЕ { - сообщение -} -``` -- **Покажите Д/З наставнику** +- [Домашние задания по теме "Ветвление: if-else"](https://docs.google.com/document/d/1LZLCupFXrCmTuaT4KCUW9nKjrzaFDCCH7i5PDpWSLjI/edit?usp=sharing) +- Покажите ДЗ наставнику ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 8. Циклы: [for](https://drive.google.com/file/d/1MxaPlSwY6-Nv2zOrQGYy5lOSDjYTfnfU/view?usp=sharing), [while, do while](https://drive.google.com/file/d/1YQHY9C1QbueWYFMRBpHFTqg1wt9N_333/view?usp=sharing) ![loop](https://user-images.githubusercontent.com/29703461/39228479-100883f2-4867-11e8-9d63-5d18e455aaa2.jpeg) **Материалы:** -- Циклы в Java [1](http://nikulux.ru/java-uroki/tsikly-v-yazyke-programmirovaniya-java/), [2](http://android-study.ru/cicli-v-java/) +- Циклы в Java [1](https://timeweb.cloud/tutorials/java/cikly-v-java-osnovy-raboty), [2](https://vertex-academy.com/tutorials/ru/cikly-v-java/) - [Оператор while](https://youtu.be/15PjODTSTaw) (youtube) - [Оператор for](https://youtu.be/UYbdAmgcNVc) (youtube) **Домашнее задание:** -- Создайте класс **Cycle** с методом **main** -- Выведите на консоль с помощью цикла for все числа от [0, 20] -- Выведите на консоль с помощью цикла while все числа от [6, -6] (с шагом итерации 2) -- Подсчитайте с помощью цикла do-while сумму нечетных чисел от [10, 20]. Выведите ее на консоль -- **Покажите Д/З наставнику** +- [Домашние задания по теме "Циклы: for, while, do while"](https://docs.google.com/document/d/1lHSSOzARTx6tfD-4MV-t41S5bnvdNw5hczkQPT05png/edit?usp=sharing) +- Покажите ДЗ наставнику ## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 9. [Система управления версиями Git](https://drive.google.com/file/d/1IMw7DA_lodW2GueWpU1nMUmYx0pnlPGA/view?usp=sharing) -![image](https://cloud.githubusercontent.com/assets/18701152/15219746/9295a2fe-186d-11e6-876b-c61cc9be71e4.png) +![image](https://user-images.githubusercontent.com/29703461/154850409-7a618576-1105-48a1-9e32-88a34e87693b.png) + +- [Установите и настройте Git/GitHub](https://topjava.ru/blog/vvedeniye-v-git-github-ustanovka-i-nastroyka) **Материалы:** - - [Система управления версиями](https://ru.wikipedia.org/wiki/Система_управления_версиями) (wiki) - [Базовый курс по обучению Git](https://www.youtube.com/playlist?list=PLIU76b8Cjem5B3sufBJ_KFTpKkMEvaTQR) (youtube) - [Git. Быстрый старт](https://www.youtube.com/watch?v=4-NX17Ip-xQ&list=PLmRNNqEA7JoM77hOJkPrLOfJQGizCLR3P) (youtube) - Интерактивные Git-обучалки: [1](https://githowto.com/ru), [2](http://learngitbranching.js.org) - [Официальная книга про Git](https://git-scm.com/book/ru/v2) ### Настройка локального репозитория -- Создайте в удобном для вас месте папку под названием `startjava`. В ней будет храниться ваш код +Более подробно об этом рассказывается в статье [Введение в Git/GitHub: базовые команды](https://topjava.ru/blog/vvedeniye-v-git-github-bazovyye-komandy). + +- Создайте в удобном для вас месте папку под названием `StartJava`. В ней будет храниться ваш код - Создайте на GitHub репозиторий с названием `startjava` - Напишите в консоли (при этом консоль должна быть открыта в папке `startjava`): - - [`git init`](https://git-scm.com/book/ru/v1/Основы-Git-Создание-Git-репозитория#Создание-репозитория-в-существующем-каталоге) — создание локального репозитория - - [`git status`](https://git-scm.com/book/ru/v1/Основы-Git-Запись-изменений-в-репозиторий#Определение-состояния-файлов) — вывод состояния файлов - - добавьте адрес созданного на GitHub репозитория в git — [`git remote add origin url_на_ваш_startjava-репозиторий.git`](https://git-scm.com/book/ru/v1/Основы-Git-Работа-с-удалёнными-репозиториями) + - `git init` — создание локального репозитория + - `git status` — вывод состояния файлов + - добавьте адрес созданного на GitHub репозитория в git — `git remote add origin url_на_ваш_startjava-репозиторий.git` - проверьте, добавился он или нет — `git remote -v` ### Рекомендации по Git 1. Последовательность стандартных шагов при работе с Git: - - [`git add файл_с_кодом.java`](https://git-scm.com/book/ru/v1/Основы-Git-Запись-изменений-в-репозиторий#Отслеживание-новых-файлов) — добавляем файлы/изменения в git (файлы с расширением class не добавляйте) - - [`git commit -m "краткое описание изменений, которые вы внесли в программу"`](https://git-scm.com/book/ru/v1/Основы-Git-Запись-изменений-в-репозиторий#Фиксация-изменений) — фиксируем (коммитим) изменения - - [`git push -u origin master`](https://git-scm.com/book/ru/v1/Основы-Git-Работа-с-удалёнными-репозиториями#Push) — [устанавливаем связь](https://qna.habr.com/q/118865) между локальной и удаленной веткой master -2. На GitHub отправляйте не только файлы с расширением `*.java`, но и папки, например, `Lesson 1` -3. Если вы хотите в Git добавить папку с файлами, но при этом какие-то файлы требуется проигнорировать (например `*.class`): - - `git add "Lesson 1"` - - `git reset "Lesson 1/имя файла, который необходимо проигнорировать"` - -## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 10. [Домашнее задание](https://drive.google.com/file/d/1Svgm_03td3Aj_MeVt-MBqSCv-PEhXD0A/view?usp=sharing) - -> Перед отправкой домашнего задания на проверку обращайте внимание на [`Советы по выполнению домашнего задания`](https://github.com/ichimax/startjava/blob/master/lesson%201.md#11), которые содержат ряд полезных подсказок и разъяснений -- Прочитайте первую и третью (до стр 84) главы книги [Изучаем Java](https://www.ozon.ru/context/detail/id/7821666/) -- Прочитайте первые две главы книги [Pro Git](https://git-scm.com/book/ru/v2) -- Дополнительные книги: - - [Программирование на Java для детей, родителей, бабушек и дедушек (есть русский перевод)](http://myflex.org/books/java4kids/java4kids.htm) - - [Яша учится программировать](https://drive.google.com/file/d/1ukTlzMrFX3Zj8X9TXp6U-mJUH1fOKUED/view?usp=sharing) -- Реализуйте `Калькулятор`, который должен уметь выполнять математические операции (`+, -, *, /, ^, %`) над целыми положительными числами: - - что бы программа могла выполнить ту или иную математическу операцию (одну, а не все сразу), делайте проверку математического знака, используя `if else` - - выведите на экран результат вычисления с помощью `System.out.println()` - - Символ `^` используется в данном задании для обозначения операции возведения в степень, но в Java он выполняет совсем иную функцию. Использовать его для возведения в степень не получится. Самостоятельно реализуйте данную операцию - - Символ`%`, похожий на проценты, называется [оператором деления по модулю](https://welcome4u.ru/languages/java/ostatok-ot-deleniya-v-java#i-8). В калькуляторе не надо считать проценты! Считайте остаток от деления -- Напишите игру `Угадай число`: - - компьютер "загадывает" целое число от (0 до 100], которое необходимо угадать - - после каждой неудачной попытки выводите подсказку: - - `"Данное число больше того, что загадал компьютер"` или - - `"Данное число меньше того, что загадал компьютер"` - - если число угадано — `"Поздравляю, число угадано!"` - - меняйте значение переменной, хранящей числа игрока, автоматически по какому-то простому алгоритму (без применения ввода с клавиатуры или генерации рандомных чисел) - - игра продолжается до тех пор, пока число не будет угадано -- Выведите в цикле символы кодировки [Unicode](https://ru.wikipedia.org/wiki/Юникод) в диапазоне [9398, 10178]. Если выводятся кракозябры, то [33, 126] - -## 11. Советы по выполнению домашнего задания + - `git add файл_с_кодом.java` — добавляем файлы/изменения в git (файлы с расширением `class` не добавляйте) + - `git commit -m "краткое описание изменений, которые вы внесли в программу"` — фиксируем (коммитим) изменения + - `git push -u origin master` — [устанавливаем связь](https://qna.habr.com/q/118865) между локальной и удаленной веткой master +1. На GitHub можно отправлять не только файлы с расширением `java`, но и папки, например, `Lesson 1` (при этом они не должны быть пустыми) +1. Если вы столкнулись с проблемами при использовании Git, то статья ["Ошибки использования Git"](https://topjava.ru/blog/vvedeniye-v-git-oshibki-ispolzovaniya-ch-9) поможет их решить -1. Ментору ссылку на репозиторий достаточно прислать один раз (для самого первого ДЗ). Для последующих ДЗ просто сообщайте, что оно готово и можно проверять -2. Учитесь грамотно формулировать свой вопрос: "у меня не получается" может иметь тысячи причин. Пишите больше подробностей о том, что вы сделали, что конкретно не получилось, какие появляются ошибки. Присылайте в чат скрины с этими ошибками -3. При выполнении ДЗ используйте только те темы, которые изучались в текущем уроке -4. Все задания выполняйте в разных классах -5. Код пишите только **ВНУТРИ** метода `main` (для каждого класса метод `main` будет своим) -6. Ввод с клавиатуры, методы класса `Math` или `Random` пока не используйте (но, если вы знаете про них и хотите использовать — дерзайте) -7. Так должна выглядеть структура ваших папок и файлов +## ![video](https://user-images.githubusercontent.com/29703461/81982928-d556fb00-9632-11ea-9794-ea198832d674.png) 10. [Итоговые домашние задания](https://drive.google.com/file/d/1Svgm_03td3Aj_MeVt-MBqSCv-PEhXD0A/view?usp=sharing) + +- [Итоговые домашние задания](https://docs.google.com/document/d/1m6y5qBMfwKjm0DIo3JYqQ9_QNyhroDvsRAirEyDEP7s/edit?usp=sharing) +
+Так должна выглядеть структура ваших папок и файлов + +![tree](https://github.com/ichimax/startjava/assets/29703461/47ca8fc6-3f00-4c24-a07d-0e2416f12eb6) +
-![tree](https://user-images.githubusercontent.com/29703461/110653920-be3f5600-81ce-11eb-9ca5-e9491a2de667.png) +## 11. Опросники +- [Итоговый тест](https://forms.gle/YFc2pf6qZw6jdfXM7) позволит вам проверить, насколько хорошо вы освоили пройденные в уроке темы +- В этом небольшом [опроснике](https://forms.gle/dsthsvh1tRhdJyhu9) вы сможете поделиться своими впечатлениями (анонимно) по поводу первого урока: что (не)понравилось, как его можно улучшить и тд. Ваши ответы помогут нам доработать урок, сделав его еще лучше! + +## 12. Общие рекомендации по выполнению ДЗ + +1. [Правила](https://github.com/JavaOPs/startjava/blob/master/rules.md) проверки ДЗ наставником +1. Ментору ссылку на репозиторий достаточно прислать один раз (для самого первого ДЗ). Для последующих ДЗ просто сообщайте, что оно готово и можно проверять +1. При выполнении ДЗ используйте только те темы, которые изучались в текущем уроке +1. Ввод с клавиатуры, методы класса `Math` или `Random` пока не используйте (но, если вы знаете про них и хотите использовать — дерзайте) ## Немного мотивации +- [Как приучить себя к дисциплине и осуществлять свои планы](https://youtu.be/wbItXmjm7tY?si=RceAgonMsijaz3KD) - [Shia LaBeouf Motivation for Coding](https://youtu.be/J1usv2Hn-pU) - [Мотивация для программистов](https://www.youtube.com/watch?v=NOVaNe3jx6c) - [Речь Стива Джобса Перед выпускниками Стенфорда](https://www.youtube.com/watch?v=WVz9E7o1mmk) - [Мотивационный совет от Стива Джобса](https://www.youtube.com/watch?v=Z2qSUZ1o47U) - [12 минут сильнейшей мотивации. Перелом сознания](https://www.youtube.com/watch?v=69MkvKrraC0) +- [Почему мне так сложно учиться программировать?](https://youtu.be/TtT8UNK0sGg) +- [Простой прием стать программистом быстрее](https://youtu.be/iw3E-Gdncwc) diff --git a/rules.md b/rules.md new file mode 100644 index 0000000..0c649ce --- /dev/null +++ b/rules.md @@ -0,0 +1,34 @@ +## Правила на курсе StartJava при проверке ДЗ наставником + +1. Проверка ДЗ проводится в Telegram +1. Все друг с другом общаются на Ты +1. Доступ к видеолекциям предоставляется только к текущему уроку. Последующие уроки открываются по мере завершения текущего (сделано с целью профилактики списывания) +1. Проверка ДЗ действует 10 недель с момента оплаты с возможностью продления +1. Взаимодействие с наставником проходит по следующей схеме: + - вы смотрите видеолекции (ссылки на них находятся рядом с иконками логотипа ютуба), изучаете дополнительный материал, выполняете ДЗ и **сдаете их по одному (а не все сразу!)** + - по мере готовности сообщаете наставнику, что его нужно проверить + - он проверяет и пишет, что требуется исправить + - вы исправляете, он снова проверяет. И так повторяется до тех пор, пока ваше решение не будет соответствовать условию ДЗ и представлению наставника о том, как его нужно выполнить + - если на вашем последнем сообщении наставник ставит 📌, то он его прочитал. Если стоит 🧐, то в данный момент ваше ДЗ на проверке. Если стоит ✔️- ДЗ проверено + - если все верно, то наставник напишет, чтобы вы выполняли следующее ДЗ +1. Ссылку на свой репозиторий наставнику достаточно скинуть один раз +1. Комментарии к вашему коду будут даваться наставником в краткой форме. Если вам требуется пояснение по какому-то пункту, то задавайте ему дополнительные вопросы для получения более развернутого ответа +1. Переходить к следующему уроку можно после того, как вам об этом сообщит наставник. Не делайте это самостоятельно +1. Для минимизации "простоев" допускается выполнять последующие ДЗ до того, как наставник вам об этом напишет +1. Максимальное время проверки ДЗ до суток, но как правило раньше +1. Если наставник не проверил ДЗ за указанный срок, то напомните ему о себе (он вас мог случайно пропустить) +1. Если у вас закончился срок проверок ДЗ, то его можно продлить еще на месяц в личном кабинете (ссылка на него есть в любом нашем письме) [на сайте](https://javaops.ru/) +1. Доступ к материалам курса у вас остается навсегда +1. Пришлите наставнику свою гугл-почту для доступа ко второму и последующим урокам + +#### Общие рекомендации +- Учитесь грамотно формулировать свой вопрос: "у меня не работает" может иметь тысячи причин. Пишите больше подробностей, что вы сделали, что конкретно не работает, какие появляются ошибки. Присылайте в чат скрины с этими ошибками +- Учитесь гуглить с первых уроков - это важный навык, который нужно качать +- Перед тем как задать вопрос наставнику сначала погуглите; если в течении 2-3 часов вы не найдете ответ, то опишите подробно свою проблему наставнику + +#### Расписание проверок ДЗ + +[Максим Чимаев](https://t.me/ch1max) +- выходные дни вторник и четверг +- время проверки с 11:00 по 13:00 и с 17:30 по 19:30 (но не позднее 21:00 по мск. времени) +- проверка в выходные дни не гарантируется, но возможна