My background is in economics and business- fields that I am truly interested in. However, because of my childish curiosity and searching nature, I never cease exploring other disciplines. Every now and then, I feel a burning desire to learn something new and different. Sometimes, I get tired of the “new” thingy pretty soon (I know, that’s bad!). Other times, it becomes an inseparable part of my life. However, no matter for how long, every time I dive into a new discipline, I start to see the world differently. My perspectives broaden and I feel closer to my ultimate goal- to make sense of the world.
This time, with the commencement of summer, I made up my mind to learn coding. So, I immediately registered for classes. Taking into account that I was the only student coming from a non-computer science background, the beginning was pretty tough, I must admit. As the time passed, it got much easier. However, what fascinated me the most was that not only I gained tech skills and learnt how computers work but I also gained insights about a bunch of other fields. The experience turned to be one of these “A-ha” moments that shifts paradigms. I could write pages about the insights that I got during the month, but I decided to condense them into three main points.
- Everything in the world is much more interconnected than we think.
First, when I started my journey into coding, I was fascinated to realize how similar it was to learning a real language. When learning a language, we should learn both vocabulary and grammar to be able to communicate ideas. However, it is not enough. To communicate effectively, we should construct meaningful and logically structured sentences. Similarly, learning a programming language, we should first master the syntax but we can’t write a working program unless we put valid logic into it. Here comes the second connection- math. The logic that we implement is essentially nothing but ideas expressed with the help of simple school math. There’s a myth that one should have exceptional math skills to be able to code. In reality, it might work the other way round. One might learn math by coding.
Diving deeper, I was much more surprised to realize that coding also incorporates philosophical, economic and even biological concepts. In economics, one constantly faces trade-offs between long-run and short-run outcomes, between unemployment and inflation, rapid growth and sustainability. It’s up to us to make decisions and find solutions that work for that particular situation. Similarly, in programming there are numerous trade-offs between memory-efficiency and performance, comprehensiveness and simplicity. In the end though, the goal is the same for both disciplines, that is- to make a system that actually works. The only difference is, in social sciences, one philosophizes too much and, frequently, that brings about digression from the ultimate goal. In coding, the goals and the paths are much clearer and firmer.
Taking a step further and digging into the actual structure of the system, one can see that CPUs, compilers and interpreters are all nothing but infant brains. Each line of code we write when communicating with the computer, we emulate neural systems. We store information in objects, arrays, functions, etc. Then, we create relationships between the data. The objects may inherit properties. We can also create objects based on the prototypes, update them later on and give them functions. All of these structures comprised of nodes (where the data is stored) and paths (the relationships) emulate the neurons and synapses in our brains, they even incorporate genetics and evolutionary theories. Once, one gives proper logic constructing meaningful relationships, our infant brain grows up a bit and we have a working program that resembles a teenager, or an adult brain.
- Do not give up. Practice!
When going through slides and listening about the concepts, everything seemed more than clear to me. I seemed to understand all the details, even the underlying philosophy. However, the minute I was given an actual coding problem to solve, disappointment stepped in. I didn’t know how to approach it. I saw the logic but, for some reason, I couldn’t express it. Only when trying to implement something, we see what we don’t understand and what questions we have. It is the same for all disciplines but it’s particularly obvious in programming. Frequently, this very first encounter with a problem might break one. One might doubt their capabilities, or decide to give up but being persistent to solve just one problem will be enough to regain confidence and go forward rapidly. The worst thing one can do is giving up when a bit of effort is the only thing needed. There’s nothing more useless than knowledge with no application. Once, you’ve written a single working program, each new projects seems easier and more fun. By doing- that’s how we gain deep understanding of something.
- Nothing is impossible.
After struggling to keep up with the concepts and actually being able to implement them in practice, I realized that absolutely and literally nothing is impossible. The only bottleneck that exists is the capacity of the human brain, or rather the capacity to understand its limitlessness. Understanding the logic behind technologies, one realizes that almost all of the cool and crazy ideas we have on a daily basis are more than feasible with a bit of science, technology and boundless imagination. In popular culture, people like Bill Gates, Steve Jobs and others are portrayed as geniuses that make the impossible possible. In reality, every one can do that very “impossible” with the right skills. If you have a vision, or a dream, just pick up the skills you need and put them into practice. Magic is possible and each human is a magician. Not to promote Nike, “Just do it” -that’s it.
To sum up, the lessons that I learned during my month of coding opened up a new world for me. Of course, reading about it might be insightful as well but I would strongly recommend to try it yourself. Be a bit more open-minded and explorative. Go outside and try out everything that scares you. Tap into the unknown and try to understand how the world works. If you wonder what’s the point, my answer is: that’s how you live fully!