DEV Community

Cover image for My 100 Days of Code Journey (2021)
Aswin Barath
Aswin Barath

Posted on • Originally published at aswinbarath.github.io

My 100 Days of Code Journey (2021)

100 Days of Code Challenge

100 Days of Code

100 Days of Code Challenge is an initiative I am commiting to take, where I will be spending each day working on problem solving and personal projects to improve my skills and push my boundaries.

After two failed attempts, I'm coming back by publicly committing to the 100DaysOfCode Challenge starting today!

I'm going to follow Two Main Rules:

  1. Code a minimum of an hour every day for the next 100 days.
  2. Tweet your progress every day with the #100DaysOfCode hashtag

My Exceptions:

  • If I break the streak, I will make sure that I won't break it the next day
  • My Community work, and few emergencies demands to take a day off

#100DaysOfCode

Useful Links

  • For Daily updates, follow me on:


    ashwin's LinkedIn


    ashwin's GitHub


Goals


Learn Software Development

Learn Java Software Development

Learn Full-stack Development


Solve problems on Data Structures and Algorithms


Build Projects around Software Development

  • [x] Build Full-stack Apps
  • [x] Build ReactJS Web Apps
  • [x] Build NodeJS Microservices
    • [x] Login Microservice - Day 51
    • [x] Event Timeline Page - Day 59
    • [x] Real-time Twitter Streaming App - Day 67
  • [x] Build Vanilla JavaScript Projects - Day 40, Day 41, Day 47, Day 58
  • [x] SQL Injection & Prevention Project - Day 51
  • [x] IMDb Web Scrapper - Day 6
  • [x] Eco Monitor IoT Project
    • [x] Light Intensity Sensor project - Day 12
    • [x] Eco Monitor - Visualizations of Sensor data project - Day 12

Build JU Query platform for university students

  • [x] JU Query Features - Day 43, Day 44
    • [x] Add Authentication components
      • [x] Google OAuth
      • [x] Facebook OAuth - Day 43
    • [x] Homepage components
      • [x] Add Query component
      • [x] Answer Query component
      • [x] Show Answer component
    • [x] Basic Routing - Day 73, Day 76
    • ❌ Topic-specific components
    • ❌ User Profile components
    • ❌ Create Event specific components
    • ❌ Create User and Admin Roles
    • ❌ Add ML recommendation engine component
    • ❌ Create Admin Dashboard

Community Work


100DaysOfCode Day-to-Day Progress

Day 1

  • Solved 6 frequently asked Interview Problems on Array Data Structure:
    • Next Permutation
    • Pascal's Triangle II
    • Pascal's Triangle
    • Set Matrix Zeroes
    • Merge Intervals
    • Maximum Subarray

My Leetcode profile: aswinb

Day 2

  • Solved 8 Problems on Array Data Structure at Leetcode and GFG:
    • Count Inversions
    • Buy and Sell stocks
    • Rotate Image
    • Search in 2D Matrix
    • Search in 2D Matrix - II
    • Determine Whether Matrix Can Be Obtained By Rotation
    • Majority element - I
    • Majority element - II

My Leetcode profile: aswinb

Day 3

  • Solved 2 Problems on Array Data Structure at Leetcode:

My Leetcode profile: aswinb

Day 4

  • Revised Hashmaps and Generics concepts in Java
  • Solved Two Sum problem using Hashmaps at Leetcode

My Leetcode profile: aswinb

Day 5

  • Solved python challenges based on Object oriented programming

Python Challenge: Challenge - 1

Day 6

  • Built an IMDb web scrapper to generate the data of top 5 IMDb rated Movies and top 10 IMDb rated directors using Beautiful soup

Project Repository: IMDb web scrapper

IMDb web Scapper

Day 7

  • Built my personal portfolio website -> https://aswinbarath.me/
  • Deployed on Netlify hosting platform
  • And set up a custom domain using namecheap service

Day 8

  • Worked on the presentarions for JavaScript Basics Event ✍
  • Created basic code snippets for understanding JavaScript Basics 💪
  • Started off with the week with vaccination 💉

