My learning experience of CWoD Stage 1 .

CWoD is an amazing opportunity for all the undergraduate students to start or hold a grasp on software development and getting prepare for the software industry requirement .This program consist of 3 stages and I will be sharing my journey of CWoD Stage I . It started with joining of Slack channel and an amazing live introduction session as warm up.

Stage -I

My first activity was “Solve the Mystery :Fraud or Not” ,it was a fun side activity which required basic Linux or MS-access skills . We have to be Sherlock and find the given activity was Fraud or Not . It contain a doc file which contains a log of data and their were questions we have to answer using that doc file . I learned and used basic Linux command grep solve this activity .A simple example of grep is given below which I used.

grep <string-to-search> <filename>

Learning activities

  1. The first activity was about HTTP .

It was a very detailed module of HTTP and I learned to use Chrome developer tools to analyze the response and also cURL to perform HTTP request. HTTP is the most popular application protocol on the internet.It starts with a client machine sending requests in the HTTP format. The server machine receives the request, understands it and takes appropriate action. The response again has to be formatted in a specific manner adhering to the HTTP protocol for the client to make sense of it.I learned about the HTTP request methods .

  • GET: A client use the GET request to get a web sources/resources from the server.
  • PUT : Method use to ask the server to store the data .
  • POST : Used to post data up to the web server or send some data to the server.

I also learned about HTTP status codes .HTTP Status codes are part of the HTTP Response. It helps the client understand what happened to the request. Status codes are 3 digit numbers (201, 304 etc) .

  • 2xx : This denote HTTP request was successful .
  • 3xx : This denote further must be taken to complete the HTTP request.
  • 4xx : Error in the HTTP request.
  • 5xx : This denote server error.
Fun Illustration of status codes.

At the end of this activity ,I learned about cURL . We can make HTTP request using cURL .The response of the HTTP request made using cURL can be observe in the command line . The below commands is use to make a HTTP request .

curl -X GET <web-address> -o ~/web.htmlcat ~/web.html

We can inspect the web.html to view the response as we can see in Chrome Developer tools .

2. The second activity was about REST API .

I learned about the anatomy and working of REST APIs . It follows a client-server model and use HTTP protocol. The important thing I learned from this activity is how an API request is different from HTTP request is in terms of data returned .The response of HTTP request is for only webpage data ,but for API request it can be for any data . Data format in REST API is usually JSON.

I also learned about REST calls using programs in Python and JAVA.At the end of this activity there was a fun task to implement the learning's i.e post messages using the REST API that LinkedIn provided .

3. The third activity was about Linux Basic commands.

I learned about Linux terminal and some important commands that every developer must know. Some of them are -

  • pwd : To print the working directory
  • ls : To list the contents of a directory.
  • cd : To change to a different directory .

I learned briefly about File Systems and files in Linux . I came to know about the roles and important of each files and how to use them .

It was a very fun task dealing with files and directories , I am a Linux user since my sophomore year so it was quite easy for me to understand the module and answer the quizzes.

4. The fourth activity was deploying an app server in AWS.

It was one of the most interesting activity and I learned a lot about how to use AWS . This activity deals with launching a virtual server in AWS than deploying the app backend server and lastly connect the mobile app (QEats) to the app backend server .

I started with creating an AWS account and creating an EC2 instance and than adding SSH(Secure Socket Shell) into my instance .

ssh -i "crio-demo.pem" ubuntu@<ec2-url>

Now the most difficult part was to deploy backend server. All the steps were well explained by the Crio module .The summary of the steps were -

  • Installing Docker and Telnet.
  • Running the Docker container for QEats app server.
  • Connecting the app to the server by installing the APK file of QEats.

5 . The fifth activity was about GIT Basics.

It is one of the important skill for version control . I learned about the basic GIT commands to work on projects.

  • git add : It adds a change in the working directory to the staging area.
  • git commit : It saves the changes . It should a contain a message about the commit for other developers to understand .
  • git push : It is used to upload local repository content to a remote repository.
  • git pull : It is used to fetch and download content from a remote repository and immediately update the local repository to match that content .

I also learned about handling merge conflicts and it was new for me . You can find about merge conflicts here.

My experience of Stage I was full of learning and hoping to get in further stages to upgrade my skills .

My scores of Stage I

The journey of CWoD Stage I was amazing and I learned a lot and upgraded my skills .Looking forward for further stages .Do visit Crio for getting such opportunities in future .

Thank you .

I am a computer science undergrad student from India. I am a Machine learning enthusiast and a learner.