I decided to learn python recently. Going through the usual motions of starting with variables to moving to loops, something did not seem right.
This exercise was not fun. So I said screw it, I want to build a tictactoe game in Python.
https://github.com/hvd/TicTacToe-Python
The rest followed. It was hard no doubt having to learn new paradigms, but having a clear goal in mind helped in gathering the relevant information.
I think a massive shift is needed in how we learn from kindergarten right to grad school and even later in life. Learning by doing is certainly the best way in my opinion. Yet, that is not the way we think natural.
Think about it, how did you come to speak the language that you do today? Did you learn by first learning the theoretical basis and the grammer or by listening and being absorbed in an environment that literally leaked that language (your family).
Building a simple game like TicTacToe taught me valuable lessons.
1. Rome was’nt built in a day, the same goes for software.
2. Gaining skills takes time, Be patient.
3. There is great joy to be gained from building something from scratch and that in itself is reason enough to do it.
4. This is a form of deliberate practice. Pushing yourself beyond what you can do currently is deliberate practice. Building something that you havent yet will invariably involve some aspect that will push your limits.
I still haven’t decided what I will build next. I would love to know what you have built recently?
p.s While building something is natural for programmers, architects, carpenters… There will be analogous situations for people in other professions when equated with deliberate practice. Remember 10000 hours is the magic number to hit.
Cheers!