A day In The Life: Pro Developers Talk

career in computer science

Welcome to a Day in the Life: Pro Developers Talk! We go beyond simply a day in the life, since we also discuss our general perspective and opinions on the Information Technology field. I used the same questions for three developers from Rhode Island in talking about their career in computer science. The diversity of the answers to the same question reflect the diverse nature of developers. Our first interview is with Kaighen Finley.

Kaighen Finley, lessons from her career in computer science:

  1. How did you become interested in the world of Computer Science and Information Technology?

As a child, I recall always having a pc at home, thanks to my parent working as a desktop technician. That provided the basis, but not the passion. The passion came first when I started playing video games, and later on when I started modding them. I’d spend days/weeks/ months working on my creations. It was enthralling. I figured that sort of passion was something I should pursue as a career field.

  1. What is an average day at work like for you in your career in computer science?

I have a lot more flexibility than most people. I won’t say too much more on this one right now though.

  1. In your opinion, what are some of the main social issues that relate to a career in computer science?

I think net neutrality and ‘the right to be forgotten’ are some issues of chief concern regarding our current climate.

  1. Do you have any advice for aspiring or new developers?

Connect your coding activities to something you’re passionate for,
or about. That will drive you exponentially further than just doing
something you don’t love.

  1. What are your favorite programming languages and why?

I don’t really have a favorite. But I appreciate that each language has its own set of intricacies and/or advantages that – once known – allow that language or skill set to specialize in certain tasks. From there, it really just becomes a matter of choosing the best (or ‘nearest’) tool for the job!

  1. What is an example of a solution to a challenging problem that you faced as a developer in your career in computer science?

Print it out so you can see it. Slow down, take a few steps back or go for a walk, and ponder the architecture. You should think about the end goal. The way you’re wiring the code now isn’t the only way to do it. Be flexible. Understand what you’re doing. The more you understand, the more options you can derive. Stack overflow: surely you’re not the only one to have had this problem. Compare what works now to what doesn’t work. Find the broken link. The separation of concerns can help with the clarity of code, and so can commenting. Neither are necessary, but both can be positive.

  1. Is there anything else you would like to say regarding development with a career in computer science?

Anything else I want to say? Hmm. Life is Sorcery. Treat it as such.

I also interviewed a developer named Christopher Simpson. He was one of my co-workers at a company that I previously worked for. I was the back-end developer, and he was the front-end developer.

Christopher Simpson, lessons from his career in computer science:

  1. How did you become interested in the world of Computer Science and Information Technology?

I have been interested in computers and tech ever since I was a child. Some of my earliest memories include taking apart my Mother’s 1970’s hand-held radio screw by screw to see how it worked (of which she did not approve) and trying for hours to get Hitchhiker’s Guide to the Galaxy to run on the family Apple IIe. There’s just something about Computer Science that has always made my brain happy.

  1. What is an average day at work like for you in your career in computer science?

My days are normally longish, averaging about 9.5 hours. Therefore, I generally start off slow — catching up on emails and reading science, tech and web design news articles for the first little bit. Once the coffee has kicked in, I’ll organize my day by what projects I can actually finish and get those out of the way first. After that, I do as much work on the highest priority task as possible before sending it for approval, then work on the next until I’m instructed to change directions.

  1. In your opinion, what are some of the main social issues that relate to a career in computer science?

People that don’t understand even the basics of computer science usually have the strongest opinions on how it should work and the loudest voices when something doesn’t. With the recent explosion of readily available technology, everyone is an expert now because they can download an app from Google Play or the Apple Store, regardless of having no idea what is actually making these tiny programs run.

  1. Do you have any advice for aspiring or new developers?

Back up. Back up, back up, back up! You should always be able to roll-back any given change you’ve made. Many developers use systems like Git to keep track of things, but even going old-school and saving copies of whatever you are working on locally is better than nothing. Don’t be afraid to break things, because it’s inevitable. I literally threw up the first time I crashed a live website. It is not recommended.

  1. What are your favorite programming languages and why?

As a front-end website developer I have little use for what most consider to be a real programming language like C++ or Python. I know HTML, CSS, some JavaScript and a bit of jQuery (which isn’t really a language) and that gets me by. Recently I’ve been working with Shopify’s proprietary “language” called “Liquid” and I absolutely love it. It’s like if HTML and JavaScript had a child that grew up to be President.

  1. What is an example of a solution to a challenging problem that you faced as a developer in your career in computer science?

I work with a shopping cart software package that doesn’t natively integrate Amazon Pay, which was demanded by upper management. What I had to do was to find a second cart solution that did accept Amazon Pay, duplicate our store’s inventory into it and find a way to take everything from the original shopping cart and move it into the new Shopify cart to check out there with one button. The solution is messy… really messy, but it works and we’ve had a 20% increase in conversions because of it.

  1. Is there anything else you would like to say regarding development with a career in computer science?

