Start with Bangkit

Alston Argodi
10 min readApr 2, 2022

--

After completing semester 5 of my college studies, it’s time for me to continue
to the next semester, but there is something interesting being held, It’s Kampus Merdeka Program, so what’s Kampus Merdeka? Kampus Merdeka is part of the Merdeka Learning policy by the Ministry of Education, Culture, Research, and Technology of the Republic of Indonesia which provides opportunities for students to hone skills according to their talents and interests by going directly into the world of work as preparation for future careers and this caught my attention to participate, So I took internship program and study independent, In my personally I prefer to give more attention in internship program because there’s a lot of good company to gain and learn more, But after some several weeks yet there is no answer from the company that I applied sad but I need to take this, I’m not passed the screening process, I feel tired at the moment because I spent some semesters to self-study about android development and some web development but there is no answer.

But good news came on 20 January 2022, That I’ve been accepted in study independent when I take a look more, It’s Bangkit Academy. on that day also I immediately accept the program offered to me, well which gives me a good mood(Idk how to express this but it was so good). At Bangkit Academy I join to learn Android Development in the android learning path, I feel Wow this great time to polish more about my android development skill and soft skill. At that moment I feel up and I want again to improve myself more.

me being portrayed

On-Boarding day

The first day in Bangkit begins with onboarding day to introduce the program and what we gonna learn for the next day until the end of the event, I Was surprised that the Bangkit program this year have 50,000 applicants but only 3,100 applicants passed including me, that gives me feel “wow that’s a lot”. Bangkit participants are divided into three learning paths, the Machine learning path has 1,225 students, android has 900 students, and the last Cloud Computing has 975 students. Students came from across Indonesia from Aceh to Papua and small cities, which makes me more exciting to hold this program because I can build connections with other students who come from different islands or cities.

After several introductions and congratulations from several big techs company in Indonesia like Tokopedia and Gojek.Mr Yoza as Cohort manager gives us explain how the learning roadmap and ground rules when attending the Bangkit meetings. Bangkit has 3 daily sessions that Cohort need to attend

ILT Session

ILT or instructor-led training is a mandatory session, I can learn about learning topics with an expert trainer. ILT sessions have 3 sessions in English, Soft skills, and Learning path. In this session also I can share about my difficulty when getting stuck during completing the submission project or ask for some suggestions. The trainer came from some Big tech companies like Gojek and Tokopedia, yes this is very useful you can ask directly people who are proficient in their fields.

Weekly Consultation

In this session about meeting with Facilitator, that leads you in the learning group actually this session same as ILT but with those people who as alumni Bangkit that joined last year and also you can ask about your difficulty during the working on submission or asking about administration problem.

Guest speaker

Guest speaker an interesting session that I gain experience and story from the expert experience. Guest sessions come from several different fields like Machine Learning, Android Development, Product Manager, and Cloud Engineering. Some sessions invite the last Bangkit alumni that successfully start their startups.

At the end of learning in Bangkit that will be a Capstone Project session, so what’s a capstone project? a capstone project is where you will spend what you already learn and gain from the course to make a Final project.

After some introduction next gonna be what I’ve been learning through this program in the past 2 months, happy reading :)

So What’ve I learned?

Technical Skill

I start my First day in Bangkit on 14 February 2022 learning about Kotlin Fundamental, Kotlin Make me curious about it because it can be used for various kinds of application development, be it a server or backend, website, or Android mobile. It’s even currently being developed by Kotlin/Native. In fact, it is possible that Kotlin can also be used for data science and machine learning. In Kotlin I really know about Coroutines in Kotlin, with Coroutines, we can write the code asynchronously and prevent blocking other workers.

Coroutines also define the execution of a set of instructions to be executed by the processor. In addition, coroutines also have the same life cycle as threads. While coroutines and threads work the same way, they are much lighter and more efficient. When compared to threads, coroutines are not only easy to implement, but they are also much more powerful. These advantages are especially true in mobile environments, where every millisecond increase in performance counts. Also, another difference is that coroutines are managed by the user, whereas threads are managed by the operating system.

Coroutines run inside threads. One thread can have many coroutines in it. However, as already mentioned, only one instruction can be executed in a thread at any given time. let me give you a simple example.

The delay(5000L) function in the launch is used to delay the next code for 5 seconds (5000 in mili-second). delay is a special function in coroutines. It is a suspending function that will not block a thread. During the delay, the main thread will continue to run, so the println(“Hi,”) function will be executed immediately. After 1 second, the println(“this is Coroutines!”) function will be executed. While the code delay(3000L) is used to delay for 3seconds before the JVM ends. There is a lot more about Kotlin Coroutines like JOB, Differed, Coroutine Dispatcher and Channel.

