Hey guys and ladies,
First of all, Happy New Year everyone 🙂 !!!
How’s it going?
Welcome again to another day in the life of a software engineer.
Today I want to talk about languages. So I have been very interested in languages for quite a large part of my life – I guess everyone generally is interested in languages. I remember when I was little and my dad will gather I and my siblings in the sitting room and teach us elementary German, yeah he was an awesome dad like that 🙂 . We’d all be paying hard attention and tying to grasp the concepts and meanings in the language. He started by teaching us the common words/verbs and reading simple sentences to us so we could… build on our understanding.
A later time in my early teenage years, I also picked up a little French when I was in secondary school (I learnt it only when I was in JSS1 and JSS2). I still started by learning the part of speeches in French and common words/verbs to construct simple sentences.
I saw myself learning Japanese via a self-taught course on Japanese when I was an undergrad at Faculty of Engineering, University of Benin – Uniben (300 Level) and still trying hard to grasp the concepts, meanings and understandings from the language. I also had to know what the common words were and what they meant, then use these words to build and construct sentences.
Nigeria languages are not left out, I had to pick up a little bit of Yoruba, Igbo and TIV (I did my NYSC service in Benue state). You just can’t get by in a country/state/place/domain properly without at least understanding and communicating in their native language/tongue. For a computer, its native tongue is Machine Language (ones and Zeros).
Now fast-forward to right now when I am now an Adult, and here I am again still learning languages: programming languages, Domain Specific Languages and natural languages (as I had always done 😉 ). I have been using programming languages as far back as my first year in Uniben (started with the coffee 😉 – Java), and learnt how to develop a programming language for a particular domain – Domain Specific Languages while working at CypherCrescent Ltd in Port Harcourt.
But you see these days my learning around languages have a lot to do with also helping and teaching someone else the meanings, concepts and understandings that I have been able to extract from the language and perhaps added to my own learning – basically teaching someone how to understand a natural language. That someone else is a mindless, dull, everyday computer 😐 . Now I can see the kind of frustration my dad must have gone through trying to explain German to a bunch of 5 to 8 year old kids – he was a great dad after all 🙂 …
One thing I picked out from all these my interaction with learning languages is that understanding languages is “Hard” because some certain words/sentences which are spelt the same way can have entirely different meanings based on how they are pronounced, based on their tenses and based on the context they are used. So it poses a question: “How do we make meanings from natural language and explain its concepts to a computer ?”.
Remember for a computer ==>
[ INPUT ] –> [ PROCESSING ] –> [ OUTPUT ]
In part two of this series we will try to answer the question above 🙂 .
Watch out for part 2 coming out very soon !!!
So have a wonderful day/week and keep grinding on your craft and don’t you ever give up on your dreams, “I will catch you on the flip side”.
featured image credit: https://www.linguisticsociety.org/content/how-many-languages-are-there-world