You need some NLP problems and a solid foundation in Java, a computer, and a developer-savvy approach.