Summer Internship Experience at go-mmt, Bangalore-2019
We were three from our college for the internship at the same office. Initially, we were sitting outside inquisitively looking at every minutest activity happening around us. Then, we were attended by the HR, where some of the formalities were completed and after getting introduced to our teams and our mentors, we had presumed that now is the time to rock with the enormous energy that we had carried with ourselves all this time.
The mentor took a personal interview of each one of us so as to know about our interests and skills that will be beneficial for the assignment of the projects. And we went on to explore them. Of some of the projects enlisted for me, I had finally shortlisted two of them [QC-form and Frontend Tooling]and after some mind boggling on the two, both seemed quite galvanizing to me.
The mentor had clearly mentioned we won’t be spoon feeding you on the projects by breaking it up in tasks for you to complete. You have to be enough self-motivated to work on them yourselves.
For us, it was a situation where you work and you survive.
Overall, the first day was a roller coaster of an alluring beginning of our summer internship in this beautiful Silicon Valley.
All of us reached early to the office only to find out that the breakfast is served only on Mondays and Fridays. 😛
The mentor had set up a meeting for me with a Rohan Shah (Tech-Lead from the Backend team) who had a comprehensive view and knowledge for the project — QC form. (The other project was frontend tooling) where after going through the projects, we came to the conclusion that we will be working on an amalgamation of the two projects.
Anusheel (the mentor), then commenced with giving a short talk for the kickstart which included some great insights into:
1. The difference between a framework and a library.
2. How and why Goibibo needed to have a standardised platform for writing and understanding code. ( Modern Code Generation )
3. Yeoman Generators
3. B2B and B2C models of deployment. (These are different e-commerce models, B-Business, C-Consumer, G-Government)
I was told to study thoroughly about Yeoman Generators for the day. In the meanwhile, our systems and other credentials had been provided to us. The day ended up with us installing the requirements in our systems.
Before winding up for the day, the mentor had instructed that if I get some time, I could also read more about the CRA [Create React App] and Redux Actions for a better understanding for now. I will be giving detailed explanations of the above written terms and points in some other blogs after having worked upon them a bit for strengthening of these concepts.
The difference between a framework and a library
Both of them define an API that for programmers to use. To put those together, we can think of a library as a certain function of an application, a framework as the skeleton of the application and an API as a connector to put those together. A typical development process normally starts with a framework and fills out functions defined in libraries using the API.
Why to use a framework instead of a library
When you have a library you need to understand the functionality of each method and it is relatively hard to create complex interactions since you need to invoke many methods to get to results. Frameworks, on the other hand, contain the basic flow and since you only need to plug in your behaviour it is easier to do the right thing.
Disadvantage of frameworks:
The disadvantage of frameworks is that the temptation to add more and more functionality creates many bloated frameworks that results in immobility and needless complexity.
Office had been going easy till now. But today, I thoroughly studied about a lot of new things and it was not just random floating terms in the conversations but I was asked to properly study Redux Actions and CRA. So I initially went through the Redux, Redux-Actions Docs and after spending one-two hours of getting familiar and trying to understand what had been actually happening in the terms, I decided that the Docs are just not it. Moreover, the Redux-Actions Docs were written assuming one already has a basic knowledge of React and Redux. So, it was going on messy and complicated where I realised that the ROI of the time was very less. ROI [ Yes, Return of Investment was one new term that Anusheel kept on using while he was in some conversation with the Manager]
Then I decided to find out some systematic and arranged way of learning things. To learn Redux Actions, I needed to learn Redux and since Redux had to act on React, I must be aware of the basic terms- state, actions, props, reducers to which I was not even close. I was exploring the web when I came around a beautiful tutorial for Redux and React.
This course had a pdf for 43 pages and starting right from the basics, the pdf explained it all to me. Some of these points were very creatively explained and written in the document and a novice could easily understand some of the crucial points such as:
- What is Redux? The Benefits of Redux.
- Built-in Redux Alternatives
- Add Redux to The React App
- Redux Stores. What are they? How do we create them?
- Redux Reducers. What are they? Where are they used?
- Mapping state to props. [Also, what are states, actions and props]
I completed the pdf tutorial, developed a basic Redux-React app and it largely helped me in getting the kickstart I needed, being a noob for React and Redux.
It was raining heavily when we departed from the office and we also got to know that it is not a cakewalk to get cabs here, especially during the closing hours of a Tech-park let alone when it is raining. We came home laughing and listening to lovely old songs and henceforth the day-3 ended with smiles, fatigue and chocolates all thanks to the hours of actual studying today. 😛
Today, I was assigned three tasks:
Task 1: Integrate React Router and Redux within your React app using CRA. (finished)
I started this by developing a basic React app from this wonderful series of three tutorials without much fuss and learning quite a lot. The Redux-React Integration was already complete on Day-3. [CRA Redux Router]
Task 2: Create a basic Yeoman Generator. (finished)
Initially, nothing seemed to worked due to again, docs written for not so enlightened-already person and for me, it took long to create and use even just a basic generator. But finally after some hustle, this task too was completed.
Task 3: Explore React Admin and Material UI frameworks for React. [to be completed day-5]
I could not complete this task as the above tasks had already taken a lot of time for me.
I finished up using and blogging the Yeoman Generator and while exploring the two frameworks- Material UI and React Admin, I came up with the following points:
- Material Design is a design language developed in 2014 by Google and is very popular for web and mobile applications.
- Material Design is inspired by the physical world and its textures, including how they reflect light and cast shadows. Material surfaces reimagine the mediums of paper and ink.
- With the components from the Material-UI library it’s very easy to make use of Material Design elements in your React web or mobile application.
Oftentimes applications exposing an API need an admin page to easily view and edit the data behind the application. Usually, creating one involves the painstaking process of building an interface, followed by manually creating every request to GET or POST data to/from the API.
If you would ever want to create an admin interface by simplifying the great mess in developing a UI and inflating the data from API to it and writing the minimalist code of your life, this is for you, my friend! This is the framework, I must tell you.
[ Material UI tutorials, React Admin tutorial, Making interfaces better]
Conclusion: The week had me going smooth, learning tons of new Frameworks, Libraries and a spoonful experience of the life at Corporates. It’s actually fun and good. Playing Foosball and Pool were also a major part of the learning process for the week, no denial!
Bangalore is treating me like a baby for now! It’s a cool place to live and work. Finally, ending up this blog with loads of positivity and the contentment that I had started and the best part, ended up logging the first week of the internship.