Last week, we had the author of TDD for a Shopping Website LiveProject. Friday at 11am Ranch time, Steven Solomon will be hosting a live TDD session just for us. See for the agenda and registration link
  • 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
  • Paul Clapham
  • Ron McLeod
  • Jeanne Boyarsky
  • Tim Cooke
Sheriffs:
  • Liutauras Vilda
  • paul wheaton
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Frits Walraven
Bartenders:
  • Piet Souris
  • Himai Minh

Java in a Nutshell Question

 
Ranch Hand
Posts: 36
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
What advanced subject in the book should a programmer have mastered in Java in order to consider himself proficient in the language?
Thanks -
Thomas Zink
 
author
Posts: 58
5
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Thomas Zink wrote: What advanced subject in the book should a programmer have mastered in Java in order to consider himself proficient in the language?



Hi Thomas,

That's a really tough question to answer. For one thing, the old phrase: "There's always another level" is as true here as it is elsewhere. As our journey with programming, and particular languages, continues, then what we consider "proficient" may well change along with us!

The second thing to think about is that Java is, by design, a fairly simple language. The real action is in the libraries and frameworks - and so this means that on any project, what we need to get up to speed up with is the unique architecture and stack and practices of the team.

The core of the language is, and should be, fairly simple. For example - did you know that Java 8 has only 53 keywords - an amazingly small number compared to the competitor languages? Or that in Java, the grammar is very regular and rigid - keywords cannot hide, and a user-defined construction (such as a library method) can never have as special a place in the language that a keyword does!

This means that it should be easier to grasp the core of the language. Of course, a programmer also needs to understand the idioms and the style of their chosen language as well. For this, I recommend "Effective Java" by Josh Bloch - the 3rd Ed has just come out and is by far the best for the modern Java programmer.

For me, as a personal answer, then I think that a programmer is truly proficient in a language when they sit down to code, having done the design, and the idioms and features of the language flow naturally down into the IDE from their fingers. Programming is simultaneously the creation of abstract structures and the rendering of them into an imperfect representation (as code written in a programming language). When we write code that is designed, almost instinctively, to take advantage of the good features of a language, then we are proficient in it. When we write code that instinctively evades the imperfections of our chosen language - even better!

Ben
 
Pay attention! Tiny ad!
free, earth-friendly heat - a kickstarter for putting coin in your pocket while saving the earth
https://coderanch.com/t/751654/free-earth-friendly-heat-kickstarter
reply
    Bookmark Topic Watch Topic
  • New Topic