I started tinkering with computers as soon as they became available to the large public. Hardware was fun, but software clicked with me, and soon after I became a hard core developer.
Remember the Commodore 64? The MSX? The Amiga? The original IBM PC and all those brands and computers that now exist only in museums?
At my high school they were teaching Pascal and Basic. The lab had machines from Facit and a Commodore PET. After a few months that didn’t seem enough and I started pestering local computer shops so I could work on better machines.
I learned the C language, and soon after Assembler for Z80, 8088/86, and 68000. With a friend, we collected IBM computers BIOS documentation and reversed engineered everything that we could. In our spare time, we also did hardware support and installations.
Our first applications were low level utilities and fast graphic routines. Later on, I started developing small applications and collaborate with the shops that previously allowed me to play with their equipment.
For a couple of years I taught classes on C, C++ and RS232 communication. I also worked on some projects with a couple of companies to interface PCs to data logger machines for industrial automation and pollutants levels recordings.
And in my spare time, I was doing photography and developing my own black and white prints.
Then I finished High school, and had to find a real Job.