现在的位置: 首页 > 综合 > 正文

New Interview Questions for Senior Software Engineers

2013年04月13日 ⁄ 综合 ⁄ 共 25419字 ⁄ 字号 评论关闭

Refered From: http://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx 

I'm putting together some practice interview questions for a friend who lost his job. I thought it'd be useful to crowd-source some questions from you, Dear Reader.

These questions should be more software design focused, less technical trivia like my previous two lists of interview questions:

UPDATE: I think we all agree (or at least we should) that if you go into an interview tomorrow and you look across the table and the interviewer has simply printed out this list and is reading from it, that you should excuse yourself and run. This isn't a "guide to how to interview" nor is this meant to me a "best practices for engineers" list. It's simply a collective brain-dump of stuff that someone who's been in the business of developing software for money for 10 or so years should have some passing familiarity with. Of course, it's assumed that the interviewer is able to detect BS. This isn't, and shouldn't be, a trivia contest. If you're going to get a job (or you're looking for hire someone for a job) it's ultimately more important to understand if someone can Solve Problems and if Their Head is Screwed on Straight. Take it with a grain of salt, friends, remember, you found it on the Internet. - @shanselman

Here's what I have so far.

  • What is something substantive that you've done to improve as a developer in your career?
  • Would you call yourself a craftsman (craftsperson) and what does that word mean to you?
  • Implement a <basic data structure> using <some language> on <paper|whiteboard|notepad>.
  • What is SOLID?
  • Why is the Single Responsibility Principle important?
  • What is Inversion of Control? How does that relate to dependency injection?
  • How does a 3 tier application differ from a 2 tier one?
  • Why are interfaces important?
  • What is the Repository pattern? The Factory Pattern? Why are patterns important?
  • What are some examples of anti-patterns?
  • Who are the Gang of Four? Why should you care?
  • How do the MVP, MVC, and MVVM patterns relate? When are they appropriate?
  • Explain the concept of Separation of Concerns and it's pros and cons.
  • Name three primary attributes of object-oriented design. Describe what they mean and why they're important.
  • Describe a pattern that is NOT the Factory Pattern? How is it used and when?
  • You have just been put in charge of a legacy code project with maintainability problems. What kind of things would you look to improve to get the project on a stable footing?
  • Show me a portfolio of all the applications you worked on, and tell me how you contributed to design them.
  • What are some alternate ways to store data other than a relational database? Why would you do that, and what are the trade-offs?
  • Explain the concept of convention over configuration, and talk about an example of convention over configuration you have seen in the wild.
  • Explain the differences between stateless and stateful systems, and impacts of state on parallelism.
  • Discuss the differences between Mocks and Stubs/Fakes and where you might use them (answers aren't that important here, just the discussion that would ensue).
  • Discuss the concept of YAGNI and explain something you did recently that adhered to this practice.
  • Explain what is meant by a sandbox, why you would use one, and identify examples of sandboxes in the wild.
  • Concurrency
    • What's the difference between Locking and Lockless (Optimistic and Pessimistic) concurrency models?
    • What kinds of problems can you hit with locking model? And a lockless model?
    • What trade offs do you have for resource contention?
    • How might a task-based model differ from a threaded model?
    • What's the difference between asynchrony and concurrency?
  • Are you still writing code? Do you love it?
  • You've just been assigned to a project in a new technology how would you get started?
  • How does the addition of Service Orientation change systems? When is it appropriate to use?
  • What do you do to stay abreast of the latest technologies and tools?
  • What is the difference between "set" logic, and "procedural" logic. When would you use each one and why?
  • What Source Control systems have you worked with?
  • What is Continuous Integration?  Have you used it and why is it important?
  • Describe a software development life cycle that you've managed.
  • How do you react to people criticizing your code/documents?
  • Whose blogs or podcasts do you follow? Do you blog or podcast?
  • Tell me about some of your hobby projects that you've written in your off time.
  • What is the last programming book you read?
  • Describe, in as much detail as you think is relevant, as deeply as you can, what happens when I type "cnn.com" into a browser and press "Go".
  • Describe the structure and contents of a design document, or a set of design documents, for a multi-tiered web application.
  • What's so great about <cool web technology of the day>?
  • How can you stop your DBA from making off with a list of your users’ passwords?
  • What do you do when you get stuck with a problem you can't solve?
  • If your database was under a lot of strain, what are the first few things you might consider to speed it up?
  • What is SQL injection?
  • What's the difference between unit test and integration test?
  • Tell me about 3 times you failed.
  • What is Refactoring ? Have you used it and it is important? Name three common refactorings.
  • You have two computers, and you want to get data from one to the other. How could you do it?
  • Left to your own devices, what would you create?
  • Given Time, Cost, Client satisfaction and Best Practices, how will you prioritize them for a project you are working on? Explain why.
  • What's the difference between a web server, web farm and web garden? How would your web application need to change for each?
  • What value do daily builds, automated testing, and peer reviews add to a project? What disadvantages are there?
  • What elements of OO design are most prone to abuse? How would you mitigate that?
  • When do you know your code is ready for production?
  • What's YAGNI? Is this list of questions an example?
  • Describe to me some bad code you've read or inherited lately.

Your thoughts? I'll add good questions from the comments throughout the day.

2011年2月17日 11:34:29 (Pacific Standard Time, UTC-08:00)
What is the difference between TDD and BDD?

2011年2月17日 11:36:45 (Pacific Standard Time, UTC-08:00)
One I generally like is:

Name three primary attributes of object-oriented design. Describe what they mean and why they're important.

It amazes me how so many developers out there think that OO is nothing more than "classes with methods/members on them" and maybe "inheritance for sharing functionality." Also, I've found myself in some really interesting conversations with good developers on this subject. It segues pretty well into other topics too, such as some SOLID principles and interfaces.

2011年2月17日 11:38:09 (Pacific Standard Time, UTC-08:00)
Whenever I ask an about patterns in an interview 95% of the candidates will answer with the factory pattern. Ask them to describe a pattern that is NOT the factory pattern. (i.e. Decorator/Strategy/etc... ). This is where you will find most of the junior engineers will not be able to identify another pattern.
2011年2月17日 11:38:13 (Pacific Standard Time, UTC-08:00)
Why is the phrase "being like Hanselman" considered a compliment?
Haddicus
2011年2月17日 11:39:51 (Pacific Standard Time, UTC-08:00)
You have just been put in charge of a legacy code project with maintainability problems. What kind of things would you look to improve to get the project on a stable footing?

KevDog
2011年2月17日 11:40:03 (Pacific Standard Time, UTC-08:00)
Most of the questions here and on the other posts you referred to are great for gauging competency. Overall they're pretty similar to questions I've been asked when I applied a Microsoft and other companies.

The one challenged I've had is that a lot of these concepts weren't covered in my college courses and many of these concepts haven't really come up in my career as a developer. Do you have any good recommendations for resources to learn more about these topics? I'd like to expand my horizons, but it's often tough to find articles and resources that focus on concepts rather than implementations.

Ian
2011年2月17日 11:41:10 (Pacific Standard Time, UTC-08:00)
While I had used most of these patterns at one time or another (and many of them I had discovered on my own in struggling through design problems), it wasn't until fairly recently that I learned that they had names. I recommend being careful not to quiz interviewees on specific patterns by name, and instead focus on their ability to problem solve. For example, give them a scenario when inversion of control might be needed, and see how they reason through it.
2011年2月17日 11:41:24 (Pacific Standard Time, UTC-08:00)
I'm not to keen on the anti-pattern question. Anti-patterns can be patterns in certain contexts and the other way around. I think I would only be able to come up with two anti patterns in an interview, service locator and singleton. Both of these patterns has valid use cases.
2011年2月17日 11:41:28 (Pacific Standard Time, UTC-08:00)
I got asked the last one at an interview today, and it was for a junior position. Caught me out completely, so it's most likely a good question to ask. 

I'm poor at remembering theory. Advantages and disadvantages etc, purpose of things, sometimes interviews are a nightmare!

Andy
2011年2月17日 11:42:51 (Pacific Standard Time, UTC-08:00)
Show me a portfolio of all the applications you worked on, and tell me how you contributed to design them. Isn't it the only question that really matters?
2011年2月17日 11:44:54 (Pacific Standard Time, UTC-08:00)
Ian - Awesome question. I'm going to think about this and how it can be done.
2011年2月17日 11:46:00 (Pacific Standard Time, UTC-08:00)
Patrik - I agree with your point, but I also think it's worth having those kinds of discussions. I would say there is no right or wrong answer for some of these.
2011年2月17日 11:48:56 (Pacific Standard Time, UTC-08:00)
Could not agree more with David !
And based on _that_ answer you can start digging for things like patterns etc ... the person used during these projects.
Bart De Keersmaeker
2011年2月17日 11:49:56 (Pacific Standard Time, UTC-08:00)
What are some alternate ways to store data other than a relational database? Why would you do that, and what are the trade-offs?
jarodf
2011年2月17日 11:51:45 (Pacific Standard Time, UTC-08:00)
I fail to see the relevancy of a 70's rock band to programming http://www.gangoffour.co.uk - I'm afraid I lose here :)
2011年2月17日 11:52:06 (Pacific Standard Time, UTC-08:00)
Explain the concept of convention over configuration, and talk about an example of convention over configuration you have seen in the wild.

