I have software RAID5 set up at home for my media server. Only had one disk failure, and the array dropped into degraded mode and I got an email alerting me that I had a disk failure. The next day I swapped in a new disk and rebuilt the array.
When someone lacks a favorite. Indeed, I don't think that I have a favorite design pattern. When that happens, I simply ask the applicant to pick a design pattern at random.
Few design patterns are language or implementation-specific.
I agree, which is why I specified J2EE patterns for a J2EE position. If someone gave me a GoF pattern or some other pattern, I wouldn't fault him, though. Interviews can be stressful.
Stateful and stateless? Session and entity? [...] Are you looking for someone to rattle off the different interfaces in javax.ejb.* ?? Because that's what the package documentation is for.
Those are terrific examples, and I wouldn't fault you for leaving off MDBs. But why do you think of EJBs as nothing more than the javax.ejb API? Those are some of the basic building blocks of J2EE architecture, and I'd want a J2EE architect to at least be able to tell me what an entity bean is good for, a session bean (stateless or stateful). I mean, what is a session bean anyway (from a logical standpoint) and why would I use it? I would be scared of someone who could recite the entire Java API for me, but I do want to hear how I can build something from the building blocks. I feel that's a fair question.
Difference between Java and C++? You mean besides memory management, security, available libraries and that whole JVM/platform independant code thing? Where to start...
My point exactly! There are 100 right answers to that question, and before I heard the "dumbed-down" comment, I would have assumed that there are not really any wrong answers. But that was definitely the wrong answer! If you have that little sense that you would say that in a J2EE shop, you don't get to represent my company.
.. investing time in a few less-well-experienced but technically able programmers might be a good thing for you to consider, if you're really having a tough time.
Yeah, I know I can do that, but that's not really what I'm looking for. I want people who can hit the ground running.
Your explanation of MVC is pretty close, but the example that you gave is more of a description of why we have a persistence layer (so we can swap out databases while only affecting that one layer). Your answer would have been good enough for me in an interview situation, though. You were upfront about the extent of your knowledge, and gave an answer to the best of your knowledge. I don't fault people for not knowing every little thing about every little thing. I assume people know how to use google.
What I do find it funny that everybody picks MVC, and nobody can tell me what it is.:)
Also, interviewing is a skill. You can learn to interview well. When I graduated college, I gave the worst interviews imaginable. But I got some feedback and learned what I was doing wrong. If you want, you can learn to interview well.
I'd suggest you read it, it's great material that still applies today. Of course, there are many other patterns books out now, but that is a great one.
Patterns are common solutions to common problems. They give designers a vocabulary with which to communicate their designs. If you want to reinvent the wheel every time you solve a problem, be my guest. But you won't be doing that while working for me, thanks.
My guess is you already know more patterns than you think. Factory, Singleton, Iterator, etc. We're talking basic stuff here.
Actually, what really scares me about your post is that you've gone 23 years without reading a book on design patterns. Do you read any technical books? Or do you just know it all already?
And can you produce architecture documents that are free of spelling errors? I realize that was a slashdot post and not a finished product, but seriously, can you?
I don't fucking swear this much at work, either.;)
I don't really care if Java is or is not a dumbed-down version of C++. Reasonable people could argue that point back and forth all day long. But the fact of the matter is, that was a stupid thing to say, and I can't put a bozo like him in front of a client.
I can think of a hundred correct answers to the question "What is the difference between Java and C++?". He could have talked about virtual machines, bytecode, and platform independence. He could have talked about memory management and garbage collection. Bonus points if he mentions multiple inheritance and templates.
But, nooooo. What do I get from this dickhead? "Java is a dumbed-down C++". Can you imagine how much business I'd lose if I put him in front of a client? And even if he never saw a client, I don't want someone working for me who obviously doesn't want to be there. If he hates Java so much, then he shouldn't be applying for a J2EE architect position.
As for design patterns, I don't really care if you can design an implement an idea if you can't communicate it with your peers. Design patterns are the language of software architecture. Notice I do not ask applicants to recite GoF for me. I ask them to pick a pattern, any pattern. I couldn't care less what it is. Just pick something and tell me what it is and why to use it.
If you don't know anything about any design pattern, then you cannot have a useful discussion with your peers about software architecture. You'll spend all day explaining your design to an architect and at the end he'll go, "Oh! You meant a Session Facade! I get it now!" Well, that's not acceptable.
Design patterns are actually in use and it makes software development and maintenance more efficient. I'm not asking that architects be able to recite a textbook for me, but I am asking them to be able to communicate their designs and use common solutions to common problems. If you can't do that, your loss.
I ignore certifications. Certs are toilet paper. Experience is what counts.
3) You insist on a collage degree.
I do insist on a college degree. I don't care what it's in, but I do insist on a college degree (by the way, a collage a work made by gluing materials such as paper scraps, photographs, and cloth on to a flat surface, and a college is a group of colleagues, often engaged in higher learning). I need people who can communicate with and look smart in front of highly educated people. If you think that's not a necessity, start your own company.
I never ask anything obscure. I pick stuff right off their resume! If they say they are an expert in a certain technology, that is what I will ask about. If one of those guys had instead said he was an expert in XML, I would have asked, "What's a namespace and why might I use one?" Or if he said he was an expert in web services, I'd ask him what does "document literal" means to him. Or what's a WSDL? These are basic pulse-check questions, not obscure questions.
Anyone claiming to be an architect should be able to name a design pattern for me and then describe what it does and why to use it. Notice I did not say, "Please describe the 'flyweight' pattern for me and tell me 5 times when you used it." Well, nobody fucking uses the flyweight pattern anyhow, so why would I ask such an obscure question? Instead, I ask the interviewee to pick a pattern. Any goddamn pattern. I don't care what it is. Throw me a bone here!
If you don't speak the language of software architecture (design patterns), then don't claim to be a software architect. Go apply at mcdonalds and quit wasting my time.
Tell me where to find good IT employees. I mean ones who can name at least one design pattern and tell me when I might want to use it. Find me someone who has even basic level knowledge about something they claim to be an expert in on their resume.
I have needs come up all the time, and I have a hell of a time filling them. I can tell you right know I don't give a fuck how old you are, and 99% of the open needs pay 6 figures, so if that's being a cheapskate, I'm not sure what to tell you. As far as the skillsets, well if you don't have the skills then why are you applying for the job? My clients know what they want, they are willing to pay for it, but the folks just aren't out there! They're all taken!
Oh, sure, I'll post a need and get 100 resumes in a day. But all of them turn out to be what I like to call "fucking morons".
I love when I ask for an expert J2EE architect and I ask, "What's your favorite J2EE design pattern?" The answer is always MVC (if they can even come up with one at all), which I guess could pass as J2EE, so I ask them to describe it for me.
"Well... There is this model... and a view... and a controller."
"No shit. What do the model and view and controller accomplish? How do they fit together?"
"Well... it's kind of like STRUTS, and I learned about that in my 1 week boot camp that I took 3 years ago."
"Gee whiz. Ok, tell me what the different types of EJBs are and why might I use them?"
"Oh, I don't use EJBs."
"You are an expert J2EE architect. I don't give a fuck if you use them personally or not. Just tell me what the fuck they are and why ANYBODY would use them."
"Well, I've never really used one. I just know HTML and JSP, so I am an expert J2EE architect."
"Glad to hear it, dickhead. Thank you for wasting both of our time."
Or, here's my personal favorite. A guy said he was an expert in Java and an expert in C/C++ (it always makes me nervous when people group C/C++ like that, since while C and C++ share some syntax, they are very fucking different animals!):
Me: I see you are an expert in Java and C++? What would you say are some differences between Java and C++.
Him: Java is a dumbed-down version of C++.
Me: We all have our opinions, but I'm going to suggest you never say that again during an interview for a J2EE position. Have a nice day!
HELLO! Where do these people come from and why are they interviewing with me for 6 figures instead of the local McDonalds for $6/hr?
I still maintain the company is better off firing the developer who tries to become irreplacable and rewriting whatever he's done than keeping this kook on to do more damage.
And you're putting words in my mouth regarding execs, so I won't even bother responding to that. I never said it, you did.
I totally misread MS SQL as MySQL. Sorry about that.
Regarding rsnapshot, it's written in perl, so it might have gotten in under the radar.:) But it does use rsync, so then again, you probably would have been screwed.
Ahh well. I'm just glad to know that my mysql log is not going to fill up on me and destroy my mythtv box or something. That would be sad.
Unsurprisingly enough, DeBeers is already trying to have non-mined diamonds declared "not diamonds".
They can call the manufactured "diamonds" whatever the hell they want, but I can tell you with absoulte certainty that my wife will be much happier with jewelry that looks like a diamond, sparkles like a diamond, costs $100 instead of $7,000, and does not cause civil wars in Africa.
The problem with CZs is that they don't even remotely look like a diamond. A moderately trained eye (i.e. anyone who has looked at diamonds before) can instantly recognize a CZ. Even someone who has never really looked closely at a diamond before could tell you which is a diamond and which is a CZ if they are held side by side.
With these manufactured diamonds, they're talking about needing specialized equipment to differentiate them. Yeah, nobody is going to give a fuck if it's called a "diamonoid" or some horrible name (my guess is that they will come up with a pleasing name for marketing like "cultured pearls") if you need a microscope to figure out whether it's natural or manufactured.
I've always wondered if that's 2 months before or after taxes. When I tried asking a jewler that, he started showing me diamonds that were about 2 days salary. Oops.:)
Anyhow, my wife is not a big fan of spending a lot of money on diamonds. The center stone for her engagement ring was recycled from a family member who no longer wears hers. The entire setup cost about $500, including the other stones in the band. She loves it. At least that's what she tells me.
who knew how to fire an admin. Gotta completely blindside him, unfortunately. One day he came to work to find the CTO sitting at his (the admin's) desk. CTO brought him into CTO's office to terminate him. Security watched him pack his personal effects. Passwords had already been changed the night before.
The mysql transaction logs can get full? How does that happen? My binary log directory has like 500MB of logs right now. When do I have to worry about filling up?
Also, for automated backups that don't take up obscene amounts of disk space, check out rsnapshot. I've got about a gig worth of stuff that gets backed up. I have 7 daily, 4 weekly, and 3 monthly snapshots of that gig worth of data. But it consumes only 2.3G of disk space. Behold the magic of hard links:
mythtv:/var/cache/rsnapshot# rsnapshot du 978M/var/cache/rsnapshot/daily.0/ 17M/var/cache/rsnapshot/daily.1/ 17M/var/cache/rsnapshot/daily.2/ 18M/var/cache/rsnapshot/daily.3/ 49M/var/cache/rsnapshot/daily.4/ 19M/var/cache/rsnapshot/daily.5/ 18M/var/cache/rsnapshot/daily.6/ 23M/var/cache/rsnapshot/weekly.0/ 47M/var/cache/rsnapshot/weekly.1/ 337M/var/cache/rsnapshot/weekly.2/ 129M/var/cache/rsnapshot/weekly.3/ 54M/var/cache/rsnapshot/monthly.0/ 128M/var/cache/rsnapshot/monthly.1/ 458M/var/cache/rsnapshot/monthly.2/ 2.3G total
no ex-employer wants to do a competitor a favor by giving them information about a candidate -- especially when any negative comments could result in a lawsuit.
I own rental property and I call previous landlords for information on applicants. I also get calls regarding ex-tenants, and I always tell the truth. I'd want other landlords to do the same for me.
I do, however, keep it strictly objective. "Check out case #2337272 at the Fairfax County courthouse for all the information you'll ever need." is a particular favorite technique of mine.
Is the day I retire my mythtv setup and buy a Tivo. The biggest selling point for MythTV for me was taking a stand against getting nickel-and-dimed to death by Tivo.
Why should I be nickel-and-dimed by some startup who will be dead in a year or two and then I'll have to get a Tivo anyway? Personally, I have no problem filling out a short survey once a quarter.
I'm a happy RAID customer.
And no, I would not like fries with that, thanks.
When someone lacks a favorite. Indeed, I don't think that I have a favorite design pattern. When that happens, I simply ask the applicant to pick a design pattern at random.
Thanks for the thoughtful response, though!
What I do find it funny that everybody picks MVC, and nobody can tell me what it is. :)
Also, interviewing is a skill. You can learn to interview well. When I graduated college, I gave the worst interviews imaginable. But I got some feedback and learned what I was doing wrong. If you want, you can learn to interview well.
Internships? Jobs? What have you worked on?
I'd suggest you read it, it's great material that still applies today. Of course, there are many other patterns books out now, but that is a great one.
Patterns are common solutions to common problems. They give designers a vocabulary with which to communicate their designs. If you want to reinvent the wheel every time you solve a problem, be my guest. But you won't be doing that while working for me, thanks.
My guess is you already know more patterns than you think. Factory, Singleton, Iterator, etc. We're talking basic stuff here.
Actually, what really scares me about your post is that you've gone 23 years without reading a book on design patterns. Do you read any technical books? Or do you just know it all already?
I don't fucking swear this much at work, either. ;)
Washington DC. Any of them willing to relocate? What is their experience?
I won't even dignify this with a response. Be honest or quit wasting my time.
I can think of a hundred correct answers to the question "What is the difference between Java and C++?". He could have talked about virtual machines, bytecode, and platform independence. He could have talked about memory management and garbage collection. Bonus points if he mentions multiple inheritance and templates.
But, nooooo. What do I get from this dickhead? "Java is a dumbed-down C++". Can you imagine how much business I'd lose if I put him in front of a client? And even if he never saw a client, I don't want someone working for me who obviously doesn't want to be there. If he hates Java so much, then he shouldn't be applying for a J2EE architect position.
As for design patterns, I don't really care if you can design an implement an idea if you can't communicate it with your peers. Design patterns are the language of software architecture. Notice I do not ask applicants to recite GoF for me. I ask them to pick a pattern, any pattern. I couldn't care less what it is. Just pick something and tell me what it is and why to use it.
If you don't know anything about any design pattern, then you cannot have a useful discussion with your peers about software architecture. You'll spend all day explaining your design to an architect and at the end he'll go, "Oh! You meant a Session Facade! I get it now!" Well, that's not acceptable.
Design patterns are actually in use and it makes software development and maintenance more efficient. I'm not asking that architects be able to recite a textbook for me, but I am asking them to be able to communicate their designs and use common solutions to common problems. If you can't do that, your loss.
Anyone claiming to be an architect should be able to name a design pattern for me and then describe what it does and why to use it. Notice I did not say, "Please describe the 'flyweight' pattern for me and tell me 5 times when you used it." Well, nobody fucking uses the flyweight pattern anyhow, so why would I ask such an obscure question? Instead, I ask the interviewee to pick a pattern. Any goddamn pattern. I don't care what it is. Throw me a bone here!
If you don't speak the language of software architecture (design patterns), then don't claim to be a software architect. Go apply at mcdonalds and quit wasting my time.
The fact is there will always be a need for smart people in any field. If you are smart, you will succeed in whatever you do.
The funny thing about that is that people who are stupid still believe that they are smart.
Life is harsh sometimes.
Good luck!
I have needs come up all the time, and I have a hell of a time filling them. I can tell you right know I don't give a fuck how old you are, and 99% of the open needs pay 6 figures, so if that's being a cheapskate, I'm not sure what to tell you. As far as the skillsets, well if you don't have the skills then why are you applying for the job? My clients know what they want, they are willing to pay for it, but the folks just aren't out there! They're all taken!
Oh, sure, I'll post a need and get 100 resumes in a day. But all of them turn out to be what I like to call "fucking morons".
I love when I ask for an expert J2EE architect and I ask, "What's your favorite J2EE design pattern?" The answer is always MVC (if they can even come up with one at all), which I guess could pass as J2EE, so I ask them to describe it for me.
Or, here's my personal favorite. A guy said he was an expert in Java and an expert in C/C++ (it always makes me nervous when people group C/C++ like that, since while C and C++ share some syntax, they are very fucking different animals!): HELLO! Where do these people come from and why are they interviewing with me for 6 figures instead of the local McDonalds for $6/hr?Frustrating!
And you're putting words in my mouth regarding execs, so I won't even bother responding to that. I never said it, you did.
Regarding rsnapshot, it's written in perl, so it might have gotten in under the radar. :) But it does use rsync, so then again, you probably would have been screwed.
Ahh well. I'm just glad to know that my mysql log is not going to fill up on me and destroy my mythtv box or something. That would be sad.
The problem with CZs is that they don't even remotely look like a diamond. A moderately trained eye (i.e. anyone who has looked at diamonds before) can instantly recognize a CZ. Even someone who has never really looked closely at a diamond before could tell you which is a diamond and which is a CZ if they are held side by side.
With these manufactured diamonds, they're talking about needing specialized equipment to differentiate them. Yeah, nobody is going to give a fuck if it's called a "diamonoid" or some horrible name (my guess is that they will come up with a pleasing name for marketing like "cultured pearls") if you need a microscope to figure out whether it's natural or manufactured.
Anyhow, my wife is not a big fan of spending a lot of money on diamonds. The center stone for her engagement ring was recycled from a family member who no longer wears hers. The entire setup cost about $500, including the other stones in the band. She loves it. At least that's what she tells me.
Reggie should have been fired long ago.
Such is life. But the guy had it coming.
Also, for automated backups that don't take up obscene amounts of disk space, check out rsnapshot. I've got about a gig worth of stuff that gets backed up. I have 7 daily, 4 weekly, and 3 monthly snapshots of that gig worth of data. But it consumes only 2.3G of disk space. Behold the magic of hard links:
Seriously. rsnapshot kicks ass.I do, however, keep it strictly objective. "Check out case #2337272 at the Fairfax County courthouse for all the information you'll ever need." is a particular favorite technique of mine.
Why should I be nickel-and-dimed by some startup who will be dead in a year or two and then I'll have to get a Tivo anyway? Personally, I have no problem filling out a short survey once a quarter.