As things constantly change, especially in post secondary education, I think it's important to look at the landscape objectively. If you know what direction your want to take your life and career, a university isn't always the right answer, and it shouldn't be the default.
I dropped out, not to avoid education, but to seek it out in different ways. It's been a year since and I've found employment that is as good, or better, than I would have coming out of a traditional university.
It wasn't about becoming the next Gates, it was about getting educated in a way that made me a more valuable team member. I just felt like I could do it better than the universities could.
The hard thing is that most successful disruptions come from startups who are ignored by incumbents. In data they're motivated to keep even the lowest profit clients, so startups face their wrath from the beginning. It isn't pretty.
Incumbents wont always copy innovations. When you innovate to hit an overshot section of the incumbents market, or non-consumers in the incumbents market, you create asynchronous skills. The incumbent typically will ignore you because you're taking their low end clients, but eventually, the innovations that won the low end clients will improve and you will move up market. That is how disruption works, almost always through innovation.
I think when you say innovation you mean sustaining innovation, which is where you build something that serves the most profitable section of the market, therefore motivating incumbents to copy you. When playing that game it's almost always a lose for the startup, unless you quickly sell out to an incumbent.
There are some situations where incumbents will be motivated to fight startups on low profit clients. Typically this is when you have an incumbent who's profitability comes from having a high volume of low profit customers. In cases like that, it's not likely you will get a foothold unnoticed.
I should have been more clear. "Sustaining" innovations is what I'm talking about. As long as incumbents see an innovation as valuable to their current customer base, they will adopt it. It's the innovations that appeal to outside markets that start ups thrive with.
I think 'process' in this context is more about mindless bureaucratic processes rather than organized effort. Running a household requires tight organization, but it would be weird if I required my wife to submit TPS reports to me on a weekly basis.
We have a family culture that makes it possible for a lot of 'rules' to go unwritten and unmentioned, I think primarily because we're on the same page. We don't need an employee handbook, or weekly meetings, but we're an efficient organization.
I'm kind of in the same boat. I took a year off college to focus on learning web development.
A year later, I'm working for a startup, but I am also making double I was at my old job. It was really a paradigm shift in my mind.
I looked at college as my entrance to a career, and later learned that wasn't the case. People value unique skills, not cookie cutter graduates.
You're asking some deep life questions, that extend outside programming. a book: The Icarus Deception by Seth Godin really helped me when I was at a place you're in right now. Helped me understand how really successful people do it. hope that helps :)
People value unique skills, not cookie cutter graduates.
I'm hoping to be able to work in Seattle next year at either Microsoft or Amazon and the main requirement they look at is whether the applicant has a degree in Computer Science or related field. Only after do they begin to look at personal projects/past accomplishments etc.
Not trying to say a university degree is for everyone, but for people like me looking to get into a top technology company, it's a requirement.
Not always though. I didn't get a degree but have had recruiters from both companies reach out to me based on work experience. Based on the conversations we had, it didn't sound like my lack of a degree was a big deal.
If you have the unique skills they're looking for, the top technology companies are willing to budge on the degree requirement.
Definitely, it's a shift all intelligent companies are making. Google has been relatively vocal about hiring quality people regardless of degree or quality of school i.e. ivy league.
I am actually working for a startup who is prepping an app for investors approval, and what we have found is speed, and progress is important. I would definitely recommend RoR because the speed to development is so critical. With Rails it isn't unrealistic to have a MVP within 3 months. Especially with 10-15 hours a day.
And you can get a macbook air for around $900-$1300. That's all you really need, nothing fancy.
And if your app is meant to be mobile, you can get deep into mobile web development and even create a very native experience. That's what forecast.io did.
Also as you probably know, in startups it's more about proving a model than having a fancy piece of software. Think about what features are going to attract customers asap. Iteration is easier when you have customers giving you feedback.
IMO RoR is the fastest way to make those vital iterations. Once you're sitting on your $5 million in venture cash you can worry about architecture and scalability.
I've seen some online courses like CS50 with C and MIT with Python. The question is why are they starting with those programming languages and not going straight to high level languages?
That is one of my main worries actually. I want to have a solid foundation and principles of how I should build something. Or is my thinking flawed?
The goals of those courses are different from the goals of building complex software. Courses are designed to teach you how a language works in both theory and practice and they generally go through a language and help you understand what parts of it do and why it does what it does.
Nearly all modern languages have developed as some response to C, and Python is also studied because it has a good reputation as a first language.
Software development is about coordinating work so that it produces a product that is reliable and also on time and under budget. This is the sort of thing you can learn, somewhat, by examining the code and work done in open source, but mostly you learn it by working in a (good) software development office. It's important, but not something that is easy to teach while you are also learning how computer languages work.