Explain the differences between stateless and stateful systems, and impacts of state on paralellism.

Discuss the differences between Mocks and Stubs/Fakes and where you might use them (answers aren't that important here, just the discussion that would ensue).

Discuss the concept of YAGNI and explain something you did recently that adhered to this practice.

Explain what is meant by a sandbox, why you would use one, and identify examples of sandboxes in the wild.

2011年2月17日 11:53:06 (Pacific Standard Time, UTC-08:00)
David has a great point. I've long said that rather than certifications and degrees after our names, we should put projects.

Signed,
Scott Hanselman, 23 successful projects, 3 failed

2011年2月17日 11:53:55 (Pacific Standard Time, UTC-08:00)
Bittercoder - I love these.
2011年2月17日 11:56:39 (Pacific Standard Time, UTC-08:00)
1) Can you explain orthogonality, cohesion, and coupling as related to OOD. How much, or little, of each would you want in a system/class?

2) Can you explain the difference between essence and ceremony?

3) Can you explain convention over configuration? Can you give an example of it in action?

2011年2月17日 11:57:00 (Pacific Standard Time, UTC-08:00)
I think design exercises are a lot more useful than rote answers. You don't really care if someone knows the difference between DI and IoC, do you? Or listing the attributes of OOD? Maybe you do, I'm not sure I see value there. What's useful to me is to see how they apply relevant principles in the moment.

