People can learn many things for free if they are constant learners. Many people have good knack of keep learning from their observations & experiences. So here I am explaining how you can learn software designing for free, just by making observations.
What is software design anyway?
Software design is very much like designing your house. You or your architect designs the house and the builder constructs the house. In similar way, software designers design the software application or product and then software programmers or developers construct the software. Like a building architect, the software designers have idea about how a good design will ensure robust, safe, sturdy, good looking, easily navigable software product.
How to do it?
In software designing, first you think about the features which will be available in the software product. For example, let us take the case of WordPress itself. This website provides users, ability to create their own blog. Let us take a feature of this website which allows the users to write & publish their blog post.
The main features here include a writing pad with editing facilities. The user can use the writing pad in 2 ways. One is the plain text facility and the other is the visual facility. When the user uses visual facility for writing his/her post ten the user has editing facilities like “insert link”, “remove link”, make character bold/normal/italicized, use bullet lists and many other editing facilities. These facilities are provided to users through tool buttons at the top of the writing pad.
Designing these features involves thinking about how a user will use these features. The user should be provided a good navigable and aesthetic looking user interface. This is one part of the software design. The other part of the software design involves the back-end processes like saving the entire post into the database when the user saves the draft. Then when the user is ready to publish the post and clicks the “Publish” button then the blog post should not only be saved to the database but it also should be visible to other users who read his/her blog posts. This aspect of the feature concerns saving the blog post to the database as well as to the web server.
You can learn a lot about software designing freely and easily by going to different websites and navigating through the website.