My First Internship Experience
6 min readJun 09, 2021.
As many of you already know, an internship is a mandatory part of the curriculum at many technical universities, and that internship is what will probably define your perception of how working at a company looks like and how the job should be done. That’s why it’s extremely important to make the best decision when opting for your first internship. And that includes not only where you decide to apply but what you apply for, as well. I was extremely lucky when it comes to this, so I wanted to share the story about my internship experience, and maybe help someone who is in a similar dilemma.
Basically, I wanted a PHP internship, since I already had a certain knowledge of the topic, but when I was offered the opportunity to learn Flutter, curiosity started building up. I was still leaning towards PHP but wanted to expand my knowledge in other directions as well. The decision was tough to make. Especially since I knew nothing about Flutter and I wasn’t sure if I could do it well. In the end, I took my chances and chose Flutter. But then the questions started multiplying. Will I be able to do it? What if it’s too difficult? And what if I fail? However, after the first day with my new mentor, all the questions and doubts subsided.
The Flutter Project
At first, Flutter was hard to understand, it seemed confusing, endless, and I didn’t even begin to grasp how it worked. However, I swiftly learned the essentials and made widgets work in perfect harmony with one another.
The first project we got was to create an application for booking offices and my part of the job was to create a mobile app.
With this app, the users can create a meeting and book an office if it is available for the selected time and date. We also created a feature that enables the users to see which participants have rejected the invitation or haven't responded yet. In meeting details, the users can see all the meeting participants and who created the meeting, but only the meeting creator can edit or delete a meeting.
Moreover, checking the availability of the office would be possible even if the user is not logged in. He or she could be a client or a job/internship candidate (and not a company employee) and could still easily find out in which office and at what time is the scheduled meeting. For logged-in users, we created profile pages with their profile details.
A Full Hands-on Experience
Everything we did during the internship was strictly practical. We even learned about Scrum through Scrum ceremonies, like Dailies, Plannings, Groomings, and Retrospectives. And everything I now know about Flutter and product development cycles resulted from following Scrum guidelines and completing tasks assigned to me on our project board. I was learning about Flutter widgets while implementing different features, my team depended on me, I on them, and we carried out our tasks through sprints without delays.
It would be almost impossible to describe everything you may find useful if you are working on your first Flutter app, but here are some things I learned.
For example, when I needed to display the names of the documents in one row, in which wasn’t enough space for all the data, I used the Wrap widget and wrapped the data to the next line. I displayed attendees of the meeting the same way. The meeting details screen had sections with participants like a row of the avatars, and for making rows of avatars from the list of users, I used the Stack widget with the positioned parameter for positioning the avatars (with the positioned parameter you can set the top, left, right or bottom parameter).
While building the app, I also needed to use custom-made icons, and since some of them held more than one shape, I used SVG for each shape, and the Stack widget to position icons one on top of the other. In some parts of the application where I used Row or Column, I needed to add space between the items. To do that, I used the Spacer widget between each element and specific flexible space. However, if you need space with a specific size, it’s better to use the Sizedbox widget and add width to it. I used the Sizedbox widget only because I had a specific size of space between them.
In a nutshell
The first two months of the internship went by quickly. I considered myself lucky to be learning from a far more experienced mentor who had the patience for all my questions, and more importantly, we discussed all the possible solutions together, before choosing the best one. This was the first time to participate in the decision-making process and it gave me a lot of confidence in my work.
Thanks to this internship, I got the opportunity to learn new technology, work in a great team, and participate in developing an application that will ease many daily activities in the office. I must say that it feels really good to be a part of the team. I also feel very proud knowing that people I work with will be the end-users of my app, what a great way to give back for all the effort and patience they showed while mentoring me!
The whole process helped me acquire a lot of practical knowledge and learn how the product development process looks like. And when I finally finished working on my app, the feeling was amazing. I still have a month or so before the internship ends and I simply know that that incoming month is going to be even more exciting than the previous two.
So, for all the other students out there, I encourage you to grab new opportunities that come up. In this field of expertise, stagnation is never a good choice. You have to progress. Don’t hesitate, believe in yourself, even step out of your comfort zone if needed, and maybe you`ll get to work in a highly skilled team and on super interesting projects as I did.