Day 9

  • Took some rest for after effects of vaccination 💉🛌
  • Revised the concepts of Java programming and Operating Systems

Day 10

  • Revised Operating Systems
  • Hands-on practice on Java programming in Eclipse IDE

Day 11

  • Solved basic array problems from GFG Practice platform ✍
  • Explored problem solving tracker project built with react and typescript

Day 12

  • Built an IoT project "Eco Monitor" - Light Intensity Sensor project🍀
  • Performed data analystics using visualization to display sensor data 📈📊📉
  • Explored the Bolt IoT Cloud platform

Light_Intensity_Monitor Area graph sensor data Guage data visual

Day 13

  • Solved Regular expression challenges in JavaScript from Hackerrank 🧾
  • Learnt more about Generics with wildcards
  • Practices Hackerrank problems on Generics
  • Solved the problem Largest subarray with zero sum

10 Days of JS 10 Days of JS

SDE problem from GFG

Day 14

  • Built a Stack Data Structure using Java 📚
  • Learnt more about objects, methods, dependencies 🕵️‍♀️
  • Learnt basics of Spring framework (Java) 🍃

Stack DS

Spring hello world code Spring hello world output

Day 15

  • Solved a SDE Hashing problem
  • Brushed up Java skills with 30 Days of Code Hackerrank challenge

Hackerrank 30 days of code silver

Day 16

  • Worked more on JS Roadmap Basics event presentations and code snippets
  • Solved few Python Challenges
  • Attended Saturday's LeetCode contest
  • Attended an Interview round on the topics: SQL, Algorithm and Data Structures

Day 17

  • Completed the JavaScript challenges from 10 Days of JS
  • Successfully conducted JavaScript Roadmap - The Basics event
  • Shared about 10 Days of JS challenge in my JS Roadmap Basics event

Hackerrank 10 Days of JS silver Hackerrank 10 Days of JS congrats message

Hackerrank 10 Days of JS Gold badge

Day 18

  • Gained more knowledge about SSH and basic commands
  • Learnt new concepts from Operating Systems
  • Solved several SDE (frequently asked) Interview problems from GFG practice platform

Day 19

  • Solved CSS challenges from freeCodeCamp's Responsive Web Design course
  • Learnt new concepts from Operating Systems

Day 20

Disentangled JavaScript Algorithms and Data Structures course from freeCodeCamp for the past three days:

  • Solved more challenges on Regular expressions using JavaScript
  • Completed JavaScript debugging challenges
  • Check out the JavaScript tutorials on Regular expressions to learn from basics to advanced regex statements by solving real-world challenges: Regex challenges at FCC0

FCC JS regex challenges 66 FCC JS regex challenges 100

FCC JS debugging challenges 100 FCC JS debugging challenges 100 (2)

Day 21

  • Wrapped up the JS Roadmap Basics event
  • Shared the code files and Git Repositories with my community
  • Deployed the code on Repl.it platform

Day 22

  • Revised and learnt the concepts: OOPs, Stacks, Queues, Linked lists
  • Attended Gatsby v2 (Intermediate) workshop from Front-end masters

Day 23

  • After solving various problems on Arrays, Strings and Hashmaps:

Key Pair GFG Length of the longest substring GFG

Container with most water GFG Trapping rain water GFG

  • Pulled off a deep dive in Linked list data structure and learnt more about:
    • What is a Linked list?
    • Need for Linked list
    • Arrays VS Linked list
    • Types of Linked list
    • Linked list operations
    • Types of problems
  • Linked lists GitHub Repository

Linked lists docs.PNG

Node in LL

Singly Linked List code

  • Attended an Interview round which included Computer Science concepts, problems on Data Structures and Algorithms, case studies on SQL with Schemas, RDBMS and system designs

Day 24

Solved few problems based on Linked list at Leetcode and GFG

Reverse LL Reverse LL leetcode

Middle Of LL Middle Of LL leetcode

Segregate odd and even node in LL leetcode Segregate even and odd node in LL GFG

Rearrange LL GFG

