1001 martian nights.

I am a ‘classic’ delphi programmer, at least I like look like, but many would said that I am just an old programmer. I always found it easier think that have become obsolete the tools I use and that a new version or a new language would change everything.

I have all possible vices of a computer programmer, starting with the condescension that I have with my work or myself. I love the code and I love writing programs but sometimes it’s just for pleasure. I Spend thousands of days and nights writing, modifying and deleting code created me the feeling that “I do something useful”. When I settled into the routines of my work I feel happy and I don’t like leaving my “comfort zone”. For long time I have worked with an “autopilot”, I doing code without thinking too much about how long will have to invest or how much invest in the future.

I am capricious, when I discover a new “paradigm”,I try use it as soon as possible, even changing what already done, and often without clearly going to win it. I joined my set of “technical” but when I discover something else new some are forgotten.

I have envy of others. Instead of using them, I attempt imitate with my “own code”, although sometimes the result is worse, or just not better than the original.

1st night.

Tonight I am very nervous. Today I worked long hours but not stopped to think that I start to get outdated and I’m scared. What I have to do to evolve?

I have lying on the couch in the office and I have been thinking about it. After a few minutes I fell asleep. Suddenly a loud noise woke me and I jumped up.

It is the first time I saw. Strange beings were “family”. Like those in the movie “Mars Attack” but with a more human size, they looked like children.

They only had one finger on each hand. Their level of evolution had become obsolete have more fingers, but curiously I did not feel scared.

One of them took out a tablet and started writing things in perfect “Spanish”. His name was ET and he introduced himself as ambassador to a legion of newly arrived aliens to the earth to investigate the level of development in different areas.

Many things told me by telepathy. Although the most important things wrote them to leave no room for doubts

He said that they had randomly chosen mediocre earthlings, sample individuals to do the study. And apparently I was one of those. Although I was a little annoyed with “mediocre” I kept listening without saying anything.

ET wrote, “You have to make 10000 different programs in one week. with source code and executable code. If not, we remove the earth”

“You have a day to think what you are going to do. After, It start the countdown.”

I see a ray of light accompanied by a small thunder. And the aliens disappear.

Confused, I fall asleep again

2nd night

Today I wake up late. And I think about what happened last night. Suddenly the world literally falls to me. It is not only that I doubt that the extraterrestrials will pay me the week of work, is that I have been caught at a bad time because in my company there is a lot of work accumulated.

I must to do 1429 programs each day. A program every 60 seconds, nonstop, day and night for a week … will be the end of the world?

After meditating all day, I reached the first conclusions.

Aliens have not defined clearly what referred to a different program. Nor have they said what they have to do programs.

Fortunately they have not said anything about the size of programms, or if it is necesary to write “by hand” all the code ..

I can create a “hello world” as simple as possible which have few files. I can use it as model or template to generate new projects.

Program Hello;

begin

writeln( ‘Hello World’);

end.

the second may be

Program hello2;

begin

writeln( “hello world 2 ‘);

end.

and so on up to 10,000

Now that I have a clear idea, just I have to do a program that does this automatically. No longer it is giving time doing it by hand 10000 times.

It is a “program fabricator” and runs in four steps:

  1. Put project name and create a directory with that name. Into Src folder it will have the source code and it have another bin folder for the compiled program.
  2. Copy used template files in src
  3. Modifies the necessary code.
  4. Compiles to bin folder

If ET is really a superior being should know that has not given enough specifications.

I waited impatiently to the night comes. I don’t know if i’m asleep but again thunder surprised me. He was ET again, this time alone. I explain he what the “fabricator” program do and the “hello world” example

Me: “The difference between the two programs is minimal, but compiled are not exactly same, they differ in one byte .. and not do the same: one writes” Hello World “and the other” hello world 2 “

ET has a great sense of humor and take my idea as earthling joke as there are things he don’t understand well, so he laughs as absurd joke

First thing is that he do not understand a program that does nothing. The obsession to write “Hello World” we earthlings programmers have seems them an “exotic” primitive and totally useless rite.

It also does not understand why we call different programs something that has the same code, even if the data is different ..

