On 12 June 2011 17:38, Keith Adam <[email protected]> wrote: >> >> This list contains a large number of self-taught programmers. How did >> you get started, and how did you get to a moderate level of skill? (If >> you want to talk about what happened after that, great, but I am more >> interested in the first two stages)
* The seed: My love for the computer started way back in 1984 [seems like an eventful year]. My mother decided to write her PhD Thesis on Wordstar, and I would tag along to her lab, and help her type out the words. When I got the computer to myself, I was free to explore whatever I wanted. And, I did, for 3 full years. GWBASIC, Lotus 123, Statistical Computing Packages. Though, I really never understood any of it (I was 6 when I started). * The early days: The "playtime/sports time" in school was spent in the computer lab, and not the field getting dirty playing football (Yes, I found the hard way that playing with computers is clean). Here, I learnt to program simple stuff using GWBASIC and FORTRAN. The instructor encouraged us to move away from games, and taught us basics of how computers work. Looking back, I think he was responsible for my initial love with machines. As Deepak and Thaths mentioned, programming on paper was so much more clearer than writing in an IDE. * The formative years: My pre-engineering days were spent in two ways, a computer course where I learnt C, DBase, Lotus 123, Pascal, and part-time work at an electronics shop helping the guy fix TVs, radios, etc. I learnt to solder, trace paths in an electronic circuit, compute voltages across resistors, plus program in C. It was a combination that made me choose the streams later on in my career. To this day, I am a confused engineer. :) During my 4 years at college, I studied EE, but would spend most of the time sneaking into the CS lab and programming problems in C, until they finally caught me. When my own department got computer equipment, I spent all my time there learning each piece of software on the system. I feel there is a distinct separation of theory and practical application in our education system. We studied all the theoretical foundations, but never knew where it was being applied or how. My first true practical experience was at ARDC, where I interned, and worked on the LCA. Our project was a simulation model for flight dynamics of the LCA, computer design of actuators, and do real time analysis of flight conditions. I met two "entities" who would change my way of thinking in computing, my mentor, a brilliant scientist who encouraged me to research and learn, and the second was the super computing machine in the lab, which gave me a taste of the true power of computing systems. * The ongoing learning phase: These days I just try to pick up new skills at whatever is my place of work. This leaves me very less time for personal stuff, which is devoted to my other love of photography. My tools for programming in my current job are C#, Perl, Scope/Cosmos (equivalent of Pig/Hadoop), and a bit of Haskell in my spare time. I am also starting off some Android development, time to put my skills in programming to some use for photographers. :) I should add that I have been lucky enough to know some brilliant folks/hackers/geeks along the way, Jois, Jace, Thaths, Divya, Cheeni, who are on this list, and a bunch of other people who are in the real world. ~ashwin
