I'm majoring in computer science. However, I don't want to do a software engineering internship. Reasons:
- I'm already a decent programmer & have worked in big companies/startups/research lab-esque organizations. I definitely have a lot lot more to learn, but I'm not sure if doing software engineering (SWE) is the best use of my time.
- I'm not sure I want to be a SWE. I love programming, but it seems like the way to make the most impact in the world these days is to create an (actually meaningful) startup/organization. (I know, I know every young person says this these days).
Given that this is the case, I'm trying to figure out what to do this summer besides a normal tech internship. I've decided to ask forums like LW/Hacker News in order to get the advice of people who have lived a few more years.
Here are current options I've been considering:
- Try to understand virality -- I'm not particularly good at creating viral content or content that appeals to the masses (aside from the natural edge that comes from being young), which could certainly be useful when marketing a product. An option here is trying to intern at a company like Buzzfeed which is full of people who understand emotions / virality.
- Try to understand soft skills / business -- There are roles out there like "business development intern". I don't know anything about "business development" but negotiating with other companies / writing white-papers / etc. could be a useful skill
- Spend time learning on my own. To enact change these days, it's probably not sufficient to just know programming (unless you want to do a SASS). Spending time on my own learning physics/chemistry/biology could be useful. The issue here is I believe mentorship is useful and this option negates that completely.
- Working on my own business (not a software project). I've done this in the past & learned a lot about how to be scrappy. Not a terrible idea, but I don't want to sink 3 months into something only to have to return to school. Also negates mentor-ship. Also I'd rather spend time learning right now so I can execute on something that's not a local maximum of what my brain can imagine right now.
Anyone have thoughts?
Re: 4. I think it's totally possible to start super-short-lived orgs, as long as that's the plan from the outset. Also I think there are a lot of people in tech startup / tech entrepreneurship space that are willing to mentor, but I agree finding them and making that connection is harder.
From my time working in tech, and spotting common weaknesses w/ new folks (though might not apply to you!): Statistics, Ethics, and Writing.
I think spending time learning statistics is probably a pretty good use of time, since a bunch of the technical aspects are non-obvious, and translate to super-powers when programming with stochastic or noisy systems. (E.g. knowing a sampling technique which more efficiently estimates a parameter is basically like knowing an algorithm with better big-O complexity).
Second, even in doing boring feature implementation for software systems, issues that have ethical ramifications come up surprisingly often. (Decisions about filtering datasets, how to normalize forms, etc). Spending some time getting a good overview and understanding of the field I think helps prevent the two big failure modes I see here: 1. not realizing that a thing has ethical implications at all, and then deploying a thing which becomes expensive to un-deploy or change, and 2. freezing when encountering a problem with ethical implications, without knowing where to go for a solution.
Last I think writing is a really great way to put practice and time and effort. The more I've done work in software, the more its shifted that the most important typing I do is documents and not code.
+1 asking HN. I think you'll get a different diversity of answers there.