Wednesday, December 13, 2006

Pune Barcamp

I'll be presenting some of my education and incubator ideas at barcamp this weekend.

Here's a quick outline.


"If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea."

Marc Hedlund quotes Antoine de Saint-Exupery


premise:

there is a huge amount of high tech work to be done.
The internet itself is a resource for both education
and jobs. Self motivated people can both find jobs
online as well as learn the skills necessary to perform
them.

google certification:
increasingly the most significant reference employees
have is their reflection in the web sphere when an
employer types the candidates name into google. As such
students hoping to increase their attractiveness in the
job market would do well to conciously develop their online
profile. For software developers having publically visible
code goes miles for establishing legitimacy. Some ways to
go about this are :
- open source projects
- ngo projects
- social networks
- university tie ups

next gen teaching:
in the age of video, traditional lectures are (or should be) dead.
instead online video courseware should (and is) emerging which
combined with conventional web based tutorials and reference books
provides most of the vertical knowledge students require
- MIT open courseware
- Digital Study Hall

Learning Groups:
Especially for beginners, there are still strong needs for teachers
to help guide students thru the learning process. I see this role having
two primary aspects. One works with the more human aspects of helping
students progress thru their training providing encouragement and
navigating personal issues the arise. The other provides subject specific
help, assigns and evaluates homework, and leads group discussions.

Networking:
So, much of the main role for traditional education is in the
networking. A next generation institute might focus on these as
the real value add of the organization. To do this 'classes' should
have an emphasis on group programming projects, as the best way to
learn who you want to work with is by working with alot of people.

Practical focus on jobs:
Thru the educational process people should be watching the job boards
and many 'class projects' should be pulled from them. In this way students
should be very clear that the skills they are picking up are directly
relevant to getting jobs. And they develop the confidence to interact
directly with clients.
- rentacoder.com
- elance.com
- getafreelancer.com
- ether.com

Research:
In addition to gaining practical experience doing service jobs
there should be significant energy put into exploring new areas.
In my world this would be oriented around technologies with near
term product potential.
- amazon web services
- occasionally connected clients
- mobile computing
- video

Incubator:
By bidding on jobs people develop their portfolio, and learn
how to put together compelling proposals. If the students decide
to turn into entrepreneurs, this can be used to pitch investors.
A significant part of what the modern university provides is the
connection between alumni and industry and young people with
fresh ideas. Managing the funding and productization process of teams
deserves significant support.

Matriculation:
The goal of the system is to consistently produce students who
can work well in a modern software development environment on
peer level with their western counterparts. Experience working
with good tools, doing service work, and running start-ups is
all part of developing these skills in the individuals.


skills -

project management
- basecamp (37signals.com)
- hiveminder(.com)

source control
- svn or cvs

issue tracking
- bugzilla
- trac

database
- mySqL
- postgres

languages
- ruby
- php
- java
- javascript
- python
- perl

frameworks
- rails
- hibernate
- ...

design
- css
- html
- flash

ajax

os
- linux


resources:
- Teach yourself programming in 10 years
- How to be a Hacker
- Paul Graham - Great Hackers