Published

Why and How: Transitioning From Frontend to Machine Learning

Published
Gaudhiwaa Hendrasto

This blog is dedicated to sharing insights, perspectives, and experiences on why and how I transitioned from delving into Frontend to Machine Learning. Starting from how I began learning, learning resources, to understanding the differences in how they work. Perhaps this blog can be useful and is specifically intended for those who want to transition careers along the same path πŸ˜„


Table of Content

How I Started Learning Frontend

I began learning about Frontend during the second semester break, around July 2022, which was still during the Covid-19 era 😷 My Frontend learning roadmap followed roadmap.sh, which provided me with a step-by-step understanding of what I needed to learn. As someone who had never coded before college, I thoroughly enjoyed my learning process. For HTML, CSS, and full JavaScript, I learned from Pak Sandhika Galih's YouTube tutorials. His explanations were truly commendable πŸ‘ I also created small projects like To Do List and Pomodoro Timer to better understand the concepts presented. Oh yes, I was also accompanied by some friends during my learning journey:

Thanks to their help, I only needed about 1.5 months to learn HTML, CSS, JavaScript, and a bit of React Js. By the way, this server was called "The Study Lions," where many international people from various majors learned together. But last time I checked, the server had closed 😒 Here's a glimpse of my study desk back then:

After studying for about 1.5 months, I decided to take a break because it was still semester break. Actually, I was a bit tired after studying for so long and needed a new challenge. I decided to prepare my CV and boldly applied to several companies, hoping one would stick πŸ˜… Alhamdulillah, I was accepted at Kodingworks, a Software as a Service (SaaS) company in Semarang, Central Java. Since it was still during Covid, there were many full-remote internship vacancies.

As this company used React Js for Frontend, I bought a course on Udemy: Modern React with Redux to delve deeper into React Js. When else could I get paid while learning? It's really nice, isn't it? 😁 When I started working on projects, the code and folder structure were completely different from what I had learned. More advanced, and no hard coding. There, I tried to understand other people's code while also learning about Git and CSS Framework (at that time, we used Material UI).

One of the projects I worked on was pentone.id and several other projects. Eventually, I tried to build a Full Stack E-Commerce application: React + Node Js in the 4th semester for a course assignment, called SiMangan. Until now, I still play with Frontend.

Frontend Learning Resources

Why I Transitioned to Machine Learning?

More precisely, not transitioning, but rather delving into something else besides React Js. In my spare time, I still develop Frontend, including this blog. Although I'm not extremely skilled, I feel that Frontend becomes quite repetitive over time. Moreover, AI advancements are quite rapid and concerning for me. Therefore, I needed a new challenge to explore other options. While still in college, right? πŸ€”

How I Started Learning Machine Learning

Broadly speaking, several college courses greatly helped me in learning Machine Learning. I started learning AI from the Artificial Intelligence course (4th semester), then continued learning Machine Learning in the Computational Intelligence course (5th semester), learned Machine Learning and Deep Learning at Bangkit Academy (6th semester), and finally, I learned the Applied Data Science Programming course (7th semester).

In summary, in the 4th and 5th semesters, I learned the basics of Machine Learning as outlined in the blog Basic Concepts of Artificial Intelligence (AI), Machine Learning, and Deep Learning. I also learned about undersampling, oversampling, encoding, decoding, several basic algorithms, normalization, EDA, cross-validation, evaluation metrics, preprocessing, etc.

In the 6th semester, I had the opportunity to learn at Bangkit Academy. Here, I learned Machine Learning from A-Z fundamentally. Reviewing Python, Git, and several Machine Learning materials. I learned about the mathematics of Machine Learning, Deep Learning architectures, hyperparameter tuning, basics of NLP, Computer Vision, etc. Most of the materials were learned from Coursera. There were two online classes every week, soft skill or technical classes, and mentoring classes. Oh yes, there was also an English class! In the final weeks, we would be grouped with 5 other people to complete a capstone project. At that time, I had to deal with Android, Cloud Computing Machine Learning, up to UI/UX πŸ˜ͺ⬇️

