Big O Notation & The Programs I’d Like To Write

[Currently Reading: “Cracking the Coding Interview” by Gayle L. McDowell. Chapters I-VII]

I’m not a “computer guy” just yet, so sometimes a lot of the technical terminology that surrounds code escapes me. I’m reading “Cracking the Coding Interview” per the suggestion of my close friends. They tell me that working through the problems in the book will help me a lot with what I’m trying to accomplish. The idea is to throw me into the swimming pool in order to teach me how to swim.

The book so far is a mix of interview strategy and crash courses in coding concepts. The one I’m currently working on is an essential concept called “Big O Notation.” Big O is a way to roughly estimate the time an algorithm will run (runtime). This is useful especially when the algorithm or program is handling a large amount of information, because Big O measures how quickly you will get through the data that is pushed into the algorithm.

The tricky part for me comes to calculating Big O times. There are a handful of rules and math concepts that you need to grasp in order to calculate how long an algorithm will run. It has been a while since I’ve seen anything that looks like┬ámath, so it takes a little extra effort to make that jump again. However, from looking at examples and working through exercises, I get the sense that it will be relatively simple to determine Big O notation eventually. It will probably take me O(N) to get through the brunt of it though (lol).

tim-gouw-68319

This is a stock photo of a hardworking individual.

“Cracking The Coding Interview” also describes interview practices company-by-company. McDowell highlights the differences between a Facebook interview versus an Amazon interview and that kind of thing. What’s funny about these is how often McDowell mentions that companies are looking for someone who is enthusiastic about their product. I guess this is a no-brainer, but I can see how someone might forget to express how excited they are about, say, Microsoft, while in a technical coding interview. A lot of the time when I tell people that I’m learning computer programming, they ask me what I’d like to make. I don’t have a very good answer for that yet, because truthfully I just want to get out of customer service and retail as soon as possible.

The thing that excites me the most is the possibility of making computer-generated art (novels, poetry), which is cool but I am afraid that there is little-to-no money in this kind of thing. But I hope that I’m wrong, because it would be super interesting to develop programs that write television shows or articles that make sense and also hold a human audience. I also tell people that I’m interested in the cross-over between code and customer service. I know for a fact that an Amazon Echo device could have done 80% of my job as a bookseller, and I would be interested in developing services and products that do just that.

I know a lot of people are afraid of being put out of work by robots, and I believe this shift is inevitable. I don’t think the answer is telling technological progress to stop, but rather we should see what kinds of opportunities blossom once robots take a lot of the grunt-work away from us. Perhaps the massive shift away from human work will put pressure on our governments to provide Universal Basic Income for the population. Hopefully this kind of policy would allow us to spend our time on more meaningful pursuits.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s