Manifesto and Portrait Review

I would say the manifesto reflects my thoughts pretty accurately. Throughout my time in college there have been quite a few times where I have questioned what I wanted to do after I graduate or if I was in the right major. And every time I stayed with the choice I had made. I didn’t realize until towards the end of junior year that I would probably be better suited with a computer science degree rather than a computer engineering degree. However by hat point if I decided to switch I would have had to stay an extra year at Notre Dame to make up the requirements.

However I am content with my choice to stick it out. I feel accomplished to have completed what only a few of us did complete. Further, I think the experience in the classes I have taken makes me a little more marketable. The way I always describe my degree to people is that it’s a hybrid computer science and electrical engineering degree. I can do about 80% of what a computer scientist can do and about 80% of what an electrical engineer can do. I will admit I have not taken all the hard classes for either subject, but knowing the base layer for both allows me to approach problems from a different perspective than solely a computer science background or solely an electrical engineering background. And when most people in my desired field of employment have degrees in computer science, having the engineering background puts me into a different bucket.

I think the portrait is an incredibly accurate description of the student body in the computer science and engineering majors. We are just an extremely diverse group of people that cannot be described in one way at all. The stereotypes and assumptions the world makes about the kind of people who study what we do are unimportant and frankly just inaccuracies. We do not fit the mold of the standard coder. We are all individuals that cannot be stereotyped.

The entire portrait highlights the diversity of our class, so in a way it describes me perfectly, but at the same time it does not describe me at all. Sure I am a white male from the states with a single major. But I am not from the Midwest, I prefer to hang out in large groups than small, I play a sport (water polo) most people know nothing about, and I have passions for things nearly nobody else in our class is interested in. I think the most accurate description within the portrait is about passion though. Everyone has some sort of passion, and no matter what it is, the best word to describe it is passion. My classmates are incredibly passionate people, and it becomes evident when you get them talking about their interests. It’s easy to feel their excitement and feed off that energy to learn about why they are so enthralled by it. Notre Dame’s computer science and engineering majors are incredibly diverse and subsequently cannot be stenotype, but without a doubt, they are all very passionate.

Interviews

To start off I am going to be aggressively frank. I do not have a job. I have had multiple offers. I have turned down multiple offers. I have been and I still am holding out for the right offer. I am waiting for something that I can actually get excited about, something where I will be doing interesting work, something that I can be happy doing, and something in the right place. All that being said, I have probably been on more calls, screenings, and on sites than 95% of my peers. I could join a company as a recruiter and be a pro at interviewing I have been on so many.

I started the interview process before I had even finished my internship last summer. I had a wonderful experience during my internship and would’ve loved to continue to work for them full time. However they decided they were not hiring and so I was forced to start searching for another job. And so I started applications. I applied to all the big companies (Facebook, eBay, GitHub, etc.). I was flown out for many others on site interviews for big companies (Google, Microsoft, etc.). I have interviewed with other recognizable tech firms (Cerner, Epic, etc.). I have interviewed with many consulting firms (Deloitte, Accenture, Pariveda, etc.). I have interviewed with smaller companies still with the start of feel to them (TabbedOut, and others without as much name recognition). I have not stopped interviewing since I started the process, I have used all three breaks (Thanksgiving, Fall Break, and Christmas Break) to actually do office visits and in person interviews). I am truly committed to finding the right fit for me. I have lost count of how many companies I have submitted applications to, or how many companies I have interviewed with, but it has been a significantly large number. I would estimate that my total number of interviews since August of 2015 is getting close to a hundred.

What am I looking for? I am looking for a place that has some interesting problems that need to be solved. I want a company that is doing something good for the community in some capacity (this is a broad requirement and can be fulfilled in many different ways). After seeing all the companies that I have seen and talked with everyone that I have, I think I would much prefer working for a small company than a large company because of the much more open communication and flat structure.  At this point in the process I am becoming a lot more hyper critical of companies. I have no problem with going through the full process only to deny the offer because I know it is not the right fit for me. But I am also starting to get stressed out and honestly exhausted with the whole process and I am beginning to fear that I will settle and accept an offer just so I can have that load off my back.

What do I think of the process as a whole? I have mixed feelings about it all.  I think some companies are better at it than others, but there is certainly some bad practice. As students we have an income of zero. For most of us we have never really earned a substantial amount of money in our entire lives. And I think some companies realize this and exploit this fact. I have seen friends accept the first offer they get because they see the salary attached to it and sign the papers without thinking about it, because it is such a drastic increase in the money they will be making rather than trying to find a place that they will genuinely be happy at. I understand that early in our careers it is expected that you will be doing work that isn’t perfect, and as you build and grow your resume it’s easier to move into stuff that is more interesting and more satisfying, but I don’t think its 100% ethical for companies to exploit this quality of students. I am not sure what the solution to the problem is, but I do think there is certainly room for improvement in this system.

Computer Scientist or Hacker?

The first thing I feel incredibly obliged to address is the definition of a hacker. From the readings it seems to be that the writers of these papers say that anyone who writes code is a hacker. I have an issue with that. I, myself, would not claim to be a hacker. I would claim to be a computer scientist or a software engineer. I don’t think what I do is “hacking.”

The first definition in the dictionary of the word hack is as follows: “cut with rough or heavy blows.” Its second definition is more aligned with computers saying: to “use a computer to gain unauthorized access to data in a system.” Everyone’s favorite resource for slang, Urban Dictionary, defines it as “A person who is a professional at doing some sort of service, but does crappy work.”

