How would be your answer the question:
Why you code?
Let me know in the comments below and read on the story.
Motives
I'm not a software developer not by training nor experience. I never worked as a professional software developer. Software is a tool for me, like math. I'm a physicist, after all, ๐ I love doing math and writing code, but I prefer to stay in the physics lane for the majority of my time. So to no surprise, the conversations like the one below occur over and over:
- Colleges: Why do you code?
- Me: Because it gives me an edge.
- C: Huh OK.
Start
I started coding (simple web site) in high school. As I started, I was really frustrated by coding. I would spend days banging my head against the wall. Most of the time, I had no clue what was going on. But I forged on because my studies required me to do some basic coding. I kind of despised coding. Physics and math was more fun.
But it wasn't until my 2nd year at uni before I took a deep dive into coding. I realised that every physicist that was an excellent coder was perceived as an expert in the community. Those mini experts new something way better they anyone else. If you needed help with coding, you went to them. I figured that the coding skills could be my secret weapon.
Competition
This will depend on your field of expertise. Still, no matter the profession, there are several things that the majority of people find hard and confusing. The harder or more boring the concepts are fewer people know then. As a result, you face less competition. There's a good analogy:
A lot of people go to the mountains, but a few well-trained enthusiasts climb the highest peaks of the world. Higher we go thinner the air. There's far less competition at an altitude of 8km.
Use this to your advantage. Figure out what others despise. Most probably they don't like certain areas because they don't understand them. Dig into those, and your skills will be sought by others for the rest of your career.
Old technology
Physicists, write a lot of (shitty) code. OK, a few can code really really well. I would claim that I'm somewhere in between the two poles. As long as the code works (most of the time), we don't bother staying up to date with all new fancy tools and concepts. Yes, some are still convinced that FORTRAN
is easy. Some still send emails via vim
.
So to no surprise, the first language I really learned was C
in 2013. Even the website we used for the course looked like it was written in the eighties. I found my sanity and at least switched from Windows to Unix in 2013. So I started my path by going down the C
rabbit hole. Then came across something called C++
. Then the dependency hell, build systems... you know how the rest of the story goes.
Frustration is the way
Every time I tried something in software, I asked myself. Why is this so hard? It's not rocket science nor theoretical physics. I should be simple right? Yet on the contrary, when I decided to build my first proper web site, I read online that:
I needed to sign up for AWS account create an EC2 server that runs on ubuntu. SSH to the server through bash shell. Then install Nginx, SSL and uwsgi. Then my application should use on the back-end the python Django engine with PostgreSQL database. On front-end I should use react/vue/angular with some HTML, JavaScript, CSS. The application should be running in docker containers so it can scale based on the web site traffic.
I knew that python, CSS, HTML, JS
were languages heard of git
and bash
. The rest was foreign to me. In a few years, I mastered enough of the above concepts that I'm capable of running a simple personal web site. Though I still have nightmares from time to time about the first experience with Django
.
After coding for a while, I came to realise that:
Experienced developers fail a few times faster than junior ones.
After coding for years, I still get stuck and frustrated every day. But these days I'm somehow cable of getting over the frustration in a matter of minutes instead of days ๐ I guess that comes with experience so hang in there and embrace failure. ๐
Why?
When I was picking up the software development skills, it took me years before I started seeing progress. The hard truth is:
You learn how to write good software through years of practice.
There are no shortcuts. If you want to get good, you'll need to practice the craft. Nothing new here. But make sure you know the answer to the question:
Why you code?
For me, software development is all about being able to:
Write fast code as fast as possible.
As long as the code get's the job done in the reasonable amount of time I'm happy with it. There are cases where I have to take care of documentation, tests, share code with others then the why slightly changes.
For you the answer to the why will probably be something completely different. Nothing wrong with that. The why should dictate how you improve your craft.
As a result of my needs, these days, my proficiency lies in python
and C++
. My work is mostly oriented around big data processing and simulations on clusters. Still, I come across other languages like CSS
, HTML
, JS
, latex
, (bash
) every day. A server crosses my desk from time to time. For me, quick and dirty solutions usually do the job. Though I sure kick my self later for writing the bad code.
Top comments (4)
I code because I love coding.
My very first experience coding was when I was 17 in a electronic technical course, with an HP 11c calculator, the scientific version of the eternal 12c, still in the market today.
Then, I was fascinated with the possibility of solving those complex number matrices of electrical circuits analysis which took two sheets of paper and a lot of time in a matter of seconds.
After programming the sequence of steps. You just need to push the variables into the stack, press run and after a few seconds... Voilร ! Magically the answer was there.
Then, the first time I sit in front a computer, I knew for sure that was I want to do to make a living.
Since, I worked with a plethora of languages and tools, (Lotus 123, dBase, Clipper, C, C++, Excel, Access, Visual Basic, Pascal, Delphi, R, lots of SQL's, and now JavaScript / MERN Stack)
But I'm always feel as a newbie. It seems that every time I'm mastering something, the tech trend changes and I need to throw almost everything in the trash and restart again.
But the adventure continues and I never give up. Every time I learn a new way to solve a problem, I feel the same satisfaction.
That's why, 31 years after that, I'm still spending almost half of my day coding. Because I love this thing. ;)
I started coding seriously (about 2-3 years ago) because of two reasons
So I started in Python, and some NLTK.
But, later on, it morphs to Flask, then web dev in TypeScript and Vue. I also had some interest in Kotlin / Android dev.
I am doctor by profession, BTW, and I am trying to apply for health informatics Master Degree.
To me, programming is about solving problems smartly. I even wondered if I should program or use a ready-made program, and try to apply it better.
Instead of Blogger or WordPress, I used Nuxt. Not even sure if it is better.
But seriously, if I had to recommend someone, I would say, because writing a script might be better suited for the case. However, programming does have multiple layers, simplistically Front and Back; but more deeply also something like database, security and server...
I started coding because I wanted to develop a system for creating Ultima-Style RPGs back in 1984. Was 6-7 at the time. It was Basic on some form of IBM PC.
From that point there was never any question about my career path!
I code for food.