Monday, 2 November, 2015 UTC


Summary

I have to make a shameful confession.
Being a professional developer for 8 years now, I don’t know how to implement a quick sort. Or merge sort. Or whatever sort. I mean, I know the words, so I can try to make use of my brain and come up with some approach, but that attempt would probably fail. And when you start throwing these O(n), O(log n) things at me I would probably just roll my eyes ant try to disappear.
Now before you run to unsubscribe from this blog, let me try to explain what I mean by this, and why I really don’t care.
Let’s say that you’re hiring a developer for your super awesome startup. And I’m among the participators. The reason your company exists, is obviously making money. And whatever actions you do running it (including hiring engineers) have only one end goal — make more money.
Now if we try to make a logical connection between me as your engineer knowing, say, quick sort on one hand and your company making profit on the other, you might agree with me that this connection is not that straightforward.
Let’s say that working as engineer at your company at some point I have to sort an array. Well, this happens. How do I do this? Well, I just use the platform library I have. Why’s that? Because it’s old and it’s bullet-proof, and it was written by people 1000 times smarter than me, why would I not?
OK, what if I don’t have that awesome tool in my toolchain (we’re talking about some abstract “quick sort” here). What do I do? Google it of cause! Again, because smart people used it and tested it and fixed bugs in it, and they put it on the internet so that guys like me could use it.
I would even say that knowing how the quick sort works can be bad for an engineer. You know why? Because we like to re-implement existing things just because we can. And there’s nothing worse than a custom quick sort implementation.
Now there is a chance, that
-> knowing how merge sort works internally,
-> will at one moment help me to make the right decision
-> when solving a hard problem
-> that needs to be solved to make a feature “A”
-> that will attract some customers
-> who will pay for it.
(see, that connection is rather long)
Is this probability high? Apparently not. Are there skills that will more likely lead to your company’s profit. Obviously, yes. Should I invest my time in learning quick sort? No.
Good night.
P.S. You can tell me what you think of me in this HN thread.