So how do you get started?  Interestingly, it isn’t about the code, it is about the design, after all, with the exception of Social Networks and Computer Games, most of humanity has little need for software.  After all, Mayans didn’t use computers and they survived for a good bit of time.  So in general as a computer scientists or engineer you need to have an indepth understanding of software and some sort of domain knowledge.  Your domain knowledge might be sensors, biology, engineering, or accounting to name a few.  Hopefully your domain knowledge has a lot of customers, because it is customers that usually pay you or the company you work for.  Of course you might build apps that provide cash through in-app sales or advertisement, but even these require that you understand your customer needs.

To capture what a customer needs, you need a way to show them the UI, usually the customer doesn’t really care how you do it, but they do care about the way they will interface with the system.  Now sensors might not have a direct UI, but they will eventually have to interface with someone somehow so that decisions can be made etc.  Unless you designing SkyNet, but that is a different problem

How to get started?  Here is a link where you can download a number of useful tools that you can use in Adobe or PowerPoint.  Check out this link for some starter items that you can use to implement design conversations:

http://msdn.microsoft.com/en-US/windows/apps/bg125377

For example the powerpoint version has items like this dialog box, which I find useful, just change the text for your needs:

image

Or if you want to use the Balsamiq approach to wireframes:

image