I think you're going to have to go find original research sources and either implement it yourself from scratch (in which case, learning basics and theory you are on the right track) and/or find an open source library which you can use to expedite your understanding.
I see this is tagged with Java. Java can do this fine, but if you can't find a Java open source project you may have to look at non-Java OCR open source projects.
I have no idea what the status of this particular project is, but you could contribute here:
Java OCR download | SourceForge.net
If you do want to implement it yourself regardless of what's out there, say as a learning experience or a resume builder (or whatever), if you have the time that'd probably be a fun and rewarding project. Especially if you release the source.