Crio Launch QCharm: module-wise experience

Naman Gupta
2 min readMar 22, 2020

--

Crio Launch (crio.do/launch) is a 10-week program where the student has to complete 3 projects (or Micro-Experiences as they call it) that try to provide work-like experience for the participants.

QCharm is the third and the last micro-experience of Crio Launch (Check my experience for the 2nd ME: link). QCharm is Crio.do’s version of an IDE and text-editor like Sublime Text, Atom or PyCharm. QCharm is a Web-based IDE that supports multiple languages. The core concepts covered in this Micro-Experience are String Analysis, Time Complexity Analysis and Data-structures & Algorithms.

We work as a Backend Developer in this ME. Our key responsibilities are to implement basic functionalities like opening a file, scroll and search, copy/paste, etc. Frontend for each of these features is being developed by a frontend team simultaneously.

Module 1: Implement file loading

We start working on the project by implementing scroll functionality for QCharm. What we have to do is divide the File into Pages, to make the communication to the frontend efficient. Now, we implement functions for getting pages before and after the current lines.

My Experience :

In the beginning, the module seemed quite intimidating and was quite reluctant in starting the module, but as I had to do this I read the module details carefully and jumped right into it. After, reading the starter code and writing a few lines of code I gained an enormous amount of confidence and then it was just a cakewalk. My advice, don’t let your instinct fool you.

Module 2: Search for string

In this module, we need to implement Search functionality for the IDE. This module emphasizes the importance of choosing the right Algorithm to do a certain task and how it can improve the efficiency of your system drastically. Here, we start by implementing Naive String Matching Algorithm for searching the string and record average search times. Then we implement a more efficient algorithm called Knuth-Morris-Pratt String Matching Algorithm and see how it impacts search times.

My Experience :

Here, the myth that “Competetive Programming techniques and concepts aren’t needed in the world of Software Development” is shattered quite spectacularly. Even though I have studied the KMP Algorithm earlier, I had to go back and review it in order to complete this module. The module was quite simple once I was through with learning the concepts.

This is it for now. But I’ll be updating it soon. Stay tuned…

--

--

Naman Gupta

SDE-2 at Navi Technologies, Web Developer and Self-Driving Cars Enthusiast