Strange coding phase I'm going through

Recently, I am going through a rather strange phase. I feel the need to write / rewrite all the tools that I use (text editors, IDEs, libraries / modules), and I don't know why.
Although this can be seen as a good thing (because I learned a lot in this process, and my software development skills are constantly improving), the strangest part is that I delete all the code after I have finished, so that I am in vain I work. I am never happy with the code I'm writing. Have you experimented too? How did you overcome it?

+7
language-agnostic
source share
12 answers

It looks like you are being controlled by one of several possible “syndromes” (or maybe more than one).

  • Didn't come up with a syndrome (NIHS) here. This is where no code is good enough, or does what you want them to do. So you think you can do it better.
  • How it works? Syndrome (HDI). This is where you are passionate about the program and want to understand how it works, so you basically start writing it yourself.
  • Bite off more than you can chew syndrome (BOMTYCCS). That's where you think: "It can't be too hard to do, so I just write it myself, then I know what it does." Then you get enough of the work from it to make it kind of work, and you realize that your code sucks and that you have made too many compromises to make it fast, so you throw it away.
  • It's too cheap to buy it, so you can build it cheaper syndrome (TCTBISYFYCBICS). The name speaks for itself. The problem is that you get partly, then you understand that you are in No. 3 above and think that your time is worth more than anything.

I suffered from all of these and many others. (Like the classic "You need to create an acroinm for the whole syndrome (NTCAAFES)";)

+18
source share

I do this all the time (well, except for the drop part). Personally, I started doing this at an early stage in learning programming (when I was a student); it got the place where I would look at the source code of the Java kernel, and if I didn’t like it, I would make my own / extend it. He went so far as to start a cool joke that I was going to invent Java.

Personally, I have never dealt with this ... Instead, I have found new ways to use this for myself. For example, instead of just inventing things, I found that there are things that I wanted that were / were not available anywhere, so I would do them for myself. My first such project was a chat program. Of course, many existed, but this was the only one that my teacher did not know about (hehe). Of course, he learned a lot about network protocols, but as soon as this was done, my first action was to send it to all my friends, and we will talk while the teacher gives lectures ... Soon he learned about this and from those he made all his students turn off their monitors during the conversation, but it was fun while it lasted.

Since then, I continue to come up with my own projects that are useful to me, at least one aspect that I will need to study along the way, and one or more aspects of the lack of an ongoing program that solves the problem for me for free.

Therefore, I recommend you, instead of trying to reinvent the IDE and then throwing away the code, try to find some kind of project or problem that you would like to solve yourself and use again. I believe dogfooding (using your own programs) is the best any programmer can hope for.

+7
source share

Put any code that you write on the website and make it open source.

Let others discuss the code and improve it.

This will help you improve your coding skills while you return to the community.

Later you will be amazed that your code became better than it was when you left it.

+5
source share

I think that the nature of us as programming species is to want to control everything. We are complete control freaks. Everyone has many reasons not to trust someone else. Any given day at the office can be proof of this.

However, in general, you are mistaken. Most likely, this is the tool / library / IDE / everything that was developed by a team that devotes more time to it than you can. Of course, it has flaws from the outside, but by the time you finish with your version, you will probably find that you have several flaws.

This is just what you need to negotiate with.

Looking back, this is not a bad habit. It takes you out of your normal programming area and gives you the opportunity to run into other problems. Ultimately, you will be more versatile. If you continue to do this from this point of view and mix it with real performance, I think that it is completely healthy.

+3
source share

You chose a red pill, right? Someone had to tell you NOT to do this.

The problem is that if you really like computers and spend too much of your life thinking about them, you get to that point where all the random / irrational state of software development is an arbitrarily complex work mess - it seems a lot more confusing than necessary, even if you do not know what else is needed.

Under it is everything, a fabulously amazing tool, just waiting for release. This teases you from time to time, hiding in various programs embedded with various bits of data. The tantalizing functionality is that if you could find a real way to combine all this together to create one big super-cool system, you could ...

This is a purely mathematical feeling that computers can really be something wonderful, unless they suck so much.

Now take the blue pill and get back to work ...

+3
source share

I thank you for that. You would not be a good coder if you did not focus on the perfection of your tools, and also wondered how they were made, so:

  • Do not waste too much time
  • make sure you let go of everything you can open,

but I look at him as a Padawan, building his own light saber. It needs to be done.

+3
source share

If you simply duplicate existing tools, this is of little value. But if you have an idea on how to do it better, even in one way, it's worth it.

So at the end of this, you get a slightly better tool, and you don't just throw it away.

I went to a similar phase with the tools, but then I was more interested in other topics, such as graphics and games.

+2
source share

I only write tools when I am going to save time (or, of course, achieve more at the same time).

It is enough to write application code that does not require writing tools.

If you do this in your free time, then everyone, at their own discretion, I think, but I believe that the need to make money from the code that I write focuses my view on what is important.

+2
source share

We are programmers - drug addicts. We like mental states associated with solving problems and moving towards a solution. Sometimes, when projects at work get bogged down - for a variety of reasons - it is tempting to turn to side projects as a way to get a stream fix.

This is not necessarily bad if you are sharpening your tools or learning something, and it does not take much time from other duties (work or relational).

+2
source share

It also sounds like you are really unhappy with the other work that you are doing. I find that when I don’t like my work, I usually find something else, and I will be especially obsessed with things that I can excuse without being distracting because they are productive at first glance. Things like returning and clearing code that was truly one-time, rewrote what was already working, and made my own “improvements” to the tools. If I'm right, it makes sense that you then throw it away / leave / find something else, because if you do it just so as not to do other work.

+1
source share

I experienced it sometimes. For example, when preparing HTML documents for publication, I needed to write my own tool to do this exactly the way I want. Naturally want to make the world a better place. If you feel this desire - I suggest you go for it.

+1
source share

I think that this is probably good if it does not interfere with success.

But don't get it dirty, even if it's rubbish, put it on the net somewhere, and when someone else tries to do the same, they can see yours and at least avoid the same mistakes.

+1
source share

All Articles