For a .net developer is it normal not to know what an abstract class is? I interviewed someone today that didn't know, and a colleague told me it wasn't that unusual.

To me this is the same level as knowing what an interface is

  • 2
    bruh what
  • 5
    That's not very normal imo.

    Anyone using c# for longer than a few months should know tbh
  • 8
    It depends on what they have been doing.

    For any senior to not know would be unusual I would say, but for a junior it would not be so strange.

    Unless your working a bugger project or with libraries, odds are that you never had to write one or really needed to care for what they are.

    Not many of my projects contain an abstract class, but usually quite a few interfaces.
  • 6
    @Voxera I just feel like software developer is a profession, anyone that doesn't know the basic constructs of the language they write in full-time doesn't seem serious to me. Maybe a junior.
  • 3
    Knowing the name of a Thing, and actually knowing how to use it - are two totally different.

    Ever tried explaining Reflection to someone? Have you actually used Reflection for something?
  • 3
    @magicMirror yes, to cheat a coding assignment.
  • 0
    @magicMirror yes I have several times... I just don't remember why
  • 2
    I've always been shit at remembering and explaining things that I infrequently use on the spot (virtual methods, abstract classes etc). But when I write code and need a particular behaviour I know there's something suitable for it, just not exactly which one.

    I don't know why, I think it's because I don't sit down and reflect on stuff, read up about it and store it in my brain properly. It's more like "I need a base class that can't be instantiated... wasn't that an abstract class or something.. oh yes, bingo!" and then straight on to coding without looking back.
  • 0
    @devdiddydog Yeah, it also doesn't help different languages call similar constructs different things. An interface to me sounds like a pure virtual class in c++. Not even sure if I am getting the name right for c++. But the goal is to provide a blueprint for the interface. I am sure those meanings are going to mean different things in other contexts too.
  • 0
    @Demolishun Apparently an interface is c++ is an abstract class:

  • 1
    @Crost sure, but abstract classes is not necessary in most cases.

    They help make more reusable and cleaner code when used correctly, and a horribly abstracted mess when abused ;).

    Sealed is a similar thing that also is rarely used and many c# devs probably have never used.

    Or the ThreadStatic attribute for variables that should have different values per thread but shared among instances :P
  • 0

    ThreadStatic and ThreadLocal I know of but have never used, I've never seen that used by anyone else either so it wouldn't surprise me if people don't know that.

    The rest though like abstract, interface, access modifiers, virtual, the type system, reverence Vs value types are common. This isn't just a job you grab someone off the street to do and tell them to just figure it out as they go... A junior fair enough, but otherwise jesus read a book if it's supposed to be a career.
Add Comment