Clean Coder Challenge

I’ve just finished reading Robert C. Martin’s “Clean Coder”. It’s logical sequel to “Clean code”. He’s telling much more stories from his past and imaginary conversations to emphasize what is in his opinion is to be Software Professional.

Some technical concepts are familiar from the past - SOLID, testing, FitNesse, some are new, and, in other fields - time management, estimations, team work etc.

One of the advises Robert gives in his book is “Know your field”. I can’t disagree - practicing engineer should definitely know what he/she are doing. I learned Basic and Pascal since age of 10 (also Delphi on my own), c at 16, worked with SQL and databases around age of 20, finished a B. Sc. in computer sciences, had experience working in tech support, IT, and as developer. I learned Scala from Martin Odersky’s course. I read the news and try to play with new technologies. And than next paragraph kicks me off the chair:

Do you know what a Nassi-Schneiderman chart is? If not, why not? Do you know the difference between a Mealy and a Moore state machine? You should. Could you write a quicksort without looking it up? Do you know what the term “Transform Analysis” means? Could you perform a functional decomposition with Data Flow Diagrams? What does the term “Tramp Data” mean? Have you heard the term “Conascence”? What is a Parnas Table?

Oh, I can write quickSort. I remember that from CS 101. I learned about Mealy and Moore machines - difference in values above the arrows - whether they are there or not :).

But others - I had completely no idea.

How many do you know, without looking in wiki? (that’s what I’m going to do after finishing this post)

Hey, I’m trying to be professional here after all.