Когато някой започне да се учи How да програмира , независимо дали сам or чрез онлайн курсове, е много важно да се наблегне на някои области и да се структурира всичко. В тази статия представяме нашата структура — Java задачи за начинаещи, с указание доколко даден тип задача е представена в онлайн курса по програмиране на CodeGym , заедно с полезни връзки. Какви видове Java задачи имате?  - 1

Практикувайте със синтаксиса на езика

Това са първите задачи за програмиране на Java за начинаещи — основата — от „Hello, World“ до цикли и масиви. CodeGym има много от тях: те са особено концентрирани в първите шест нива на търсенето на Java Syntax . Едва ли ще ви се наложи да търсите повече от тях другаде. Със сигурност имаме достатъчно, за да ги овладеем. Нещо повече, когато имате по-трудна задача, автоматично преглеждате синтаксиса. Но ако изведнъж се окажете в нужда, всеки учебник по Java за начинаещи съдържа подобни проблеми. Но за разлика от CodeGym, тези учебни тетрадки няма да имат незабавна проверка на задачите.

Упражнявайте се с колекции

Колекциите са първата "сериозна" тема, която начинаещите програмисти срещат в обучението си. Задачите за начинаещи, посветени на колекциите на Java, също са добре представени в CodeGym — на седмото и осмото ниво на търсенето на Java Syntax. Това е мястото, където ученикът ще чуе за първи път за Java Collections Framework и ще поработи малко с интерфейсите Set, List и Map заедно с някои от техните реализации. На този етап обаче ще получите само въведение в този полезен инструмент и прости Java задачи. Ще изучавате колекциите по-задълбочено по време на търсенето на Java Collections . Можете да видите колко важна е тази тема — цяла мисия е кръстена на нея!

Практикувайте с изключения

Java предоставя специален механизъм за справяне с изключителни ситуации, значително опростявайки процеса на "улавяне" на грешки в приложението. Но за да се възползвате максимално от това, трябва да разберете How работи обработката на изключения в Java. CodeGym има купища такива задачи. Дори ще ги срещнете в първото търсене — Java Syntax. Какви видове Java задачи имате?  - 2

Практикувайте с леене на типове

Тази група от задачи, разбира се, може да се класифицира като основни задачи по синтаксис. Въпреки това, по наше скромно мнение, хората често подценяват подобни задачи и начинаещите се забъркват в тях. Ето защо ние нарушаваме шаблона: ние не изучаваме задачите за преобразуване на примитивни типове в самото начало, Howто другите често правят. Вместо това, ние се захващаме с тях малко по-късно - в края на търсенето на Java Syntax. И тогава ще се научим да преобразуваме непримитивни типове (обекти), когато изучаваме ООП в търсенето на Java Core . CodeGym има достатъчно от тези задачи. Не е нужно да търсите повече.

Практикувайте с ООП

ООП не е най-трудната тема, но е изключително важна. И крие много тънкости, които интервюиращите обичат да използват, за да хванат кандидат-младши разработчици. Курсът CodeGym съдържа практически задачи по програмиране за начинаещи, за да ви помогне да разберете обектно-ориентираната философия. Но за да разберете наистина ООП, ви препоръчваме да прочетете свързана литература (например "Core Java" на Cay Horstmann и Gary Cornell, "Object-Oriented Analysis and Design" на McLaughlin or други книги ) .

Упражнявайте се с входно/изходни потоци

Започваме да използваме I/O потоци много преди да ги разберем. Това е Ява, моят млад сHowалец! Обясняването на System.out, да не говорим за System.in, е трудно и ненужно, когато започнете за първи път. Но докато работите в търсенето на Java Core , вие знаете достатъчно, за да разберете тази донякъде объркваща тема и ние говорим не само за конзолен I/O, но и за работа с файловата система. Основното нещо е да не пропускате тези задачи (CodeGym има доста) и последователно да се задълбочавате в теорията.

Главоблъсканици

Под „мозъци“ имаме предвид задачи с повишена сложност, които не се отнасят толкова до знания, колкото до способността да прилагате това, което знаете, по нетрадиционни начини. Това са обичайни задачи за младши Java разработчик. Компаниите много обичат да ги питат по време на интервюта, но в реалната работа подобни главоблъсканици не се срещат много често. Така че CodeGym има някои, но не много (обикновено ще ги видите в уроците на Captain Squirrels). Какви видове Java задачи имате?  - 3Къде мога да намеря главоблъсканици?

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

Що се отнася до алгоритмите и структурите от данни, има постоянен дебат за това доколко един бъдещ програмист се нуждае от тях. Ще отговорим още веднъж: те са от съществено meaning за установяване на правилно мислене, но рядко са пряко необходими за работа. Това е така, защото Java, Howто и други езици за програмиране, имат библиотеки с реализации на всеки възможен алгоритъм за сортиране, търсене и други. И все пак писането на ваша собствена реализация на алгоритъм може да бъде много полезно и може да ви даде представа за неговата сложност. Особено за хора, които са учor математика само в гимназията. По принцип тези задачи могат да се заменят с главоблъсканици с единствената разлика, че всички те са описани и решени многократно онлайн. Дори не се нуждаете от инструмент за валидиране. Изберете всеки курс от, да речем, Принстънския университетor колеж в Калифорния . Практикувайте със структури от данни:

Многопоточност

Всеки може да напише "Hello, World!" програма. Но Howво ще кажете за използването на Java Thread API за показване на известната фраза от отделна нишка? Или Howво ще кажете за показване на "Hello, World!" пет пъти от пет различни нишки, без да смесвате низовете? Многонишковостта ще бъде най-добрият "тест за вашата сила", докато изучавате Java Core. На тази тема е посветена цяла мисия на CodeGym, наречена Java Multithreading , която далеч не е лесна. Той съдържа огромен брой задачи, за да позволи на учениците да усетят „болката и красотата“ на паралелната обработка. Първите "истински" проекти на студентите обикновено съдържат известно ниво на многопоточност. Например прости игри. Какви видове Java задачи имате?  - 4

Практикувайте с многопоточност

Петима мълчаливи философи седят на кръгла маса. Пред всеки от тях има чиния със спагети. На масата между всеки философ има вorци (една отляво и една отдясно). Всеки философ може or да яде, or да мисли дълбоки мисли. Но той or тя може да яде само ако държи две вorци, т.е. като вземе едната отляво и тази отдясно. „Вземете вorцата“ и „поставете вorцата“ са различни действия, които се изпълняват последователно.

Практикувайте с генерични лекарства

Обобщението е самата същност на автоматизацията, така че в известен смисъл това е същността на програмирането. Съответно не можем да пренебрегнем темата за генериците в Java. CodeGym има програмни задачи, включващи генерични продукти (главно в мисията на Java Collections, започвайки от ниво 5). Къде мога да намеря полезни упражнения и материали за генеричните лекарства?

Практикувайте с дизайнерски модели

В даден момент (две трети от курса по CodeGym) начинаещите програмисти трябва да започнат да разглеждат правилата за постигане на добра форма в програмирането. Говорим за правилно форматиране на code (по-просто) и модели на проектиране (по-трудно). CodeGym има задачи за това. Ще имате нужда от повече и можете да ги намерите в „ Head First Design Patterns “ от Elisabeth Freeman и Kathy Sierra. Или можете да помислите How бихте могли да приложите модели на проектиране към вече решени задачи.

Единично тестване

Важно умение за всеки програмист, често погрешно приписвано единствено на тестерите, е способността да пише модулни тестове за своя собствен code. CodeGym има няколко задачи, свързани с модулни тестове, но всъщност не е нужно да си правите труда да търсите повече. Когато разберете How да пишете модулни тестове, създайте си навик да покривате codeа си (в собствени проекти, в проучвания) с тях. Това е много по-полезно от извършването на проверки с конзолен изход, практика, която обикновено засяга студентите програмисти. Освен това много често първото нещо, с което се натоварват новите младши разработчици в компаниите, е да напишат модулни тестове за нечий code.

Упражнявайте се с регулярни изрази

Това е проста тема, която почти никой начинаещ не разбира, защото е непозната и ги мързи. Наистина си заслужава да прекарате няколко дни в изучаване на темата, да стигнете до дъното на "regex" и да спечелите предимство пред тези, които не са го направor. Това също е полезно, защото регулярните изрази са почти независими от езика: ако ги научите веднъж, ще можете да ги използвате навсякъде. CodeGym няма ниHowви задачи, посветени на регулярни изрази, въпреки че някои могат да бъдат решени с тяхна помощ. Ето допълнителни ресурси за разбиране на тази тема:
  • regex101.com — уебсайт, където можете да проверявате регулярни изрази онлайн
  • „Представяне на регулярни изрази“ на Майк Фицджералд — кратък и прост буквар.
Какви видове Java задачи имате?  - 5

Упражнявайте се с трикови въпроси за Java

Тази категория включва сложни задачи, които обикновено не са пряко свързани с реалната работа по програмиране. Те се срещат главно по време на интервюта, където се използват, за да се разбере дълбочината на разбиране/познания на даден кандидат за определена технология or да се тества неговото or нейното внимание към детайлите. Ако имате нужда от подобни задачи, потърсете „Въпроси за интервю с Java“ or нещо подобно в Google. Вероятно ще намерите куп задачи, Howто и въпроси и отговори във всяHowви форуми. Добре е да ги разбирате, но струва ли си да им отделяте прекалено много време? В статия за InformIT Кей Хорстман веднъж направи добра бележка за подобни задачи. Накратко перифразирайки мислите му, има задачи от реалния свят и има паралелна вселена от „въпроси за интервю“.

Практикувайте с ламбда изрази

Поддръжката на ламбда изрази се появи в Java 8, но те все още не се използват с ентусиазъм от всички програмисти. И все пак днес понятието „задачи за младши Java разработчици“ включва операции с ламбда изрази, така че препоръчваме да се запознаете с тях .

Практикувайте работа с мрежи

Сериализация в JSON, RMI, HttpUrlConnection, сокети... това не са точно теми за програмиране за начинаещи. Те изискват солидни умения и са нещо като мост към вашите собствени проекти, стажове и работа. Нивата за напреднали на CodeGym (куестът Java Collections) имат много упражнения, които да ви помогнат да овладеете тези стратегии и технологии, но всичко ще стане много по-ясно, когато завършите онлайн стаж.