I started off as a graphic designer thinking all I’d ever need to know is Photoshop and Illustrator. Then I got bored and found that software development (web or otherwise) presents constant challenges to overcome. In order to grow, a person must be confronted with problems to solve and the same can be said about becoming a better programmer. There are many ways to solve any given development issue. It’s finding the right one that is the trick. Read, experiment, research, develop your methods and don’t let others put you down for not doing it the best way or their way. Just make it work.

Last but not least, I would like to interview myself. Anybody that knows me, also knows that I’m quite the conversationalist. I always have plenty to say. Perhaps this is one reason why I enjoy writing articles for LearnToProgram.

Chris Coscina, lessons from his career in computer science:

  1. How did you become interested in the world of Computer Science and Information Technology?

I remember that the first computer we had as a child only had a black screen with a green cursor. You could type on it, but it didn’t have a printer. It also didn’t have any software on it that we could use. There was literally nothing that you could do on it, besides type things on a screen. I don’t even have any idea what the operating system was, since it doesn’t resemble any commonly used operating system within the past twenty years. I’m still curious about where my parents got this thing from, since it seemed like it was an ancient artifact from Babylon or something like that. I tried many times to get it to do something other than just print words on a screen. However, there wasn’t even a prompt or anything. Maybe there was some way to do more with it, but I don’t even think a manual exists for it.

When I was about eight years old, my parents finally bought our family a computer that had great functionality for that particular time period. It was running Windows 3.1 – it had Microsoft Paint, Microsoft Word, America On-Line (which at the time was synonymous to the internet if you weren’t a techie), as well as other odds and ends. By the age of eleven, I began creating websites about video games that I enjoyed playing, such as Resident Evil, Pokemon (back in the days when it was only available for GameBoy), and Mortal Kombat. Much like Kaighen, I then got into modding different games, which became a huge source of growth for me. I even tried to lead a development team to create a really awesome Half-Life modification when I was thirteen. However, everyone would just laugh at me when they found out how young I was. Needless to say, the mod never reached completion. However, I still learned quite a bit from having set out on a mission to create that mod. Often in life, it’s not so much the destination that matters, but rather the journey. I’ll quote Lao Tzu on this one:

A good traveler has no fixed plans and is not intent upon arriving.
A good artist lets his intuition lead him wherever it wants.
A good scientist has freed himself of concepts and keeps his mind open to what is.

These principles (which may be found in the Tao Te Ching) have guided much of my approach towards growing as a developer, and also as a human being in general. I should note that another document which had a deep early influence on me is an article titled How to Become a Hacker by Eric S. Raymond: http://www.catb.org/ esr/faqs/hacker-howto.html

  1. What is an average day at work like for you in your career in computer science?

This would always vary significantly, depending on the company. Some companies are very “go with the flow”, while others can be highly regimented with many scheduled meetings. I tend to find that too much structure tends to conflict with productivity. At the moment, I work on projects for a couple of different companies from my own home. I just sit down at my computer whenever I decide I want to do some work. It’s really that simple, since I like to keep things simple. Simplicity is valuable for most things in life. However, it’s especially valuable when it comes to engineering, coding, and testing.

  1. In your opinion, what are some of the main social issues that relate to a career in computer science?

There are many different social issues that relate to a career computer science. I could go on for hours about it. A large number of technology based social issues are rooted in the fact that our society and culture simply doesn’t mature quickly enough to keep up with the pace of technological advancements. For example, the process required to put new laws into effect (meetings, bribing politicians, politicians writing the laws, politicians voting on the laws, and so on) is not exactly immediate. However, the process by which new technologies can affect the entire world in a huge way, is often much more immediate. To make matters worse, most people pulling the strings in society don’t have a deep understanding of computer science (or technology in general), which causes them to make irrational decisions regarding how to govern it.

In my humble opinion, the most dangerous technology based social issue is rapidly increasing automation. There is a CGP Grey video on YouTube titled “Humans Need Not Apply” that explains how automation has already eliminated many jobs in our economy, and why it will probably continue to eliminate jobs. I highly suggest watching that video for more background on the subject, since I can only give an overview. ATM machines, self-checkout lanes, WebMD, automated restaurants, etc., are decreasing the number of employees that many different types of organizations need. If self-driving cars ever become mainstream, it could also destroy the transportation industry (which employs more people in our country than any other industry). Many people argue that this phenomena does create new jobs within the tech industry, which is true. However, for every job created in the field of automation, a much larger number of jobs may be destroyed. There are many jobs that are difficult (perhaps even impossible) to automate. However, we would experience major social catastrophes long before we reached the level of one hundred percent unemployment anyway. We’re already dealing with major problems within our society, but truly catastrophic events could occur by the time we even reach fifty percent unemployment.

