File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Thoughts regarding exam objectives for NIO 2 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Thoughts regarding exam objectives for NIO 2 " Watch "Thoughts regarding exam objectives for NIO 2 " New topic
Author

Thoughts regarding exam objectives for NIO 2

Paul Anilprem
Enthuware Software Support
Ranch Hand

Joined: Sep 23, 2000
Posts: 3315
    
    8
The following are the official exam objectives related to NIO:

Java File I/O (NIO.2)
[ ] Use the Path class to operate on file and directory paths
[ ] Use the Files class to check, delete, copy, or move a file or directory
[ ] Read and change file and directory attributes
[ ] Recursively access a directory tree
[ ] Find a file by using the PathMatcher class
[ ] Watch a directory for changes by using WatchService


Do you believe that these objectives make any sense for this exam? Instead of testing a candidate on the conceptual underpinnings of Non blocking IO, they are testing on API stuff that is not even used that often. Things like recursively accessing a directory tree, finding a File using Path Matcher, complicated Path manipulation are so niche that most applications almost never need to perform these activities and even when they do, it is a very small part and can be done by easily by looking up the API. It is not something that a developer needs to "learn by heart".

On the other hand, the really important stuff like the non-blocking aspect of NIO, is missing. So you can be a good java developer if you know how to traverse a directory structure recursively but have no idea about how to handle thousands of simultaneous requests on a socket or even if you don't know when to use regular IO and when to use NIO!!

What were they thinking?


Enthuware - Best Mock Exams and Questions for Oracle/Sun Java Certifications
Quality Guaranteed - Pass or Full Refund!
saloni jhanwar
Ranch Hand

Joined: Feb 09, 2012
Posts: 583

Paul Anilprem wrote:The following are the official exam objectives related to NIO:

Java File I/O (NIO.2)
[ ] Use the Path class to operate on file and directory paths
[ ] Use the Files class to check, delete, copy, or move a file or directory
[ ] Read and change file and directory attributes
[ ] Recursively access a directory tree
[ ] Find a file by using the PathMatcher class
[ ] Watch a directory for changes by using WatchService


Do you believe that these objectives make any sense for this exam? Instead of testing a candidate on the conceptual underpinnings of Non blocking IO, they are testing on API stuff that is not even used that often. Things like recursively accessing a directory tree, finding a File using Path Matcher, complicated Path manipulation are so niche that most applications almost never need to perform these activities and even when they do, it is a very small part and can be done by easily by looking up the API. It is not something that a developer needs to "learn by heart".

On the other hand, the really important stuff like the non-blocking aspect of NIO, is missing. So you can be a good java developer if you know how to traverse a directory structure recursively but have no idea about how to handle thousands of simultaneous requests on a socket or even if you don't know when to use regular IO and when to use NIO!!

What were they thinking?


Always be ready to learn anything, surely it will benefit you one day.


Tell the difficulties that i am difficult.
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30789
    
157

Hmm. I see plenty of edge cases in that list. Just like they say you need to "know arrays" but they really mean you need to know subtleties.

Examples of such from that list:
  • What is a path vs a file. What can you do on each? (conceptual vs physical file)
  • What happens if you pass relative vs absolute paths to resolve and relativize
  • What happens if you move/copy a non-empty directory
  • What types of attributes you can now update
  • Globbing match patterns - I can think of a bunch of edge cases in here just like with reg exps .


  • [Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
    Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
    Paul Anilprem
    Enthuware Software Support
    Ranch Hand

    Joined: Sep 23, 2000
    Posts: 3315
        
        8
    Jeanne Boyarsky wrote:Hmm. I see plenty of edge cases in that list. Just like they say you need to "know arrays" but they really mean you need to know subtleties.

    Examples of such from that list:
  • What is a path vs a file. What can you do on each? (conceptual vs physical file)
  • What happens if you pass relative vs absolute paths to resolve and relativize
  • What happens if you move/copy a non-empty directory
  • What types of attributes you can now update
  • Globbing match patterns - I can think of a bunch of edge cases in here just like with reg exps .


  • Thanks for replying. Yes, they really do mean that you need to know subtleties. But I think the situation here is different from arrays. Arrays are a fundamental language detail and a programmer must know because these are everywhere. Path vs File. Absolute path vs Relative Path, and all others that you've mentioned above are usually one time things. While dealing with this kind of stuff, you take a look at the API, write the code, and move on. I do not consider them fundamental to the understanding of NIO. It is not something that I would remember "by heart". Do you think it is as or more important than the stuff they left out?

    I am curious to know what do you think a certified programmer should know - what happens when you move/copy a non-empty directory or how or when to make use of the "non-blocking" aspect of NIO? I know, both would be nice. But what if you need to choose one.
    Jeanne Boyarsky
    author & internet detective
    Marshal

    Joined: May 26, 2003
    Posts: 30789
        
    157

    Paul Anilprem wrote:I am curious to know what do you think a certified programmer should know - what happens when you move/copy a non-empty directory or how or when to make use of the "non-blocking" aspect of NIO? I know, both would be nice. But what if you need to choose one.

    If I had to choose one, it would be non-blocking IO. However, the sprit of the the exam to date has been on knowing the basic APIs well so I can understand why they chose it.

    Although on second thought, I'd want them to know they could copy/etc files and not waste time inventing the wheel too.) I had to tell a teammate to refactor his sort algorithm to a one liner.
    Paul Anilprem
    Enthuware Software Support
    Ranch Hand

    Joined: Sep 23, 2000
    Posts: 3315
        
        8
    Jeanne Boyarsky wrote:
    Paul Anilprem wrote:I am curious to know what do you think a certified programmer should know - what happens when you move/copy a non-empty directory or how or when to make use of the "non-blocking" aspect of NIO? I know, both would be nice. But what if you need to choose one.

    If I had to choose one, it would be non-blocking IO. However, the sprit of the the exam to date has been on knowing the basic APIs well so I can understand why they chose it.

    Although on second thought, I'd want them to know they could copy/etc files and not waste time inventing the wheel too.) I had to tell a teammate to refactor his sort algorithm to a one liner.

    You are right. I was only ranting I just felt that they went too deep into how these methods work. If you see the questions they had on path search, you will know what I mean. I would have preferred if they gave a cursory treatment to these API calls and include some details on the Non-blocking aspect. But I am sure they had their reasons.
     
     
    subject: Thoughts regarding exam objectives for NIO 2