Alvan's digital garden

I do not know shit

Hello there. I’m here to make a confession.

I have eaten good today, tidied up the apartment I’m living, did some good stuff, now I feel like I need to vent for a bit.

I got my tea, so here we go.

So, I don’t know shit. And I’m not telling this like “ah, I am a smart guy, so I know there are a lot of stuff that I still don’t know”. It is not like that gaussian distribution graph, explaining that beginners think they don’t know anything, and mid-levels say “I know everything”, and very smart ones tell “I don’t know anything”.

I don’t want to claim I am a smart guy. My brother sometimes tell me that I’m among very small percentage of programmers, which I’m not, and he is telling this because he doesn’t really know the scale of software engineering. And my smart friend, whom I have quoted couple of times in my blog, tells me that I might not know everything, but I’m able to learn.

Recently I have been analyzing his words. There have been times that I thought yep. I have written some good software, so I probably know a bit. But other times I am sure that this is not the case.

Two of the biggest software I’ve ever written is my startup Specterise and the project I’m doing at my job. Specterise hardly works, and the most crucial part is written by that friend himself, because I was struggling to get it right. And to be honest, it wasn’t the matter of time, it was rather a skill issue. Simply, I lacked the expertise to write it like that 1.

Then, there is this software that we write at BP. I can feel that it does not work the way I would want a software to work. I am doing hot-fixes more frequently than I would like to.

So what?

The thing is, I get shit done.

You see I have been telling that I’m not a good programmer, but stuff I write, works at the end.

The CCTV software that I’ve been writing for ages now, it works. It has the basic functionality, and I wrote it in completely new framework - Avalonia. I was learning the framework as I was writing the software, and as we are close to finishing first version, it works quite well. Of course there are issues, and the biggest being the GStreamer integration. But hey, that works too, it just has couple of bugs related to concurrency. And then.. what else?

By the way, it was first time of me doing video processing, so I would say it is a bearable code.

Ah, to satisfy my ego, let me mention the Python script I wrote for AI. It works as well, and is my first real life application written in Python.

Yes, about the software we write at BP, it works as well. No one complained so far.

As you could probably understand, I’m in this dilemma my whole day. I need to get better at stuff. These programs that I write daily, they are just to satisfy needs of business, which is not the hardest thing to do, at least in my case.

Poem

I think real programming is art. Programmer should write their code the way a poet writes a poem, artist draws nature, an architect designs places. At least those that share my opinion. And hey, let me tell you a thing. Stuff that I write daily, they are not art. They are merely a poem that is written for someone because they ordered and paid for it. Plus, with deadlines.

Instead, I wish to write good programs.

I also want to design good too.

Let me elaborate.

Good programs

To me, a program can be considered good when there have been soul put into it.

See, it is just like when my mother prepares meal for us. When she is in a good mood, the meal tastes the best.

Ah, you also need to have some experience to prepare nice meals. And programs as well.

This is why I have been thinking what should I do to be great? Great at what I do. Doesn’t really matter what. I want to cook good, program good, and everything in between. What is the key?

What the fuck do I need to do?

Probable answers

To begin with, I don’t think it is ever possible to be great at everything you do.

One thing is crucial for me to note. This being great at things, I don’t mean that the way western pop culture dictates on people. I seek quite small and steady life, with small but near to heart goals. And the improvement I thrive for is originated from my love to the art I am, to be precise, want to do.

OK, whatever it is, let me tell the answers I came up with.

1. Studying more

To me, studying seems to be the most crucial. So far I have been the “learn by doing” guy, and I’m starting to think that you can only go so much with this approach. At one point, you need the theory, and if you haven’t improved your reading ability, you’ll have hard time improving.

And there is also the feeling of learning, which is very beautiful. The calm, steady and patience filled act of studying.

I have personally never done that. At least I don’t remember right now. Since I was able to read, I have been preparing for exams, tests, and such deadlines. Never been able to study properly.

2. Consistency

This one might be a cliché2. But I find this to be correct. Without consistency, everything gets delayed, you waste the precious time that you can use to create, and makes it hard to track the process.

I got nothing more to add this one.

3. Accepting your level

Nowadays, it is extremely easy to get the illusion of excellency, especially in todays world, where people misunderstood the positivity[^wrong-positivity].

Personally, it took me some time to accept that I am not good. I had the interest, some knowledge, willingness. These made me stand out of crowd, but when I compared myself with the people of principles3, damn, it was so easy to kill that ego.

3.1 Being honest

This one is one huge part of the previous section, that is why it is 3.1.

I feel like it is quite hard to be honest with yourself. Hmm. No, it is probably easy to lie to yourself. I don’t want to use “our brains does that, our brains does this” phrases here, so, we lie to ourselves all the time. Well, at least I used to do. But I am actively trying to fight this, and be honest with me. And let me tell you, since I’ve been doing this, life has become easier than it ever was.

Back to the topic

So, these were the things that I want to do more to get better at stuff.

Oh no. I was thinking that I will come to a conclusion, but I don’t feel like I did. Hmm it is probably because I got side tracked by these answers things? IDK.

I already knew these stuff, why did I write? Now I feel like I wasted some more time, LOL!

I guess I’ll have to write one more about exactly what I wanted to talk about. It is something like “I want to code art than business software”.

OK, wrapping up.

I’ll put some links for myself here, so when I read this, I’ll remember what I wanted to talk about.

This is it for today. I’ll hopefully come back to write about stuff from these links, you can read them if you want, and spoil my next post to yourself :D. And to be honest, you won’t loose much :D

Alright! Thank you for reading. If you got anything in your mind, or want to talk in general, please reach me via email: sayhi@rahim.li :)

P.S.: I will not be proof reading this to fix sentence structures, etc. See you next time!


  1. It was a part for my program to maintain multiple TCP connections to a server and send/receive messages to them. Yes, I was getting that wrong.. ↩︎

  2. Yes, I searched the web to get that letter correct. This is one more example of respecting the work you do, and doing it properly. Trying to try my best :) ↩︎

  3. For me, it was Richard Stallman himself. He is an excellent computer programmer and scientist, but this was not the side that sat me to my seat. It was the passion, pure principles, being honest with himself and understanding your desires in the life. I really do recommend you to watch the documentary called “Revolution OS”. ↩︎

#thoughts