In order to gain some practical technical experience, I have started off building a software from scratch whose excellent open source option already exists.  I have examined the features of that open source software and I plan to incorporate them in my software to gain practical experience of programming.