Good interview questions are really hard to come by. Good luck!

Dave
2011年2月17日 11:58:56 (Pacific Standard Time, UTC-08:00)
@Ian - Check out the book "Head First Design Patterns". It's probably the most approachable guide to helping one grok design patterns. It also covers, quite nicely, design principles.
2011年2月17日 11:59:02 (Pacific Standard Time, UTC-08:00)
1.are you still writing code? Do you love it?
2. You've just been assigned to a project in a new technology how would you get started?
2011年2月17日 12:00:47 (Pacific Standard Time, UTC-08:00)
You might want to ask some questions about concurrency. What's the difference between Locking and Lockless concurrency models? What kinds of problems can you hit with locking model? And a lockless model? What trade offs do you have for resource contention? How might a task-based model differ from a threaded model? What's the difference between async and concurrency, if any?

And you might ask some questions with more of a functional spin. What does composition mean in an OO and a functional context? What's the difference between a function and a predicate?

2011年2月17日 12:02:06 (Pacific Standard Time, UTC-08:00)
Another thought: it's easier than you think to BS these kinds of questions, especially at senior levels. There's no substitute for having someone write actual code in an interview. If you haven't been doing this, you would probably be surprised at how many "programmers" this catches.

Also, this might be useful: http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions

Dave
2011年2月17日 12:07:26 (Pacific Standard Time, UTC-08:00)
I think these are MUCH better than the old questions. If someone can answer all of these, you can probably assume they know how to look up API documentation for framework specific problems. 

I might add something about incorporating SOA/data services/etc into application design and when is it appropriate.

2011年2月17日 12:09:16 (Pacific Standard Time, UTC-08:00)
1) Explain the concepts of coupling and cohesion and how they relate to maintainability. As a follow up, please explain afferent coupling and efferent coupling, and how those concepts fit above.
2011年2月17日 12:09:36 (Pacific Standard Time, UTC-08:00)
Roi - Love those!
2011年2月17日 12:11:18 (Pacific Standard Time, UTC-08:00)
Dave - Is the abilty to BS these questions a problem with the interviewee or the interviewer?
2011年2月17日 12:17:32 (Pacific Standard Time, UTC-08:00)
Roi paul question number one is awesome!!! I saw so many "consultant" minimizibg the importance of tech aspects and how many failing project due to requirements gathered from those "consultants"!
Gianluca
2011年2月17日 12:18:01 (Pacific Standard Time, UTC-08:00)
Am I the only developer that doesn't know everything? Most of these questions I have no clue the answer. Or are programmers just so "smart" that we expect every developer to know everything? 

