I've used Python and Small Office Basic, only nothing sticks! I've never done it before but I've been interested in it for a while. Any programs I should use or any online classes that are best are appreciated!
I've used Python and Small Office Basic, only nothing sticks! I've never done it before but I've been interested in it for a while. Any programs I should use or any online classes that are best are appreciated!
Despite being a software engineer, I can't give you any specific suggestions for a program to use (In a Use X, the rest are wrong kind of way), I find a lot of that, especially in terms of IDEs, is personal preference. For one language I prefer using a text editor and a command line, while past colleagues have stuck with a fancy suite they didn't use half of. For getting started however, I would not let this worry you at all, your choice of environment should be something to consider later, first is the language itself.
For embedded systems work, I'd go with C, and later C++ (Or the other way round if you really want). Compared to other languages I "know", I didn't exactly follow any guides for this one, over time however I have found one or two resources to get going, the main site that I use is this one. It covers C and C++, everything from the basics to programming graphical interfaces. Obviously for working with your MCUs, half of that is useless, but the basics will get you going. There are a few books out there that may prove useful, I use Programming in C (Developer's Library) by Stephen Kochan, its a reasonable introduction and a handy reference. In terms of programming for chips, I would actually suggest getting something like an Arduino. Not just because I'm a fan of them, but because of the advantage they provide to getting started. The IDE and attached software takes care of the compiling and downloading side for you leaving you to put together the electronics, and concentrate on the programming. While it is not strictly C, it does provide the chance to pick up the basics (Loops, If statements etc), without having to worry about interacting with the hardware on a low level (No need to fiddle with individual bits until you are ready). Once you are comfortable with that, it is not a great leap to doing it on your own boards using C and your own libraries.
For desktop applications, I would suggest sticking with Python and C. As you are aware, Python is pretty simple to get the hang of, with the addition of the right imports, it can be used to interact with your hardware over a serial connection. For example, the serial library and <100 lines can get you exchanging strings of characters over USB with your device, whether it be an Arduino or an XBee or whatever suitably wired and programmed item it is. As mentioned above, C works just as well. In addition, if you are feeling brave I would also suggest having a look at Java. Despite the criticism it may get for whatever reason, it is a pretty useful language (Mobile phone applications anyone?) and easy to pick up from a C/C++ background. For learning it, the best source I have found so far is from Oracle themselves. This page takes you through the basics of the language and gets you started with compiling and running. As the main guide suggests, there are two main ways of doing it, using the command line and with NetBeans. Netbeans is worth checking out, while it does support other languages, from a java development perspective, its very useful in terms of tools for beginners, including automatic generation of build files (and a whole other list of things you don't need to worry about).
Whatever language you learn, the best advice I can give is to stick with it and don't forget to google. More often than not, those confusing errors you will get can be solved by pasting the message into google. All else fails, find a programmer or two and bribe with their beverage of choice for help 
Good luck learning, before you know it you'll be hacking away without a care. Any questions just shout, it is 04:30 so I highly expect this entire post to be a bit of a mess...
Despite being a software engineer, I can't give you any specific suggestions for a program to use (In a Use X, the rest are wrong kind of way), I find a lot of that, especially in terms of IDEs, is personal preference. For one language I prefer using a text editor and a command line, while past colleagues have stuck with a fancy suite they didn't use half of. For getting started however, I would not let this worry you at all, your choice of environment should be something to consider later, first is the language itself.
For embedded systems work, I'd go with C, and later C++ (Or the other way round if you really want). Compared to other languages I "know", I didn't exactly follow any guides for this one, over time however I have found one or two resources to get going, the main site that I use is this one. It covers C and C++, everything from the basics to programming graphical interfaces. Obviously for working with your MCUs, half of that is useless, but the basics will get you going. There are a few books out there that may prove useful, I use Programming in C (Developer's Library) by Stephen Kochan, its a reasonable introduction and a handy reference. In terms of programming for chips, I would actually suggest getting something like an Arduino. Not just because I'm a fan of them, but because of the advantage they provide to getting started. The IDE and attached software takes care of the compiling and downloading side for you leaving you to put together the electronics, and concentrate on the programming. While it is not strictly C, it does provide the chance to pick up the basics (Loops, If statements etc), without having to worry about interacting with the hardware on a low level (No need to fiddle with individual bits until you are ready). Once you are comfortable with that, it is not a great leap to doing it on your own boards using C and your own libraries.
For desktop applications, I would suggest sticking with Python and C. As you are aware, Python is pretty simple to get the hang of, with the addition of the right imports, it can be used to interact with your hardware over a serial connection. For example, the serial library and <100 lines can get you exchanging strings of characters over USB with your device, whether it be an Arduino or an XBee or whatever suitably wired and programmed item it is. As mentioned above, C works just as well. In addition, if you are feeling brave I would also suggest having a look at Java. Despite the criticism it may get for whatever reason, it is a pretty useful language (Mobile phone applications anyone?) and easy to pick up from a C/C++ background. For learning it, the best source I have found so far is from Oracle themselves. This page takes you through the basics of the language and gets you started with compiling and running. As the main guide suggests, there are two main ways of doing it, using the command line and with NetBeans. Netbeans is worth checking out, while it does support other languages, from a java development perspective, its very useful in terms of tools for beginners, including automatic generation of build files (and a whole other list of things you don't need to worry about).
Whatever language you learn, the best advice I can give is to stick with it and don't forget to google. More often than not, those confusing errors you will get can be solved by pasting the message into google. All else fails, find a programmer or two and bribe with their beverage of choice for help 
Good luck learning, before you know it you'll be hacking away without a care. Any questions just shout, it is 04:30 so I highly expect this entire post to be a bit of a mess...