> “Feigned surprise” (when someone gasps and says something like: “you don’t even know about monads?”)
Too often the surprise is real. There are developers who do not know basics such as loops, conditions, arithmetic and so on.
I use Java for a long time, but I have problem writing 'switch' statements. In Scala it is very powerful so I use it often, in Java it is too primitive, so I always just use bunch of 'if-else' statements.
I am not sure what context of previous example applies to. It could be on someone who claims Haskel skills. But I think every well educated hacker / software developer should know about nomads.
I have this unhappy experience every day, when I find people don't know things that are essential to doing their jobs. I try hard not to let it show too much or fall into the trap of acting superior, but the soul-crushing depression makes this hard.
The more I learn, the clearer it becomes that I know very little. Things that I used to know fade away - a few years out of college, I can't do matrix maths anymore.
Software engineering is a big job. Software engineers might know about assembly code, pointers, design patterns, UML, functional programming, algorithms, AI, statistics, reverse engineering, driver programming, SQL, NoSQL, matrix calculations and numeric simulation, control theory, cloud scaling, devops, unit testing, XML schema design...
Then, if you think about the things outside programming an engineer might need to know, like marketing, sales, budget control, estimating, project management, user experience design, graphic design, human psychology. And the domain they are working in of course.
That's a lot to know. Even the basics. I don't know the basics of a lot of those things.
Doesn't meeting all these people who don't know things make you wonder what you don't know that you don't know?
Of course I don't know everything. But the stuff I don't know is irrelevant to my job. If you join my team, I expect you to know everything relevant to your new job, not whatever trivia you might have found amusing elsewhere.
But I think every well educated hacker / software developer should know about [monads].
Forgive me if I'm reading into this too much, but this sentence sounds a little judgmental. I don't understand this mindset. People are always going to learn things at different times. Why not be supportive and helpful instead?
I could empathize a little more if we were talking about fizz buzz or something. But it's not like monads are essential to building great applications. Aren't monads mainly a popular tool in functional programming land? Most developers are not functional programmers.
Monads are probably biggest thing which happened in functional programming in past 20 years. It actually made functional programming relevant. And basic FP is must have for most modern languages. And monads are relevant for actors, event driven frameworks and so on. So yes, any advanced developer should be aware of their existence (to know about).
Secondly most developers are lying about their experience. When I interview someone who claims FP knowledge but does not know about monads, I may sound little condescending . The same applies to CS academic degree. Obviously this does not apply to beginers.
And finally it is totally normal to judge people based on their knowledge. People are expected to know things unrelated to their lives all the time. For example I have zero knowledge of hollywood actors, and people judge me because I do not recognize some George Gloomy guy by a face.
>But I think every well educated hacker / software developer should know about nomads.
Your typo? makes it easy for anyone reading this to put themselves into the shoes of a person not knowing something that they think they are supposed to know.
Students come to college knowing how to add, subtract, and multiply. They can't divide, do fractions, or percentages, but at least they can add, subtract, and multiply.
Too often the surprise is real. There are developers who do not know basics such as loops, conditions, arithmetic and so on.
I use Java for a long time, but I have problem writing 'switch' statements. In Scala it is very powerful so I use it often, in Java it is too primitive, so I always just use bunch of 'if-else' statements.
I am not sure what context of previous example applies to. It could be on someone who claims Haskel skills. But I think every well educated hacker / software developer should know about nomads.