After completing the Bangkit Academy program, I tried to participate in two well-known competitions among Computer Science students, namely Gemastik (Data Mining) and Satria Data (Big Data Challenge). In the Gemastik competition, we proposed the idea Detecting Mental Health Conditions of Twitter Users using NLP, while in Satria Data, we were asked to solve the problem of Vehicle License Plate Detection. Unfortunately, we did not pass the Gemastik competition, but for the Satria Data competition, our model accuracy reached 98.1% and entered the final stage along with 20 other teams. Hooray!πŸ₯³

In the final stage, we were asked to solve the problem of Detecting Legal Regulation Inconsistencies in the Republic of Indonesia. Our team consisted of me, Surya Abdillah, and Davian Benito. This task was given only two weeks, where we had to extract articles and paragraphs from PDFs and create a Machine Learning model. In the end, we went to Universitas Brawijaya Malang to meet other finalists and present our work.

Long story short, we had to acknowledge IPB's greatness as the overall champion of Satria Data 2023, and UI as the winner of the Big Data Challenge category. However, this experience made me even more determined to learn Machine Learning πŸ”₯

After finishing the competitions, in the 7th semester, I continued my Internship at the ITS Intelligence Information Management Lab to complete the project Sentiment Analysis with Query Expansion using YAKE and FastText. Besides, I took the Applied Data Science Programming course, worked on YOLOv7: Football Player Object Detection and Stock Price Prediction Based on Historical Data and News Sentiment.

And yes, I'm still learning until now.. πŸ‘¨β€πŸ’»

Machine Learning Learning Resources

  • Artificial Intelligence Course
  • Computational Intelligence Course
  • Bangkit Academy
  • Applied Data Science Programming Course
  • Internship

Differences in Frontend and Machine Learning

AspectFrontendMachine Learning
Main TaskDeveloping user interfaces (UI/UX) and processing API data from BackendAnalyzing data and developing accurate and efficient Machine Learning models
Programming LanguageJavaScript, TypeScriptPython, R
Main FocusUser ExperienceModel accuracy, gaining insights, and problem-solving
Tech StackHTML, CSS, JavaScript, Frontend Frameworks (e.g., React, Angular), CSS Frameworks (e.g., Material UI, Tailwind)Python, Machine Learning Frameworks (e.g., Tensorflow, PyTorch, Scikit-learn), Pandas, Numpy, Matplotlib, Seaborn, Deployment Tools (e.g., Tensorflow Lite, Flask, Google Cloud)

These are some things you should at least know before switching to Machine Learning:

  1. Get used to reading and writing papersπŸ“

To achieve optimal model results, you need several references to choose methodologies (approaches to building models or solving problems). One of them is papers.

With papers, we understand better the problems we face, based on relevant previous research. It's also good if we can write. Later on, it can be further developed in subsequent research.

  1. Methodology (approach) is everything

The approach to building models, such as dataset collection, data analysis, preprocessing usage, dataset annotation process, algorithm selection, etc. is crucial! Therefore, you need many references and experiments!

  1. Experiment a lotπŸ§‘β€πŸ”¬

Experiments are important to try to achieve optimal model accuracy and minimum error. Parameter tuning, preprocessing trials, algorithms, etc. are worth trying! 😬

  1. AI itself has many expertise areas

Some expertise areas in AI/ML/DL include Natural Language Processing (NLP), Computer Vision, Robotics, Speech Recognition, Forecasting, etc. Just because you're good at NLP doesn't mean you're good at Computer Vision, or vice versa. Why? Because the approaches to processing image and text datasets are different. So are other implementationsπŸ₯‚

  1. Data, data, data! πŸ“Š

Before starting a project, first determine if the data is available? How to get the data? Is the data quality good enough to build a model? Because data is the main resource.

Written by Gaudhiwaa Hendrasto