I consider myself a very good developer. Maybe I'm just not "senior" enough...

How many of these questions would you expect a candidate to answer correctly?

2011年2月17日 12:18:45 (Pacific Standard Time, UTC-08:00)
Scott,

The projects after the name may be good for a role like this, but for someone just starting out it's going to be a little difficult. :)

Another pretty horrific question I got today was basically, the interviewer wrote some code on the board, and I basically had to describe the state of the stack and the heap after each line of code. I guess to demonstrate an underlying knowledge of the technology. 

How many people would actually be able to do that, without having to read up to refresh their memory first? Genuinely curious.

Andy
2011年2月17日 12:19:03 (Pacific Standard Time, UTC-08:00)
Many of these questions are so abstract that it's hard to say whether they predict actual job performance. I can answer most if not all of them, but I never encounter them asked in such an open-ended fashion in my daily work. 

I second the vote for giving them a keyboard and actually watching them program. Pair program, if possible.

Failing that, hand the candidate a printout of actual code, in a language she'll be working in if hired. Have her code-review it. You can seed it with a range of problems: say, unchecked nulls, uninitialized collections, publicly mutable fields, to more subtle and arguable things like a function with multiple exit points, or a call to a virtual member from the constructor.

Also, even though I'm mostly against definitional questions in interviews, I'd expect a senior dev to be able to define cyclomatic complexity.

2011年2月17日 12:19:46 (Pacific Standard Time, UTC-08:00)
Ian - A number of those initial questions are described in Uncle Bob's book 
Agile Principles, Patterns, and Practices in C# which I believe is a updated version of Agile Software Development, Principles, Patterns, and Practices originally written for Java. I would strongly recommend Agile Principles, Patterns, and Practices in C# as a good read if you do object oriented development. Even if you have been doing OO for some years I have found it a good as a reference book to go back to occasionally and get refreshed on the concepts.
2011年2月17日 12:19:48 (Pacific Standard Time, UTC-08:00)
Another one that I think you might appreciate:

"Tell me about 3 times you failed"

:)

Rob Conery
2011年2月17日 12:21:29 (Pacific Standard Time, UTC-08:00)
@Jonmichael - That book is actually sitting on my nightstand. It has been very helpful and I actually found that I already knew some of the concepts, just not their official names. It was also enlightening to see how similar Java and C# are. I've found there are many more resources that focus on Java rather than C#.
Ian
2011年2月17日 12:22:17 (Pacific Standard Time, UTC-08:00)
@Steven Thanks for the recommendation. That book is ordered and on it's way.
Ian
2011年2月17日 12:23:37 (Pacific Standard Time, UTC-08:00)
@Mark Knell - I like your style however a lot of those issues are basic programming issues. As I type that I had a thought that these are the majority of the problems that riddle our software. Sometimes I feel that we (programmers) forget some of the basics because it's "boring".
2011年2月17日 12:27:48 (Pacific Standard Time, UTC-08:00)
What do you do to stay abreast of the latest technologies and tools?

Do you read other peoples code on a regular basis? What is the last open source project you read?

What is your preferred programming language/platform? Why do you prefer it over others? Also, what don't you like about that language/platform?

What is the last programming book you read?

If you were required to look into and learn about a new platform/technology/language to get an understanding of what it would take to get the dev team started with it, what would you do?

--
Who really cares how much someone knows, if they don't do much to keep learning more? You also need to get an idea of how they think or approach a problem.

2011年2月17日 12:36:02 (Pacific Standard Time, UTC-08:00)
Don't look at these questions as interview questions. For developers not looking for a new gig, this is a great post to brush up on those ideas that you don't know, or may have forgotten.
2011年2月17日 12:39:01 (Pacific Standard Time, UTC-08:00)
If all of those questions are related to .Net developments so I'm not a developer :) are we getting the answers soon?
2011年2月17日 12:39:27 (Pacific Standard Time, UTC-08:00)
Yikes, looks I need to do my homework. I'm not able to answer a handful of these and I consider myself a senior developer. I've got 2 MCPD's and have written for MSDN magazine.
2011年2月17日 12:39:42 (Pacific Standard Time, UTC-08:00)
Good questions! How about this one to get a conversation going.

