“E” stands for educational. The main purpose is to improve your education or knowledge, making money or moving up to a better job is a possible side-effect.
The keys for an “E” project is
- Early Adapter of a version 1.0 language, product etc.
- Ideally within 6 months of release
- “Academic Research Languages” and “Niche Languages” are an exception.
- Be prepare for 6 “wasted time” for every success
- Actually, the time is not wasted – you have increased your width of knowledge and patterns.
- Be product/offering directed.
A few examples from my own past.
- APL/360 (in 1968) – main benefit was seeing what was seeing what was possible beyond currently available languages like Assembly, Fortran, COBOL, EasyCoder.
- C did not come into existance until 1973
- B (that which C was based on) did not come into existence until 1970
- Most developers have zero experience with this, which is still a much higher language than C# or Java
- Purchased Borland TurboC 1.0 just after it was released.
- Ended up writing a collection of MSDOS Utilities in it and sold copies under ShareWare
- Talked the boss into getting Visual Basic 1.0 for a work project.
- 3 months after release,
- Lead to me getting on with Microsoft (after all, few people were programming in VB longer than I had been!!!)
- Purchased the original VBX Kit (VB Control SDK) and learn to writer UI Controls from scratch. (The docs were mimeographed pages in a binder)
- That skill has given me a leg-up through my career.
- Next time you open SSMS, the tree on the left was prototyped with a control that I wrote for another project and MSSQL group “borrowed”.
- Did a set of prototype dialogs for a startup in Android seeking Angel Funding.
- Getting regular pings on LinkedIn because it listed on my profile.
Other “E” projects from my past
- Turbo Prolog: A current project may need to use prolog as part of the solution, I already know the “zen” of this language… :-)
- FOCUS, Oracle 5.1, RBASE, DB-III, Clipper – all of that experience was recycled into my RDBMS (SQLServer) skill sets
- Simula67 – this is the father of C++ and object orientated language.
On my radar are the following languages:
- Alloy – see http://alloy.mit.edu/community/, it deals with program verifications. The ability to prove programs are correct is a raising trend. If security is involved in your work place, you may wish to get familiar with it
One of my current recommendation for ‘solo garage startups’ is to create control-libraries for the hot mobile platforms:
- Windows Mobile 7
In addition to these libraries (which are marketable by themselves), look at the market places and find out the most popular downloads. Create a monkey-see, monkey-do version of these applications that uses your libraries. Often this process will identify the controls that should go into the libraries.
Once you have the library done – you should create a page showing now simple it is to create these applications using your controls. You will likely see more copies of the library sold to want-to-be developers, then your clone application (unless you do it very very well).
Bottom line is that you are educating yourself. The key is to go with the new-items (before the masses) so you are a big fish in a small tank, instead of a herring chasing the school.
Some of these items will be still born (Borland OWL, Apple’s LISA, etc) – that is to be expected. You can still benefit from the approaches that they attempted.