Day 25

  • Brainstormed new ideas for JU Query project
  • Took part in Phase 0 Project discussion
  • Spun up the Repo for JU Query and provided neat documentation with Markdown language
  • JU Query Repo
  • JU Query Deployed Link

Day 26

  • Revised the problem solving concepts of Arrays, Sorting, Recursion
  • Learnt about basic problem solving using Binary Search

Day 27

  • Learnt more about problem solving techniques for Linked lists

Day 28

  • Constructed a project - Stock Analysis using Java that employs the following ideas:
    • File Handling
    • Generics
    • Collections Framework
    • Exception Handling
    • Try with Resources and AutoClosable Interface

Stock analysis

Day 29

  • Practiced 3 different ways to start a thread in Java
  • Learnt the concepts of Thread safety and Synchronization
  • Practiced thread safety and synchronized blocks in Java
  • Used concurrent collections for implementing thread safe Java programs

Day 30

  • Revised the concepts of Collections Framework
  • Started learning about Producer Consumer Pattern
  • Deciphered challenges in Hackerrank on Exception Handling using Java

Hackerrank Java 3 star Hackerrank Java Exception Handling

Day 31

  • Executed a concurrent producer-consumer pattern using Java
  • Operated with ArrayBlockingQueue collection
  • Obtained knowledge on Thread pools
  • Engaged Executor Framework to perform tasks using spawned thread pools
  • Overview on Java Database Connectivity (JDBC)
  • Installed MySQL for Java
  • Connected a database using JDBC

Day 32

  • Grasped the concepts of Lambda expressions in Java
  • Got the hang of the Functional programming paradigm implemented in Java 8
  • Exercised converting methods into lambda expressions
  • Designed custom Functional interfaces to operate with lambdas
  • Pulled off a swift dive in Tree data structure and learnt more about:
    • Introduction and terminologies in a Tree
    • Types of Binary Trees
    • Types of Tree Traversals
    • Representation of Binary Tree in Java

Trees Repo

Day 33

  • Refactored React hooks for JU Query project
  • Uncovered more about the Firebase platform

Learn more about firebase from my blog posts:

Day 34

  • Deep dive into Firebase Firestore service
  • Built a real-time dynamic chat application using firebase
  • Deployed onto production using firebase hosting
  • Fixed a production bug in the public directory

  • Built a Image sharing application using firebase

  • Deployed onto production using firebase hosting

Day 35

  • Practiced more on Lambda expressions using Java
  • Gained more knowledge about Built-in Functional Interfaces in Java
  • Learnt about default implementation in Functional Interfaces, a new feature from Java 8 (This new feature was introduced to support new functional programming abilities from Java 8)

Day 36

  • Practised Lambda Expressions with Streams
  • Completed the Practical Java Development Course, this is what I learnt:
    • The Collections Framework
    • Generics
    • Concurrency and Multithreading in Java
    • Java Database Connectivity (JDBC)
    • Lambda Expressions
    • The Stream API

Day 37

  • Solved Tree traversals: Inorder, Preorder, Postorder

Tree traversals on Leetcode

Day 38

  • Getting started with Object-Oriented Design (OOD) and Low-level Design (LLD).
  • Revisited Objects, Methods and dependencies.
  • Learnt more about Dependency Association, Composition Association and Aggregation Association through Java coding examples.

Day 39

Day 40

  • Back to basics by refactoring a project repository: Book Information
  • Resolved 4 issues from the project which include code refactoring, README update, and icon
  • Reviewed my pull requests and merged them into the master branch
  • Updated the entire codebase with bootstrap design inputs
  • Complete directory restructure
  • Followed naming conventions and best practices
  • Well documented README
  • Project: https://github.com/AswinBarath/Book-Information
  • Here's the git history:

    Book information git history

  • Checkout the project demo over here:

    Book information Demo

Day 41

Day 42

Day 43

  • Added Facebook OAuth feature to JU Query project
  • Fixed bugs and improved web-app performance
  • Refactored the React functional components

Day 44

  • Fixed production bugs
  • Improved the design
  • Refactored the React components
  • gzipped the app for optimized production and deployed the bug fixes

