Self educating from the age of 3 but no formal education as of yet. I find comfort in standards compliant code, letting the compiler do its thing and writing hardware accelerators when the compiler did not do its thing good enough.
The first thing I try to do with any piece of hardware that I work on is blink a LED. From $1 micro controllers to $500K spectrum analyzers - blink a LED. Because if your code is not doing something in the tangible world it's not worth writing it.
I started out as an RF test engineer, continued through to writing and fixing bugs (using wire-up) in a project that came to replace the very equipment I was working on, then got dragged into the strange world of developing custom made ATE, and now ended up working on an SDR project.
My current main languages are C, C++, MATLAB & System Verilog. Though at some points during my life I was, and sometimes still am, forced to write in HP Basic, Turbo Pascal, Delphi, Borland C++, Visual Basic, Excel, Python, SQL, TCL, (X)HTML, CSS, CVI, LabView, VHDL and various assemblies.
I have worked with Altera, Xilinx and Lattice FPGAs, Microchips' PIC16, PIC18 & dsPIC32, Cypress' PSoC1, PSoC4 & PSoC5, various ARMs (ranging from things as small as Atemels' chips and as large as Xilinx's Zynq) and some DSPs, including many variants from CEVA and Cadence.
As of the last several years I mainly try to squeeze state-of-the-art signal processing algorithms into highly resource constrained systems.