Introductory-Reading-Material

Tabel Content

How to use this list?

Our idea behind creating this list is to enable you to get ready for Micro-Experience. We have shared a few links for you to go through before joining the program. Our methodology is to learn by doing, so we have also added a couple of questions per topic, which you have to know the answer to after going through that topic. If there is something you did not understand or could not answer, try finding the answer to the question on your own. This will help you to develop the skill of “Finding your way on your own or learning by doing” which is an extremely critical skill for software developers.

What do we recommend you to know before joining the program?

Git

  • How to clone a Git project?

  • How to pull/push to a remote repository?

  • How to check the status of a file?

  • How to create and switch to branch?

  • How to connect to a remote repository?

  • How to resolve merge conflicts?

  • How to commit and push?

Java

Linux

  • Practice linux commands - ls, cd, pwd, ps, netstat, ifconfig, grep, find, ping, telnet, cat

  • One terminal editor - emacs or vi or nano

Tools

Git

Official Documentation [Text] - https://git-scm.com/docs

Git Video Tutorials [Video] - https://www.youtube.com/watch?v=mYjZtU1-u9Y&list=PL1F56EA413018EEE1

Guided Tutorials [Text] - https://githowto.com/

Online Exercise [Excercise] - https://www.katacoda.com/courses/git

Crash Course [Video] - https://www.youtube.com/watch?v=r63f51ce84A&list=PLGLfVvz_LVvQHO1PfyscjIPkNJjgHsLyH

Awesome Git List [Text] - https://github.com/dictcp/awesome-git

Udacity - How to use Git and Github [Video] - https://www.youtube.com/playlist?list=PLAwxTw4SYaPk8_-6IGxJtD3i2QAu5_s_p

What should you learn? Prerequisite for the program

  • How to clone a Git repository?
  • How to pull/push to remote repository?
  • How to check the status of the repository?
  • How to create and switch to a branch?
  • How to connect to a remote a repository?
  • How to merge two branch?
  • How to resolve merge conflicts?
  • How to commit changes?
  • How to stash changes?

Intellij

Official Documentation [Text] - https://www.jetbrains.com/idea/documentation/

Shortcuts [Text] - https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf

How to debug Java programs [Video] - https://www.youtube.com/watch?v=1bCgzjatcr4

How to be more productive with Intellij [Video] - https://www.youtube.com/watch?v=CmPJzEqFS4s

What should you learn? Prerequisite for the program

  • How to run and debug Java programs?
  • Basic shortcuts for productivity
  • How to import project, build programs using Gradle

Postman

Official Documentation [Text] - https://learning.getpostman.com/docs/postman/launching_postman/installation_and_updates/

Crash Course [Video] - https://www.youtube.com/watch?v=D26eEw7dI-c

What should you learn? Prerequisite for the program

  • How to use Postman GUI to send HTTP requests?
  • How to create collections in Postman?
  • How to import Curl commands in Postman?

Language

Java

Official Documentation [Text] - https://docs.oracle.com/javase/tutorial/index.html

Java Beginner Crash Course [Video] - https://www.youtube.com/watch?v=3u1fu6f8Hto&t=54s

Java Crash Course [Video] - https://www.youtube.com/watch?v=WPvGqX-TXP0

Java Detailed Course [Video] - https://www.youtube.com/watch?v=n-xAqcBCws4

Awesome Java List [Github] - https://github.com/akullpp/awesome-java

What should you learn? Prerequisite for the program

  • How to run Java program?
  • What is class, objects, functions and how to create and use them in program?
  • How to write loops, interfaces, switch cases?
  • What is inheritance, polymorphism and how to use it?
  • What are collections in Java, primitive data types?

Framework

Java Spring Boot

Official Documentation [Text] - https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

Rest API [Text] - https://spring.io/guides/gs/rest-service/

What should you learn? Prerequisite for the program

  • How to create APIs using Java Spring Boot?
  • What is REST API?
  • How to write GET/POST/DELETE/PUT/PATCH APIs?
  • What is MVC Pattern? How to write controllers, models?

Database

MongoDB

Official Documentation [Text]- https://docs.mongodb.com/

Crash Course [Video] - https://www.youtube.com/watch?v=-0X8mr6Q8Ew&list=PLGLfVvz_LVvRfdt8_W0dV311Xa8SayfCY

What should you learn? Prerequisite for the program

  • How to connect to MongoDB database using CMD, GUI Clients like Robomongo?
  • How to write basic Mongodb Queries to find, delete, update documents in MongoDb?
  • How to use Grouping, Sorting, Selection, Aggregation functions in Mongodb?

Linux

Linux Commands

List of Linux Commands [Text] - https://ss64.com/bash/

Basic Linux Commands [Video] - https://www.youtube.com/watch?v=cBokz0LTizk

What should you learn? Prerequisite for the program

  • How to create files and folders?
  • How to copy, move, delete files and folders?
  • How to run basic networking commands like ipconfig, netstat etc

Unit Testing

JUnit

Importance of Unit Testing [Article] - https://dzone.com/articles/top-8-benefits-of-unit-testing

What should you learn? Prerequisite for the program

  • How to write test cases?
  • How to test functions?
  • Importance of Unit testing