Describe to me some bad code you've read or inherited lately.
Can you describe some code smells? 

2011年2月17日 12:40:51 (Pacific Standard Time, UTC-08:00)
Scott...

>What's the difference between Locking and Lockless concurrency models?

I assume you are asking about Optimistic and Pessimistic concurrency here? If not, what is that above... I don't think I've heard those terms... I pretty much "think" I could give pretty good answers for all of the rest.

BOb

2011年2月17日 12:42:45 (Pacific Standard Time, UTC-08:00)
It's a problem with neither participant, rather it's a problem with (some of) the questions. They don't test what you really value, which is the ability to write good code, and to make good design choices in the moment. Not whether they know the methodology acronym of the day. It's a difference between knowing and doing, between being an advanced novice and being an expert. On the other hand, these are likely to be the questions he will face, so it's good for him to be ready for them.

BTW, I find Singleton to be the most often quoted (and usually misapplied) pattern. Interesting that you zeroed in on Factory.

In addition to interview practice, which is a good idea, I'd advise your friend to get busy with a project (possibly open source). It will keep his chops up, and is a great opportunity to learn something new. It also makes a fantastic story to tell a potential employer (and would provide a good context for answering these kinds of questions).

Dave
2011年2月17日 12:45:16 (Pacific Standard Time, UTC-08:00)

Describe a pattern that is NOT the Factory Pattern?

9 out of 10, when I ask for known patterns, I get Singleton and Factory, and only these two. Usually without the distinction between Factory Method and Abstract Factory.

2011年2月17日 12:46:33 (Pacific Standard Time, UTC-08:00)
Describe an interesting problem that you solved recently. What ideas and considerations did you personally bring to the solution? I find this is a good springboard into areas where the candidate will be able to talk passionately and avoid just fumbling with buzzwords.

What is deferred execution? What role does it play in stateless/stateful systems?

Describe a situation where contract first design is beneficial. Discuss a situation where it is not.

When should a server technology dictate storage mediums? When are there good cases for a client to specify how/where/when their data is stored.

Great thread. Thank you so much for starting this.

2011年2月17日 12:46:57 (Pacific Standard Time, UTC-08:00)
Yes sure for your friend.. :)
Edward
2011年2月17日 12:51:37 (Pacific Standard Time, UTC-08:00)
I think more important than the question is the context in which it is applied. Asking a laundry list of questions is more an exercise of endurance than a conversation between two developers. I prefer conversation, so when I interview a developer I send him to the board and ask him to describe the architecture of his last project.

With that framework in place, both the developer and I get to talk about principles and patterns in a more meaningful way. The developer gets a chance to show me what he knows in a practical manner. More importantly, I get to see how the developer communicates on his feet.

2011年2月17日 12:58:27 (Pacific Standard Time, UTC-08:00)
I thought I was a decent .NET developer, but a good number of these questions will cause me to resort to googling! Any way to get some short answers to them posted in a future blog?
2011年2月17日 13:01:51 (Pacific Standard Time, UTC-08:00)
It's scary when you know the answer but not the terminology that is being used in the question.

That said, I might ask:

- Left to your own devices, what would you create?
- What elements of OO design are most prone to abuse? How would you mitigate that?
- Why might it be bad to "burn the base class"?

2011年2月17日 13:03:39 (Pacific Standard Time, UTC-08:00)
When do you know your code is ready for production?
2011年2月17日 13:04:23 (Pacific Standard Time, UTC-08:00)
while these are good questions..... they all stem from very similar schools of thought. Very "Uncle Bob" like questions. They are very "pop" soft dev stuff. So if you are a fashionable geek, you'll have no problem with this stuff.

But my problem is, you can know all this stuff and still suck at writing software.

In fact it can make you suck even more at writing software...... implementing massive n'tiered, pattern bloated, acronym compliant, software. Adding 1 tiny thing can ripple through lots of layers of software and it becomes *slow* to do anything. TDD tests that just test layers and layers of CRUFT. Kool Aid frameworks. Hopeless.