He acknowledges that not give me sufficient specifications that for them are obvious. But really just wanted give you the greatest degree of creative freedom.

ET realizes that earth programmers are still evolving, he had to tell them things more or less like an old computer, specifying everything.

“Earth Programmers beings are apparently helpful, but somewhat clumsy. Constantly asking how they should do things, what tools to use, how long they have for to do it. Even the smallest detail has to think before doing and when they do, often do late, wrong and have to repeat even 2, 3 or more times. And always they need people to try the result “

Seems they like the difficulties. Many problems are created themselves They do not seem use the KISS principle.

And when you tell them that can do whatever they want, stay as paralyzed. Interestingly often they need a “non programmer” to tell them they have to do. Autonomous programmers call them “customers” and. those working in large companies call it “bosses”.

They use many ambiguous words have different meaning in each one or in what context, and interestingly the words with a more common semantic sense, they says it in different languages or idioms

He need several Martians and Earthlings experts who can me translate.does not know if we understand well and wants everything be agreed.

It gives you a list of rules to meet and make me several concessions:

  • each program must have a minimum viable functionality, but complete.
  • They accept as “different” programs that do the same with different components, or in different programming languages.
  • also they accept the same program as different translated into different human languages.
  • You can use any resource available online., But you must adding or modifying something by you, and documenting those changes.
  • Also they accept as different programs, separate parts of a system such client / server = 2 different programs.

Because it has lot fun, he let me the challenge of making only half of what was initially proposed. As the first night, lightning and thunder made it disappear and I think it I went back to sleep.

3rd night

I awake late again today. It has begun the countdown and have 7 days. I only I have to do half of 10000, but are many. Now I understand the magnitude of the problem, If I do 100 a day , I just do 700 in a week. In fact I must be reasonable, I have to sleep, eat, … rest.

I have to do a more sophisticated “fabricator” and do new things.

  • I can take projects from a repository of examples.
  • Automating operations to integrate with my tools.

is clear that I have to take models and elements that can combined in different ways. A kind of Lego.

ET appears at same hour of last nigths. I see something more serious than the first nights, but with some patronizing look, like a father watches his little boy trying explain his mischief.

ET said: “You have to precise what tools you will use from that you said.”

He see that it still too much for me, again he reduced by half the number of programs that I have to do ..

4th night

Begins the second day in the countdown, and I prepare a list of useful resources: github, sourceforge … I’m all day looking at different pages and writing down directions. I make a very long list to present at night

This night there is many aliens and earthlings experts accompanying ET.

I speak of the wonders that make things on the list that I have prepared.

ET is more nervous, do not see much evolution, and their superiors are impatient, but remains he distracting my occurrences. After consulting with experts he makes new concessions. Although it has already cut in half twice, still many programs for me and back down to half.

5th night

Begins the third day of countdown. I realize that every night I cut half the number of programs that have to do. For now the third day of the countdown, will be 8 times less than it began but still many: 1250. If I Continue doing as Scheherazade in the Arabian Nights, the fourth day I just have to do 625, the fifth day 312, sixth 156 and if I wait to last day only 78.

But the longer I lost in thinking how make more,less time I have.

It’s a countdown race and I have done nothing. I have anxiety, sweating,begin to lose control and time passes.I try think positive but fear blocking me.

I found things like Codenvy. It does everything I looking for. It can download code from Github, keep saved the code, I run the code, I correct, turn to run it and save on GitHub. It looks interesting but is difficult integrate with external databases. Also works especially with code javascript, php, python, but nothing that the classics do C ++, Pascal, Java

That night, ET comes early and is somewhat angry. He do not see results and there are few days, but get reduce again by half. Although he tells me: “I can not further reduce the number of programs you have to do”

6th night

Is the fourth day. I start working with salesforce. It has promising Apex language that reminds me of ActionScript, Java and JavaScript, but only get customize my work environment and create some own tables with data entry. Nothing to really call a useful application and time is running. I do not think ET want to accept as different, many data entries made with salesforce, they are too similar. and he said that not accept the same program working with different data.

