100 Days of Code Challenge
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:
- Code a minimum of an hour every day for the next 100 days.
- 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
Useful Links
Goals
- [x] Learn Software Development
- [x] Solve problems on Data Structures and Algorithms
- [x] Build Projects around Software Development
- [x] Build JU Query platform for university students
- [x] Community Work
Learn Software Development
Learn Java Software Development
- [x] Java Core Concepts
- [x] Object Oriented Programming in Java – Day 9, Day 10
- [x] Collections Framework – Day 28, Day 30
- [x] Generics – Day 28
- [x] File Handling – Day 28
- [x] Exception Handling – Day 28
- [x] Concurrency and Multi-Threading – Day 29, Day 30
- [x] JDBC – Day 31
- [x] Lambda Expressions and Stream API (Functional Programming) – Day 32, Day 35, Day 36
- [x] Object-Oriented Design – Day 38, Day 70
Learn Full-stack Development
- [x] JavaScript – Day 8, Day 13, Day 16, Day 17, Day 20, Day 42
- [x] ReactJS & ReduxJS – Day 46, Day 60, Day 61, Day 67, Day 69, Day 70
- [x] Firebase, – Day 33, Day 34
- [x] NodeJS, – Day 49, Day 51, Day 59, Day 67
Solve problems on Data Structures and Algorithms
- [x] Data Structures
- [x] Arrays – Day 1, Day 2, Day 3, Day 11, Day 13, Day 23, Day 26, Day 50, Day 64
- [x] Strings – Day 23, Day 65
- [x] HashMaps – Day 4, Day 13, Day 15, Day 23, Day 50, Day 64
- [x] Stacks – Day 14, Day 60, Day 68
- [x] Queues – Day 68
- [x] Linked Lists – Day 22, Day 23, Day 24, Day 27, Day 55, Day 56, Day 57, Day 73, Day 74, Day 75, Day 77, Day 78
- [x] Trees – Day 32, Day 37, Day 86
- [x] Graphs – Day 66
- ❌ Heaps
- ❌ Tries
- [x] Algorithms
- [x] Sorting – Day 26
- [x] Insertion Sort
- [x] Selection Sort
- [x] Bubble Sort
- [x] Count Sort
- [x] Merge Sort
- [x] Quick Sort
- [x] Searching
- [x] Recursion, Backtracking – Day 26, Day 39, Day 78, Day 83
- [x] Dynamic Programming – Day 53, Day 54
- [x] Two pointers – Day 64, Day 78, Day 79
- [x] Greedy – Day 64, Day 65, Day 80, Day 81
- ❌ Bit Manipulation
- ❌ Mathematical problems
- [x] Sorting – Day 26
- [x] Solved Python Challenges Day 5, Day 58
- [x] Solve Hackerrank Challenges in Java – Day 15
Build Projects around Software Development
- [x] Build Full-stack Apps
- [x] Build ReactJS Web Apps
- [x] Build NodeJS Microservices
- [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
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
- [x] Add Authentication components
Community Work
- [x] JavaScript Roadmap I – The Basics Event – Day 8, Day 16, Day 17, Day 21
- [x] Event Timeline Page (Community Project) – Day 59
- [x] JavaScript Roadmap II – DOM Manipulation Event – Day 65
- [x] Git and GitHub Event – Day 71
- [x] JavaScript Roadmap III – EcmaScript Event – Day 72
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:
- Reverse Pairs
- Most frequently asked Google SDE problem: Unique Paths
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
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
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
Day 14
- Built a Stack Data Structure using Java 📚
- Learnt more about objects, methods, dependencies 🕵️♀️
- Learnt basics of Spring framework (Java) 🍃
Day 15
- Solved a SDE Hashing problem
- Brushed up Java skills with 30 Days of Code Hackerrank challenge
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
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
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:
- 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
- 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 a Linked list
- Middle of a Linked list
- Even nodes after odd in Linked list
- Linked lists GitHub Repository
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
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
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
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
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
- Assessed my recursion skills in Java @HackerRank
- Solved: Recursive Digit Sum
- Solved: Fibonacci Numbers
- Can you complete the challenge?
- https://www.hackerrank.com/interview/interview-preparation-kit/recursion-backtracking/challenges
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:
- Checkout the project demo over here:
Day 41
- Back to basics by refactoring the project repositories: Book Information 2.0, Robot Friend and Image portfolio
- Resolved 14 issues from the projects which include code refactoring, README update, and demo
- Reviewed my pull requests and merged them into the main branch
- Updated the entire codebase with bootstrap design inputs
- Complete directory restructure
- Followed naming conventions and best practices
- Well documented README
- Here are the project links
- https://github.com/AswinBarath/Book-Information-2.0
- https://github.com/AswinBarath/robot-friend
- https://github.com/AswinBarath/Image-portfolio
- Checkout the project demos over here:
Day 42
- Solved JavaScript Strings and Arrays exercises from Front-end masters:
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:
- https://git.io/JuSnw
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
- Solved 4 problems on Binary Search
- Repo: https://git.io/JuSnw
- Refactored, Documented and Optimized 3 front-end projects
- Repo: https://git.io/JuSnD
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
- Solved 10+ API based challenges using NodeJS and ExpressJS from freeCodeCamp
- GitHub Repository: https://git.io/JuAl6
- Always On Repl: https://replit.com/@ashwin26/nodejs-expressjs-scripts?v=1
- Live link: https://nodejs-expressjs-scripts.ashwin26.repl.co/
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
- GitHub Repo
- Live link
- Optimized the project
- Documented the code and readme
- SQL injection which demonstrates attacks using malicious SQL queries
- GitHub Repo
- Live link
- Refactored the project
- Updated documentation
- Simplistic Login Microservice built with NodeJS & ExpressJS
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
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
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
- Built an Event timeline web app for Codecademy JU Chapter Community
- Deployed the web app on top of Repl it using NodeJS and ExpressJS
- Event Timeline web app
- Join Codecademy JU Chapter
- GitHub Repository
- Web App Demo
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
- Built a Joke Teller web app using
- JokeAPI (RESTful)
- Text-to-Speech API (VoiceRSS)
- Repository
- Deployed Link
- Updated Arrays data structure repository
- Repository
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
- Two Sum
- Solved a problem from LeetCode Contest
- Convert 1D Array Into 2D Array
Arrays
,Matrix
- Convert 1D Array Into 2D Array
Day 65
- Solved two problems from LeetCode Contest:
- Find Missing Observations
Greedy
,Strings
- Minimum Moves to Convert String
Strings
- Find Missing Observations
- Taught DOM Manipulation as part of JavaScript Roadmap event at Codecademy JU chapter
Day 66
- Revised the Theoretical concepts of Graph Data Structure
- Updated GitHub Profile README with a new look
- Graphs Repository
- GitHub Profile README
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
- Updated menu-items component to automate the page routing to specific URLs based on the passed props using React Router
- Clothing e-commerce React application repository
- Added my work on Object Oriented Design based on project based learning approach
- https://github.com/AswinBarath/Object-Oriented-Design
Day 71
- Taught Git and GitHub at Codecademy JU Chapter
- Recording: https://lnkd.in/eAn6QAYt
- Wrap Up Page: https://lnkd.in/eUa4haKp
- Git and GitHub Basics
Day 72
- Taught ECMAScript Features from JavaScript at Codecademy JU Chapter
- Wrap Up Page: https://community.codecademy.com/events/details/codecademy-jain-university-ju-presents-javascript-roadmap-iii/
- JS Roadmap ECMAScript
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
- Built different pages and components for JU Query Project
- Experimented pages with React Router and learning more about it
- JU Query Repo
- JU Query Deployed Link
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
- Revised the concepts from Recursion
- Recursion Repo: https://git.io/JPzPQ
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
- Used Markdown in my Web End Projects Repository extensively to visualize my project cover designs, demo and important links
- Web End Projects: https://github.com/AswinBarath/Web-End-Projects
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
- 25 November Thursday, 2021
- Implemented Postorder iterative tree traversals using 1 stack and 2 stacks in java
Day 90
- 26 November Friday, 2021
- Updated Java packages and classes with tree traversals
- Added extensive documentation for Linked-lists, Bit-Manipulation, Binary-search and Trees repositories
Day 91
- 28 November Sunday, 2021
- Implemented All-in-one Tree Traversals, Height and Depth of Binary Tree
Day 91
- 29 November Monday, 2021
- Learnt PHP basics from tutorials
Day 92
- 1 December Wednesday, 2021
- Worked on Secure Programming Lab 1
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
- 26 December Sunday, 2021
- Continued the project work on command line script project with JavaScript and Python
- Implemented several tasks and passed some of the test cases
Day 98
- 27 December Monday, 2021
- Successfully worked on CLI project in Python
- Passed 16/16 test cases from CLI project using python
Day 99
- 29 December Wednesday, 2021
- Compiled and formatted the resources on IT Workshop in Python
Day 100
- 30 December Thursday, 2021
- Worked on DSA-Craker-Sheet and SDE-sheet documentation
December 31, Friday
- Set the goals for 2022 & beyond using the following respositories:
Goals Accomplished in 2021 (#100daysofcode)
- [x] Learn Software Development
- [x] Solve problems on Data Structures and Algorithms
- [x] Build Projects around Software Development
- [x] Build JU Query platform for university students
- [x] Community Work
Contributors
- T Aswin Barath aswin2001barath@gmail.com
License & copyright
(c) T Aswin Barath
Licensed under the MIT License.