After learning about Kotlin Fundamental next course it’s Android Fundamental which is I learning about what’s introduction to android until the work manager. what makes me interesting in this module is Networking and Testing, In android networking it’s really important when we apps really connect to the Internet world like Social Media apps and Weather Forecasting apps to get the weather data.

When users want some data that will be requested to web API, and request methods like POST, GET, PUT, DELETE after there is a callback in response in JSON or XML format from the API and the database. Networking in android has various libraries to help like LOOP4J and Retrofit, but the common way is using Retrofit as Libraries to help fetch the data from the API.

Testing is also important during android development to test the code and user interface before deploying to the user, with testing we can know how fragile our code is also it reduces the time to manually test the interface. In android development, there are two tests. Code testing or Unit is a test that validates individual code units we can use JUnit dan Mockito for unit tests. The purpose of unit tests is to ensure that each unit of software can run according to the specified function. Unit tests are used to test the business logic in an application. Thus we have to write it only to test small functions/code units to make sure that the logic works as expected. For example, we’re going to test if the date gives the correct parse in date format.

First, create a simple string function for testing every testing function annotation with @Test. after that create a simple date format and create a variable that stores the data we want to format later, for safety way using try-catch when there is an exception, so when it’s an error catch will get the exception. in try to insert the date we want to parse. the last AssertEquals is the method we call from JUnit to find out if the result of parsing is the same as the answer we want, the answer we want will be on the left and the parse the result on the right. after that we can run the test and the result will be

That means our code passed the test YAY.

The Last is the UI test or User Interface test, during this test, the testing code will automatically act like the user usually do like press the button and insert some value to the text box, sound cool right? user interface tests can use Espresso, Espresso is a testing framework available in the Android Testing Support Library. This framework provides a set of APIs that make it easy for developers to write test code to simulate user interactions in an application. Espresso can run on devices with Android OS Gingerbread (2.3.3) / API Level 10 and above.

Espresso has become the main choice for conducting UI tests on Android. Since Google I/O 2017, it has also been part of the extended family of the first version of the Android Testing Support Library (ATSL .). In this test, I will give an example simple test for inputting a name in search of the result, First, we need to import the library

After that create a UI test class inside the android test folder, here are some parts of the code that I want to test

So in the onView will search some id that we want to test, for example, R.id.search on view will find a component with id search after perform will perform the button after that we can input some text with Hypertext after that pressing key for search the text that we already input, Delay for a while because it takes some second to get the data after performing a scroll using Recyclerview action if we want to click to one item we can use click and declare the item position like 0 for the first item, after click, there will be second page for detail page also we can check the page already show or not with Check(matches(isDisplayed)). What’s look like when is the UI test running ? well in this video will show you how it works.

The end of the learning module there will be a submission app and I implement all of the material I’ve learned through this project also you can check the project on my GitHub

Soft Skill

During bangkit program not only did I Learn about technical stuff I also learn about soft skill development with help from other mentor and ILT Instructor, In Soft Skill development I have two classes like English class and Profesional Class or Soft Skill class

In Softskill class the mentor taught me about Time Management it’s really important to plan our daily activities every day and manage them perfectly by prioritization, with using a time Quadrant can help me to manage my time, actually, I already make some daily plans not really effective like my expectations. so here what’s time quadrant looks like

Also, I implement those quadrants to my daily kanban so I can manage my time better depending on their colour, in here what’ve done with my kanban

It’s simple actually but I feel my improvement in daily activities and as you can see there is an idea it’s about what next I want to do and done where is all activity it’s done and complete.

Also, I have English Class in which we talk about English in a professional way through Spoken Correspondence. Spoken Correspondence in a professional way means you need to use a formal answer to respond, like responding to a chat or someone calling. First, we need to say a greeting, what company or organization he/she comes from, name, and what I can help for you, so at that moment we can receive like who we are speaking to, company, and what they need.

English gives me more knowledge about how to be a professional person and how to talk with someone in formal way, because usually, I didn't know how to speak formal way XD, and the last English class give me improvement on how to not be a shy person. Because I never had a convo with someone in English without showing my face it just give me a weird session rather than just talking without showing my face, that improve me better.

Alright, so that is my little story about 2 months in Bangkit academy. I’m sorry if there are mistakes in the words and maybe you can put the correction in the comments so that I also learn from these mistakes because this is my first blog :). alright so thank you for reading my story see you in the next blog

--

--

Alston Argodi

Computer science student, intrested in mobile development and machine learning