I didn't love programming before I started. It was a mean to an end. I was broke, dropped out of college and needed to make a living. Programming was something that made sense to me. When I read code, it didn't feel like a coded language that could only be deciphered by smart people. To me it was simple sets of instructions that allowed communication with a computer. A computer's language. I didn't see a flash of light followed by a hipster song montage with me coding in the dark with the screen light shining on my nerd glasses. I don't even wear glasses.
I started typing HTML on a page to prove to my friend that I do know how to make a website. He gave me his laptop and I started right away, ignoring the 4th quarter of the Lakers games. I opened notepad on Windows and started typing. I created a few folders to organize my assets and just kept typing.
There wasn't a moment to think. I knew exactly how I wanted the page to look like even though I didn't ask him what the website was about. I created a three column page with a header and a footer. An hour later I had a homepage, an about us page, and a services page.
By the end of the evening he bought a domain name and we edited the website to be the content he wanted. Just like that, he wrote me a $150 check.
Ok, HTML and CSS are not programming languages, but they are a very good introduction to giving your computer instruction in a written language.
Either way, creating a website and getting paid for it pushed me to explore this domain a little further. It felt like I discovered something new that could take me out of the hell my life was steering into. It could have been carpentering or plumbing, all that mattered was that I had found a way to get an income and that was better than not having any.
The more I explored programming, the more I met the frustrations that come with it. And the obsession too. I could not sleep before finishing something I started. Every project I started had to be completed the same day. And sometimes the same day lasted more than 24 hours.
Lack of sleep, waking in the middle of the night to write down some piece of code before I forget and trust me, if you don't write it down you will forget.
Programming is boring, well it is if you are standing over the shoulders of an employee who is gushing code to look busy. It was certainly not going to be a job I'd fall in love with. But when I started to write code for a living, I actually enjoyed the process itself. It was a weird feeling. If you are a programmer you get it. You spend 9 hours at work coding, but when you come home, you still want to do some more.
At first you are even a little shy to admit it to yourself but you want to let a scream of joy every time you manage to get the computer to do what you want. A little internal squeak I like to call it. The more you learn, the more exciting it becomes.
I ended up falling in love with programming and we got married in a small chapel northeast of California.
Working in a company with thousands of employees makes you realize that making profit is the priority. The "beauty" in code is in the eyes of the beholder. No one cared. You get paid to type code the way the company wants to. If you are in the job purely for the love of code, you are in for disappointment. That's when the honeymoon ends.
It's not like the movies where love always triumphs. Here, the bad guys always win. I mean how else can you rewrite a whole system that took years to build in just a couple months?
If you only code because you love it, you will stop coding when you hate it.
And I did, I started hating code. I don't know about you but I do enjoy making a living. When a client or employer asks me to build a widget that tracks the user behavior by slowing down their computer, breaking the website functionality, and just annoying them, I fight back until I have no other choice. When they ask me to add a feature that makes the website better, I embrace it. The programming part has nothing to do with it. At this point I do enjoy programming no matter what the situation is.
I can imagine a plumber throwing in an insanely high price at a customer just because he thinks their idea is stupid. It's all the same.
What if you believed you could only be a mechanic if you loved cars? What if you loved cars but didn't know the first thing about fixing cars? It's similar to having a talent. What if you loved cars but your talent is juggling? Or singing?
I'm lucky I don't know my talent otherwise I would be in for a disappointment. (I'm pretty sure I'm a fantastic unicyclist, I just haven't tried yet)
Programming is a job, and I had no interest in it before I started coding everyday. I learned to love it. I love taking pictures, but I would be a terrible photographer. Just check my pictures. It would be a terrible mistake if I decided to be a photographer because I love it.
The same goes for your job. If you are waiting for the perfect job, you might wait a little too long. You can find a job and curb your interest towards it. I found a fascinating thread on reddit where people were discussing what they majored in versus what they do for a living.
I have a Masters in Business Administration. Naturally, I'm a paramedic.
EDIT: I fucking love my job.
It's easy to think life is fair and expect everything to revolve around you, but reality likes to settle in and crush your dreams. Might as well be prepared and accept that the job you love is not as interesting as the job you can learn to love.