- Tell me the 3 worse defects of your preferred language
- Why is there a rising interest on Functional Programming?
- What is a closure, and what is useful for? What's in common between closures and classes?
- What are generics useful for?
- What are high-order functions? What are they useful for? Write one, in your preferred language.
- Write a loop, then transform it into a recursive function, using only immutable structures (i.e. avoid using variables). Discuss.
- What does it mean when a language treats functions as first-class citizens?
- Show me an example where an Anonymous Function can be useful.
- What is Dynamic Method Dispatch? [A]
- There are a lot of different type systems: let's talk about static and dynamic type systems, and about strong and weak ones. You surely have an opinion and a preference about this topic. Would you like to share them, and discuss why and when would you promote one particular type system for developing an enterprise software?
- What are namespaces useful for? Invent an alternative.
- Talk about Interoperability between Java and C# (in alternative, choose 2 other arbitrary languages)
- Why do many software engineers not like Java? [A]
- What makes a good language good and a bad language bad? [A]
- Write two functions, one Referentially Transparent and the other one Referentially Opaque. Discuss.
- Whats the Stack and what's the Heap? What's a Stack Overflow?
- Why is it important that in a language functions are first class citizens?
- Some languages, especially the ones that promote a Functional approach, allow a technique called Pattern Matching. Do you know it? How is Pattern Matching different from Switch clauses?
- Why do some languages have no exceptions by design? What are the pros and cons?
- If
Cat
is anAnimal
, isTakeCare<Cat>
aTakeCare<Animal>
? - Why in Java, C# and many other languages constructors are not part of the interface?
- In the last years there has been a lot of hype on Node. What's your opinion on the use in the back end of a language that was initially conceived to run in the browser?
- Pretend you have a time machine and pretend that you have the opportunity to go to a particular point in time during Java's (or C#, Python, Go or whatever) history, and talk with some of the JDK architects. What would you try to convince them of? Removing checked exceptions? Adding unsigned primitives? Adding multiple-inheritance?