Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Working in a corporate environment in any capacity I think really takes away from understanding what it takes to start a company.

I've built many trading systems but getting my own thing off the ground has been really really hard. I'm getting there slowly but looking back I think I'd have been more sucessful if I had tried to start a company right from college.

In corporate america, all you do is take care of your own small corner of the business. Namely either sales, business or coding. Building a business means knowing all three.

Working in M&A at a bank would basically mean that he created word documents containing lies of how great an acquistion a certain company is for potential buyers. I have 3 friends who do this for a living. I would bet 0 of them would have a clue how to start their own business.

In his case he (ie working for the aquicuirer) would be reading these documents and trying to decide if they make sense and which company to buy. BS because mostly your say really doesnt matter.



I'd disagree with this, but I do think it's important to understand the limitation of what you can learn in a corporate environment.

My path was the opposite of many people: I worked for 2 startups, founded one, am now working for a big company, and hope there's another startup in my future. Google was the first company I've worked where I didn't have to set up the build system. And naturally, Google's build system is better than anything I've ever set up.

When you work for a big company, you get to draw on the accumulated wisdom of thousands of people that have come before you. A lot of things that seem obvious once you've looked at them - like how to organize your code, or how to design C++ programs with clear object ownership, or how to unit test libraries with lots of dependencies - require lots of laborious trial and error to get right before yourself. Many startups are filled with people that are fairly new to programming (because that's all they can get) and don't have that experience. You can easily go through several jobs thinking that SourceSafe and zip files count as a version control system, it's normal for functions to be 400 lines long, and deployment consists of FTPing a JARfile to the production servers.

The weakness in big companies is that you don't see all the false steps that led to these "best practices" being instituted. So you might leave and found a startup thinking that you absolutely must have 100% unit test coverage for everything, because that's the way things were in your 100+ person division in the old company. Or you might go too far in the other direction, and think that you don't have time to setup a decent build system. It takes experience - in both environments that have them and those that don't - to understand the particular circumstances where "best practices" are really best practices.

IMHO, the ideal career setup for founding a startup is to intern at startups in high school & college, then work for a fast grower or big company for a couple years afterwards. (And start lots of little companies while you're in classes, of course. ;-)) Startups typically demand more from interns than big companies do, because there's more to do, and you also get to see firsthand all the problems caused by inadequate development practices. And then you can see things done right at a big company, with enough time to actually dive into the meat of it. You still probably won't succeed with your first company (almost nobody does), but at least this'll expose you to what both success and failure looks like.


Well in the big-company that I work for some groups still use a unix directory as their SCM system. Some groups still use fortran and some groups still link everything into one executable which is around 975mb for one instance on the file system.

By big company what you really mean is "work for google".

Again the only thing you'll learn is tech. You wont learn sales or business or accounting.

Taking your example of organizing code and designing C++ code, you could develop these skills by just working on open source code will give you that.

Infact I use a lot of the tools/programming idioms/libraries that I've learnt from the open source community at work. It actually gives me an edge over the crap they do at my big-company.

Again, if by "work for big company", you mean work for Google then I totally agree.


"Again, if by "work for big company", you mean work for Google then I totally agree."

Man, I have failed again in my quest to experience every kind of employer.

I think my next job is going to be at McDonalds. I've never worked in food service, and perhaps it won't be quite a distorted perspective as where I've ended up.


In corporate america, all you do is take care of your own small corner of the business

That's true, but you still have the opportunity to learn about other aspects of the business even if you're not responsible for them. I talk to people in other departments, go to their (open) seminars, read about what's happening. Not to mention large corporations have many, many training classes in various areas. I'm a software developer, but I took in-house classes in Finance, Recruiting (improving interviewing skills), Communication, Influence, and more.

Don't just sit in your little corner and you may be amazed at how much you can learn.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: