"Why bother learning theoretical things when all you want to perform is code?"
Image Source
To a lot of individuals, computer science is equivalent to computer programming; thus, once they go to college and major in computer science, they are stored to find that they need to take mathematics and theory subjects too! Why bother learning theoretical things when all you want to perform is code?
To begin with, knowing the theory right behind computers indicate that you have a much better concept of what they can and are not able to do, and in the length of time. if you need to design a regular expression, for instance, it will be quicker to sit down and knock one off in the event you know how a finite automaton functions. If you cannot locate an effective algorithm for fixing a dilemma, isn’t it much better to know how to find out if this kind of algorithm even exists?
Image Source
In the years I expanded operating the Unix lab in the computer science department at St. Michael’s College of Iligan City, I frequently assisted undergraduates who had been great programmers but had no clue how to fix problems. They did not need assistance with the program code, however, they did not understand how to take a seat and work out the issue in writing to find out how to go about fixing it.
Image Source
I observed exactly the same thing when I interviewed with Google; the issues they provided me to fix had been quite simple, however, the recruiter informed me that I was to get through them. While I could take the issue and rapidly write an algorithm, to fix it, then program that algorithm, a lot of people should be informed precisely how the program they required to compose works.
References:
https://stackoverflow.com/questions/235394/when-is-theoretical-computer-science-useful
https://www.quora.com/How-is-theoretical-computer-science-useful
https://cstheory.stackexchange.com/questions/1562/why-go-to-theoretical-computer-science-research
I think the theory is very good but you want to include the theory in a simple way along the practical aspects. Students want to see progress and their progress is what motivates them to learn more. So if you start a computer class and the first 10 hours you only do theory and boring stuff, nobody will pay attention. But if you start with the Hello World in the first class and work to explain how it works and why it works and then in the next class you explain the theory it always works better.
It's how the brain is incentivized to learn. Great progress in the shortest amount of time.
So theory is very good, but the educational system needs to be even better structured as to allow learning and fun and a sense of progress.
Very good points you made!
Update: And I heard the "Why bother learning theoretical things when all you want to perform is code?" every single time I spoke with a new student coming to an interview.
They come hand in hand. :)