Explore my technical skillset through interactive computer science visualizations. Use the terminal below to query skills and learn about data structures and algorithms.
mohdsakib@portfolio:~$skills --list-categoriesAvailable skill categories: frontend, backend, database, tools, languages, cloudAndDevopsmohdsakib@portfolio:~$
This skills explorer implements multiple CS concepts: • Hash Maps: O(1) lookup time for skill categories • Binary Search Trees: O(log n) search for skills by level • Quicksort: O(n log n) sorting algorithm for skill levels • Command Pattern: Encapsulates terminal commands as objects
Hash maps provide O(1) constant time lookup for skills categories. Skills are organized by category for immediate access without having to search through the entire collection, making the UI responsive even with a large number of skills.
The BST visualization demonstrates how skills are stored in a balanced binary search tree, enabling O(log n) search complexity when looking for skills by proficiency level. Try searching for skills with the 'skills --search [level]' command.
When displaying skills, a quicksort algorithm sorts them by proficiency level in O(n log n) time. This efficient algorithm ensures skills are always displayed in the proper order from highest to lowest proficiency.
The terminal interface implements the Command design pattern, where each command is encapsulated as an object. This creates a clean separation between the command issuer (the terminal) and the command processor, allowing for easy extension with new commands.
These computer science concepts demonstrate not just what I know, but how I think about software architecture and algorithm implementation. Try the terminal commands to see these concepts in action!