One of the major problems is that the corporations can’t simply refuse to go in this direction. If they don’t do so, then they will have difficulty competing with their rivals. Nevertheless, the corporations are shooting themselves in the foot, from a long term perspective, by automating jobs to pinch pennies. As jobs become scarcer, wages are likely to decrease due to greater competition for jobs (supply and demand). In other words, fewer members of a household will be working, and the members that still have a job will probably be paid less than they are now (even though they’ll usually need to support a larger percentage of their family). It will gradually become very difficult for the citizens of our society to afford the goods and services offered by most businesses. At this point, the entire structure could easily collapse.

If extremely high levels of unemployment occur, then we will have a much greater need for government funded social services. Which leads me to a question – where does the money for social services come from? Tax revenues, much of which comes from people working (income tax), people buying stuff (sales tax), and businesses. If the number of people working is very low, few people are spending much money on goods/services, and most businesses crumble, then how will we afford this increasing need for social services? You could simply not offer the services that are required to keep the peace, but then this could lead to social unrest. In which case, the police or even the military could step in. Are you aware that the police and the military also get paid through our taxes? If people (and even corporations) can’t afford to pay their taxes, I’m not quite sure that people will want to fight against that social unrest for free. Furthermore, in that type of situation, the police and the military would probably need to go against their own friends and family members. Exactly what would happen in this type of dynamic is unclear to me, since it would certainly be chaotic and uncertain.

It is possible to look at the bright side of things. We can generate vast amounts of resources due to technological advances, and technology is continuing to advance. We are capable of producing far more than enough food to feed everyone. It’s just that the world’s economies are structured in a way that prevents some people from being able to eat on a daily basis. It isn’t that the current model for our economy didn’t work in the past, because it did. However, if we reach a point where only a small number of people are needed to work jobs to “keep the machine going” then survival should no longer be based on making a living from working at a job. These dynamics could lead to either extreme oppression or a new renaissance period. Once people no longer need to focus on accomplishing mundane tasks, we can focus on greatly advancing our cultures in the fields of art, science, health etc. This doesn’t mean that money shouldn’t exist or that we shouldn’t have responsibilities, it just means that we need to put into practice a better way of doing things. There are different potential implementations of social systems that could work well. There are at least as many implementations of social systems that won’t work well in the future, so this should be carefully considered by every person in the entire world.

  1. Do you have any advice for aspiring or new developers?

Never stop having fun and always keep growing. Mastery is not an end, but rather a new beginning.

  1. What are your favorite programming languages and why?

This entirely depends on what I’ve set out to accomplish or the problem that I’m solving. I often don’t have the privilege of choosing the programming language for a project. Many developers complain if they are required to work with a programming language that they don’t prefer. I take a different approach, because the challenges that any specific programming language presents, just make things more interesting for me. When I get to choose the language, I generally lean towards what I consider to be the best tool for the job. However, the Deputy Controller of CitiBank once told me that “it is a poor workman that blames his tools”. I take this approach towards my work. If I need to chop down a tree, but all I can use for the task is a hammer, then the tree will get chopped down.

  1. What is an example of a solution to a challenging problem that you faced as a developer in your career in computer science?

At one point in my career, I worked for a rather small company that didn’t have a scan system in place. Therefore, they took inventory manually, since their company was still getting their foot in the door at the time. This was a very time consuming process. As a result, people would sometimes simply guess the inventory count because counting that many units of product drove them crazy.

All of the product that went out the door was always part of a particular shipment (except in rare cases, such as bringing product to a trade show). Each shipment had a tracking number, and the log of tracking numbers for each order id would be copy/pasted into a web application that added the shipment tracking to the database. The database also kept track of the items in the order. I mentioned to upper management that I could write some code that would automatically deduct from the inventory every time the tracking numbers would be imported. During the import, it would deduct from the inventory table based on the number of units purchased of each item.

When the manufacturing team would finish a batch of product, they used another application that I created for quality control purposes. I configured the code for that application to automatically increase the inventory by the number of units in the batch for that particular product. The time that it took me to write the inventory automation code within both applications (the shipping application and the manufacturing application) was equivalent to the amount of time required for roughly five manual inventory counts. On the surface, it seemed like a very complicated problem. The truth of the matter is that the solution was really quite simple.

  1. Is there anything else you would like to say regarding development with a career in computer science?

A wise man named Snoop Dogg once said:

If it’s flipping hamburgers at McDonald’s,
be the best hamburger flipper in the world.
Whatever it is you do,
you have to master your craft.

Master your craft and use your talents to change the world.

Be the first to comment

Leave a Reply

Your email address will not be published.