I would second you on this, but I would throw in ARM as a possible processor to target there are a lot of devices to tinker with that have ARM processors.<p>My second recommendation would be LISP, it is pure and helps you understanding structure very well.<p>If you are just diving in start with a procedural or functional language doing so will make you a better OO programmer when you make that leap, but I always think it is better to learn pure functional and then learn what OO brings to the table.<p>Doing so will help you understand when to use which one for a particular task, something that 90% (i made that percentage up) of programmers do not know how to do. Example being we use OO languages for system, data and batch processing and we use functional for UI an AI development. This is backwards and accounts for a good portion of why development, these days, is so convoluted.<p>Finally, if you are just wanting to sling some code to make money then just learn Java, no offense to the Java community intended, but if one does not have the passion they should just learn the most popular language and start building junk.