If you know me from the university, you certainly know I was a computer science student who did not love programming. The main reason I chose software engineering for my master's degree is to be able to open up to different aspects of the field, those that entail some creative thinking, theory, and include some management principles. I am, in general, more interested in the human (the creator, the client, the end-user, myself) than I am in the machines. Plus I took some of those weird personality tests online and it appears that I am more a thinker than a doer.
Now, I like to think of myself as an artist engineer. But there was a time when I would have never expected to write code for a living. However, if you know me you also know I love taking challenges, I feel they keep me alive, help me rise to my better self and allow me to go out of my comfort zone and keep pushing my limits and discovery how a wonderful person I am (you are smiling aren't you?)
Writing code everyday, aside from being extremely stressful, can be a daily opportunity of learning life lessons. Here are some, after fourteen months of practice: (7 does not mean I learn a lesson every two months, math cannot apply to all aspects of life, you know)
- Details do matter: If a single coma or a couple of braces can totally mess up your hundred lines of codes, then small details can absolutely change your life. Not worrying about stuff you think is not important is a mistake. Just like I take the time to read my code many times and ensure there is no error, I do give myself the chance to observe, with more attention, some hidden aspects of my daily life: how I organize my living space, when I set the clock, what algorithm I use to pick my clothes for the day...
- Everything is doable: If you can think about it, it means you can do it. I always find it funny when a client asks about the feasibility of a function, I want to answer: of course it is, the question is rather: how complicated it is and how much time it would require. This applies to goals you set to yourself. Of course you can lose weight, exercise regularly, cook like a chef, and do all of these things you thought you never could. The equation has two important parameters: time and effort, assuming the willingness is a known factor.
- There is no single path to Roma, nor to success: programming teaches you that there are many ways for you to write a simple function, you get to decide what algorithm works the best for you, what plugin to add and what solution to implement. One of the best pieces of advice I have ever received is to keep my options wide. It is true that we tend to limit our options through pessimism, lack of self-confidence and absence of creativity. Believing we can achieve whatever we shout at is, itself, an achievement to celebrate.
- Results are as important as the process: If it works then congratulations you have done it. Sorry, but that statement is false. In fact, when you write code, you should also think about commenting it for people who will use in the future, you want to write it in an 'elegant' way and to make it readable, and ideally reusable. This applies to your daily life, a simple and stupid example is driving: it is very important to reach your destination but while doing that, you should respect others, worry about their safety as much as you are about yours, be responsible and as tolerant as you can.
- Ask for advice, someone has the answer: I have the chance to work on an open source framework that also happens to gather a big community of coders. The nice thing about having people do what you do is that you know that every awful yellow page with an ugly error code you see have already showed up, at least once, in a screen other than yours. Google and stackoverflow are great friends, they provide answers to pretty much every single question you ask yourself. Don't hesitate to follow that pattern regarding other concerns you have in life, no matter how stupid or dumb the help you need is. You can look at pinterest for ideas about cleaning pillows, ask friends about nice gifts ideas for your upcoming mum's birthday (I am serious about this, please help), or even learn more about the ancient Greek history.
- Logic rules: by definition, programming is finding an executable solution to a computing problem (thank you wiki). It is based on mathematics, reasoning and logic. My relatives tend to think I am too logic driven in my relationships and in how I think about my choices, fears, and opportunities. I disagree, logic has its root in philosophy and is derived from the work of genius minds who made the right and left parts of the brain meet around questions of language, ethics and psychology. The ability to do critical thinking, to be cohesive in one's thoughts, consistent with one's values, sound in one's affirmations and complete in one's foundations of judgement can be taught. You can train yourself to find that equilibrium and adapt it to who you are, what you aspire to and apply to how you think and act.
- No effort should be underestimated: In programming, even the easiest functionality you provide hides some work. Some fancy and beautiful flat buttons come to embellish the design of a website hide functions that are very complex and complicated. (remember this next time you click a button). People usually don't acknowledge your efforts. There are two main reasons behind this. First, people like negative ideas especially when they do not concern themselves. This allows them to feel better about who they are, increases their self-esteem and, hopefully, make them a little happy. Second, the expectations people tend to set for others are very high, consequently, whatever you achieve or you do, only really matters to you, the others want more. This should remind you to always praise effort in your relationships. Gratitude and thankfulness are keys to internal peace.
If you think I overthink everything, you are not wrong. If you find it tiring to have these kinds of reflections, you are mistaken. I love to share out loud those thoughts we usually keep to ourselves. It is also an exercise for me, because writing tells me stuff I did not realize I thought about. This is like commenting your code to understand it when you come back to it later: part of my 'documentation process'... Can anyone of you think of life lessons he/she learned from work?
Comme toujours, je suis impatient de voir venir mardi pour pouvoir te lire et suivre tes réflexions profondes et presque mystiques. Tu incarnes exactement la dimension du philosophe ingénieur ou si tu préfères de l'ingénieur philosophe (la commutativité n'a pas d'existence dans ce registre). Sans vouloir prétendre te ressembler, si j'ai quitté la fac de sciences pour aller vers la fac des lettres et des sciences humaines (l'attribut "humaines" y est pour quelque chose) c'était pour dénoncer mon refus interne exprimé explicitement pour les autres par les échecs aux examens. Mais, c'est drôle de voir qu'å l'autre fac , des lettres et des sciences humaines, on vous apprend à devenir pragmatique et conciliateur et å essayer de vous assoier å la table des programmeurs et de faire comme monsieur tout le monde . D'ailleurs, je comprends bien tes parents qui se soucient de ton bonheur, eh oui même å ton âge!!!!!!!!!!!! Les miens le font toujours et je suis persuadé que les tiens aussi subiront tes angoisses à leurs propos.
ReplyDeletePrêter de l'aide à un ingénieur philosophe ( pardon, il faudrait ajouter un "e" à un et å ingenieur) est un privilège, donc fais à ta maman une belle déclaration d'amour, embrasse lui la main tendrement et achète lui un beau foulard ( jamais deux sans trois), et sache qu'å chaque fois elle prendra le foulard, question de pragmatisme, il lui rappelera les mots et la bise de la main.