Writing Code in Freedom

There is a way to create code in freedom. To express writing code in freedom, lets take a look at the opposite of it, that is to write code in a unfree way. The unfree way of writing is, writing with hesitation and consistently checking for errors and reference. The unfree way is to write a few lines of code and stop because I forget its syntax or I need to look for a function signature, or I need to find a library that does a thing that I need, then I look for what I want from search or some other ways to tell me what to do. The unfree way interrupts with free thought running in expressing code in text. The unfree way is counter productive to writting code and it is very anonying and frastruted. The unfree way is not trusting myself in writing. The unfree way is looking for something outside of myself when writing my idea.

The opposite of unfree way is writing code in freedom. To begin with writing code is freedom, I need knowledge by reading through many relevant text and learning about foundamental building blocks. Second thing I need is an idea. An idea is a guiding device in me when I decide what to write. The idea has no concept yet, and it is not clear to me what it is or what it will be. When I write code in freedom, I don’t care about specific syntax or functions I need to stop and search for outside of me. I can presuppose function and write it down as a placeholder that I will fill out later. I can fix syntax later. In this freedom, I’m not interrupted by these small things and I can let my code continously being written and not being interrupted. At this stage, what I write is not code that is runnable and compile correctly, and is not free of bugs and free of contridiction. The code I write is my idea that is coming from me. The idea is possible on the ground of my knowledge and readings. To express this idea is very difficult and the idea is full of creativity and new things.

Once the idea is expressed by writing code in freedom, I can do the less mentally hard activities. The activities are like fixing syntax, finding a library that does a certain thing, and fixing bugs, and testings. Compared these things, expressing idea by writing code in freedom is much difficult and important. The best engineer, is the one who can write code in freedom and with less cleaning up to do like fixing syntax. This however requires the familiarity with a domain specific knowledge like familiairty with a specific laungage, framework and so on. But an idea is not concerning with these domain specific knowledge. It sits on the most basic principle and foundamental knowledges (computer science). That is why an idea can be described in state diagrams, pictures or psedocode. An idea is preferable to express in these mediums because these mediums are easier to express and less constraint as to how to express it. The more strict the medium is, the less I’m able to express the idea freely.

Writing code in freedom is joy and thrill. The IDE gives me many error warnings, and the code certainly does not compile. But I can see it as a higher level code that my actual code conforms into. The actual code is the code after I fix syntax, library, dependencies. It is runnable without bugs. In a way, the raw code I write in freedom is most important. Because it determines what the actual code is.