Сьогодні я отримав питання від одного з новачків на javarush.com: «Я на джавараші новачок і цікавить думку старожилів. Чи варто купувати платний курс і виправдовує він себе?
Поки писав відповідь, зрозумів, що виходить ціла стаття :-) Написав її на одному диханні, напевно, тому що не стільки людині хотів відповісти, скільки собі шукав розуміння в правильності свого шляху .
Отже, моя відповідь-стаття
Добридень! Правильно вчинабо, що написали. Висловлю свою думку. Джавараш є альтернативою стажуванням/навчання в ІТ-компаніях. Якщо у вас низькі шанси на попадання в одну з таких програм за поточної вашої ситуації (вік, рівень знань, попередній досвід та інше), то джавараш буде гарною підмогою, а може, навіть єдиним шансом потрапити в галузь. Головна перевага Джавараш - це велика кількість практичних завдань. На них добре набиваєш руку. Дуже корисно також обговорювати завдання, допомагати іншим у пошуку рішення – це одна з основних навичок програміста – вміти читати чужий код. Але не можу сказати, що після того, як ви сплатите передплату, рівень ваших знань відразу неухильно піде вгору. Матеріал лекцій спеціально подається у такому вигляді, щоб чималу частину інформації вам доводилося шукати самому – таким чином у вас виробляють ще одну необхідну навичку – з будь-якого питання лізти в інтернет. Тобто. якщо щось буде незрозуміло — доведеться корпіти, а це може тривати чималий час — день, два, три, тиждень — і відповідно відкладатиметься досягнення верхніх рівнів курсу. Опишу свій випадок. Нині мені 41 рік. Я почав вивчати джаву у лютому 2014-го. До Джавараш приєднався у жовтні. До того моменту встиг почитати Шилдта, ООАП і Паттерни проектування із серії HeadFirst, вирішити найпростіші завдання на javaranch.com, послухати різні відеоуроки - тобто. вже чимало просунувся у вивченні Core Java. Завдання почав вирішувати у листопаді і до початку січня пройшов 24 рівні. Але відчув, що надто швидко лечу, накопичилося кілька не зовсім зрозумілих (незрозумілих) тем. Крім того, у січні я для різноманітності переключився на вивчення HTML/CSS/Javascript, був схожим на співбесіди в лютому інтенсивно, спробував трохи QA — загалом відволікся від вивчення безпосередньо Java. А зараз ось знову повернувся. Але зараз я ставлю собі за мету не пройти максимально швидко рівні, а систематизувати те, по чому вже галопом пробігся раніше. Щоб знання встаканабось і з'явилася ясність :-) Поки не читаю нові лекції - курю деякі теми, вирішую залишені на потім бонусні завдання. Так ось, чому вже галопом пробігся раніше. Щоб знання встаканабось і з'явилася ясність :-) Поки не читаю нові лекції - курю деякі теми, вирішую залишені на потім бонусні завдання. Так ось, чому вже галопом пробігся раніше. Щоб знання встаканабось і з'явилася ясність :-) Поки не читаю нові лекції - курю деякі теми, вирішую залишені на потім бонусні завдання. Так ось,найскладніше при вивченні Java , як на мене - це знайти правильні книги/туторіали/відеоуроки, які розкриють і донесуть складну тему так, щоб не залишалося неясностей. У якийсь момент при вивченні ти обов'язково стикаєшся з якимось питанням, яке в тій книзі, яку ти читаєш, описано так, що ти ніяк не можеш його зрозуміти, щось у ньому залишається незрозумілим, а автор про це не пише . Тоді ти береш іншу книгу, шукаєш відеоурок, відеолекцію, статтю, обговорення на форумі — і так перебирати можна довго, доки не знайдеш те, що потрібно, що справді покаже тобі питання з іншого боку і не залишиться темних місць. Для мене, наприклад, однією з таких непростих тем є тема потоків. Читав я про неї в багатьох місцях, все ніяк не міг зрозуміти до кінця, доки не вирішив почитатиофіційні ораклівські туторіали – чесно, це було для мене справжнім одкровенням. Ніде так просто, так зрозуміло і відразу по справі про них не написано. Кожне слово наповнене змістом і написано недаремно — ти просто читаєш і просто розумієш, від простого до складного. Вбираєш, так би мовити, чисті знання :-) Тут трохи додам, що оракловські туторіали не просто інакше написані, в них була одна фраза, якої не було ні у Шілдта, ні у Хорстманна, і яка буквально стала для мене ключем до розуміння потоків (streams). Ось ця фраза - "The Java platform stores character values using Unicode conventions".Не буду вдаватися в подробиці, може, пізніше напишу про це ще одну статтю, тут же про інше. Про те, що часто при вивченні Java не вистачає правильної підказки - мовляв, дивись тут і нехай буде з тобою Сила. На мій погляд, це настільки важливе питання для прискорення процесу навчання, що джавараш варто було б опрацювати його ретельніше, ніж це зроблено зараз. Можна моніторити, які теми найчастіше є каменем спотикання для учнів. За кожною такою темою можна пропонувати до уваги максимально повний список джерел та влаштовувати голосування з обговоренням, яке з джерел найкраще допомагає у розумінні теми. Таке моє побажання до адміністрації javarush.com :-) Тим більше, я ще не взяв участь в опитуванні на тему «Як покращити javarush.com» – дам у ньому посилання на цей мій опус. Загалом, підсумую. По життю, хоч би яким ділом займався, я завжди спирався на знання основ, бази. Java базою є Core Java. Технологіями ти не зможеш користуватись, не знаючи основ. Адже фактично, що таке, наприклад, ті ж сервлети — це просто java-класи, поміщені в певну папку, в ту папку, яку передбачає веб-сервер. І що сервлет робить – викликає метод іншого java-класу, поміщеного в іншу папку, яку також передбачає веб-сервер. Вся технологія сервлетів, якщо спрощено, зводиться до того, щоб правильно розмістити класи з папок, а решта - Core Java. Тому, якщо у вас стоїть чітка мета навчитися Java - не сумнівайтеся, оплачуйте курс і дерзайте. Дорогу здолає той, хто йде. Вирішуйте завдання, розбирайтеся у складних темах, спілкуйтеся в обговореннях. Сподіваюся, стаття не буде сприйнята як рекомендована рекламна. Все виклав від душі,першої книги з Java — мій погляд, це має бути книга Хорстманна і Корнелла «Java. Бібліотека професіонала». У жодне порівняння з нею не йде книга Шілдта «Java. Повне керівництво». Пишу про це, бо сам почав вивчати джаву з Шілдта, і вважаю, що якби хтось мені тоді підказав, то я б мінімум на два-три місяці швидше просунувся у вивченні. Так би мовити, відновлюю історичну справедливість :-) Справа в тому, що Шілдт "іде по верхах", не пояснюючи дуже багато моментів, які самі по собі неочевидні. Хорстманн і Шилдт - це по суті два підручники одного типу, але Хорстманн при тому ж обсязі подає матеріал набагато глибше і "по ділу". Шилдт просто "жене обсяг", аби що-небудь написати, аби було схоже на Java. Наведу невеликий приклад. У Шілдта немає слів про те, що "/" з цілими числами - це цілий поділ. Натомість він дає приклад використання основних операторів поділу, котрий мало того, що безглуздий за своєю суттю і займає цілу сторінку, так ще й не полегшує новачку розуміння — з нього не відразу стає зрозуміло, про що хотів сказати автор. Хорстманн ставить за мету максимально вивіреним текстом донести максимум інформації. Можете просто порівняти сторінки 98-99 Шилдта 8-е видання (Це 3 підрозділи "Основні арифметичні оператори", "Оператор поділу за модулем" та "Складові арифметичні оператори з присвоєнням") та сторінку 69 Хорстмана 9-е видання (підрозділ "Операції ). Зазначені підрозділи у двох підручниках — про те саме, тільки в Шилдта це 2 з чвертю сторінки, а в Хорстмана — 1/3 сторінки. При цьому у Хорстмана зрозуміліше і без зайвої води. І так скрізь дуже багато, повірте, моментів не розкрито у Шілдта. Це як якщо провести аналогію з велосипедами, то Шілдт — це китайський ашан-байк, а Хорстман — якісний брендовий маунтінбайк рівня Скотта або Кадейла. Одна з основних порад велосипедистам-початківцям — не купувати китайського мотлоху, інакше — відіб'єш собі спочатку бажання кататися на велосипедах. Шилдт, як я зрозумів, спочатку зробив собі ім'я на книгах по С, С++ і С#, а Java вже вирішив на хвилі популярності просто "підмахнути не дивлячись".
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