2011年2月17日 13:06:19 (Pacific Standard Time, UTC-08:00)
It seems like some people are upset that these questions are too "vague", and don't have enough technical detail. I think that these people are missing the point. These should not be asked *instead* of specific technical questions or coding checks, but rather in addition to.

I have a very different expectation of a "senior" or "lead" developer than I do of an entry-level one. I expect that a senior dev has an ability to interact and communicate with others. I expect that they do things in a given way for a reason, and that they are analytical and reflective enough to tell me why. Open-ended questions with no clean-cut correct answer are perfect for evaluating these things.

Furthermore, conceptual questions about practices and trends help to reveal where a person's motivation comes from. Are they learning in response to the immediate needs of their day to day work? Or are they going beyond that and investing in themselves by stepping outside their comfort zone and immediate environment? Are they hidden away heads-down in a corner grinding alone on all their challenges, or are engaging with the community to find new and better ways of doing things?

I expect a senior dev to do more than just sit there and write code. I expect them to think, reflect, be aware, communicate, and invest in themselves. Candidates for such positions should absolutely be asked questions that foster a conversation where they can illustrate those skills and values, or fail to do so, as the case may be.

2011年2月17日 13:07:10 (Pacific Standard Time, UTC-08:00)
- What processes should every project have in place?
- What value do daily builds, automated testing, and peer reviews add to a project? What disadvantages are there?
- How can you mitigate technical debt?
2011年2月17日 13:07:23 (Pacific Standard Time, UTC-08:00)
@Bobby Cannon Thanks. I agree, my examples were not especially challenging as code. But my philosophy is, they don't need to be. You can tell most of what you need to know about the candidate from how she talks about fairly mundane code. Does she struggle to find any flaws at all without the aid of a debugger or an IDE plugin? How does she express her opinions? Does she understand more than one point of view--is she at least aware that reasonable people disagree about, say, early exits from functions? Does she have a sense of various schools of thought--say, mockist vs classical tests, or functional vs OO idioms, or declarative vs imperative style? Is she likely to be able to propagate her knowledge to junior devs? Will she be able to articulate her opinions in a team code review or architectural discussion? Does she listen to your suggestions? Will you enjoy collaborating with her? Does she seem committed to team development? If you mention something she hasn't encountered, is she curious about the new idea? Is she conscientious, disciplined, and systematic, or will she make a mess for someone else to clean? Is she creative but able to work within team contraints? Is she a relentless problem solver? I'd weigh any ONE of these factors more heavily than her knowledge of any given pattern, tool, or even dev stack. The laundry list of facts is just a starting point for assessing the knowledge worker you're going to choose as a colleague. I want a glimpse of the candidate's mind, not a vocabulary test.
2011年2月17日 13:11:44 (Pacific Standard Time, UTC-08:00)
It seems there are a fair number of people asking for answers to these questions. What about setting up a wiki where we can post these questions along with brief answers and links to more reading. Personally, I feel I did quite well with these questions, but it would be nice to "check the answer sheet" and make sure I'm not off base. If enough people are willing to contribute answers, I'll set it up.
2011年2月17日 13:16:49 (Pacific Standard Time, UTC-08:00)
I'm only a couple of months out of university and I immediately knew the answers to all but a couple of those questions. I'm a design geek and I wish junior dev interviews were that straight-forward. I find this high-level stuff much simpler to grok than the nitty-gritty technical details we get asked in junior dev technical assessments.
2011年2月17日 13:19:56 (Pacific Standard Time, UTC-08:00)
@ Jeff Yates

"- Left to your own devices, what would you create?"

Now THAT is a hard question. That's a cert for mind-blank syndrome.

Andy
2011年2月17日 13:20:33 (Pacific Standard Time, UTC-08:00)
I always like to ask candidates about their favorite dev tools. NOT just the ones they've used, but the ones that they really like on a gut level. And after they've gushed over some features, I ask them to tell me what, if anything, they dislike or would change about those tools.

If a person can't tell me why they like a certain tool, then I don't think they have much experience using a wide variety of tools. If they can't tell me what they dislike about a certain tool, then I don't think they've really spent enough time using it.

Kelly
2011年2月17日 13:28:22 (Pacific Standard Time, UTC-08:00)
I find job postings and

【上篇】
【下篇】

抱歉!评论已关闭.