Under 30 and On The Cutting Edge
conq writes "BusinessWeek has an interesting piece on cutting edge technology entrepreneurs under 30. From the article: 'Don't look at what the industry is doing,' Erchak says. 'Look at what they're not doing and focus on that. That's where the real disruptive technology comes from.'"
Cringley has pointed out that the retiring boomer hackers will have more impact especially on the open source movement.
The under 30's have the advantage/disadvantage of not knowing what is impossible. On the other hand the old hands know the old tricks.
I was astounded to encounter teen interns who looked astounded at the concept of sub-Gigahertz machines.
Look up terms like first mover advantage, second mover advantage etc. This has been studied ad infinitum.
Marketing is complex, as much as we like think of the guys in marketing as the ones who, despite being 40 and white, call each other bro and are really competitive about pick up basketball games.
And All I Ask is a Tall Ship And a Star to Steer Her By
Also, "Businessweek" should have considered the quality of the new businesses. Even though the per-capita number of startups in Europe is lower than that in the USA, the quality of those startups is higher than the quality in the USA. Remember all the failed startups in the DotCom boom?
Now, consider 2 stellar European startups that have made a difference. They are Opera Software (builder of the fastest, most compact browsers for Windows machines) and Virtutech (builder of the first commercial full-system computer simulator).
Not neccesarily a bad thing. Guy Kawasaki has commented that there are a lot of smart people in the world... if you come up with an idea, look around, and see abolutely no competition, then you have pull a Scott Adams and ask yourself, "which is more likely?"
Now, you see, the trick is that if you are somewhat smarter, luckier, or more insightful, you have two choices. You can attempt to come up with something completely original and new, which is really risky, as shown above. Or, you can enter a known, existing, money making market where your somewhat-smarter brain, store of luck and somewhat novel insgihts will allow you to out-maneuver the barely sentient cretins who currently inhabit that market niche. Still somewhat risky, but not anywhere near as risky as trying to create a completely new market.
"Great men are not always wise: neither do the aged understand judgement." Job 32:9
Agree 100%. By 30 I was getting fat, my back was bothering me and I had no enegry.
:P
:) Hey, you're a nerd, you are capable of learning, right? Buy a few books on nutrition and exercise and get a gym membership. Prepay for 3 years, that'll give you the best rate available. Maybe they'll even throw in a few personal trainer hours.
Now I'm 46 and in better shape than at any point in my life before. Probably in better shape than you kiddo
You probably expect some exercise machine or miracle supplement spam now. Sorry to disappoint.
RP
thegodmovie.com - watch it
Here's my advice for someone like you: don't try and invent the wheel yourself. By that I mean don't try and find a programming consultant to program something for you. There is a 99% probability that you'll get screwed. Number one, it's EXTREMELY hard to find good people. By the nature of programming, you can't tell easily how well something is done. If you hire a someone to, say, build you a brick wall, even a layman can tell if it's straight or if they did a crappy job. Not so with programming. You can pay and pay and pay and still end with a barely functioning piece of crap that no one can fix. I've seen it time and time again with my more marketing-oriented friends.
The only way that sort of thing works out if is if you can find someone with a proven track record that you partner with, who has an incentive to get things done economically and done well. But, of course, partners have their own set of problems, and even if you're sure this tech partner of yours is good, there's a fair chance that he's been faking it all along and he's really bad. :)
I say all this to really put the fear of God into you about trusting tech people. It's REALLY hard to be successful doing something home grown when you're not the one doing the growing. I cannot tell you how many friends I've seen go down in flames this way.
Here's what I suggest: find something already built and selling. If you're good at marketing, then focus on what you're good at. Look for "private label" relationships where you can set up a site, but someone else is running the back-end. There are lots of affiliate relationships where they pay for referrals. That can pay off, though I'm not sure how well. I tend to like better the ones where you set up your own site. It just makes it a bit more of a unique thing than affiliates.
Another play I like are drop-ship companies with various product lines. Take the catalog, feed it into a web commerce hosting site, and start marketing the heck out of it.
The bottom line is to focus on what you're good at, and minimize the risk of what you're not good at. The fact that you have some geeky credentials puts you ahead of the marketing people who try and do things like this.
Sometimes it's best to just let stupid people be stupid.
Sometimes it is just stupid, but often it is required because of the nature of the crappy computing world we live in.
For example, since the registry is just like the file system, but is just a little bit different and uses different interfaces, we need to duplicate all of the tools and features that we have to work with filesystems on the registry.
Since every application has a persistent large space it accesses via open/close/unlink/read/write interfaces, and a non-persistent small space it accesses via malloc/free/memory-access, every application must reimplement the dumping/loading between these two memories for all of its data. Every processing function must be implemented on memory for in-application use, and a special GUI or command line interface must be written just for it, to wrap its functionality for the user, accessing files. Worse, a specific wrapper that attaches the library to input/output from some network connection.
Since every application has to manage its own GUI window (amazing that this stupid model survives still..), every feature written which due to the above concerns gets reimplemented in the context of every application needs to get some GUI code to be implemented for it in the context of each and every application.
We live in a super-fragmented computing world, where the exact same features are reimplemented over and over and over, each time in the scope of a new "environment" which is just like the other one, but with a slight difference.
The unfortunate inevitable consequence is that 99.9% of our effort in the computing world is concentrated at duplicating existing ideas to new environments. This is, as you say, very uninteresting and even frustrating!
What the computing world desperately needs is some unification and generalization that would get rid of almost all of the duplicated effort now seen:
This also results in another simplification: A program is either installed and "running" or it is not there. A lot of wasted effort writing "installers" that worry about the persistent representation of the program would become unnecessary!
Instead, software should be written as simple functions or "components" (much like Unix commands in a command line pipe) which are easily and even automatically attached to the correct GUI widgets by the GUI. The GUI then becomes completely disconnected from the software logic, which makes it more customizable by the user, and lets the user build his own interesting "windows" that interface him to multiple components. "winamp" and other music players would become mere configurations of widgets that any user can build up. I would guess 90% of the code in the world being written is all about this and would become unnecessary.
Some interesting consequences of the above unifications:
But yeah, I've been feeling for a long time now that programming and system work is needlessly tedious, boring, anal retentive, and that it's the fault of the languages and systems. We hope and strive for but don't yet expect intelligence from our computers, just very very fast computation. Intelligence is a fine goal, yet we haven't gotten computers entirely set up to relieve us of what they can do well. Somehow it's people who often end up having to do a lot of mindless tedious repetitive tasks for the computer. Shouldn't installing an OS be a nearly brainless task? Shouldn't configuring the Linux kernel be automatic? Why, if I want to "roll" my own kernel, do I have to dig through hardware detection messages from system boot, from ls utilities like lspci, and so on to figure out how to configure the kernel? "Cobolization", that's one of the problems. Ever see source code for "hello world" in Xlib? Over 100 lines of code just to put up a lousy little message window. (Of course that's why we have Motif, GNOME, KDE, etc.) XML isn't much more "human readable" than assembler. Why do we have a separate language for makefiles? I don't know a single general purpose language that isn't universal, but somehow none of them are suitable for instructing the computer in the details of compilation. As if makefile language isn't bad enough, C has 2 syntaxes for the same concepts: preprocessor syntax such as "#ifdef #endif" for code that should be compiled into a program if a condition is satisfied, and "if () { }" for the exact same thing except executed during run time instead of compiled during compile time. More fundamental than file/memory access, we have dozens of incompatible and arbitrary syntaxes for calling functions and passing parameters. Shells do it one way, most apps parse command line options in 1 of 2 ways, but many mix it up, and C does it at least 2 ways in syntax: "main(argc, argv) int argc; char **argv; {" or "main(int argc, char **argv) {", and 2 ways internally-- who remembers that C has a keyword "Pascal" and what it does? Thanks to so much of most OSes being written in C, most other languages have their own special conventions for calling C library functions. As to arguments that each of these languages is a tool, that tools are not universally suitable for every application, and one should use the best tool for the particular purpose of the moment, note that this is not true of the typical natural language. I do not need to switch from English to another language to express ideas. Any universal language can express what any other can with some constant multiple of the number of statements used in either one. For natural languages, that constant is a lot closer to 1 than for programming languages. Not one of these programming languages approaches or intends to approach the power and expressiveness of a typical natural language. Well, that would take machine intelligence, but there is much that can be done to streamline and simplify what we do have now.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"