wood burning stoves 2.0*
The moose likes Jobs Discussion and the fly likes Passionate Programmer Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "Passionate Programmer Question" Watch "Passionate Programmer Question" New topic
Author

Passionate Programmer Question

Brett Lewinski
Greenhorn

Joined: Feb 22, 2008
Posts: 19
Hello -

I have been a java developer for about 7 years now; the past 2 have been as the technical lead for my team. Eventually I would like to become a Systems Architect. Right now I don't feel I am ready; partly because of the gray hair complex and partly because I think a good system architect must know the system inside and out and all aspects of the system (from OS to GUI) inside and out. While I know a good amount about most of the aspects I wouldn't say I know them inside and out. I have done some design work on our current applications but not nearly enough to consider it real experience. At my current job I may have the option to move into the technical manager role; we will be able to make this role do whatever we want as it is a brand new role. I am kind of torn with what to do; do I stay put learn and code (which I enjoy) as much as I can while doing some design work or do I transition to the new role which will involve more design and input but probably less programming?

Also I know people are very opinionated concerning certifications (good vs bad); if I desire to be a system architect would a certificate or advanced college degree help more or doesn't it matter? Personally I feel if you are good at what you do there is no need for advanced degrees or certs; there is no replacement for experience.

Thanks!
Chad Fowler
Author
Ranch Hand

Joined: May 19, 2009
Posts: 38
Brett Lewinski wrote:Hello -


Hi!

Brett Lewinski wrote:
I have been a java developer for about 7 years now; the past 2 have been as the technical lead for my team. Eventually I would like to become a Systems Architect. Right now I don't feel I am ready; partly because of the gray hair complex and partly because I think a good system architect must know the system inside and out and all aspects of the system (from OS to GUI) inside and out. While I know a good amount about most of the aspects I wouldn't say I know them inside and out. I have done some design work on our current applications but not nearly enough to consider it real experience. At my current job I may have the option to move into the technical manager role; we will be able to make this role do whatever we want as it is a brand new role. I am kind of torn with what to do; do I stay put learn and code (which I enjoy) as much as I can while doing some design work or do I transition to the new role which will involve more design and input but probably less programming?


I think you might be overestimating the average system architect. I don't think it's reasonable to require that a system architect know all of the ins and outs of every system they work on. I'd say most don't. And that's not necessarily a bad thing.

The job of a system architect is to understand and design systems at a high level. It helps tremendously if you also know some of the internal details of how the systems are implemented, but for a large complex system getting too deep in the details might actually cloud your judgment. Think about the CEO of a large company. The company is their system. Do you think they know or understand what we do on a daily basis? Not at all (most of them anyway). But they understand how we or our divisions function at a system level and how to allocate resources strategically to get results. System architecture in IT is the same in that way. If your CEO tried to stick his or her nose in the business of every employee, it's unlikely he or she would be an effective leader.

Having said all that, another point to remember is that "system architect" isn't just another step up the skill ladder. It's a new job. It's not (just) a title you receive in recognition of your awesomeness. So being a completely different job, it stands to reason that there would be junior system architects and senior system architects. I don't mean anyone should actually call them that but nobody should expect to be a great system architect on day one on the job. So you should expect to go into the job of system architect without knowing all the answers, but you should learn them over time.

On the decision to become a technical manager vs. a system architect, I think you have to try to do what you love. To me, that sounds like going the technical route is what you are after. My colleague Andy Lester (author of "Landing the Tech Job You Want") said to me last night "There are no s'upposed tos" in IT careers. I think that's a great saying to remember. A lot of us grow up thinking we're supposed to start at the bottom and then work our way to the "top" of the career ladder, which includes a move into management at some point. For some of us, management is the wrong choice. Really, all of these promotions are just different jobs. For some people, the job of people management isn't what makes them tick. They're technicians. They like to create things. These people shouldn't feel pressured to go into people management.

Brett Lewinski wrote:
Also I know people are very opinionated concerning certifications (good vs bad); if I desire to be a system architect would a certificate or advanced college degree help more or doesn't it matter? Personally I feel if you are good at what you do there is no need for advanced degrees or certs; there is no replacement for experience.

Thanks!


Speaking as someone who dropped out of college and was working toward a music degree, I don't place a lot of emphasis on certificates (degrees or professional certifications). I do think they can be useful as directed study aids if that's how you choose to use them. But I don't think you'll get the most bang for your buck going after a certification or degree. In my opinion, you're better off focusing on real world experience in the form of extra-curricular programming, such as doing a side project or contributing to an open source project. And/or maybe doing some writing or public speaking. Done right, you can get a lot more out of your time investment by skipping the structured classroom and test environment and just making something.

The Passionate Programmer: Creating a Remarkable Career in Software Development
http://www.pragprog.com/titles/cfcar2/the-passionate-programmer
http://chadfowler.com
 
Don't get me started about those stupid light bulbs.
 
subject: Passionate Programmer Question