Труднощі при вивченні java

Труднощі при вивченні Java

Сьогодні я отримав питання від одного з новачків на javarush.ru: «Я на джавараше новачок і цікавить думка старожилів. Чи варто купувати платний курс і виправдовує він себе? »

Добридень! Правильно зробили, що написали. Висловлю свою думку.
Джавараш є альтернативою стажувань / навчання в ІТ-компаніях. Якщо у вас низькі шанси на потрапляння в одну з таких програм при поточній вашої ситуації (вік, рівень знань, попередній досвід та інше), то джавараш буде гарною підмогою, а може навіть єдиним шансом потрапити в галузь.

Скільки б я книжок по джава НЕ Новомосковскл, для першої книги я не можу знайти нічого кращого, ніж HeadFirst - Вивчаємо Java. Можливо тому, що я трохи інакше дивлюся на навчання. Постараюся пояснити в декількох реченнях.

З.и. процес навчання, а так само створення програмного забезпечення дуже спростить і прискорить ментор, якщо ви зможете його собі знайти.

HeadFirst «Вивчаємо Java» теж класна книга - згоден! Чи не згадав її, тому що не довелося по ній позайматися, тільки недавно вона потрапила в моє поле зору. Ось виграю зараз в лотерею - тоді відпишуся :-)

Пряме заучування я використовую тільки для деяких особливих моментів (їх не дуже багато, може приблизно 5% від загального обсягу матеріалу), які мені зрозумілі, але в силу своєї неочевидності, вимагають дійсно запам'ятовування, тому що швидко забуваються. Заучувати суціль весь матеріал - це жорстко :-)
Я використовую відому формулу: Знання - Уміння - Навички. Знання потрібно отримувати / засвоювати через розуміння і далі вже застосовувати на практиці, що призведе вже до автоматичного застосування їх на практиці.

Нещодавно встановив собі згадану blacky програму Anki - пробую з її допомогою запам'ятовувати вислизають моменти. Ось кілька з занесених мною в неї карток:

Питання. У чому особливість ініціалізації локальних змінних?
Відповідь. Локальні змінні не инициализируются автоматично порожнім значенням null. Локальну змінну необхідно явно ініціалізувати за допомогою оператора new або присвоївши їй порожнє значення null.

Питання. What does a BigDecimal consist of?
Відповідь. A BigDecimal consists of
1. an arbitrary precision integer unscaled value
2. 32-bit integer scale
value of the number represented by the BigDecimal is therefore equals (unscaledValue × pow (10, -scale))

Питання. До яких полях примірника не слід застосовувати ключове слово final?
Відповідь. Ключове слово final не слід застосовувати до посилальним змінним змінюваних типів (бо хоч сама змінна і є фінальною, але об'єкт, на який вона посилається, можна змінювати, що може призвести до непорозумінь / помилок). Правильно - це застосовувати final до змінних примітивних типів або довідкових незмінних типів (наприклад, String) - тоді змінна дійсно стає фінальної, тому що не можна змінити ні її саму, ні об'єкт, на який вона посилається.

Ось до речі останнє запитання про final також є яскравим доказом на користь Хорстманн - саме у нього я знайшов це пояснення щодо особливостей використання цього ключового слова, у Шілдт про це ні слова. Дуже показово.

Не знаю, у мене мозок нічим крім програмування не зайнятий, можу собі дозволити багато запам'ятовувати, утрирую звичайно.

Однак додам ще раз, лекції на JavaRush, це база, мінімум того, що необхідно мати знань.

Я навіть думаю таких меншість, які що-небудь конспектують, а потім повторюють, люди швидко прочитали лекцію і го-го-го за завдання, а потім створюють теми на форумі, де не можуть вирішити задачу, бо неуважно Новомосковсклі лекцію, минулої, позаминулої, або з попереднього рівня.

Коли ви будете на співбесіді, вас з імовірністю на 100% напевно, спочатку запитають теоретичний матеріал, а потім вже практика.

Звичайно, це добре, коли матеріал відскакує від зубів.
Я якщо хочу, щоб якась глава з книги залишилася в пам'яті, конспектую її, але дуже стисло. І тоді вже можу до такого конспекту повертатися і прокручувати все в голові, щоб запам'яталося.

ох уже ці усталені норми, типу вивчив вищербив))) нет не від зубів, але у вільній бесіді розповісти або привести якісь приклади теж вважаю нормою.

Не дарма кажуть повторення мати навчання.

