CS Internship Guide #12: Should You Go to Graduate School?

Part of the CS Internship Guide


Should You Go to Graduate School?

It depends on what you want to do.

cdl_f

Research and Academia

If you love learning about computer science, then graduate school would be a great fit for you. You should consider going if any of the following apply:

  • You want to do research
  • You want to be a professor
  • You have a non-CS undergraduate degree
  • Your dream job requires a master’s or PhD

Graduate-level courses give you the opportunity to do research. If you’re really interested in, say, artificial intelligence, you can become a world expert on AI.

If you want to be a professor, you’ll need more education than a bachelor’s degree–a PhD.

Also, if your undergraduate degree is a non-CS field, you might consider going to graduate school if you want to get a CS-related job.

Finally, if you want to work for a institution like Sandia National Labs, you might need more education than a bachelor’s degree.

software-engineers

Development and Money

Not every job needs a master’s degree. You should NOT go to graduate school if:

  • You want to be a software developer
  • You just want to make more money
  • You want to be a high school CS teacher

Almost all companies are willing to hire CS students with bachelor degrees (some don’t even require a diploma). A few years out of college, your degree (and GPA) will be overshadowed by your experience and personal projects.

Furthermore, going to graduate school won’t net you more money. You might be paying $40,000 a year in tuition when you could be earning $80,000 a year as a software engineer. And once you have a graduate degree, you’ll only be paid as if you had an additional two years of work experience.

I’ve also heard that software engineers with master’s degrees are sometimes promoted faster than those with bachelor’s degrees. However, I don’t think that justifies spending two years in graduate school unless you really want to go.

Finally, high school CS teachers don’t need master’s degrees.

The Road Ahead

I don’t have a master’s degree, but you should talk to those who do. Ask your advisers, professors, other students, and engineers in the industry for their points of view. But in the end, the decision is yours. Best of luck on the road ahead.

When do you think CS students should or should not go to graduate school?

Posted in CS Internship Guide, Software | Tagged , , , , , , , | 3 Comments

CS Internship Guide #11: Handling Rejection

Part of the CS Internship Guide


sadness_1920x1200

“… We have decided to move forward with other candidates.”

Sometimes you work really hard, perform great at an interview, and still receive an email stating that the company has decided to move forward with other candidates. In other words, you’ve been rejected. That’s alright.

Rejection is part of the internship search process. Sometimes the company wants a specific skill. Maybe you tripped up by chance during the interview. Or perhaps they had a single spot and took the whiz kid who wrote a machine learning algorithm at the age of 15.

In any case, rejection happens to everyone. At the very least, you got practice handling an interview. If the interviewer doesn’t mention their reason for rejecting you, you can always ask them via email. The recruiter won’t think badly of you, but they won’t necessarily respond.

But as long as you have time, keep looking for interviews and eventually you’ll hit a success. Many freshmen and sophomores don’t get internships, but many others do. Don’t blow off your classes. Knowing the the basics will help in all interviews and jobs. And outside of class, continue to learn more about computer science, get experience with personal projects, and practice interview questions.

If May rolls around and you still don’t have an internship, that’s okay. You can still take summer classes, do research at your university, or work on a cool personal programming project. Or maybe there’s something else equally as awesome.

Whatever your plans may be, I wish you good luck!

Posted in CS Internship Guide, Software | Tagged , , , , | 1 Comment

In Search of Black Swans

Hundreds of years ago, Europeans had only ever seen white swans. They thought that “All swans are white” and never considered that there might be other colors of swans on Earth. However, European explorers eventually found the continent of Australia, and shocked the ornithological world when they discovered a black swan. This was an unexpected, rare event, and it caused a huge impact on the study of those birds.

In the case of swans, all it took was a single counterexample to shatter centuries of observations. Nassim Nicholas Taleb has written about these sorts of unexpected, rare events, known as Black Swans.

Black Swans are the events that few (or no one) can predict, have a disproportionately large impact on a field, and are rationalized in retrospect. Black Swans can occur quickly (the stock market crash of 1939) or slowly (the rise of the Internet). They can cause a positive effect on their field (Galileo’s telescope) or a terribly negative one (the assassination of Archduke Franz Ferdinand in 1914).

Can we predict future Black Swans? Probably not. Even experts aren’t always right. Furthermore, after each Black Swan, some pundits claim they predicted it even though they suffered from the event. Yet if those experts truly predicted the event, they would not have suffered when the Black Swan happened–if they knew a disaster was coming, they would have prepared!

So I’d say it’s extremely difficult to predict the future. But even if we can’t be certain about the time ahead, we can position ourselves to take advantage of positive Black Swans. Taleb states in Fooled by Randomness:

“[I make predictions such that] no rare event should harm me.  In fact, I would like all conceivable rare events to help me.”

