• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Well-Grounded Java Developer: Few questions

 
Ranch Hand
Posts: 149
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

The title of your books really does sound templating.

Would like to know your thoughts why do average Java developer would need to understand byte code manipulation? I have no idea what it is.. I will take a look later today.. I mean, majority of Java developers are using Spring (Boot) and how does knowledge from your book can be used within the context of Spring?

Second thing, I see that Part 3, 4 and 5 are somewhat unrelated? Are they? Or in your book they should be read one after the other if they are related? If they are, can you explain how do you make connection between maven and functional programming?

Regarding concurrency, I myself haven't actually studied concurrent programming at school, I did however employ CompletableFutures at work for doing (commutative) operation upon some large dto (to examine different sections of it in parallel). What will be your advice to learn concurrency, for someone who doesn't have a lot of strong CS core background, didn't learn assembler for instance. Can your book help on learning concurrency by example?

Don't get me wrong. I am not trying to say bad about your work or anything along those lines..
 
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mike Gosling wrote:. . . why do average Java developer would need to understand byte code manipulation? . . .

It is possible to edit the bytecode of an XYZ.class file and alter its functionality after the event. Please search for bcel. No don't search; look here. It explains the structure of the XYZ.class file, and continues from there.

. . . Part 3, 4 and 5 are somewhat unrelated? . . .

I haven't looked up the ToC, so what do those three parts say?

. . . I myself haven't actually studied concurrent programming at school

That suprises me. The easiest way to implement a concurent pogram is to use a Stream in its parallel mode.

. . . someone who doesn't have a lot of strong CS core background, didn't learn assembler for instance. . . .

What makes you think that knowing assembler is part of core computer sciences?
I would say the most “core” parts include algorithms and data structures, and the theory behind programming.
 
Ranch Hand
Posts: 122
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Mike Gosling ,
  :-) For a moment I was surprised to see your name, and mistook you for ("James Gosling)" the man behind  everything we discuss on this forum.

Cheers
Sathya
 
Campbell Ritchie
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
We have seen several people on these fora who have helped develop Java®, but not James Gosling himself.
 
author
Posts: 67
10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mike Gosling wrote:
Would like to know your thoughts why do average Java developer would need to understand byte code manipulation? I have no idea what it is.. I will take a look later today.. I mean, majority of Java developers are using Spring (Boot) and how does knowledge from your book can be used within the context of Spring?



Well, a knowledge of bytecode helps to understand topics as diverse as why concurrent programming in Java is hard, and why Java has certain limitations to implementing functional programming.

Bytecode manipulation is a key technology that underlies many of the frameworks and tools that developers use every day.

Mike Gosling wrote:
Second thing, I see that Part 3, 4 and 5 are somewhat unrelated? Are they? Or in your book they should be read one after the other if they are related? If they are, can you explain how do you make connection between maven and functional programming?



Part 4 - Build & Deployment is reasonably standalone (although it does contain build / deployment content for the non-Java languages introduced in Part 2), but the other Parts do build upon each other - so the Advanced Concurrent Programming in Part 5 depends on the previous concurrency material.

Mike Gosling wrote:
Regarding concurrency, I myself haven't actually studied concurrent programming at school, I did however employ CompletableFutures at work for doing (commutative) operation upon some large dto (to examine different sections of it in parallel). What will be your advice to learn concurrency, for someone who doesn't have a lot of strong CS core background, didn't learn assembler for instance. Can your book help on learning concurrency by example?



Yes, there are 3 whole chapters about concurrent programming - and some additional material in some of the other chapters.
 
Author
Posts: 10
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:I haven't looked up the ToC, so what do those three parts say?.



Part 1: From 8 to 11 to 17
Part 2: Under the Hood (bytecode, concurrency fundamentals, performance)
Part 3: Non-Java Languages on the JVM
Part 4: Build and Deployment
Part 5: New Frontiers (advanced functional programming, advanced concurrency)

While it's something of an overview book you could dive into at different spots, lots of the material in Part 5 in particular expects that you've understood Parts 2 and 3. It isn't strictly necessary to read it cover to cover, but there is some flow and connection between the parts that may not be obvious in the ToC.
 
Campbell Ritchie
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jason Clark wrote:. . . Part 1: From 8 to 11 to 17 . . .

Thank you
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic