My journey with AI/ML and python
Tags: python, machinelearning, ai, django
Published: 2020-07-26 12:18:17

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/iuejvr1zvxjgwixgv0nx.png)

__Artificial Intelligence | Machine Learning | Natural Language Processing__ so cool mammoth terms right?

Firstly heard in the __3rd Semester__ of Computer Science Engineering when completed C | C++ | Java Core | Java Advanced not completed with the last two but yes completed some [SWING](https://docs.oracle.com/javase/tutorial/uiswing/start/index.html) and [AWT](https://www.javatpoint.com/java-awt) projects as per the curriculum.

Learning Programming languages becomes a tiresome job sometimes, every time I used to learn a language I learned the basics and when it was time for some real action I mean (Project Implementation) time elapses and the curriculum moves to some different language to study without the implementation level knowledge of the preceding one.

This continued till Java Advanced, I was disappointed as was unable to complete a single good project and the things looked even worse in the future so I read blogs and find out which language is Hot | Trending | In-demand language in the market the answer was __python__ the name attracted me literally.

Gone through the [documentation](https://www.python.org/), learned basics, almost completed documentation, When learning python it is told that you can automate tasks like Use Python external libraries to create and modify documents, images, and messages Understand and use Application Programming Interfaces (APIs) to interact with web services Understand and use data serialization to send messages between running programs and what not I tried all on them from here and was very excited to implement every little thing

But then at last after every example, I realized each time and asked myself is it a Real-World project? This how things work?

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ct8bg992r0nfku6qnz8c.png)

clearly No!

Read more and more blogs, one day came to know that python is majorly used to implement AI/ML stuff and that was my ingress in the world of ML, AI. Machine Learning gave me a winsome experience and I tried to know everything about it

Till then I was actively attending community meetups of [GDG](https://github.com/GDGIndore), [FDC](https://www.facebook.com/groups/DevCIndore/), [ITC](https://www.meetup.com/indoretechcommunity/), etc.

These groups let me to the path to ML/AI and various other techs some told the path to become Data scientist some to Data Analyst.

I started some courses __course__ on __Coursera__ by __[Andrew Ng](https://www.coursera.org/instructor/andrewng)__
The course was intelligible apart from the sound quality, subtitles were the only hack to that thing

__Courses from NPTEL__
1.[Introduction to Machine Learning](https://nptel.ac.in/courses/106/105/106105152/)
2.[Machine Learning for Engineering and Science Applications](https://nptel.ac.in/courses/106/106/106106198/)

The second one was nice and it was the latest now so it was nice as they took live youtube sessions too to clear the doubts.

So it was too much of learning till now and I have not created a single project from scratch till now, so I was wondering that how would earn money in future from these type of projects knowledge because they are not from scratch and they are just made using following up some blogs from courses or any learning courses from the course of NPTEL or the official documentation.

Finally, I decided to make a project from scratch, till then I was in a position that I was knowing much of the libraries like [numpy](https://numpy.org/), [scikit-learn](https://scikit-learn.org/), [scipy](https://www.scipy.org/),[matplotlib](https://matplotlib.org/), etc. And tools like [Anaconda](https://www.anaconda.com/), [Pypa](https://www.pypa.io/en/latest/) and even I was wondering which __code editor__ should I use to develop python projects, I came upon __JetBrains__ [pycharm](https://www.jetbrains.com/pycharm/) but I continued with the [IDLE](https://docs.python.org/3/library/idle.html) itself.

I use to code in different PC’s in my college so I was finding a tool to write online so then I came up with the great tool name [Jupyter notebook](https://jupyter.org/) and I also came about to know about the Google [Colab](https://colab.research.google.com/) so that my online work can be saved and I could access the code from anywhere as I used to be on different computers every time. I was nooby and was not aware of [GitHub](https://github.com/) now.

__Natural Language Processing__
I was always excited about how the text to speech or speech to text work, I kept searching the libraries to use, I came up with an idea to build up voice calculator using speech to text so that I can learn some NLP basics and know how to use this module in future.

Finally, end up with this [Voice Calculator](https://github.com/Adarshg315/voice_calc)

I searched the best offline or online library for speech recognition and found Using [Google speech recognition library](https://pypi.org/project/SpeechRecognition/) and found it easy to use, after completing the implementation of basic arithmetic operations I felt like What I have done in this whole project? nothing much probably just some drag and drop like a thing but some learning was there.

One question arose every time in my mind that how to make an efficient ML model and the fact was that it is very difficult to frame a model from scratch as all the models have lots of __math__ and __research__ behind it particularly to make it __efficient__.

So, started exploring the existing Image recognition | Handwriting recognition | Natural Language Processing models | Speech recognition models and many more but it was hard to understand even one of them.

Apart from these I also tried some other stuff like Game in Python Using libraries like [pyglet](https://pypi.org/project/pyglet/) [opengl](https://www.opengl.org/) [pygame](https://www.pygame.org/) etc.

The game was pretty easy and the GUI’S was also ok but again it was not the kind of the project I thought of, I was much into ML/AI that I was unable to explore and other technologies.

Again, I searched that how can we do machine learning using web tech like JS so I came up with the Framework named Tensorflow. and it was a really good framework and it supports Python, JavaScript, and many other languages.

I took a __specialization course__ [Introduction to TensorFlow for Artificial Intelligence, Machine learning, Deep Learning](https://www.coursera.org/account/accomplishments/certificate/JK9LKLG6QMFN) from __Coursera__ as I was aware of the machine learning models till now and wanted to learn more about __TensorFlow__ from this specialization it was a really good for me cause and I got to learn many new things and how to use TensorFlow from this was the only course completed fully from the Coursera platform.

__5th semester__
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/fg10vdb0ofvllopbw3xm.png)

Guess what? __Python__ as a programming language in the course I thought now I will have some great __big projects__ but wait

I was wrong the curriculum was very outdated and it only stopped on on the basic Python introduction, not even the basic projects like I have made on the speech recognition and voice calculator. Invested much time and till now I was fed up that I am not creating any projects and I was not able to do anything on the web or in the mobile I continued reading blogs on topics like what to do with Python?

So, I came to know about the [Django framework](https://www.djangoproject.com/) made a blog website in Django and it was tough for me to follow even the blog of Django as it involved APIs and many other things which I had never seen in my previous projects.

I thought Python was my __waste of time__ but was it?


The __sixth Semester__ and guess what we have __Artificial Intelligence__ in Curriculum

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/k0z2hv28tdtdg2ctvwgq.png)


But…….The curriculum was again outdated and I had a hard time understanding the theory, but faculty Ph.D. in (Machine Learning) makeup my Interest in having some steps again towards AI/ML.

Faculty asked to implement a __Chatbot__, here comes the game now I was having something to do with Python building a chatbot, using NLP to build a chatbot, but the condition was that we cannot use any existing libraries to make chatbot challenging but somehow I was able to make pretty decent chatbot without using any of the libraries and end up with an [AIML](http://www.aiml.foundation/). As it needs a lot of NLP understanding to write the code for a chatbot from scratch.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ck7538zg1sezibtcl6qn.png)

Another project was __Tic Tac Toe__ with one player as an AI another as a human obviously but when I saw that how to implement these board games like Chess or Checkers or Go it was very difficult because in these games like chess number of moves increases exponentially.

It was nearly impossible to find any algorithm to implement for the problem but __Minimax Algorithm__ was at rescue which used to implement the chess versus name human versus chess game This chess game implementation me to an algorithm __Monte Carlo__ which was also a very nice algorithm to learn but these all fascinated me but at last, it was great learning.

__7th semester__

Courses changed now there is nothing like AI/ML or Python
Minor Project so I begin by learning __JavaScript__ as I was planning to make some projects in __React.js__ the framework of JavaScript started with JavaScript continued with the react JS and Boom I was able to make complete e-commerce which I will talk about in future blogs.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/snd45va1xjwnwgwpt7dx.png)

AI/ML is not __bad__ at the university level but what we have to understand is that we can make use of ML/AI model in our project but we are unable to make one without prior knowledge of and understanding of all the __Math__ and __Research__ involved behind these models.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/j12vo3cnl6u7eigbgh5o.png)

I committed a mistake in __switching__ my language to Python the machine learning was also possible in C++ and that too very efficiently which can be seen in the framework named [OpenCV](https://opencv.org/) so any time you are switching a language just to implement something try to implement in that language first. do like the blog if you find anything helpful and you can reach me at ⬇

__Email: founder@openmindd.xyz__
[Twitter](https://twitter.com/_Adarsh_Goyal_)