• Post Reply Bookmark Topic Watch Topic
  • New Topic

Thinking in Java 4th edition - How to read efficiently?  RSS feed

 
Jacob Gmur
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

a) Is there anyone who could give me some tips how to read Bruce Eckel's book efficiently?

b) How to learn JAVA so I can search for a job?

So far I read 230 pages of Eckel's book in 19 days (i made all the exercises, coded alot) - i went trough the: Everything is object, Controlling Execution, Initialization&Clean up, Access Control, Reusing Classes and at the moment im on a Polimorphism chapter.

I know the OP basics, shall I read the whole book or some chapters? What is the best way to learn efficiently...

Here are some info about me:

1. I know basics about structure-programming(I was doing lots of on-line exercises in c++):
** Conditional statemens(if), loops, logical operators, switch, enum, creating function, arrays, pointers - I made lots of online-exercises

2. I know how to write simple Querys in SQL
** WHERE, INNER JOIN, GROUP BY, SUM() - I used MSSQL 2008 Management Studio to find some basic informations inside an ERP program

3. I wrote some simple-useful scripts in Powershell
** In a company which uses ms-domain i made a script that replace old appllication to the newest (application had no automatic upgrade)
Or a script that check if the BACKUP folder inside PC is too big and if its too big there was appropiate behavior of the script

4. At the moment I compile everything inside CMD.exe using JAVAC compiler
5. I wrote some simple desktop-programs in BORLAND abd QT in past (tictactoe game, made a program which count down from users input to 0, just basics...)

I'm not a programmer, but I really want to be one of you guys!

Jacob
 
Jesper de Jong
Java Cowboy
Sheriff
Posts: 16060
88
Android IntelliJ IDE Java Scala Spring
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch.
Jacob Gmur wrote:So far I read 230 pages of Eckel's book in 19 days (i made all the exercises, coded alot) ...

I hope you don't think you can become a good programmer in just a month. Becoming a really good programmer takes a lot of time. Some people say it takes ten years. (<- Click that link, there's some good advice there about what to do to learn programming).

So, take your time. Practice a lot by writing small programs to try out language features. Don't try to learn everything at once - for example, don't try to learn Java, SQL, PowerShell, etc. all at once - it will just overwhelm you. Oracle's Java Tutorials are a good place to learn Java. There are lots of tutorials, from the absolute beginner level to specialized and advanced topics.

Good luck and have fun!
 
Campbell Ritchie
Marshal
Posts: 56600
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jacob Gmur wrote: . . .
1. I know basics about structure-programming(I was doing lots of on-line exercises in c++):
** Conditional statemens(if), loops, logical operators, switch, enum, creating function, arrays, pointers - I made lots of online-exercises
. . .
Beware. C++ is not Java® and Java® is not C++. Learning C++ can actually make it more difficult to learn Java. Both are good languages, but for the time being learn one or the other not both.

And welcome again
 
Jacob Gmur
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
@Campbell
While I'm learning JAVA I see the differences - still I think C++ gave me nice start so I can understand faster.

@Jesper
I know learning need to take much time - especially if I want to be very good.

My main question was how to do it efficiently to do not waste my time - but still thank you for your replies.
 
Tomas Linhart
Ranch Hand
Posts: 86
2
Java Ubuntu VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I've been currently also reading Thinking in Java 4th edition. I try to do most excercises, but I skip the simple ones that I immediatelly know how to solve, I just check the solution given by Bruce. I don't know what you mean by reading efficiently. I just read it from the beginning to the end, as it's that kind of book that gives you a lot of background a the why's of the thing. I make notes while I read it and also note my ideas about what I read. I test and experiment a lot, coding is the crucial part. At the end of each chapter I go through my notes and if I need more explanation, I read it again or in another source. Thinking in Java is the first book in the row - next I plan to use Josh Bloch's Effective Java and then Mala Gupta's certification preparation book.
 
Jacob Gmur
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tomas Linhart wrote:I've been currently also reading Thinking in Java 4th edition. I try to do most excercises, but I skip the simple ones that I immediatelly know how to solve, I just check the solution given by Bruce. I don't know what you mean by reading efficiently. I just read it from the beginning to the end, as it's that kind of book that gives you a lot of background a the why's of the thing. I make notes while I read it and also note my ideas about what I read. I test and experiment a lot, coding is the crucial part. At the end of each chapter I go through my notes and if I need more explanation, I read it again or in another source. Thinking in Java is the first book in the row - next I plan to use Josh Bloch's Effective Java and then Mala Gupta's certification preparation book.


I'm just doing exacly the same.

Thank you for your opinion and sharing your knowledge, you sounds like a br0ther fr0m an0th3r m0ther :D
 
Jesper de Jong
Java Cowboy
Sheriff
Posts: 16060
88
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jacob Gmur wrote:@Campbell
While I'm learning JAVA I see the differences - still I think C++ gave me nice start so I can understand faster.

Still, you'd have to be very careful to not confuse things. The syntax of Java and C++ is similar, but the meaning of a statement between the languages can be totally different. For example, a variable declaration:

This has a totally different meaning in C++ than it has in Java.

If this were C++, this would create a MyClass object, and 'value' would contain the object. The MyClass constructor will be called when this line is executed.

If this were Java, then this would not create an object at all. In Java, non-primitive variables are references. This would simply declare the variable 'value' and not initialize it (unless it's a member variable, then it would be initialized to null).

You'll have to be very careful and not assume that when you know how something works in C++, it will work the same way in Java.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jesper de Jong wrote:Still, you'd have to be very careful to not confuse things. The syntax of Java and C++ is similar, but the meaning of a statement between the languages can be totally different...

And the nature of the two languages are different too. A lot of C++ is concerned with memory - where things go; what they look like; how big they are; malloc()ing and free()ing storage; making sure destructors are coded for proper cleanup ... etc, etc ...

In Java, you simply don't have to worry about these things - at least not until you're quite a ways down the road - and it's one of the hardest things for C++ bods (and I was one too) to get past.

The fact that Java has a StackOrHeap might be of intellectual interest, but it makes absolutely no difference to you as a programmer. Unfortunately, the OCJP exams do make quite a meal of this (unnecessarily, IMO); but I have never once, in 13 years of writing Java, worried about where my objects go, or how big they are.

Create objects; use them; let the garbage collector clean them up - it really is as simple as that.
And don't ever rely on being able to tell Java when to run the garbage collector either, because it just won't work. The JVM is responsible for memory; NOT you.

Even learning how to make objects eligible for cleanup is a distraction IMO (at least at the start), because by far the easiest technique is to let them go out of context - and that's usually achieved by programming simply and naturally.

Oh, and finally: Avoid optimization. There are certain things that Java will never do as fast as C++, and others (like pointer arithmetic) that it simply doesn't allow. In Java, efficiency generally comes with good design, rather than micro-optimization.

My 2¢. HIH.

Winston
 
Jacob Gmur
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for your time @Winston.

Don't you have Polish roots? Your surname seems to be Polish
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jacob Gmur wrote:Don't you have Polish roots? Your surname seems to be Polish

Yes, father born in Raków, near Łódź, and came over to England during the war. I'm afraid I only know a little bit myself though.

Winston
 
Jacob Gmur
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:
Jacob Gmur wrote:Don't you have Polish roots? Your surname seems to be Polish

Yes, father born in Raków, near Łódź, and came over to England during the war. I'm afraid I only know a little bit myself though.

Winston


Woaaaah, that sounds interesting ;)

Best wishes from Szczecin.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!