A Letter to a Young Programmer Considering a Startup (2013)
al3x.net
al3x.net
A huge portion of humans don't have the luxury to say "hmmmm, this startup is ok but myyyeehhh, I kinda like this one better, err idk maybe i'll just go to GiantCorp". I took jobs because they paid me to write code. The story is probably the same for 90% of humans who are doing the best they can in their own situations.
Oh yeah, and the crappy companies I wrote code for years ago? Those are the places that gave me a foundation for a successful career as a programmer. I absolutely could not have done it without them because they were actually willing to invest a little bit in me-- which (in my experience) might not have happened, even at megacorps or unicorn startups.
That said, I think you're underestimating how good the job market is for programmers right now. Yes, your first job might suck. But if it does, try to recognize that fact early and make plans to switch companies at the earliest possible moment. Look in other cities (or even other countries) if you must. This is, after all, advice for young programmers, so they're not likely to have houses, family, etc. tying them down to a single location.
In fact, if you squint your eyes a little, a modern Silicon Valley VC firm looks an awful lot like a corporate conglomerate from the '60s (e.g. 3M).
I've never heard of a company so tightly managed by its VCs that you could liken them to upper management. Sure, they might make some final decisions, but most VCs just don't have time to scrutinize their portfolio companies that closely.
But, equally I feel the author is speaking of the go-big-or-go-home model of "startups", not the slow-growth or lifestyle approaches that one could alternatively take. When you don't have to impress investors, you can approach things differently. Deadlines are more up to you, and customers are more supportive as long as you're taking care of them.
Customers want a product that solves their problems and requires as little thought as possible to use(at least in Software). VC's want a significant return on their investment. Both have money, but only one of them will continually give you money. Which would you rather aim for?
Anyway, I think its worth reflecting on how the startup will fit into your life, and what kinda time you will put into it. It doesn't HAVE to be 80 hours a week. Doesn't even need to be 40. Success is up to you to define; unless you're playing with someone else's money.
Personally, my goal is rent. If I can build something that can earn me enough money to always cover my monthly rent, that's success for me. Anything beyond that is icing on the cake.
I think startups, as far as Hacker News is concerned, are "go big or go home" businesses. Quoth Paul Graham:
A startup is a company designed to grow fast. Being newly founded does not
in itself make a company a startup. Nor is it necessary for a startup to work on
technology, or take venture funding, or have some sort of "exit." The only
essential thing is growth. Everything else we associate with startups follows
from growth.
http://www.paulgraham.com/growth.htmlThat's according to Paul Graham, and I respectfully (and strongly) disagree with that definition; nor do i believe it to be the hacker news definition, as that is subject to the collective opinion despite whatever official stances may be taken.
But I recognize that ycombinator is certainly focused on that type of startup, and that they obviously have influence on HN.
But it is silly, and unhealthy, to solely focus on this narrow definition; which is why i often find myself highlighting it when it presents itself in a HN link.
So what defines this "startup" thing? How "startup" is different from a "small company"? Because, you know, not everyone opening a business needs to be "startup", and that's OK.
Paul is super smart and wildly successful (as is YC) but he doesn't have a monopoly on what certain words in the English language mean. Defining a start-up in such a way that it benefits the YC narrative should be seen as a marketing ploy rather than a statement of fact or an extremely insightful realization.
It's not as if the word 'start-up' originated with Ycombinator, or with Paul Graham.
By other definitions a start-up is a company that is more potential than realization of that potential, an idea packaged in a company that might one day be successful or it might not.
The success element is often still up for grabs long before a start-up fits the PG description of what a start-up is. It's a useful definition within a certain context but don't be surprised if outside of the 'YC bubble' (or more properly the SV bubble) the word has subtly or even widely different interpretations that are just as valid.
I note this trend to creative redefinition or claiming ownership of terms a lot with successful SV entities. It's a 'partial reality distortion field' and I'm sure it is useful to them otherwise it wouldn't be such an often repeating pattern but you should be aware of the fact that the world is a lot bigger than that.
I think it's perfectly valid to want to get into business for its own sake, and not because you have a 'passion' for a specific area. It worked for Richard Branson.
The 'find what you love/do what you love' mantra is an invention of our time.
If we're taking about developers here, then the experience a recent graduate needs is how to become a better, more capable developer.
In a big company, they'll have multiple senior colleagues, established processes, numerous large and varied codebases to study, and a large body of institutional experience to learn from.
In a startup, they'll have what? A frazzled technical founder with little more experience than them and no time for them, a few equally inexperienced colleagues, and a crummy Rails codebase.
You will probably not get significantly better at process and architecture design in a startup, but you will learn how to get the damn thing to work no matter what, at every stage of the process, instead of being responsible for one little feature here and there and working on tech that is likely 5-10 years old and in maintenance, bug-fixing mode.
I think working in both environments is valuable, as you probably won't see the value of unit testing, code reviews, continuous integration, and senior mentors in a startup environment, but being able to see the entire lifecycle gives you a perspective that other programmers that stay with big companies aren't as likely to see as well.
Also, I've worked in corporate environments with much worse development practices than startups, as well, mainly companies where software is not their main business. It goes both ways.