Taleb argues that Black Swans have more significance than we realize. When we (individuals, projects, systems, companies, countries, etc.) concentrate on small but visible gains, and ignore the possibility of failure, we tend to become fragile to Black Swans. Things that are antifragile don’t suffer when exposed to negative Black Swans. In fact, the antifragile can benefit from them in at least two ways:

To benefit from Black Swans, we must first protect ourselves against catastrophic failure. A well-tested system can handle more stress than an untested system.

Then, we can position ourselves to take advantage of positive Black Swans by increasing our optionality. “Optionality” changes depending on the domain, but the idea is that you put yourself into situations where you have the ability to make choices. For instance, a generalist adapts quicker than a specialist. A socialite with a large network has an easy time finding someone with a newly-valuable skill.

I urge you to analyze your life and systems, and ask yourself how you can make yourself (or your system) robust against Black Swans. Ask yourself how you can increase your optionality. You probably already have without realizing it. However, there are always more Black Swans around the corner. Don’t stop preparing just yet.

Posted in Psychology | Tagged , , , | 2 Comments

Generalist or Specialist?

I would rather be a generalist–someone who knows a little about a broad variety of topics–rather than a specialist.

Benjamin Franklin was a writer, inventor, politician, scientist, and diplomat, and abolitionist–a real Renaissance man.

Why? A jack-of-all-trades has more options than a guru. Even if a master of computer architecture is extremely smart and well-respected, they’ll face problems when no hardware companies are hiring architects. Meanwhile, the generalist might not be paid as highly as the specialist, but they have the flexibility of moving between roles and companies as they wish.

Though Renaissance men have more optionality than gurus, you can still dive deep into a topic. Everyone is a specialist to some degree! But if you’re contemplating whether to go deep or broad, consider the following three points:

First, you don’t need to be an expert to have a great career. Expert status is nice, but it’s not the only way to the top. The generalist is more antifragile than the specialist and can take advantage of a wider range of opportunities.

Second, it’s useful to learn about topics outside your field (especially outside the subset of the field you specialize in). No one knows what you’ll need to know in ten years, so the ability to learn quickly is a great help. In addition, knowing a small amount on an array of topics could help you see or take advantage of unexpected events.

Last, remember the Earth is huge. Software developers are only a small subset of the world. When we operate inside the realm of computer science, we sometimes forget that most people don’t spend the majority of their day thinking about technology.


What do you think: would you rather be a generalist or a specialist?

Posted in Psychology | Tagged , , , , | 4 Comments

My Internship Experience at Infusion

So, you’re thinking about an internship at Infusion? After interning at Calxeda and Multimedia Games, I interned at Infusion during the summer of 2015. I thought my internship was excellent! Keep in mind I did software development in New York City (as opposed to, say, user interface design in Toronto), so my experiences may not be the same as others.

Writing a program to control TVs over Ethernet was really cool. Yes, this was inside Infusion's office.

Writing a program to control TVs over Ethernet was really cool. Yes, this was inside Infusion’s office.

What did I like?

Project – 9/10

Infusion is a technology consulting company, so its projects are B2B contracts that range from mobile apps to financial software. My task was to develop a program to control a wall of TV sets via Ethernet. Using C#, I hacked out a prototype, and then integrated it with the rest of the codebase. It was fun, I learned a ton, and I hope users find it useful.

Team – 7/10

Everyone on my team was smart and helpful. However, some of us worked in New York, but others were stationed in Poland. This caused a few problems when the team in New York ran into trouble while the Polish team was sleeping, and vice versa. Despite time zone problems, I think I was on a good team.

Location – 10/10

One of the main reasons I chose Infusion was to go outside of Texas. My internships at Calxeda and Multimedia Games were both in Austin, so I wanted to experience something different. Infusion placed me in New York City, which was awesome because I got to be a tourist whenever I wanted.

Benefits – 9/10

Besides the direct deposit every two weeks, Infusion gave me a furnished apartment in Manhattan for the summer. (Finding housing in New York is not easy!) They also paid for my flights to and from New York. There were also coffee, sodas, and snacks at the office.

What would I change?

Office Snacks – 5/10

Infusion actually has two offices in New York. One office was always stocked with free chips, granola bars, and other healthy options. I worked in the other office, where we usually ran out of snacks.

Number of Interns – 3/10

I enjoyed having lunch with the other two interns when I could, but it would have been nice to have more than just two other students at Infusion. I did make friends with interns outside the company.

Knowing who my manager was – 2/10

Who’s my manager? I’ll spare you the details. Just know that it was confusing to figure out (though it did not affect my day-to-day tasks).

Final Thoughts

Overall – 9/10

Overall, I enjoyed my internship at Infusion. I might have gone back after graduation (they gave me an offer), but I took an job at Google instead.

Posted in Software | Tagged , , , | 1 Comment