Day 45

  • Learnt more about Binary Search and its importance
  • Gained new knowledge on optimization of Binary Search:
    • Improvement in finding middle element
    • Order-agnostic Binary Search
  • Repository:

Day 46

  • Learning more about Functional Components in React
  • Started project-based learning through building LinkedIn clone:
    • Set up and built the header components
    • Worked on Sidebar components

Day 47

Day 48

  • Solve 3 problems on Binary Search - Easy, Medium, Hard

    • Peak index in Mountain array
    • Find Peak Element
    • Find in Mountain array
  • Repo: https://git.io/JuSnw

Day 49

Day 50

  • Solved 3 problems on the topics Arrays, Hashing and Binary Search at Leetcode

    • Maximum Subarray
    • Contains Duplicate
    • Search in Rotated Sorted Array

Day 51

  • Worked on 2 projects:
    • Simplistic Login Microservice built with NodeJS & ExpressJS
    • SQL injection which demonstrates attacks using malicious SQL queries

Day 52

  • Solved 10 problems using 3 variations of Binary Search at LeetCode

Day 53

  • Explored patterns in Dynamic Programming (DP) problems
  • Solved the problems similar to Fibonacci problem using DP:
    • Climbing Stairs
    • House Robber
  • Repository: Dynamic-Programming

Day 54

  • Solved problems from 2 Dynamic Programming (DP) patterns:
    • Min Cost Climbing Stairs
    • Partition Equal Subset Sum
  • Repository: Dynamic-Programming

Day 55

  • Solved problems on Linked lists based on 2 patterns:
    • Reverse the given Linked list
    • Remove Nth Node from the end of the list (Runner pattern - also known as Tortoise-Hare)
  • Repository: Linked-lists

Day55 LL

Day55 LL 1 Day55 LL 2_2

Day 56

  • Solved 3 problems on Linked lists:
    • Delete a node in a linked list
    • Add two numbers I & II
  • Refactored the Java Packages, Formatted the code, and fixed all of the bugs
  • Generated self-sustaining templates for problems
  • Repository: Linked-lists

Day56 LL

Day56 LL 1 Day56 LL 2 Day56 LL 3

Day 57

  • Solved 3 problems on Linked Lists:
    • Remove Linked List Elements
    • Merge Two Sorted Lists
    • Return Kth Node From End of List
  • Added more packages and documentation
  • Repository: Linked-lists

Day 58

  • Updated the configuration in the JavaScript Repos:
    • authenticated-todo-app
    • nest-js-api
  • Added more Python Challenges on various topics such as:
    • data structures, map, lambda,filter, zip, reduce, decorators, generators, file handling & exception handling
  • Python programming challenges

Day 59

Event Timeline

Day 60

  • Implemented the Stack Data Structure in 4 ways:
    • Stack Implementation using Arrays
    • Generic Stack Implementation
    • Stack Implementation using Linked Lists
    • Stack in Collections Framework
  • Stacks Repository
  • Continued project-based learning through building Tesla clone:
    • Set up and built the homepage component
    • Worked on Section components for reusability
  • Repository

Day 61

  • Added Header component in the Tesla React Clone App
  • Used Hamburger Menu from Material UI
  • Applied media-queries for Dynamic display.
  • Repository

Day 62

  • Solved a couple of problems on Binary Search
  • Structured the problems into 3 templates of Binary Search
  • Documented a list of Easy, Medium and Hard problems from the same topic
  • Repository: https://git.io/JuSnw

Day 63

Day 64

  • Solved two problems using Java in Brute force and Optimal ways
    • Two Sum HashMaps, Two Pointers, Arrays
    • Container With Most Water Two pointer, Greedy, Arrays
  • Solved a problem from LeetCode Contest
    • Convert 1D Array Into 2D Array Arrays, Matrix

Day 65

  • Solved two problems from LeetCode Contest:
    • Find Missing Observations Greedy, Strings
    • Minimum Moves to Convert String Strings
  • Taught DOM Manipulation as part of JavaScript Roadmap event at Codecademy JU chapter

