Sometimes it is easier to write an algorithm code from scratch than finding/studying all options/dependencies/limits/parameters of an existing code.
If you want to start/Master cs/data science, write/implement twenty top algorithms from scratch. It may seems crazy to do that, but it is the easiest way to understand algorithms.
To make sure that, try to extract a meaningful nontrivial result by ID3 on a (v-h)large dataset.
I experienced it many times, for example after hours of work on implementation and learning a specific model from matlab (e.g svm or em) you find out it does not satisfy your needs. Then you must try to rewrite the codes.
Even if you persist on using ready to implement codes, write it from scratch to learn how to code and find the sensetivities this model has.