|
Goonamatic posted:Im currently interviewing. This is very addictive. As for things I look for when I interview people... I look for people who are good problem solvers. Maybe they don't know how to solve a particular problem, but I enjoy listening to their thought process while they are thinking of the problem, even if they get it wrong. I don't care if someone has a degree or not, but they should have knowledge of algorithms, data structures, etc (things that are typically included in degree coursework). Specifically, I mainly interview for .NET positions, so I also look for people who are staying up-to-date with the latest framework. Things like Linq, MVC Framework, etc. Maybe they haven't used these in a practical setting, but it shows that they are interested in development and are at least staying abreast of the newest technologies. Here's a scenario that'll fail someone immediately and I always screen with it... Q: What type of collections do you use most? A: Array, ArrayList Q: What is a Generic List? A: (vague, uncertain response) This tells me they're stuck in .NET 1.1 and speaks worlds about their coding habits and standards. I also want to reiterate the fact that I'd rather you say "I don't know" to a pointed question, rather than spew bullshit. It's a waste of both our time. An exception to this would be answering an open-ended question or theoretical problem. For example I may ask something like this... Q: What is the difference between a clustered and non-clustered index? A: Clustered indexes are stored sequentially on disk. If they don't get this right (or tell me they don't know), I'll tell them the answer, and then ask... Q: How many clustered indexes can you have on one table? If they didn't get the first question right, then they should at least be able to deduce the answer to the follow-up based on the answer I gave them (ONE). A more advanced question to test problem-solving skills would be... Suppose I have an Employee table with EmployeeID (guid, PK) and Age (int). Based on use-cases, I know that I will be selecting employees based on "where EmployeeID = X" or "where Age between A and B". How would you index this table? I'm looking for someone to think to themselves "well, if we're selecting a range of values based on Age, then I should cluster the Age index on disk to reduce I/O time". Hence, you would create a clustered index on Age and a non-clustered index on EmployeeID. For what it's worth, most people get this wrong. However, if someone were to tell me they don't know what a clustered index is, and they're able to think through the follow-up questions based on my answer, then they are automatically on the top of my list because they've demonstrated that they can pick up and apply knowledge quickly and accurately.
|
# ¿ Apr 20, 2011 17:10 |
|
|
# ¿ May 4, 2024 18:18 |
|
baquerd posted:I think a better answer would be "show me your use case data", but that's just me. Perhaps you only select on Age once a month but do many selects and joins on EmployeeID daily. I disagree, but I'm open to discussion on it. If you're scanning an index for one id, why would the database perform better when the record data is stored sequentially, being that the index is simply a pointer to the location of the data? The only valid argument in my opinion is a performance hit when inserting and updating records, but for the purpose of demonstration is ignored. Thoughts?
|
# ¿ Apr 20, 2011 19:49 |
|
Kruzen posted:I was in a similar situation at 16, but had the fortune of getting into programming projects while I was bottom-rung in the helpdesk. I quickly found that it was what I really enjoyed, and went to school to get a CS degree. The salary range depends a lot on your location and whether you're looking at an industry job or consulting position (consulting pays a bit more, but you may run the risk of traveling). I think the web technology really just depends on your preference. There are a ton of companies on the Microsoft platform, so .NET (C#) is always hot, but at the same time, the market is flooded with .NET developers who are average at best. As for a web development platform, what kind of system administration do you do? If you're typically working in a Linux scenario, you may prefer to use PHP. If you're doing Windows/IIS, your best bet is go for .NET MVC (C#). I don't think you're crazy for wanting to get away from IT (but this is coming from a software guy). I think the main thing should be... do you think you would enjoy software development as much, if not, more than your current line of work? Your safest way to make the transition may be to start trying to pick up some projects at your current company, and try to shoehorn your way into a title change. Then use it as a launching pad into another company. The title change at your existing company won't earn you a huge salary increase, but the lateral move to another company is where you can see the jump in pay. Another option would be to just start learning the crap out of this stuff on your off-time, then try to make the jump (may be quicker). Anyway, that's just some food for thought.
|
# ¿ Apr 20, 2011 20:07 |