В принципі так само і англійська хочу вчити, вивчити / завчити / зазубрити базові конструкції мови, а потім додавати і додавати, ще і ще.

Про фінальні змінні ви загнули. Особисто я не бачу особливого приводу приділяти таким речам в книзі про базу. Чому? Та тому що це «пояснення» само собою владнається в слідстві використання знань основ. А того, чого НЕ потрібно робити в програмуванні можна перераховувати безкінечно.

Не бачу нічого поганого в тому, що Хорстманн роз'яснив цей момент на самому початку книги. Причому він не просто заради галочки це зробив, а дуже доречно вписав в контекст - в розділі про класи, пояснюючи, що таке незмінні поля екземпляра. Одна справа просто перерахувати що final для класу - це заборона спадкування, для методу - заборона перевизначення, а для змінних - заборона їх змінювати. І зовсім інше - дати більш глибоке розуміння того, як цим можна і потрібно користуватися. Відразу про це сказати, а не чекати, поки ти сам до цього дійдеш, написавши перш купу говнокода. Абсолютно нормальний навчальний прийом - спочатку дається теорія і відразу приклад з практики. У чому кримінал?
В цьому і хороший Хорстманн, що дуже розумно і до місця дає розуміння, як потрібно користуватися інструментами мови, а не просто перераховує, які в Java є оператори, ключові слова і т.д. і т.п.

Ви не зовсім зрозуміли, я до того що final абсолютно однаково діє на примітиви і на посилання, саме з цього я не бачу сенсу як то особливо виділяти цей момент, тим більше, що ви оцінювали книги як першу по Джава. Інший момент - як це використовувати і в якій книзі це буде доречно - по паттернам, по бібліотеках, фреймворк ... Тобто якщо існує якась особливо-особлива тонкість застосування, то вона повинна висвітлюватися не в теоретичному коді, який хоч і грамотно написаний, але він вирваний з контексту роботи програми.

Я написав як отримую знання я, вчу якусь базову інформацію, плюс Новомосковськ книжки, таким чином базова інформація структурується, і «обростає» сніжним комом.

я ж вам і кажу, напишіть, як робите це ви, як розподіляєте час. Як починали вчитися, що Новомосковсклі, як комбінували все, я про це мова веду (можна коротко). Я то говорите, що якось нераціонально витрачається час, а самі інформацією не поділилися, мені було б приємно почитати. Якщо приведете ссилочку ще на додатки, я скажу що пічаль, мій світ звалився, і буду вчитися як ви. бо до сих про знаю тільки наведений мною метод вивчення.

А я вам ще раз повторюю, що перейдіть скрол наверх і прочитаєте мою думку, я вже його описував.

Перепрошую, не була уважний.

Скільки б я книжок по джава НЕ Новомосковскл, для першої книги я не можу знайти нічого кращого, ніж HeadFirst - Вивчаємо Java. Можливо тому, що я трохи інакше дивлюся на навчання. Постараюся пояснити в декількох реченнях.

бд - Вивчаємо MySql HeadFirst, спринг - Spring in Action - Manning, hibernate - Java Persistence with Hibernate \ Hibernate in Action - Manning. Видання брати найостанніші обов'язково, особливо це стосується книги про спринг. За Джаві так само обов'язково потрібно прочитати що то за паттернам, є книга headfirst патерни проектування, так само є всім відома «Банда чотирьох» GoF. Так само, на закуску, Дж. Блох - Java ефективне програмування.

Але знову таки, ці всі знання абсолютно нічого не варті без практики кодинга. Як би ти добре не зрозумів теорію, є помилки які потрібно здійснити, є ями в які потрібно потрапити, щоб в майбутньому з упевненістю сказати «Плавали - знаємо».

Та не приймаю я близько до серця ви що, просто по житті не переношу струс повітря в порожню, я виклав свій метод як вчу я, людина почала розповідати, що вірно, а що ні.

Справа не з тому, наскільки добре відскановано, текст сам по собі не розпізнано.
А про зручність читання, тут у кожного варіанту свої плюси, свої мінуси. Тільки ось в електронному варіанті постійно з'являються нові плюшки. Хто то говорить, що в електронному вигляді можна сторінку загнути, інші їм відповідають, що вже і для цього є спеціальна кнопка;) Софт теж потрібно знати. Хто знає, он у нас є гнуться екрани, може хтось з стартаперів скоро універсальну книгу зробить, щоб догодити як одним, так і іншим. 1 книга буде для всього, це вже точно))