We often compare life with a journey. I disagree on this one. One of the most relevant readings is from Alan Watts: he argues that "The existence, the physical universe is just playful. There is no necessity for it whatsoever. It isn’t going anywhere. That is to say, it doesn’t have some destination that it ought to arrive at". and he continues comparing life with music or dance because "You don’t aim at a particular spot in the room because that’s where you will arrive. The whole point of the dancing is the dance".
Now, I am not here to talk about the meaning of life, don't worry, but this short introduction was necessary, even if it's not exactly what I want to point out. "What in the world are you talking about then?!?!", you might be thinking. I am talking about coding, as per usual in the last few weeks, using this coding blog as an excuse to share other "lessons learned" from the last few weeks (I know you were (not) missing it) and to have a break from my final project which I started two weeks ago.
Talking about my project, yesterday I "finished" it. Why have I wrote finished like this? I haven't wrote it between quotes cuz it's a string (geek jokes, sorry for this...) but for another reason which is the main point of this post: coding and learning to code are not a journey (here we come back to the introduction), in the meaning that they do not have a destination. Let me explain myself better.
Here you can find the desktop version of my game "Pickyourword": https://pickyourword.herokuapp.com/.
Now, if you are opening this link with your mobile, you might think "seriously? It is kind of not good looking". No, it is not. I am conscious of that and the only reason why I said I "finished" my project is because I did the things I was planning to do, considering the time I had. This is a key point. When I finished my project and during it, thousand of things came out in my mind to make it better, I have pages and pages of new functionality to add in the next weeks but here I remembered what our teacher told us at the beginning of the course: the first thing is to make a project functioning, a beautiful screenshot of the most beautiful website in the world is worth less than a simple ugly webpage which is able to make basic math operations. So here is the first lesson learned:
"Always make a plan considering the time you have. Prioritize tasks."
This doesn't mean that one has to settle for less and get satisfied with an average result, it is more about doing the proper things at the proper time. There is no serious coding project which is not regularly updated and this is just another confirmation that in the programmer field, there is no destination, it is like a continuous dance. In my case for example, I am working on the mobile development of my app now, using React Native. It is a big step for me since it is the first time I work with React Native alone and of course I am struggling, it might sound frustrating but I see it as a way to grew and I try to enjoy it.
Even experienced senior developers have to figure out how to overcome issues on a daily basis, there is no destination in the learning process (not just for coding) and the whole point is the learning itself. I could copy-paste several lines of code without understanding exactly what I am doing, proceeding by iteration and eventually getting what I want but what would be the final point? What would happen when I need to solve a higher level issue? Second and last lesson learned:
Learning to code is a never-ending process, there is no arrival point and if one can't enjoy it now at this stage, maybe it is better to look for something else instead of living in a constant status of frustration.
Luckily it is not my case. The continuous challenges triggers me and I feel satisfied even during the struggling moments. I can say I am enjoying the dance, even if it has no destination.