From a fellow engineer/programmer who's launched herself headfirst into a novel-length project, there's a few tips I've been picking up through trial and error.
I agree with Kate - write lots. Doesn't matter what. Could be an online RP, or speeches, or a journal. But keep writing, since that's how you improve and the process gets more natural. Especially if you've never really written before. I kept my skills from going completely rusty over the years by writing short stories, participating in RPs (a wonderful way to explore a character, by the way) and proofreading other people's work.
When it comes to planning a story, I find that it's useful to first determine your starting and ending point. If it's a character-based story, what is your character like at the beginning? Where do you want your character to be at the end; that is, how do they need to grow? From there, if you have a basic setting in place, you can start thinking about a catalyst for that growth (normally some kind of personal disaster). Piling problems upon a character is generally the way to go. :P
The same applies if the story is based around the evolution of a society, or a world. I found it always helps to think about the starting point, and what is wrong with it. Why does it need to change? If your answer is that it doesn't, then I don't believe you have much of a story. And then think about where it should be at the end. Maybe it doesn't grow - maybe it's a tragedy and the place self-destructs. Point is, you have a start and end which should start giving you ideas as to what happens in between.
I found that opening a word-processing program (any one will do!) and getting all my ideas out in a messy, stream-of-consciousness fashion normally helps to shape my thoughts. One will lead to another until ideas start forming about what I want to do. Just keep in mind that once you've decided something, it's always subject to change!
The other recommendation is index cards. Put down the key events and then start playing with them. It's fun, and leaves you room to fill in additional details. This also helps when you want to see where the gaps in your planning are.
Hopefully this will help you get started!