- Saved searches
- Use saved searches to filter your results more quickly
- EricRBruck/Java_Head-First
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Обзор книги «Изучаем Java», худшая книга для начинающих с нуля
- Кто целевая аудитория книги?
- Что в книге?
- Подойдет ли книга новичкам?
- Насколько качественно переведена книга?
- Код в книге. С ошибками или нормальный?
- Стоит ли с этой книги начинать изучать Java?
- Теперь тезисно про преимущества и недостатки книги.
- Преимущетсва книги:
- Недостатки книги:
- Итог по книге:
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Head First Java Exercises
EricRBruck/Java_Head-First
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
As a review of Java I am going through the book «Head First Java» 2nd Edition front to back. In the process I will be coding all Exercises for practice. For me the best way to learn is by doing. I will be reading the chapter for background knowledge / refresh on the subject, then doing the exercises to apply the the chapter content to programs.
«Head First Java is a complete learning experience in Java and object-oriented programming. This book helps you learn the Java Language with a unique method that does beyond syntax and how-to manuals and helps you understand how to be a great programmer. You’ll learn language fundamentals, generics, threading, networking, and distributed programming, and you’ll even build a «sink the dot com» game and networked drum machine chat client along the way.»
Chapter 1 — Breaking the Surface: a quick dip
Chapter 2 — A Trip to Objectville: yes, there will be objects
Chapter 3 — Know Your Variables: primitives and references
Chapter 4 — How Objects Behave: object state affects method behavior
Chapter 5 — Extra-Strength Methods: flow control, operations, and more
Chapter 6 — Using the Java Library: so you don’t have to write it all yourself
Chapter 7 — Better Living in Objectville: planning for the future
Chapter 8 — Serious Polymorphism: exploiting abstract classes and interfaces
Chapter 9 — Life and Death of an Object: constructors and memory management (Current)
Chapter 1 Content — Breaking the Surface: a quick dip
The way Java works
Code structure in Java
Anatomy of a class
The main() method
Looping
Conditional branching (if tests)
Coding the «99 bottles of beer» app
Parse-o-matic
Fireside chat: compiler vs. JVM
Chapter 2 — A Trip to Objectville: yes, there will be objects
Chair Wars (Brad the OO guy vs Larry the Procedural guy)
Inheritance (an introduction)
Overriding methods (an introduction)
What’s in a class? (methods, instance variables)
Making your first object
Using main()
Guessing Game code
Chapter 3 — Know Your Variables: primitives and references
Declaring a variable (Java cares about type)
Primitive types («I’d like a double with extra foam, please»)
Java keywords
Reference variables (remote control to an object)
Object declaration and assignment
Objects on the garbage-collectible heap
Arrays (a first look)
Chapter 4 — How Objects Behave: object state affects method behavior
Methods use object state (bark different)
Method arguments and return types
Pass-by-value (the variable is always copied)
Getters and Setters
Encapsulation (do it or risk humiliation)
Using references in an array
Exercises and puzzles
Chapter 5 — Extra-Strength Methods: flow control, operations, and more
Building the Sink a Dot Com game
Starting with the Simple Dot Com game (a simpler version)
Writing prepcode (pseudocode for the game)
Test code for simple Dot Com
Coding the Simple Dot Com game
Final code the Simple Dot Com game
Generating random numbers with Math.random()
Ready-bake code for getting user input from the command-line
Looping with for loops
Casting primitives from a large size to a small size
Converting a String to an into with Integer.parseInt()
Chapter 6 — Using the Java Library: so you don’t have to write it all yourself
Analyzing the bug in the Simple Dot Com Game
ArrayList (taking advantage of the Java API)
Fixing the DotCom class code
Building the real game (Sink a Dot Com)
Prepcode for the real game
Code for the real game
boolean expressions
Using the library (Java API)
Using packages (import statements, fully-qualified names)
Using the HTML API docs and reference books
Chapter 7 — Better Living in Objectville: planning for the future
Understanding inheritance (superclass and subclass relationships)
Designing an inheritance tree (the Animal simulation)
Avoiding duplicate code (using inheritance)
Overriding methods
IS-A and HAS-A (bathtub girl)
What do you inherit from your superclass?
What does inheritance really buy you?
Polymorphism (using a supertype reference to a subclass object)
Rules for overriding (don’t touch those arguments and return types!)
Method overloading (nothing more than method name re-use)
Chapter 8 — Serious Polymorphism: exploiting abstract classes and interfaces
Some classes just should not be instantiated
Abstract classes (can’t be instantiated)
Abstract methods (must be implemented)
Polymorphism in action
Class Object (the ultimate superclass of everything)
Taking objects out of an ArrayList (they come out as type object)
Compiler checks the reference type (before letting you call a method)
Getting in touch with your inner object
Polymorphic references
Casting an object reference (moving lower on the inheritance tree)
Deadly Diamond of Death (multiple inheritance problem)
Using interfaces (the best solution!)
Chapter 9 — Life and Death of an Object: constructors and memory management
The stack and the heap, where objects and variables live
Methods on the stack
Where local variables live
Where instance variables live
The miracle of object creation
Constructors (the code that runs when you say new)
Initializing the state of a new Duck
Overloaded constructors
Superclass constructors (constructor chaining)
Invoking overloaded constructors using this()
Like of an Object
Garbage Collection (and making object eligible)
About
Head First Java Exercises
Обзор книги «Изучаем Java», худшая книга для начинающих с нуля
Стоит читать? Нет! Почему? Опишу в статье.
Java- перспективный язык программирования, а это худшая книга для начала его изучения.
Кто целевая аудитория книги?
Книга не подойдет как для новичков, начинаюших с нуля, так и для тех, кто хочет восполнить пробелы в знаниях.
Хоть книга построена по методу от простого к сложному, ужасный перевод и ошибки в коде всё губят.
Что в книге?
Для начала, чтобы было понимание, какие темы рассмотрены в книге, ознакомимся с её кратким оглавлением.
Подойдет ли книга новичкам?
Абсолютно не подходит, по мне, только отобьет желание изучать Java, когда вы столкнетесь с ошибками в коде и не будете понимать в чем дело.
Из недостатков можно выделить то, что книга написана для версии java 5.0 и что-то уже устарело (например javax.swing и java.awt), но все примеры компилируются и адекватно работают на последней версии java . Также к недостаткам можно отнести отсутствие реальных задач на написание программ, в основном вы будете набирать примеры из книги или собирать программы по кусочкам. Подводя итог можно сказать, что книга не подходит новичкам, она не раскрывает всех возможностей языка java.
Насколько качественно переведена книга?
Перевод максимально ужасен. К сожалению, в русском издании переводятся термины, что в переводе вовсе не нуждаются. Нередко встречаются фразы, что переведы криво. К примеру, если читать издание на английском языке и изредка обращаться к Google-переводчику, машинный перевод и то покажется лучше, чем то, что напереводили локализаторы этой книги.
В книге также есть кроссворды, что так или иначе связаны с переводом. Спустя несколько часов попыток решить кроссворд, решил посмотреть ответы. Удивить? В кроссворды необходимо вписывать слова, как на русском, так и английском языке. С фантазией у локализаторов всё отлично, слов нет. Нигде нет никаких сносок об этой особенности в книге.
- неясные формулировки. часто заглядываю в английский вариант книги, чтобы понять смысл предложений
- некоторые простые фразы неправильно переведены, например: I see переводят как «Я вижу», а не «Понятно». И такого много.
- много нарисованных стрелочек ведут непонятно куда, тк текст перевели на русский, а указатели остались как в английском. Добавлю примеры
- есть опечатки в коде, которые мешают восприятию и пониманию. В англ версии их нет.
- если в англ версии были опечатки (очень мало — например пропущена «;» ), то в русском это не исправлено
- ну и вишенка на торте — это просто неадекватные кроссворды. В скринах посмотрите. Слово длиной 7 букв? Math! Почему? Потому что другое слово, throw, начинается с середины Math.
К концу книги постоянно все сверяешь с английской версией, тк доверие к содержимому теряется. Отвратительная работа редакторов, если она вообще была. На скрине с сеткой морского боя 7х7 — снизу 8 цифр.
Код в книге. С ошибками или нормальный?
Книга богата на ошибки в программах. Если вы решите набрать самостоятельно код из книги и в предвкушении получения положительного результата, смотрите на экран, нет 100% вероятности того, что вы получите то, что ожидаете.
Часто набирая код программы, программа не работает.
В моей голове не укладывается, как можно с таким моментом накосячить. Всем этим богата русская локализованная версия.
Если обратиться к оригиналу, там со всеми этими моментами полный порядок.
Вывод такой, грааль знаний будет ближе, если вы знаете английский язык.
Стоит ли с этой книги начинать изучать Java?
Подавляющая часть информации в книге подана нестандартно, не сухим техническим текстом, а визуально. С помощью картинок, графики и частых шуток , что положительно сказывается на изучении и закреплении материала.До этой книги читал Шилдта, давалось намного тяжелее, эта же книга дается легче.
Возможно, всё индивидуально и зависит от того, как вы любите воспринимать информацию. Прочитав книгу, сожаления нет. До сих пор использую её как справочник, перелистывая нужные мне разделы.
Но, все эти плюсы перекрывает ужасный перевод книги и ошибки в коде, что даётся в книге.
Для начинающего — 100% плохая книга.
Теперь тезисно про преимущества и недостатки книги.
Преимущетсва книги:
1. Визуальная форма подачи информации.
Подавляющая часть информации в книге подана нестандартно, не сухим техническим текстом, а визуально. С помощью картинок, графики и частых шуток , что положительно сказывается на изучении и закреплении материала.
Недостатки книги:
1. Ужасный перевод. Чтобы перевести так с оригинала, это не просто «на отстань», чувство, словно локализаторы специально постарались.
2. Помятый внешний вид книги (новой)
Продается книга в защитной пленке, что должно на 99% обезопасить нас от всяких неприятных неожиданностей.
Но, 99% не 100% и от всего видимо уберечь книгу не получается.
Я человек относительно не придирчивый к внешнему состоянию книги, мне главное информация внутри, но большинство моих знакомых обращают на это внимание, поэтому решил остановиться на этом моменте и описать подробнее.
Книга не бедна на вмятины. Не могу сказать, это мой частный случай или так всегда, но читая отзывы в интернете понял, что я с таким встретился не один
Также, подобного рода загибы вряд ли порадуют перфекционистов.
Если книгу берете для себя, страшного ничего не вижу. Но если покупаете её, как подарок, то подобные моменты возможно неприемлимы.
Теперь хотелось бы поговорить о последнем недостатке этой книги — её стоимость.
3. Стоимость.
За основу берем книгу с ужасным переводом и постоянными опечатками в коде, сколько за неё просит издатель? Для объективности, возьму три площадки, где представлена данная книга.
Что же, готовы ли вы отдать условные 1.5к за книгу с ужасным переводом и ошибками в коде, что кроме как чувства ненависти и желания делать плохие вещи, ничего вызывать не будет? Думаю нет. Поэтому желаю сэкономить вам ваши же кровно заработанные деньги и не рекомендовать данную книгу к прочтению.
Итог по книге:
Скажу одно. Если хорошо владеете английским языком, то могу посоветовать данную книгу только в оригинале. Локализованную версию посоветовать не могу абсолютно никому, особенно тем, кто ищет свою первую книгу для изучения Java. Ошибки в коде и корявый перевод пользы принесут мало.
Мой канал в телеграмм:
Если статья показалась вам интересной, то буду благодарен за подписку на мой ТГ-канал IT-старт,, где я также публикую обзоры технической литературы и полезную информацию как для действующих, так и для начинающих программистов.