For someone having a decade of experience in software application development(mostly web applications) but not so much knowledge about hardware, what is the best approach to get into hardware hacking?<p>C was the first programming language I learned and while I was in college I did some fun projects like developing a graphics & GUI library from scratch using just BIOS interrupt calls to set video mode, read/write pixel on screen and mouse handling. Since I left college I code mostly using python, php & javascript.<p>What would be the best approach for a person like me to get into hardware hacking?
Arduino. You are writing in C but there are plenty of examples you can use to start with. The community support around Arduino is fantastic, and is a great way to get into hardware.<p>Although somewhat overpriced, the Arduino starter kits that you can get are a pretty good first step. I bought one a few years ago for about $90. The premium you pay is worth it, in my opinion, for the components, instructions, and sample projects that come with it. Starting with projects from a kit like this lets you get your feet wet, while picking up bits and pieces along the way. From there, you can branch out, make modifications to the code, buy new components, and start building your own projects.<p>More information about what kinds of things you are interested in would help in guiding you also, although I think Arduino is probably the best starting point in any case.
If you want a more structured introduction to hardware hacking, UTAustin is offering a MOOC called "Embedded Systems - Shape The World" that starts on January 23, 2014 and puts a heavy emphasis on hands-on labs. The platform used in the course is based on the Cortex M4 ARM chip and the board is made by Texas Instruments.<p>Course website: <a href="http://users.ece.utexas.edu/~valvano/edX/index.html" rel="nofollow">http://users.ece.utexas.edu/~valvano/edX/index.html</a><p>edX website: <a href="https://www.edx.org/course/utaustinx/utaustinx-ut-6-01x-embedded-systems-1172" rel="nofollow">https://www.edx.org/course/utaustinx/utaustinx-ut-6-01x-embe...</a>
As a long time HWH and SWH I actually get asked that often. The answer I always give is to find a project that interests you, and go do it. That is the best way to learn, dig in. There are a ton of resources online so just start reading up and researching your project and keep going.