None of that seems to fit what I see myself as. I develop software. I create systems. I solve problems. I am a computer scientist.  Hackers do fall under the umbrella of computer scientists, but just how every square is a rectangle but not every rectangle is a square, not every computer scientist is a hacker. The guest lecturer from Harvard spoke for a significant amount of time about his dislike of the word “science” in the description of jobs. He says how there is a social obligation to act science like even though he equates his “hacking” as an art. I say computer science is an art; its purpose is to discover and create new systems and ways of going about solving problems. But what is science? Its discovering things about the field, and understanding why it works the way it is. What is engineering? Taking all the discoveries from the scientists and applying them to solve the problems at hand more efficiently. Sound familiar? Computer science is science and engineering. Both the terms “Software Engineer” and “Computer Scientist” are incredibly accurate descriptions of what I think my peers and I do.

So what is a hacker? What makes a hacker a hacker and not a computer scientist is not what they are creating, but rather the purpose of what the work is. To give a visual image, computer scientists are brick layers, placing bricks in such a way as to create a wall, building, or piece of art. Hackers are skilled professionals who are removing only certain bricks so that they can see beyond the wall, or into the structure. But they do it ideally so none of the brick layers will notice the missing bricks or the invasion of an unwelcomed party. The hacker and the computer scientist both work with bricks, but they are certainly not the same.

Moving on from the ambiguity and possible error-ridden miscommunication of the definition of hacker and computer scientist, the qualities described within “A Portrait of J. Random Hacker” seem to be reasonably accurate. Of course there is some variation to all the characteristics and there are exceptions in every case. But looking specifically at myself and my own personality as well as the friends and peers who study similar fields or those I have interacted with in the work world, the description seems to be mostly accurate, especially with the psychoanalysis of how we think and why we think that way.

Reading 0: Is cs an art, engineering, or science?

While I think computer science falls best under the umbrella of engineering, I think it is better described as a merge between all three. First let’s define what engineering actually is. I don’t think it’s a set of rules that must be adhered, nor is it how to build a bridge or mix chemicals. Engineering is a way of thinking. Engineering classes don’t only teach a skill, but they teach how to approach problems and how those problems should be solved. And to me computer science at its core is problem solving. This is what makes computer scientists engineers.

Looking at the things that are done in computer science, the coder is given a starting point and they know what the desired outcome is. But how do you solve that problem? There is a bunch of possible ways of solving that problem, but which one do you take? This is where the art comes in. Actively exploring the tens, hundreds, thousands of approaches takes an artistic eye. Which one is the most efficient? Which approach is the fastest to code? Which solution are the most users friendly? Which answer takes the least amount of data or memory? There are hundreds of considerations that need to be taken into account before the final product is produced. Just as a photographer needs to consider the lighting, framing, composition, aperture, and angles, programmers need to take into account time constraints, complexities, hardware requirements, where their code is going to affect other features or services. In this sense programmers are in fact artists as well as engineers.

That just leaves how computer scientists are actual scientists. Sure they don’t have white hair and are conducted experiments that create monsters like Frankenstein. But they certainly do experiment. They are constantly running tests to make sure their code is working in the desired way, or testing new algorithms to make it faster or use less memory. How else would these developers uncover the best way to solve problems? These experiments make the developers and coders scientists.

I was lucky enough to be exposed to computer science before I entered college. I took my first programming class (object orient programming, a java based class) my sophomore year in high school and continued to take AP Computer Science during junior year, and I took a project based computer science class during my senior year. And I think the videos bring up some interesting points when it concerns teaching coding as a classical subject like English or math. I think that everyone should be able to have the opportunity to take a coding class. But I don’t think they necessarily need to know how to do computer science. In most high schools, calculus is the highest level of math available. And unless you are going into engineering or math, you aren’t required to take many more math classes in college to get your degree. I think coding and computer science should be treated the same way. Teach the basics in high school, but don’t require advanced classes unless it makes sense for the field of study chosen. If I wanted to be a geologist or a historian it doesn’t make much practical sense for me to send my time learning about data structures and algorithms when I could be learning about rock formations or how the addition of grain to the average diet changed the world completely.  Coding is important, but I am unconvinced computer science is necessary for everyone.

 

Reading 0: Who is Alex?

My name is Alexander Hansen. I am a proud citizen of the nation of Texas. Although I don’t have much of an accent, Texas is and will always be considered home to me. There is something about the southern culture that I have grown to love and keeps me drawn back. Not to mention it has significantly better weather than the Midwest.

Outside of school I am an avid traveler, I have been to all fifty states, and almost thirty countries. I played competitive water polo all through high school and actually got recruited to play division one in college, but I decided to take a more academic route and focus on getting a degree from a good school rather than play sports as the first priority. One of my biggest passions is beer. I have been brewing both in a home brew setting as well as on a professional level for three years now. I currently work as a brewer and bartender at Evil Czech Brewery in Mishawaka. Lately my newest interest is learning about photography, which drove me to enroll in a basic photography class in my last semester at Notre Dame.

The short answer to why I chose to study computer engineering is rooted in the fact that I was lucky enough to have coding classes in high school. I learned I liked what it entailed, and the homework assignments didn’t feel like homework. There was an I at satisfaction in the problem solving aspect of coding. This is what drove me to study technology in school and what has continued to drive me to pursue software development as a career.

One of the most pressing issues and something I am incredibly interested in is ethical hacking. How would that be concretely defined? When is it okay? What are the moral dilemmas with it? I have zero hacking ability but I do think there is an appropriate time and circumstances when having those skills would be acceptable and maybe even necessary. I think there is a very interesting discussion to be had revolving around that.