Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Friday, July 6, 2012

Important Programming Topics That Don't Often Come Up in Job Interviews

Been thinking on and off about job interviews lately, and realized there are several important topics that don't seem to come up very often. Thought I'd make a list.

  • Threading
  • Recursion
  • Memory management
  • HTTP lifecycle (requests, sockets, threading, etc.)
  • Framework architecture
  • Time systems (UTC system, time zones, etc.)

Of those, I occasionally get questions on threading, recursion, and memory management. When memory management comes up, it's usually in reference to algorithm performance and memory optimization (e.g. hash vs. red-black, arrays vs. linked lists, etc.). Which is important, but there's a whole lot more to memory management, like garbage collection, memory leaks, etc.

I've been a Java web programmer for 12 years but NEVER been asked to describe how HTTP works. I've never been asked about sockets, request threading models, or even about application vs. session scope. I've also never been asked to describe how Hibernate, Struts, Spring, or any other framework actually works. I have been asked how JSP's work. But I've never been asked about Java servlets, filters, or authentication.

And while every programmer eventually has to deal with time systems and time zones, no one ever asks about them. I'm constantly amazed at the number of devs who think it's a good idea to simply compare timestamps without consideration of time zone, DST, leap year, leap second, etc.

I can certainly see where a junior or even a mid-level developer might not have much depth in any of these areas. For the kind of work they're doing they don't need it. But I think it would still be good to bring these topics up in every interview, if only to learn whether a younger dev might have some hidden talent.

I would expect senior developers to have mastered at least two of these topics, and to be familiar with all of them. No individual will know everything, but I'd hate to hire a senior dev that couldn't at least talk intelligently about each topic. A senior dev doesn't just design, code, and test, but also mentors younger devs. They need more than just "tutorial" knowledge, they need the first principles as well. Or at least know where to find them ;)

Thursday, January 20, 2011

Eclipse Command Shortcut

Wow, long time no post.

Just ran across something very cool in Eclipse: Ctrl+Shift+L pops up a list of editor commands, displaying the shortcut for each. Handy way to recall those hard-to-remember commands (like Shift-Alt-Z).

Friday, April 17, 2009

UML on Linux

Why is it so hard to find a decent UML diagram tool for Linux? Dia is difficult to use. ArgoUML's class diagram is okay, but I can't for the life of me figure out how to add a type to objects in the sequence diagram. And it's unhelpfully weighted down with namespaces, named collaborations, and packages. I don't care about that stuff, I just want to draw a simple diagram.

Visio isn't that hot either, but it used to be, before MSFT got their mitts on it. Why can't I have something like that? I suppose it's because I haven't written it for myself yet.