Day 66

Day 67

  • Completed the development of Tesla's landing page in ReactJS
  • Tesla Landing Page Clone App
  • Built a Real-time Twitter Streaming App with NodeJS, SocketIO and Twitter APIs

  • Transformed my GitHub Profile README to a newer and better look

Day 68

  • Solved two problems based on Stacks:
    • Valid Parenthesis
    • Next Greater Element
  • Implemented Queue using Array
  • Implemented Stack using Queue
  • Implemented Queue using Stack
  • Stacks Repo
  • Queues Repo

Day 69

  • Started to build a massive e-commerce react application which is similar to Shopify
  • Here's my project pipeline for the day:
    • Project initialization using Create React App
    • Adding NodeJS SASS package for styling
    • Broken homepage into components & applied SASS animations
  • Clothing e-commerce React application repository

Day 70

Day 71

Day 72

Day 73

  • Solved two problems from Linked Lists
    • Intersection of Two Linked Lists
    • Cycle Detection in a Linked List
  • Restructured the developer environment at JU Query project
  • Added React-router-DOM package with basic routing abilities for JU Query Web App
  • JU Query Repo

Day 74

  • Solved 3 problems using Linked Lists
    • Reverse Nodes in k-Group
    • Swap Nodes in Pairs
    • Swapping Nodes in a Linked List

Day 75

  • Solved the Linked List Palindrome checker problem at LeetCode

Day 76

Day 77

  • Solved the problem of finding the starting point of a cycle in Linked list

Day 78

  • Solved 3 Linked list problems using Recursion and two-pointers approach:
    • Flatten given Linked list
    • Rotate given Linked list
    • Clone a given Linked list with next and random pointers

Day 79

  • Solved 3 problems using two-pointers approach:
    • Find triplets with 0 sum
    • Remove Duplicates from Sorted Array
    • Max Consecutive Ones
  • 2-pointers Repo: https://git.io/JKHRE

Day 80

  • Solved 3 problems using greedy approach:
    • N meetings In One Room
    • Minimum Platforms
    • Job Sequencing
  • Greedy-algorithms Repo: https://git.io/J6lZU

Day 81

  • Solved 2 more problems using greedy algorithm
    • Minimum coins
    • Fractional Knapsack
  • Greedy-algorithms Repo: https://git.io/J6lZU

Day 82

  • Solved the problem Split Array Largest Sum using Binary Search
  • Binary-Search Repo: https://git.io/JuSnw

Day 83

Day 84

  • Learnt #DSAwithKunal focusing on Recursion
  • Got to understand Recursion and how to approach problems in the best way
  • Recursion Repo: https://git.io/JPzPQ

Day 85

Day 86

  • Solved problems to find Size, Height, Max & Min from a Binary Tree
  • Trees Repo: https://git.io/J1MM0

Day 87

  • 21 Nov Sunday, 2021
  • Learnt react-router-dom tutorial
  • Implemented basic routing in JU Query

Day 88

  • 23 November Tuesday, 2021
  • Implemented on Tree traversals
  • Documented tree traversals neatly on README
  • Tree Travesal Docs Commit

Day 89

Day 90

Day 91

Day 91

Day 92

Day 93

  • 4 December Saturday, 2021
  • Revised the concepts of C Programming:
    • pointers
    • structure
    • dynamic memory allocation

Day 94

  • 5 December Sunday, 2021
  • Revised data structures:
    • Arrays
    • Hashmaps
    • Linked lists
  • Also revised algorithms:
    • Recursion
    • Sorting
    • Searching

Day 95

  • 6 December Monday, 2021
  • Revised SQL commands and concepts

Day 96

  • 12 December Sunday, 2021
  • Started working on command line script project with JavaScript

Day 97

Day 98

Day 99

Day 100

  • 30 December Thursday, 2021
  • Worked on DSA-Craker-Sheet and SDE-sheet documentation

December 31, Friday


Goals Accomplished in 2021 (#100daysofcode)


Contributors


License & copyright

(c) T Aswin Barath

Licensed under the MIT License.

Top comments (0)