In class today we were having going over time and space complexities, which is a topic that I am sure everyone has had a moment to think about why would it matter? At least it did for me.
Then I thought back to about a couple years ago when I was playing around with a recursive Fibonacci sequence. I was inputing larger and larger numbers and began noticing that it was taking longer and longer time for the compiler (or interpreter) to provide a solution. With my curious mind I of course researched a better way to solve it. I discovered a topic of memoization that was best solution to optimize the recursive calls and once I implemented these kind of solutions that it was like magic and the output was immediate.
Next, I was thinking about a saying "The computer is only as smart as the user" and I began thinking that it's true in a sense. As I continue my journey into development and I solve all these problems, I am trying to motivate myself into the reason behind the point of learning all of this, the more and more I have been coding it goes back to the fundamentals of computer science and I am beginning to think that a computer, at its very lowest level, has a learning disability and as a developer we are the teachers.
This is not meant to disturb or offend anyone with a learning disability. I have my moments. I am envious of those that can just understand things the first time and grow their knowledge. I genuinely can relate to those who have to take just a little bit more time to understand some things than others.
This lead into the topic of my discussion. Do computers have a disability? I thought it was very interesting that we have devices and technology that is orders of magnitude greater each and every year, the compute power that we have now is far superior than we had say 5 years, 10 years, 50 years ago. Yet, there seems to be something in the code, or the underlying structure of a CPU that still struggles today than when the first computer as we know it was invented.
I find it interesting that as a developer, we are like teachers trying to teach a student with a learning disability. I am being motivated with the idea that if we are teaching these students i.e (a computer) in a way that is just confusing and not in just the right specific order, that it is just a hinderance to the effectiveness of how that student has the ability to solve a problem!
If we can figure out how to teach that computer in just the right way, its like a light bulb goes off in their head and they can grasp the problem and solve it immediately! With my computer being a center around solving my problems, I gotta come up with ways of how to best teach my computer how to get past these learning hurdles that it faces. Also, it then increasingly becomes aware to me the responsibility that we are developers then take on when releasing software that other people may use. I can think of a scenario or two that it might be a good idea if we as teachers, as developers are coming up with the most innovative ways to be teaching these students of ours, and maybe when to recognize when we are not teaching them the best way possible?
This was just a little thought that came to me in class, and I have spent just a little more time writing this than I probably needed to. If you got this this point of the reading I thank you for your time, and would appreciate it if you left a comment of your thoughts and motivation behind this and please, be critical, be convincing, I can only learn from my mistakes, and continue my journey of development and hope that you do to!