Check out our interview with Sam Henry, the programmer who coded Noah Text!
Noah Text is a method of marking up the English language to make reading and learning English much easier, especially for people with dyslexia. Sam Henry is a software programmer who, among other work, turned Noah Text into code. It’s an extremely complex but interesting problem to solve.
Tim: What about technology really interests you?
Sam: I was initially drawn to programming through reading a book in high school about the C++ language. I still have no idea why I decided to start reading a book like that, but I’m glad I did! At that time, it was like a whole world of possibilities opened up. Being able to understand more about how computers work was fascinating. Growing up, we all learn to use many types of devices, but being able to program them is like entering another dimension.
Now that I’ve been programming for over 8 years, I really enjoy solving complex problems. Problems can vary from putting together a user interface in an appealing way, computing statistics from a large amount of data, or architecting an entire system, like Noah Text. All of these aspects can be a nice mix of fun and challenging. While it’s tiring when a problem takes hours to figure out, seeing the results after all that hard work is one of the most satisfying parts of being a software developer.
Tim: What kinds of problems did you solve when you turned Noah Text into software? How did you create algorithms to identify Noah Text patterns consistently and accurately?
Sam: For an introduction to Noah Text, visit https://app.noahtext.com/. It’s a method to make English easier to read and learn for people with dyslexia or anyone. The website is a tool called StrongReader, which converts plain text to Noah Text.
When writing the systems for Noah Text, the first problem to solve involved taking any word and computing its Noah Text version. That conversion requires knowing the syllables and long vowels of any given word. Since there are thousands of words in the English language, my first idea was to use some kind of algorithm for each word. Unfortunately, that approach did not work because the English language is incredibly complex. Instead, I ended up using data from a dictionary to get the syllables, and I paired that with a dictionary of phonemes (or “sounds” in a word) to generate the Noah Text version of each word.
After getting the data set up, I soon ran into another problem: how do you determine the correct usage of a word like record, which has two different pronunciations depending on its usage? The sentence, “I record a record” translates into I record a record. The words are spelled the same but have different pronunciations, sound emphasis, and meanings. In order to determine which usage to pick, I had to write software that interprets the meaning of sentences, including finding the subjects, verbs, and many more parts of speech.
Once the tool to convert the text worked correctly, I needed to create some more applications besides the web application. The first one I created was a browser extension to convert any page into Noah Text. I had never written an extension before, so it was a lot of fun learning to put together a tool that talks to the web browser to convert any page you visit. I spent a few hours making sure I understood how extensions work, and then I worked on putting it together. The extension looks for any “text” HTML tags on the page, converts the text, and rewrites that tag with the Noah Text version.
After finishing the extension, I worked on a mobile app for iOS and Android. This application uses the camera on your phone to scan any text, which can then be automatically converted into Noah Text. The app is not available quite yet, but it will be within a few weeks. It was fun to write, and I was able to use some of my previous work experience along the way.
Tim: What kinds of things have you learned on the job that weren’t taught in school?
Sam: I went to school at Bob Jones University in Greenville, SC. At school, the courses focus a lot more on computer science theory than the application. One of the biggest benefits is understanding computers and algorithms at a much more advanced level. This understanding helps when writing complex applications or solutions. Making applications run smoothly and quickly is very important, and understanding how long code will take to run is always helpful.
I have worked as a software developer for three companies now. On the job, I am learning new things every day. I think that what I learned in school is foundational to what I’m learning day to day. Technology changes so fast that knowing the basics helps a ton when learning new things, whether on the job or just for fun. I have been able to learn frameworks like React, Vue, and Angular, which are made for websites. I’ve also learned about Amazon Web Services, which is an incredible tool to build out an entire platform from the ground up without having any equipment to run your own applications.
Tim: What has worked best and worst so far in your work as a programmer?
Sam: I love to participate in programming competitions. During competitions, a team is given a set of challenging problems. They must think of solutions to these problems, but they must also make sure that the solutions are fast enough. Often, a solution to a single problem must finish running in under 2 seconds, or it will not count.
In the past few years, I have done the opposite of participating – I have been writing programming competition problems for my university. Writing problems is like thinking in reverse – instead of solving problems, I must think of creative ideas for problems, solve them, and write test data for them. Writing problems is challenging, which is what makes it so fun.
Another thing I would say helps a lot with being a programmer is to listen to coworkers and those around you. It may seem like there is only one solution to a problem, or you may think you have the best solution. Then someone will offer a suggestion that solves the problem perfectly! Teamwork is huge. Whether you’re at a large or small company, always value the opinions and ideas of those around you.
Noah Text in Computer Adapted Environment
StrongReader Builder Tool
Noah Text Releases Text Tool
Also In The December 2021 Issue
Looking for a new way to encode your secret messages? Try steganography!
Why find the perfect Christmas tree when you can make it?
Design is about solving problems, from donuts to race cars, how we eat to what to wear in cold weather.
Looking for a way to liven up your coding sessions? Check out our Hydra workshop!
Check out our interview with Sam Henry, the programmer who coded Noah Text!
Learn about the importance of simulations, one the coolest types of technology around!
Join us for the next installment of our Fractured Fairy Tales Scratch series!
Learn how video platforms like Zoom are being used to further Peacebuilding during the pandemic!
It's fun and easy to create ASCII art with your computer keyboard, a text editor, and your imagination. Here are ideas to get started.
Learn how computers are able to create sound for all your favorite movies and music!
Learn about some of the different tools used by programmers.
Learn how Amazon is running its stores without any cashiers!
Check out how scientists are using the Winograd Schema Challenge to make smarter computers!
A collection of the links from the December 2021 issue all in one place.
A collection of fun and inspiring stories about tech from December 2021.