I’m a technical worker. I think that the more generic term for my kind of work is “knowledge worker”, but whatever you call it, my stock in trade is generated by my gray matter.
I am not a genius: far from it, in fact. Every complex thing I figure out takes a tremendous amount of effort on my part. I’m good at seeing correlations: logical interactions or the like. But that doesn’t mean that I just pick up a book and instantly understand something. I really wish I did.
Part of my work involves designing and writing computer software. I come from an era when it was actually possible to understand a programming language more or less completely. I develop in several language frameworks these days, but even the simplest of them seems to me to be beyond the capabilities of one person to truly understand.
My current challenge is Java / J2EE/ JEE5. Let me briefly introduce you into my world. Java the language is moderately complex. But the real challenge is all of the frameworks, IDEs, and design concepts that surround it. Here is a quick list, in no order whatsoever, off the top of my head:
- SWING
- AWT
- JSF
- JSP
- EJB
- Javadoc
- JavaBean
- Hibernate
- Spring
- Eclipse
- Catalina/Tomcat
- JUnit
- Servlet
- Applet
- RMI/IOP
- JNDI
- JDBC
- JDO
- WebSphere/WAS
- Aptana
- Mylar
- Dojo
- DWR
Ignore, for a moment, the fact that the above list is a largely incomprehensible stream of acronyms or funny words. Suffice it to say that they are all frameworks, libraries, development tools/servers, or design elements that it could be argued any Java developer should recognize. Feel free to Google them, adding the word “java” to any of the above should get you to more or less the right place. Or check here and here in Wikipedia.
Consider the larger picture: every one of the above acronyms is accompanied by dozens of thousand page books professing to explain how to understand/use them. And there are millions of words of web page and forum postings to “help” resolve any problems you might encounter making them work together. The sheer volume of knowledge involved is staggering.
I’m working on an application now that involves RSA (Eclipse 3.2), Java + Dojo/DWR, Aptana, Mylar, an EJB layer, Hibernate + Spring, DB2, and WebSphere Application Server. At times saying that seems like a meaningless stream of babble to me. At other times it makes perfect sense. I am still very early in the learning process regarding the entire galaxy of technologies involved with Java. For brief moments, I feel like I actually am pretty smart, and things make sense. Then a few moments later, I’m crushed by the overwhelming weight of what I don’t know, and the path ahead seems tremendously daunting.
Welcome to my world. Why am I writing this? I guess in part because during the last week I’ve made a bunch of progress in terms of understanding some of the technologies above, writing some code and solving some problems along the way. I’m also sitting here right now, installing Eclipse on my home computer so I can work my way through some study materials on Design Patterns. And as is typical of these things, I’ve spent most of an hour trying to get some preliminary crap to work- in this case, the fact that the Eclipse zip file won’t install because some of the file names are “too long”. Apparently the Vista/XP implementation of Zip can’t handle long file names…yet another datum to clutter my mind.
[tags]coding, complexity, knowledge, working, developer, java, brain[/tags]