Take an undergraduate degree course in computer science or software engineering - otherwise your question is equivalent to asking how to learn how to use concrete for building construction projects. — Dai58 secs ago
Writing a technical spec increases the chances of having a successful project, service, or feature that all stakeholders involved are satisfied with. It decreases the chances of something going horribly wrong during implementation and even after you’ve launched your product.
There is a Stack Exchange site that specializes in Software Engineering. If you read through their help pages on asking questions and revise this question to fit their rules, you my have better results. However if you do not revise this question it will be closed just as fast. — user458130116 secs ago