This is critically important. In the past few months, I've done a lot of networking with the tech entrepreneurs in my city. After speaking to these guys, I became aware of problems I didn't even know existed. It turns out that corporate South Africa (and probably the world over) have a massive number of problems they need solved. For example: fleet management, business reports, operations (like using Voronoi diagrams to see which restaurant chain 'dominates' an area). This surprised me because as someone without exposure to a real business environment, I couldn't conceive why people would actually buy reports products and resource planning software. If you asked almost any CS major to explain what a 'enterprise resource planning application' should do I can quite safely bet that they won't be able to accurately describe what problems it addresses and how it solves them (assuming the grad has no first-hand experience in dealing with this kind of problem).
I realised how as an individual I have been exposed to mainly B2C companies. Now, having been introduced to real, profitable B2B companies, I see that the domain of problems to solve and businesses to build is huge. 'Get out of the building' really summarises this concept well. Get exposure to real business problems and you will find someone who has an unsolved problem that you can attack. A nice example of this (not a business problem but a real one nonetheless) is the other day I had to collect my calculus test. There were 1000+ people contending with each other to find their paper in 50 semi-sorted piles. It was chaotic. I know that there is a better way to do this (fast and efficient distribution of unique papers to 1000+ people) - I'm currently thinking about how to solve this problem. The takeaway idea here is that there are tons and tons of problems out there and exposure to the real world will give you the opportunity to see these problems and begin solving them.
PS: Divide 1000 papers into stacks of 1000 and give to 10 people to subdivide into stacks of 100, which divide between themselves and 9 other people. Let all those people further subdivide the sheets till everyone has someones sheet. Put out an alphabetical list of those 1000 people where they can write some way to contact them. Or let them write their email adress/phone number on the paper next time you have a test. This way, everyone has to deliver 1 paper to one other person and receives 1 paper. There's most likely a better solution, but I can't think of one right now.
Thank you. I stated this as well but was missed by so many 'readers', glad you mentioned it here!
That sounds incredibly cool. Would you mind going into more detail?
There is a huge difference between that. A good job will have some nice engineers there, that might be willing to help you out and push you to learn how to code correctly.
This is the main reason to intern.
I'd bet nearly all of the young'uns in question are NOT spending much of their remaining waking hours building something of their own on their own. Yes, the world doesn't need another to-do list, but there's a zillion other small projects anyone can do with overhead expenses approaching $0. Even if they're doing just a to-do list, then they're doing SOMETHING on their own, learning about building & polishing & documenting & packaging & distributing & advertising & selling & etc., creating a portfolio of personal experiences. So what if it's unoriginal? follow the unoriginal path until it ends, then be somewhere the path is heading and be the first one there with something original.
Programming and entrepreneurship are like being a musician: if you don't do it at every opportunity, if it's not your preferred time-filling activity, if it's not darn near oozing out your pores, you're not one. I'm realizing people don't understand "I want": it's not a vapid expression of desire when pressed for an answer to "what do you want?", it's something you crave & pursue without prompting by others. The author noted that 75% of those saying "I want to be an entrepreneur" were doing absolutely nothing to make it happen, ergo they don't want it.
A lot of the stuff I built in my spare time as I was learning to code failed. Afterwards I questioned why and took that knowledge with me. Probably not as much as working with real business problems, but it is not for nought.
It's part of being an entrepreneur. You have to keep thinking and keep looking for ideas consciously. It's a cultivated habit.