JavaRush /Java блог /Random UA /Які бувають завдання з Java

Які бувають завдання з Java

Стаття з групи Random UA
Коли людина починає вивчати програмування самостійно чи онлайн-курсах, дуже важливо позначити «полі діяльності» і все систематизувати. У цій статті ми представляємо таку систематизацію - завдання Java для початківців, із зазначенням, наскільки повно той чи інший тип представлений в онлайн-курсі з вивчення програмування JavaRush та корисними посиланнями. Які бувають завдання з Java - 1

Завдання на синтаксис мови

Основа основ, найперші завдання з програмування Java для початківців - від Hello World до циклів і масивів. На JavaRush їх дуже багато: особливо щільно вони зосереджені в квесті Java Syntax на перших шести рівнях. Навряд вам потрібно шукати якісь додаткові джерела для їх засвоєння — тут їх цілком достатньо. Крім того, вирішуючи будь-які, складніші завдання, ви автоматично повторюєте синтаксис. Але якщо раптом потрібні - подібні вправи містить будь-який задачник з Java для початківців. Тільки ось миттєвої перевірки, як на JavaRush, у цих завданнях не буде.

Завдання на колекції

Колекції – перша «серйозна» тема, з якою стикається програміст-новачок під час навчання. Завдання Java для початківців, присвячені колекціям, також широко представлені на JavaRush - на сьомому і восьмому рівні квесту Java Syntax. Тут студент уперше почує про Java Collections Framework, попрацює з інтерфейсами Set, List та Map та деякими їх реалізаціями. Однак на цьому етапі на вас чекає лише знайомство з цим корисним інструментом і прості завдання з Java. Більш ґрунтовне вивчення колекцій відбудеться під час проходження квесту Java Collections . Бачите, наскільки це важливий об'єкт, раз на його честь назвали цілий квест!

Завдання на винятки

За роботу з позаштатними ситуаціями в Java відповідає спеціальний механізм, який суттєво спрощує «лов» помилок у програмах. Тільки щоб їм повноцінно користуватися, потрібно розібратися, як у Java влаштована обробка винятків. На JavaRush таких завдань дуже багато, причому зустрічаються вони навіть у першому квесті Java Syntax.
Які бувають завдання з Java - 2

Завдання на приведення типів

