The Science tool for all your problems
Face the facts. Many people working in IT right now never planned working in IT at all.
Human resource managers, artists, upcoming rap gods, quality testers, probably most office cats, business accountants. None of them wanted anything to do with nerdy computers.
Filthy nerds, watching Lord of Ring and Chinese cartoons — oh wait
Suddenly, at some point everyone noticed the dollar signs, checked whether they’d meet Macan leasing threshold, then quickly decided to board the programming ship and started learning.
I think it’s great, actually. Different points of view, different experience, different approach. Mix it all — profit for all.
But there got to be drawbacks to that, there always are.
Converted developers never went through the adventure of computer science studies (or any science studies).
That greatly limits knowledge.
They don’t know how to multiply matrices, or how to add complex numbers, or what happens if you drink tequila whole night forgetting about sufficient hydration.
Word about usefulness of university
First of all, matrix manipulation will never really be useful to you, with few exceptions not worth mentioning. Things like this are just too complex, hard to explain and maintain (which truly hurts my feelings, I was the weird kid who found matrices kinda cute.)
Second, most of computer science doesn’t apply to corporate programming. It does apply to hardware and research, but not to button colouring and databases (not even sorry.)
What useful do computer science studies teach?
Primo — that for every question, answer “It depends.” is a completely valid answer.
Secundo —
Interpolation
Interpolation is science equivalent of “divide and conquer” (saying your mom probably taught you when you wanted a holy empire, but older kids didn’t let you.)
Long story short. When science people want to work with a line that is continuous (i.e. unbroken) and twisty, it is very hard (see picture below.)
Math of straight lines is much simpler than math of twisty lines (did you even see the picture?)
So science people noticed that if you use just a few points from the curvy line, and connect them as if you were 9, you get a close-enough approximation of the curvy line. And they are all straight lines now.
I just described 4 years of calculus studies in one paragraph, you are welcome.
And why would you care about interpolation? There are a few important lessons it teaches.
1. Stop looking at the big picture
What would you do if someone told you to build a computer? From nothing, including manufacturing.
There is only one answer to this. It is very unlikely, even for those most knowledgeable, to understand how the entire computer works at once (that’s why we built computers in the first place.)
So what does the computer consist of? Well — processor, motherboard, memory, applications. All very complex things.
What does the processor consist of? Well — some plastic board, transistors, some logic. At least plastic part sounds simple. Silicon is quite cheap these days.
So if we’d had the board and made some simple transistors, what about the logic? You would be amazed how simple it is — in fact so simple people build it in Minecraft.
Now let me stop there. It was just an example, don’t go building computers just yet.
The point is — if you look at the problem as “going from A to B”, with no stops in-between, you are unlikely to get there.
Applies to programming. Any kind of system. Any industry.
When faced with complexity — don’t panic, simplify, and pretend to know what you are doing.
2. Don’t be too eager
Hint to the previous hint. When dividing problem into smaller issues, don’t overdo.
Simplify problem only if it makes sense. The moment you know what to do, stop.
If you go too far and divide a complex problem into hundreds of small issues you will create a new problem for yourself. Exhaustion.
Imagine you are a painter. You have an amazing artwork in mind, beautiful landscape, very breathtaking. You decide to go step-by-step on it. Infinitely small steps, each executed with equal detail and dedication.
You will run out of stamina by the third pebble or rock in the corner of the painting.
They will possibly be the most beautiful pebbles or rocks ever painted. But they are just pebbles. You lost all your energy, and you are not even close to the main part of the painting.
Divide into smaller steps only if it makes sense. Human perception is limited and, at some point, others will not even notice your attention to detail and complex approximations.
(You’d think it is obvious. But I am not taking that risk. Seen too much.)
3. Apply to anything
Yes. Points 1 and 2 apply to pretty much any complex task.
“You said that just to make it relatable to a wider audience.”, you may say.
That is correct.
But I also said it because it is true. Project management. CSS keyframe animation. Responsive design breakpoints. All these, and more, have it in common.
You get much better and faster effects if you break down the complexity into smaller steps. Smaller, straight lines, that in the end take you from start to finish (exactly how to divide different types of problems into smaller steps is a matter for another read.)
Nerdy note
If you enjoy learning, feeling smart, or simply like nice pictures, do yourself a favour and read through Interpolation and Animation In-Betweening.
Not only you will see a great application of interpolation, but also find out a bit about making imperfect approximations appear much smoother than they are in reality.
As I like to say, as Stephen Hawking once said, as someone said to him — for every equation (or mention of math, I presume.), audience is reduced by half.
So if you did get to this point, know that I am proud of you. Probably not many did.
That is all for now. Although I do hope to return to this in the future. Especially to the real-life applications of maths in development projects (it is not as common as some would believe it is.)
Thank you for reading. I hope you learned something today, or at the very least enjoyed the pictures.
If you would like to add, remove, or otherwise modify any content of this article, feel free to reach out below or on @thefrontendcat twitter. I can’t promise to reply to any or all of the comments, but I do read them all.
TheFrontendCat | WTL Studio
Checkout these completely unrelated reads I like as well (back-linking is tight.)