Hello, everyone, my name is Mohammed Almakki. I’m a new intern at Narbase Technologies. I’m a curious person who likes to discover new things. I love programming and the computer world in general. This is my first internship in software development internship so I’m very excited.
A list of resources was given to me before starting the internship. First I started to learn Kotlin language by going through Kotlin Reference. I like the reference because it gives you many options (books/tutorials/courses). For me, the best choice was the Kotlin Playground. The playground consists of an online editor, many examples that explain the core features of the language and koans (i.e programming puzzles) to test your understanding. I recommend this playground if you know java. After that, I went through Vogella Development Tutorials and learned the basic structure of Android applications. Finally, I read about Ktor, which is a framework for building asynchronous servers and clients in connected systems.
And finally, the first day came, and as this is my first internship I was very excited to get started. My supervisor Islam gave me a brief introduction to the company. I was told that I will be working on the backend next weeks. So I started to learn Ktor framework. I set up the development environment and started to learn Ktor. I followed the quick start guide and created a simple login website. Also, I learned about git-flow which is a git branching model and is used in the company for managing the development process.
In the second day, I started to learn Authentication and Session features. Ktor relies on features, in your application, you start by defining what features you will use. I focused on basic and form authentication. Also, I reviewed many concepts about backend development like RESTful APIs, HTTP protocol and asynchronous I/O.
In the third day, I started a new project. It was a simple RESTful API that enables you to do CRUD operations. I learned how to use JSON format using GSON, a library used to serialize and deserialize objects to JSON. I tested my API using Postman, a tool that is used to send HTTP requests. In this day we had a meeting with Islam and Hind. They gave us a brief introduction to the projects that we will work on.
In the final day, I started to learn Exposed, a SQL library on top of JDBC driver for Kotlin language. Exposed has two kinds of database access: type-safe DSL (Domain Specific Language) and DAO (Data Access Object). Then I used this library to connect to a PostgreSQL database. I learned about how to query data using exposed.
My first week was very good. I learned a lot of things. I’m looking forward to starting my first task in the next week.