Очевидно, цю групу можна віднести до базових завдань на синтаксис. Тим не менш, на нашу скромну думку, такі завдання часто недооцінюють, і новачки в них плавають. Тому відійдемо від шаблонів: завдання на Java для початківців на тему «Приведення примітивних типів» вивчаємо не на самому початку, як часто роблять, а трохи пізніше — наприкінці першого квесту Java Syntax. А потім навчимося наводити непримітивні типи (об'єкти), вивчаючи ОВП у квесті Java Core . Таких завдань JavaRush вистачає, додатково можна нічого не шукати.

Завдання на розуміння ООП

ОВП – не найскладніша тема, але надзвичайно важлива. Крім того, в ній приховано дуже багато тонкощів, на яких інтерв'юери люблять ловити майбутніх «джунів». Курс JavaRush містить практичні завдання програмування для початківців, які допоможуть вам розібратися в об'єктно-орієнтованому підході. Проте, щоб зрозуміти ООП по-справжньому, рекомендуємо читати літературу на тему (наприклад, Кей Хорстманн, Гарі Корнелл «Бібліотека професіонала», «Об'єктно-орієнтований аналіз та проектування» Маклафліна або інші книги ) .

Завдання на потоки введення/виводу

Потоками введення/виводу ми починаємо користуватися задовго до того, як розуміємося з ними - це Java, дитинка, і пояснити зеленому новачкові System.out, і тим більше System.in - складно, та й не потрібно на першому етапі. А ось під час проходження квесту Java Core знань якраз достатньо, щоб зрозуміти цю дещо заплутану тему, причому мова не лише про консольне введення/виведення, а й про роботу з файловою системою. Головне - не пропускайте ці завдання (їх на JavaRush досить багато), і послідовно розбирайтеся з теорією.

Головоломки

Під «головоломками» ми розуміємо завдання підвищеної складності, які вимагають не так знань, як уміння їх нестандартно застосувати. Це типові завдання для Java Junior - їх дуже люблять ставити на співбесідах, але в реальній роботі головоломки в такому розумінні не дуже часто зустрічаються. Тому на JavaRush вони є, але не дуже багато (зазвичай на заняттях капітана Боброва).
Які бувають завдання з Java - 3
Де можна знайти головоломки:

Алгоритми та структури даних

Щодо алгоритмів та структур даних постійно точаться суперечки про те, наскільки вони потрібні майбутньому програмісту. В чергове відповімо: для становлення мислення — потрібні, безпосередньо для роботи — рідко. Тому що для Java, та й інших мов також, вже написані бібліотеки з реалізаціями всіх відомих алгоритмів сортування, пошуку та інших. Проте створювати власні реалізації алгоритмів дуже корисно, як і формувати розуміння їх складності. Особливо людям, які вивчали математику лише у школі. В принципі, ці завдання перемежовуються з головоломками з тією лише різницею, що всі вони описані і вирішені в мережі багаторазово. Навіть валідатор для перевірки не потрібний. Вибирайте будь-який курс, наприклад, Прінстонського університету , їхніх колег з Каліфорнії або Stepic. До речі, в курсі CS50 , переклад якого ми помістабо на JavaRush, розібрано кілька найважливіших алгоритмів та структур даних. Настійно рекомендуємо подивитися відео 2-5 рівнів і продати розібрані в них завдання на Java. Завдання на графи: Завдання на структури даних:

Багатопоточність

Кожен може написати програму, що виводить Hello World... А якщо з використанням Java Thread API, щоб знаменита фраза друкувалася з додаткової нитки? А щоб вона друкувала «Hello world» п'ять разів з п'яти різних ниток, і щоб рядки не чергувалися?.. Багатопоточність — справжнісінька «перевірка на міцність» під час вивчення Java Core. Цій вельми непростій темі присвячений цілий квест на JavaRush, який так і називається - Java Multithreading , і він містить велику кількість завдань, щоб студент зміг відчути «біль і красу» паралельно виконуваних процесів. Найчастіше перші «справжні» проекти студентів містять багатопоточність більшою чи меншою мірою. Наприклад, найпростіші ігри.
Які бувають завдання з Java - 4

Завдання на багатопоточність

П'ятеро безмовних філософів сидять за круглим столом. Перед кожним із них стоїть тарілка спагетті. Виделки лежать на столі ліворуч і праворуч від кожного філософа (між ними). Філософ може або їсти, або розмірковувати. Причому їсти він може тільки якщо тримає дві вилки - узяту праворуч і ліворуч від нього. "Взяти вилку" та "покласти вилку" - окремі дії, які виконуються послідовно.

Завдання на Generics

Узагальнення — сама суть автоматизації, тобто у сенсі і програмування. Так що тема узагальнень або дженериків у Java також не повинна залишитися поза увагою. На JavaRush є завдання на узагальнене програмування (переважно в квесті Java Collections, починаючи з 5-го рівня). Де можна знайти корисні вправи та матеріали по дженерикам:

Завдання на шаблони проектування

Початківцю програмісту на якомусь етапі (приблизно 2/3 курсу JavaRush) потрібно починати придивлятися до правил хорошого тону в програмуванні. Йдеться про правильне оформлення коду (що простіше) та про шаблони проектування (що складніше). На JavaRush є такі завдання. Потрібні додаткові - можна знайти, наприклад, у книзі (частина 4) Java. Методи програмування » Блінова та Романчика. Або подумати, як можна підвести під шаблон вже вирішені завдання.

Unit-тестування

Важлива навичка будь-якого програміста, яке часто помилково приписують виключно тестувальникам - написання модульних (або Unit) тестів до власного коду. На JavaRush є небагато завдань з Unit-тестів, але насправді морочитися пошуком нових не варто. Коли розберетеся, як писати тести, сформуйте звичку покривати ваш код (у власних проектах, навчальних завданнях) Unit-тестами. Це набагато корисніше, ніж робити перевірки за допомогою консольного висновку, ніж зазвичай страждають студенти-програмісти. Крім того, дуже часто перше, що довіряють робити "джунам" у компаніях, - написання Unit-тестів до чужого коду.

Завдання на регулярні вирази

Це нескладна тема, в якій майже ніхто з новачків не розуміється, бо незвично і ліньки. Насправді варто витратити кілька днів на вивчення теми, розібратися з «регулярками» і отримати перевагу перед тими, хто цього не зробив. Це корисно ще й тому, що вони майже не залежать від мови програмування: вивчіть одного разу, можете використовувати скрізь. На JavaRush немає завдань, які присвячені регулярним виразам, хоча деякі можна вирішувати з їх допомогою. Тож ось додаткові ресурси для розуміння теми:
Які бувають завдання з Java - 5

Завдання з Java з підступом

До цієї категорії входять хитрі завдання, які найчастіше не мають безпосереднього відношення до реальної роботи програміста. В основному вони зустрічаються на співбесідах, їх використовують, щоб зрозуміти глибину розуміння/знання тієї чи іншої технології кандидатом або протестувати його уважність. Якщо вам потрібні такі завдання, забіть у Google запит «Завдання для співбесід Java» або щось таке. Швидше за все, ви знайдете безліч підбірок, а також питань і відповідей на різноманітних форумах. У них корисно розбиратися, але чи варто на них витрачати багато часу? Про такі завдання якось непогано висловився Кей Хорстманн у статті для InformIT, перекладякої ми публікували у січні. Якщо коротко переказати його думку – є завдання реального світу, а є паралельний всесвіт – «Завдання для співбесід».

Завдання на лямбда-вирази

Підтримка лямбда-виразів з'явилася Java 8, але досі не всі програмісти охоче їх використовують. Проте сьогодні поняття «завдання для Java Junior» включає маніпуляції з лямбда-виразами, тому рекомендуємо ознайомитися з ними, наприклад, з дуже доступної статті «Популярно про лямбда- вирази в Java». Із прикладами та завданнями ».

Завдання працювати з мережею

Серіалізація в JSON, RMI, HttpUrlConnection, socket ... це вже не зовсім завдання програмування для початківців. Вони вимагають міцних знань і є своєрідним містком до власних проектів, стажувань та роботи. На старших рівнях JavaRush (квест Java Collections) є чимало вправ для засвоєння цих технологій та підходів, але все стане набагато зрозумілішим у процесі проходження онлайн-стажування.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