Okay, I wrote the BETA today, all 160 questions in four, grueling hours. When I came out of the training center, I was 6 pounds lighter, and two inches shorter - it is truly a grueling experience.
I haven't really gathered my thoughts properly, and I'm still reeling from the experience, so I'm just going to babble on about the exam, without any logical flow to my thoughts. Please don't judge me if I begin to babble.
Well, I'm sure everyone wants to know what it was like, so I'm going to share my experience, but I do respect the 'non-disclosure' agreement you sign when you take the exam, so I won't give away any specifics or questions. It's important to maintain the integrity of the exam.
Good news?
NO JAVA CODE!!! There wasn't one lick of Java. I think at one point there was a comment about an
EJB 3.0 bean having a constructor to call, but that was as close as it got. I didn't see a
chicken lip, squiggly bracket or an iterative statement on the whole thing. No code at all. In fact, I really thought the whole thing was fairly high level. I actually think someone that had read the server technologies section of my
Sun Certified Java Associate Study Guide, yes, the
associate book, would have done fairly well on the server technologies parts of exam. Many of those questions revolved around where certain technologies properly fit, all at a very high level.
Other good news? No mention of
struts. I mean, I know Struts isn't a Sun own framework, but c'mon, you can't be a Java architect without knowing about the place Struts has in the universe, but alas, no mention of Struts. Of course, you better know your
JSF - benefits, disadvantages, look, taste, flavor, how it drives, handling....all that stuff about JSF is important.
There are a few questions they say things like "any standard web framework would be good" which seemed like a veiled reference to Struts.
Also,
NO PORTAL. Well, I love portal and JSR-168 programming
(check out my signature links for free JSR168 portlet programming tutorials and books). There were a few references to solutions that were 'largely static content with some dynamic features, and content updates delivered through CMS (content management systems).' Anyways, reading through those question I thought the answers were just screaming for a WebSphere Portal Server. I guess I can understand why the Sun exam didn't mention WebSphere, but no mention of a portal at all seemed strange. Instead, the answers used things like 'templatized website with dynamic elements,' which I guess is how you would describe a portal without actually using the
word portal, but I digress.
Anyways, I do think it emphasizes the point that really, you're only ever going to get examined on the objectives. If there's no mention of a portal on the exam, well, don't mention the portal.
No UML. I don't recall a single UML question. I think an architect needs to know a bit of UML, but there wasn't any. Not that I'm complaining, but I do think it's mentionable.
NO SPRING Actually, this didn't surprise me, although I did think there might be some, at the very least, veiled references to aspect oriented programming, but I don't recall any. I haven't interviewed for a single architect position in years without having to prove an understanding of AOP and Spring (by the way, if you know of any good architect positions in Canada, let me know.
I'm in the mood for a project change). So, I see a place for AOP and/or Spring in an architect certification, although I can certainly understand why Sun Microsystems didn't feel a compelling need to put a reference in there to a framework that isn't their own.
Lots of mention on the exam about teenagers. Whoever wrote the exam worked for GAP or something because half the questions started out "You are maintaining a site for a clothing store geared towards teenagers and young adults...." Personally, I found this, compounded by the pretty young college girls walking past the window of the training center, to be very distracting.
Perhaps it was all part of the larger plan of the
test designers. Still, after about the 50th question about a 'teenage fashion store' I was shaking my head; it wasn't offensive or anything, just kinda amusing.
Hmmmmm....What else....
Quite a few questions on why inheritance is good, and why interfaces are good. Again, basic questions that seemed more appropriate for the
SCJA Exam, and I think any of my SCJA students would have aced them. Probably a dozen about the benefits of inheritance, abstraction and programming to an interface.
The exam started off with about 30 very specific design
pattern questions. It was kinda fun for me, as I'm pretty comfortable with most of the patterns. It was like a job interview where they lob all these softball questions at you:
Which design pattern provides a simplified interface to a larger body of code?
SESSION FACADE Which design pattern minimizes network traffic -
TRANSFER OBJECTS How do you provide a way to visit every node in a hierarchical data structure such as a tree?
HIERARCHIAL VISITOR PATTERN How do you centralize the decision of factory creation?
ABSTRACT FACTORY How do you decouple an abstraction from its implementation to provide individual variations?
BRIDGE PATTERN How do you best contain requests and parameters?
COMMAND PATTERN How do you provide a common interface to a set of interfaces in a sub system?
MEDIATOR PATTERN Common way to separate complex Al Gore-isms from an object?
VISITOR PATTERN How to remember where you left your keys the last time you put them down?
MEMENTO PATTERN By the way, that blurb may look like I'm revealing questions from the exam, but the exam objectives are quite clear that you need to know those patterns. When the objectives state that you need to know the Memento Pattern, it shouldn't surprise you when I tell you that a question on the exam asks what the Memento pattern is.
Anyways, you had to know all the design patterns, and I mean ALL of them. For the most part, I found these questions to be like shooting fish in a barrel with bazooka, but I did get a few design patterns thrown at me that I actually haven't used or researched. For example, I had no idea what a
FlyWeight was. I mean, a question referenced a FlyWeight, and I thought it was a joke. Seriously, I haven't even heard of that pattern, although now I've researched it, I kinda feel like someone who lives in Toronto and has never heard of Tim Hortons, but still.
One thing I will say though is that many questions hit hard on common themes. For example, I didn't know the FlyWeight pattern, but a couple of questions in a row hit on memory management, and saving space in memory, and I quickly figured out that FlyWeight had to do with memory management. It gave me a chance to go back to some previous questions and answer them with more confidence.
Also, I got killed on some of the visual design patterns. I don't do too much on the view side, so I'm not as familiar with benefits and drawbacks of composite view and other visual design patterns. You really gotta know your patterns well.
Lots of JSF. I've been buried in Struts for a long time, so I'm not as familiar with JSF. Lots of questions about benefits and drawbacks of JSF. I'm guessing JSF is bad with search engines, because every JSF question was worded in a way that seemed to say "JSF is the best thing since sliced bread, and will likely take over the world one day,
although it may not work well with search engines. "
As I said, I don't know JSF inside out, and I haven't yet created any big, JSF custom components. Many questions seemed to imply that someone has a crazy script based special inheritable HTML visual gold nugget, and you want to do something with it, and somehow, I'm guessing a custom JSF component could do the trick? Again, my lack of JSF knowledge was certainly my Achilles heel on this exam.
Lots of EJB 3.0 stuff towards the end. Again, I do
alot of Hibernate, but since IBM and WebSphere have decided that WebSphere 7 is never going to be released, and that EJB 3.0 will probably never be supported in a full release, I just haven't had a chance to work much with EJB 3.0. (Can you tell that I'm a little bitter at IBM's inability to release a 'new product,� and when I say new, I mean a full version product release that supports EJB 3.0, which has now been around for years! I mean, c�mon, the proposed final ballot for EJB 3.0 was revealed in December of 2005).
So, some of the EJB 3.0 stuff I was a little weak on, but I am almost finished a book about Learning Hibernate, so much of the persistence stuff is the same, so I was able to bluff my way through that. Also, there were alot of questions about Stateless/Stateful/Entity beans and Web Services. I'm guessing from the 30 questions on the subject that only a stateless session bean can be easily turned into a web service? Lots of questions about that.
Oh, and back to the friendly, slim, brunette, young-adult, females in fashionable, yet moderately revealing clothes, well, lots of the questions about the fashion store would ask about the architecture:
They only want to use JSPs, and the JSPs will have scriptlets in them that have SQL statements embedded. This is the only way it can be done, and the way everyone wants it done, and if you don't do it this way, it is wrong. What is the suggested approach? JSPs and Scriptlets
JSPs
Servlets and EJBs
JSF and Custom tags
Any web framework with
JDBC Obviously this isn't a real question, but they were sorta like that - I mean, the question would totally steer you towards an answer that was to use JSPs and Scriptlets, and just hit the back end database, so, you'd be using a really
JSP based architecture (app server/database) and no real MVC. I mean, I would NEVER recommended a JSP and scriptlet solution, but really, there seemed like a couple of questions where they were steering you towards that as the only correct answer. Purely on principle, I never answered a question as having a 'JSP and scriptlet' solution as the correct answer, but I think in one or two cases, it may have been correct.
Again, that's a common type of question - maybe 20 questions giving you a scenario and asking if you'd use 1,2,3 or a 4 tier arch. Also, similar questions would ask if you would implement with:
JSF
JSF with custom tags
JSP
JSP with standards tags
and stuff like that.
Many times they'd want to know if you'd solve a problem with Servlets and JSPs, JSF, JSF and EJBs, JSPs with direct database access, JSPs & Servlets & JDBC, JSPs Servlets & JDO, JSPs Servlets & EJBs, Servlets & EJB 3.0, Servlets and EJB 2.0, and stuff like that. Again, basic architecture questions to see if you understand how to use the technology to architect a solution that fits the clients needs.
Also, you need to know the benefits of 1, 2, 3, 4 & 5 tier technology. For example, they'll say:
You're buying the biggest and best server from Sun. It's the most powerful box in the world, it never fails, it never shuts down, it automatically switches to battery, wind or
solar power if the electricity fails, and it comes in a variety of colors. You are going to use this one, single, stand alone box as your web server, sitting in front of your application servers. What is a drawback to this solution?
None: There are no drawbacks to using Sun products
Maintainability
Availability
Maintenance
Scalability
Flexibility
Performance
Deployment
Management
Upgradability
Failover
Anyways, you know the list of things that any type of architecture choice can either impact positively or negatively. Know when one hardware solution presents a problem for scalability, or when another provides a problem for doing maintenance.
Actually, I think many of these questions were somewhat debatable. I mean, I was thinking while doing the exam that if I put a similar question up on JavaRanch, it'd probably start a real
thread of flames, with everyone debating on why one thing was or wasn't scalable, or why another was or wasn't maintainable. Still, I think there was an agreeable 'right' answer for the questions they asked.
One thing that did bug me about a few questions was they said things like "design a solution...blah...blah...blah....that non-developers would maintain." So, like, what's a non-developer? Does that mean someone that knows Java, but not Spring and Hibernate and JPA? Does that mean someone that's skilled at HTML but not Java? Is that someone that can do little scriptlets?
I think for these questions, they probably wanted you to choose JSPs with JSTL tags in them, as opposed to big JSF applications. But, isn't JSF with the whole bean backing thing a bit easier to maintain for a non-programmer? Personally, if a non-programmer is the secretary who's skills don't go beyond getting
coffee and donuts for his boss, well, I don't want him maintaining anything, be it an EJB, JSP, EJB or HTML page. The references to code that must be maintained by non-programmers, or non-developers, or non-technical people, was probably the biggest thing I didn't like in the exam.
Overall, I'd actually say it was a fairly fun exam. No code, just really high level questions that target your understanding of the popular Java technology in use today. Who knows, maybe I'll write an
SCEA Certification Guide or Sun Certified Enterprise Architect Study Guide? It's nice writing books about Java that don't contain any code or UML. That always makes things much easier.
By the way, they don't give you the score at the end of the exam, which is unusual. Usually there's that moment when you click 'Finish' and you wait for that bar graph to come up and see if you passed or failed. This time, you just get a note that says Sun will get in contact with you in 6-8 weeks with your results. Nothing prints off from the machine either. It actually really threw the woman at the testing center off, not having something at least print off. She went to my computer and started clicking away on the machine, sure that I'd done something wrong, but I assured her, this exam didn't come with a result. Also, there's a second part to the SCEA exam. Apparently, Sun will tell me more about doing that part when they send me the results.
Just a reminder to anyone new to the exam to check out the FAQ about the SCEA exam for some answers to common questions. I know everyone's probably real anxious to know all about the exam, but lots of the common questions are answered in the FAQ.
So, I hope that answers alot of your questions about the exam. I also hope I haven't given too much away, although I don't think so. Really, much of what I've said here can be garnered by reading the exam objectives, which really should be used as the cornerstone of any effort to get your Sun Certified Enterprise Architect Certification
-Cameron McKenzie
[ October 08, 2007: Message edited by: Cameron McKenzie ]