Ok, let me be honest with you. I am new to chatbots and three weeks before I was mainly fluent in MATLAB. Therefore, I will not go into detail about how I built the chatbot. I believe I didn’t do a bad job, but probably you can still catch me on something I could’ve done more elegant. Instead, I will elaborate on six personal rules I used to gather enough knowledge to build a first working chatbot with LUIS, C# and the Microsoft Bot Framework in my first three weeks at Arinti with no prior experience at all.
#1: Think of a learning strategy
A triathlete will never become elite, if he/she has no training plan. Same for IT related topics. A coder that doesn’t have a plan about how to tackle the learning in an efficient way, will lose a lot of time, and most likely also the motivation to become a good one. Please prevent yourself to end up like that, and think of a plan. The next five rules helped me to get on track.
#2: Get your own project, fast
Let me be clear: it’s not because you never made a chatbot before that you can’t immediately start building one. Yes, it will go slower than with a lot of experience, but that’s normal, every expert once started like this. If you don’t get a real project from the start, then invent one. Think of an application for chatbots, like an intelligent service desk help in a hotel. You can probably think of a bunch of questions that people can ask these kind of bots. And there you go, an idea is born. Why is this important? Because of a reason that Benjamin Franklin already knew. He once stated: “Tell me and I forget, teach me and I may remember, involve me and I will learn.” This quote applies not only to someone else trying to teach you something. It also applies to you trying to teach yourself a topic. Reading a book on triathlon once, doesn’t make you an elite triathlete. Studying it, neither. You have to get hands-on experience with training. So once you have found a good training schedule (read: learning strategy), the first thing you should do is start to get active (read: get coding). No matter whether you have prior experience or not.
#3: Start from the big goals and break them down along the way
A key part of the strategy is to find access to good quality tutorials and courses, and then to start with a big goal in mind. First, spend time on the tutorial/course, and think of how you can use what you just learned to solve the big problem you face. Then try to apply it. Most likely, another problem pops up. So, go back to the tutorial and try to find a solution. If there’s no solution described in the tutorial, hit the web. Websites like Stackoverflow are priceless. After many iterations, you’ve seen the complete tutorial (probably more), and built a working project. This however, doesn’t mean you’ve been through the tutorial/course in the standard order. But really, if it worked for you and you gained hands-on experience at the same time, then who cares? Often, the quality of the outcome is more important than how you get there.
#4: The web has to offer everything you need, most likely for free
In case of the chatbot, I didn’t need any money to learn the necessary skills. Microsoft has an elaborate documentation with examples, which is very helpful when you’re building a bot. The written documentation is important, of course, but don’t forget the examples either, since they show you exactly how it’s done. In my case, I often didn’t know where to put the pieces of C# code provided by the bot documentation in the bigger solution. Here, Github is a great help. On Github you can often find working examples of a chatbot application where you can exactly see, which pieces of code are located where. For errors on the other hand, websites like Stackoverflow are perfect. On this website, all sorts of people (from beginners to experts) can post their IT related questions. Search for the right keywords and 9/10 times your problem is described there. If not, then you can post your question yourself so that it can be read and answered by others.
#5: Whenever you get the opportunity, ask the experts
In my first three weeks at Arinti, a question was raised. Can we get user-location into a chatbot made with the Microsoft bot framework? Really, I had no idea. Started looking in the documentation, but couldn’t find anything and I assumed it was not possible. Therefore I already started looking for other ways than the MS framework to do so. And some of them had this feature available. However, in that case I would have to learn a whole new coding language in these first weeks at Arinti as well. Not really time-efficient, is it? Now it happened to be that the Dandy Weyn, the worldwide technical lead for data & AI was in Kontich to give a presentation a few days later. The perfect opportunity to ask all my questions about the chatbot I was working on. Concerning the user-location: this is indeed not possible at the moment, but a Conversation Designer that gives a whole lot of extra functionality (user-location requests as well) to the bot is going to be released soon. This solved my question in such an efficient way that I couldn’t even have imagined it. To summarize, don’t be afraid of the experts when you just started off. They can provide you with the best information you can get at that time.
#6: Repeat this process if you want to learn a new skill
Whenever I want to learn a new skill, I go back to these rules. For me personally, they provide structure and efficiency to my learning and so far they didn’t let me down. But I’m aware of the fact that not everybody learns the same way. Therefore, I would like to ask you to see this post as an inspiration, like a new idea that you can try, and see if it works for you. If not, then don’t mind to forget about it. But in any case, I would like to wish you a life full of learning new things, because for me, that’s one of the things that makes it interesting.
This blog was originally posted here.