When ET comes like every night (with lightning), was very pissed off because I have not done anything . And I only have 3 days. He says it can no longer reduce further the number of programs to do and if I have some embarrassment i must try “something” already.

7th night

Today is the day 5 of countdown and I have to do things. I just take examples of codenvy, I compile it, and then I change something and make my own version. I managed make a 20. I have a feeling that I cheat, but at least I can “save” the honor and perhaps, if I can leave to ET impressed, save the world.

But tonight did not come ET. I was worried, maybe he is too much anger last? or perhaps they were gone. Is the world safe?

Before going to sleep consult the phone, I realize that I have several messages, a friend asking if I was going to leave to disco-bar and one of ET saying: “Today don’t see you, Is saturday and we do not work”

I go to sleep late , worried.

8th night

It Sunday and I wake up late again, I may to go to eating on the beach with some friends. But are only 2 days to the end of the test. To my friends I send a message: “I can not go because I have lot work”.

I Try follow with codenvy, but had exceeded the free quota. That’s why I go back to focus on salesforce but at end of the day I have only a small prototype, if I had a little more time maybe I would have done, but I woke up very late and I’m tired.

ET apparently not working on Sunday because does not come today, and here I am “working like a fool.” Tomorrow I can not gamble with other things, I will use delphi, at least I do not need to learn things and that will make me more productive.

9th night

Today is the last day, I have to do lot of programs and I wake up very soon. As I decided I will try to do it with delphi, using the examples there. I know I’m cheating, but I have no time for more. I download delphi projects from github: I do some changes, rename and some text translated (I hope Martians do not know the programs), I can prepare one every 10 or 15 minutes. At end of the day I only prepared 80

This night appear all the martians and experts that been coming during all this nights

They tell me to show what I’ve done and I tell him that I’ve only done 100 programs

ET is surprised and looking me and talk their experts.

It makes me a strange question through the tablet.

Et: You mean 100 in terricola or 100 in martian?

I wonder: what is the difference?

He responds talking first time ( for not confuse with numbers)::

“The human you have five fingers per hand, and 2 hands. It is why do you find easier to count in base 10. The martians we have only one finger per hand, we have only 2 fingers so we use base 2 numbers. You name it binary.”

and I wonder: “so when you said to do 10000 programs to do you said in terricola or Martian. ?”

Et responds: “In martian. As computer programmer, you would be easy understand because it is how you use binary numbers. I been helping to you. Would be absurd to ask for 10000 (in base 10) programs. It is so many even for us the martians, I thought you had understood from the context”

I ask: Then, 10000 Martians programs do you mean 16 terricolas programs?

Et “Sure and the first day it cut down to 8, because I saw fun, the second one down to 4 because I saw something lost, the third day leave in 2 in compassion and fourth day I leave alone in 1 just to see something done for you. Of course this could no longer remove more.

As we talked, experts reviewing the programs that had submitted and at end everyone looked at me suspiciously.

ET began to speak again:

We’ve wanted do a simple test. You must to do 16 programs a week and you have given us 100. But experts say they have not done anything original, simply have “plagiarized” without adding anything of you, nothing but small changes and poorly reviewed by the rush. You have preferred give importance to quantity rather than quality, and at end you could not do a single thing original in a week.

You tried deceive us copying other things, You have taken to us as fools, you’ve worked on Saturday and Sunday without rest as all beings and at end you have not done anything we asked.

The result is that we will not hire you.”

Me: Hiring? You said that you could delete the world

Et: I said it remove earth from our database. Why do we want “remove” a primitive world physically as yours? We are not murderers. We are head hunters and seek programmers able to be creative. Now we will go to other planets to continue the search as earthlings are very stupid, lazy and capricious “We took Bill Gates with us, seems to be the only one who has understood. He will be made ultra-millionaire and will return to dominate the world”

And lightning with thunder made disappeared forever to ET & Company

I finally woke up, I did not know if all this had happened or was just a dream within a dream. It had been so real that not distinguish reality from fantasy.

But I was surprised that he had dreamed for 9 terricolas nights, or what is the same 1001 Martian nights.

Morals:

Need to better understand what they ask you do, because otherwise you will lose time and sticking up bad.