Code Monkey home page Code Monkey logo

mre / the-coding-interview Goto Github PK

View Code? Open in Web Editor NEW
1.7K 58.0 414.0 1.72 MB

Programming exercises, code katas and puzzles for your job interview training - or just for fun.

License: MIT License

CoffeeScript 4.42% Java 4.96% JavaScript 14.34% Python 41.21% C 1.30% Ruby 1.62% PHP 3.94% C# 3.93% C++ 4.55% Rust 6.45% Go 2.22% LOLCODE 0.18% Haskell 0.44% Kotlin 4.93% Swift 0.50% F# 1.21% Shell 3.12% TypeScript 0.39% Makefile 0.14% Julia 0.15%
interview-practice interview-test-task language-learning coding-interview

the-coding-interview's Introduction

Logo

⚠️ Maintenance status

Nowadays I don't have much time to maintain this project anymore.

I started the project when preparing for coding interviews when graduating. If this is your goal, too, then there might be better resources in 2021 to prepare for that. Here are some books that I recommend to friends who are looking to build a solid foundation.

Cracking the Coding Interview by Gayle Laakmann McDowell is a classic, which covers most of the questions that get typically asked in FAANG interviews like array and string manipulations, sorting, and searching.

System Design Interview by Alex Xu is more focused on typical software architecture questions, e.g. back-of-the-envelope estimations as well as making services performant and fault tolerant.

Note: These are Amazon affiliate links and I get a small commission if you end up buying a book. This helps me work on OSS in my free time.

These books in combination should give a good overview of what to expect in a typical interview situation. The repository can still serve as a nice companion while working through the chapters from the books.

Contributing

Interested in contributing? Find problems that don’t have solutions yet in the language of your choice by running the find-missing-solutions script.

For more information see CONTRIBUTING.md.

Credits

This started as a collection of the following resources:

The awesome title image was Designed by Freepik.

Statistics

───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
Python                     156      5396      631       585     4180       1400
JavaScript                  69      1875      266       228     1381        286
PHP                         27       720       96        10      614         61
CoffeeScript                23       584       74        84      426         72
Rust                        23       919       94        22      803         74
Java                        20       735       92        39      604        128
Kotlin                      20       467       71        26      370         77
C#                          14       527       61        31      435         59
Ruby                        12       215       21        86      108         16
C++                         11       407       42        22      343         60
Go                          11       382       60         4      318         55
BASH                        10       305       33        15      257         48
C                           10       224       41        16      167         41
Haskell                      6        55        9         3       43          4
F#                           5        81       11        19       51          5
C++ Header                   4       268       49         9      210         15
TypeScript                   3        58       15         0       43          6
Dart                         2        53        9         0       44          8
Julia                        2        29        5         2       22          6
C Header                     1        18        6         2       10          0
LOLCODE                      1        30        6         0       24          2
Swift                        1        86        3         7       76          3
───────────────────────────────────────────────────────────────────────────────
Total                      431     13434     1695      1210    10529       2426
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop $319,964
Estimated Schedule Effort 9.950146 months
Estimated People Required 3.809141
───────────────────────────────────────────────────────────────────────────────

the-coding-interview's People

Contributors

ahdeshpande avatar bustedmind avatar engr-hasanuzzaman avatar fleshgrinder avatar ihsansatriawan avatar ironvenom avatar jibrang avatar jillhkm avatar josephttran avatar jxs avatar karololko avatar kgbplus avatar lhess avatar mre avatar oniani avatar ottx96 avatar rafaelbroseghini avatar rohan-git avatar romedu avatar sarathsp06 avatar segura2010 avatar sergrosh avatar spazzy757 avatar sylwit avatar tankris avatar teodorrupi avatar williamgherman avatar yanpas avatar yirrilo avatar zackshorts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

the-coding-interview's Issues

C array size must be passed as a second argument

From bubble sort code:

void bubblesort(int *v){

    int i,j,aux;

    int size = sizeof(v) / sizeof(v[0]); // Number of indexes in the V array.

sizeof(int*) is always equal to size required for holding memory address (8bytes on 64bit arch). There should be second arg size_t v_len.

Provide solutions for other languages

There are a lot of solutions missing for languages like Kotlin, Rust, or Typescript.
Here is an overview of what we have so far:

├── alphanumeric-string-sort
│   ├── README.md
│   ├── alphanumeric-string-sort.cpp
│   ├── alphanumeric-string-sort.kt
│   └── alphanumeric-string-sort.py
├── anagram-detection
│   ├── Readme.md
│   ├── anagram-detection.coffee
│   ├── anagram-detection.cs
│   ├── anagram-detection.go
│   ├── anagram-detection.java
│   ├── anagram-detection.js
│   ├── anagram-detection.kt
│   ├── anagram-detection.php
│   ├── anagram-detection.py
│   ├── anagram-detection.rs
│   ├── anagram-detection2.py
│   └── anagram-detection3.py
├── array-pair-sum
│   ├── Readme.md
│   ├── array-pair-sum.coffee
│   ├── array-pair-sum.go
│   ├── array-pair-sum.java
│   ├── array-pair-sum.js
│   ├── array-pair-sum.kt
│   ├── array-pair-sum.php
│   ├── array-pair-sum.py
│   └── array_pair_sum.rs
├── array-sum
│   ├── README.md
│   ├── array-sum.kt
│   ├── array-sum.py
│   ├── array-sum.rs
│   └── array_sum.php
├── atbash
│   ├── README.md
│   ├── atbash.cs
│   ├── atbash.go
│   ├── atbash.kt
│   ├── atbash.php
│   ├── atbash.py
│   └── atbash.rs
├── balanced-brackets
│   ├── Readme.md
│   ├── balanced-brackets.coffee
│   ├── balanced-brackets.go
│   ├── balanced-brackets.java
│   ├── balanced-brackets.js
│   ├── balanced-brackets.kt
│   ├── balanced-brackets.php
│   ├── balanced-brackets2.py
│   ├── balanced_brackets.py
│   └── balanced_brackets.rs
├── binary-search-tree-check
│   ├── Readme.md
│   ├── binary-search-tree-check.coffee
│   ├── binary-search-tree-check.js
│   ├── binary-search-tree-check.kt
│   ├── binary-search-tree-check.py
│   └── binary_search_tree_check.rs
├── bubble-sort
│   ├── Readme.md
│   ├── bubble-sort.c
│   ├── bubble-sort.coffee
│   ├── bubble-sort.go
│   ├── bubble-sort.java
│   ├── bubble-sort.js
│   ├── bubble-sort.kt
│   ├── bubble-sort.py
│   ├── bubble-sort.rb
│   └── bubble_sort.rs
├── byte-format
│   ├── README.md
│   ├── byte-format.coffee
│   ├── byte-format.go
│   ├── byte-format.js
│   ├── byte-format.kt
│   ├── byte-format.py
│   └── byte_format.rs
├── can-scramble
│   ├── README.md
│   ├── can-scramble.kt
│   ├── can-scramble.php
│   ├── can-scramble.py
│   └── can_scramble.rs
├── cash-units
│   ├── README.md
│   ├── cash-units.kt
│   ├── cash-units.php
│   └── cash-units.rs
├── closed-loops
│   ├── LoopCounter.cs
│   ├── Readme.md
│   ├── closed-loops.kt
│   ├── closed-loops.py
│   ├── closed.rs
│   └── closed_loops.php
├── codejam
│   ├── 2009
│   │   └── Quali
│   │       ├── A-Aliens
│   │       │   ├── A-alien.py
│   │       │   ├── A-large-practice.in
│   │       │   ├── A-small-practice.in
│   │       │   ├── A-small-practice.out
│   │       │   └── A-tiny-practice.in
│   │       ├── B-Watershed
│   │       │   ├── B-tiny-practice.in
│   │       │   └── B-watershed.py
│   │       └── C-Welcome
│   │           ├── test.py
│   │           └── welcome.py
│   └── 2013
│       ├── 1a
│       │   ├── bullseye
│       │   │   ├── A-small-practice.in
│       │   │   ├── A-tiny-practice.in
│       │   │   ├── bullseye.py
│       │   │   └── other
│       │   │       ├── JongMan_0_1.zip
│       │   │       ├── Problem_A_Round1A.py
│       │   │       ├── VictorDudin_0_0.zip
│       │   │       ├── a.py
│       │   │       ├── bull.py
│       │   │       ├── kmod_0_0.zip
│       │   │       └── tjhance7_0_0.zip
│       │   └── manage_your_energy
│       │       ├── B-small-practice.in
│       │       └── README.md
│       └── quali
│           ├── Fair-and-Square
│           │   ├── C-small-practice.in
│           │   ├── C-small-practice.out
│           │   ├── README.md
│           │   ├── fair-and-square.kt
│           │   └── fairsquare.py
│           ├── Lawnmower
│           │   ├── B-large-practice.in
│           │   ├── B-large-practice.out
│           │   ├── B-small-practice.in
│           │   ├── B-small-practice.out
│           │   ├── B-small-practice2.out
│           │   ├── README.md
│           │   ├── lawnmower.py
│           │   ├── lawnmower2.py
│           │   ├── t.py
│           │   ├── t2.py
│           │   └── t3.py
│           ├── Tic-Tac-Toe-Tomek
│           │   ├── A-large-practice.in
│           │   ├── A-large-practice.out
│           │   ├── A-small-practice.in
│           │   ├── B-small-practice.in
│           │   ├── README.md
│           │   ├── a.py
│           │   ├── in.txt
│           │   └── tic-tac-toe-tomek.py
│           └── Treasure
│               ├── D-large-practice.in
│               ├── D-small-practice.in
│               ├── D-tiny-practice.in
│               ├── README.md
│               ├── test.py
│               ├── test2.py
│               └── treasure.py
├── combine-two-strings
│   ├── Readme.md
│   ├── combine-two-strings-regex.php
│   ├── combine-two-strings.coffee
│   ├── combine-two-strings.java
│   ├── combine-two-strings.js
│   ├── combine-two-strings.php
│   └── combine-two-strings.py
├── convert-array
│   ├── Readme.md
│   ├── convert-array.js
│   └── convert-array.py
├── cross-base-primes
│   ├── README.md
│   ├── cross-base-primes.cpp
│   └── cross-base-primes.py
├── csv-parsing
│   ├── Readme.md
│   ├── csv-parsing.coffee
│   ├── csv-parsing.js
│   ├── csv-parsing.py
│   └── cvs-parsing-regexp.js
├── deadlock
│   ├── README.md
│   ├── deadlock.cs
│   └── deadlock.rb
├── debounce
│   ├── Readme.md
│   ├── debounce.coffee
│   ├── debounce.js
│   └── debounce.py
├── duplicate-element
│   └── README.md
├── euler
│   ├── 1
│   │   └── sum35.py
│   ├── 10
│   │   └── firstprimes.py
│   ├── 11
│   │   └── largestgrid.py
│   ├── 12
│   │   ├── triangle.py
│   │   ├── triangle_alt.py
│   │   └── triangle_alt2.py
│   ├── 13
│   │   └── largesum.py
│   ├── 18
│   │   └── path_sum.py
│   ├── 19
│   │   └── 19.py
│   ├── 2
│   │   └── evenfib.py
│   ├── 21
│   │   ├── amicable.py
│   │   ├── prime_sieve.py
│   │   └── prime_sieve.pyc
│   ├── 22
│   │   ├── names.py
│   │   └── p022_names.txt
│   ├── 23
│   │   ├── euler_math.py
│   │   └── non_abundant.py
│   ├── 24
│   │   └── permut.py
│   ├── 25
│   │   └── fib.py
│   ├── 26
│   │   ├── cycle.py
│   │   └── euler_math.py
│   ├── 27
│   │   ├── euler_math.py
│   │   ├── euler_math.pyc
│   │   └── quadratic_primes.py
│   ├── 28
│   │   └── spiral.py
│   ├── 29
│   │   └── distinct_powers.py
│   ├── 3
│   │   └── largest_prime_factor.py
│   ├── 33
│   │   └── cancelling_fractions.py
│   ├── 38
│   │   └── pandigital.py
│   ├── 39
│   │   └── triangle.py
│   ├── 4
│   │   └── squarediff.py
│   ├── 40
│   │   └── Champernowne.py
│   ├── 41
│   │   ├── euler_math.py
│   │   ├── euler_math.pyc
│   │   └── pan_prime.py
│   ├── 42
│   │   ├── p042_words.txt
│   │   └── triangle_words.py
│   ├── 43
│   │   ├── euler_math.py
│   │   ├── euler_math.pyc
│   │   └── pan_prime.py
│   ├── 44
│   │   └── pentagonal.py
│   ├── 45
│   │   └── pentagonal.py
│   ├── 46
│   │   ├── euler_math.py
│   │   ├── euler_math.pyc
│   │   └── goldbach.py
│   ├── 47
│   │   ├── distinct.py
│   │   └── euler_math.py
│   ├── 48
│   │   └── powers.py
│   ├── 49
│   │   ├── euler_math.py
│   │   └── prime_permutations.py
│   ├── 5
│   │   └── nodivremainder.py
│   ├── 50
│   │   ├── consecutive_primes.py
│   │   ├── consecutive_primes.py.lprof
│   │   ├── euler_math.py
│   │   ├── euler_math.pyc
│   │   └── kernprof
│   ├── 52
│   │   └── 52.go
│   ├── 53
│   │   ├── main.go
│   │   └── main_test.go
│   ├── 6
│   │   └── palindrom.py
│   ├── 7
│   │   └── 10001stprime.py
│   ├── 8
│   │   └── adjacent_digits.py
│   ├── 9
│   │   └── triplet.py
│   └── 92
│       ├── 92.py
│       └── 92.pyc
├── even-occuring-element
│   ├── Readme.md
│   ├── even-occuring-element.coffee
│   ├── even-occuring-element.js
│   └── even-occuring-element.py
├── factorial
│   ├── factorial.c
│   ├── factorial.coffee
│   ├── factorial.js
│   ├── factorial.php
│   ├── factorial.py
│   ├── factorial.rb
│   └── readme.md
├── fibonacci
│   ├── Readme.md
│   ├── fibonacci.coffee
│   ├── fibonacci.py
│   ├── fibonacci.rb
│   └── fibonnaci.js
├── find-missing-element
│   ├── Readme.md
│   ├── find-missing-element.coffee
│   ├── find-missing-element.js
│   └── find-missing-element.py
├── first-greater-number
│   ├── 12478687.rb
│   └── first-greater-number.py
├── first-non-repeated-character
│   ├── Readme.md
│   ├── first-non-repeated-character.coffee
│   ├── first-non-repeated-character.js
│   ├── first-non-repeated-character.py
│   └── first-non-repeating-character.kt
├── flatten-array
│   ├── Readme.md
│   ├── flatten-array-recursive.php
│   ├── flatten-array.coffee
│   ├── flatten-array.hs
│   ├── flatten-array.js
│   ├── flatten-array.php
│   └── flatten-array.py
├── flip-bit
│   ├── 12590665.rb
│   ├── Readme.md
│   └── flip.py
├── get-elements-by-class-name
│   ├── Readme.md
│   ├── get-elements-by-class-name.coffee
│   └── get-elements-by-class-name.js
├── hotel-room
│   ├── Readme.md
│   ├── hotel-room.coffee
│   ├── hotel-room.cs
│   ├── hotel-room.js
│   ├── hotel-room.php
│   └── hotel-room.py
├── increment-int-list
│   ├── increment_int_list.py
│   └── increment_int_list2.py
├── integer-difference
│   ├── Readme.md
│   ├── integer-difference.coffee
│   ├── integer-difference.js
│   └── integer-difference.py
├── integer-length
│   ├── Readme.md
│   ├── integer-length.coffee
│   ├── integer-length.js
│   ├── integer-length.php
│   └── integer-length.py
├── intersections
│   ├── README.md
│   ├── intersections.php
│   └── intersections.py
├── knights-on-chessboard
│   ├── README.md
│   ├── knight.java
│   └── knight.py
├── kth-largest-element-in-array
│   ├── Readme.md
│   ├── kth-largest-element-in-array.coffee
│   ├── kth-largest-element-in-array.js
│   └── kth-largest-element-in-array.py
├── largest-continuous-sum
│   ├── Readme.md
│   ├── largest-continuous-sum.coffee
│   ├── largest-continuous-sum.js
│   └── largest-continuous-sum.py
├── largest-palindrome
│   ├── Readme.md
│   ├── largest-palindrome.coffee
│   ├── largest-palindrome.js
│   └── largest-palindrome.py
├── least-common-multiple
│   ├── 12475663.rb
│   └── least-common-multiple.py
├── linked-list
│   ├── Readme.md
│   ├── linked-list.coffee
│   ├── linked-list.java
│   ├── linked-list.js
│   └── linked-list.py
├── longest-compound-word
│   ├── Readme.md
│   ├── longest-compound-word.js
│   └── longest-compound-word.py
├── longest-subsequence
│   ├── find_longest_subsequence.py
│   └── find_longest_subsequence2.py
├── longest-words
│   ├── LongestWords.cs
│   ├── Readme.md
│   ├── longest-words.js
│   └── longest-words.py
├── matching-nodes
│   ├── Readme.md
│   └── matching-nodes.js
├── median-integer-stream
│   ├── Readme.md
│   ├── median-integer-stream.js
│   └── median-integer-stream.py
├── merge-sort
│   ├── Readme.md
│   ├── merge-sort.js
│   ├── merge-sort.py
│   └── mergesort.rs
├── missing-number
│   ├── Readme.md
│   ├── missing-number.cs
│   ├── missing-number.java
│   ├── missing-number.js
│   └── missing-number.py
├── money-format
│   ├── Readme.md
│   ├── money-format.js
│   └── money-format.py
├── multiples-of-3-and-5
│   ├── Readme.md
│   ├── multiples-of-3-and-5-2.py
│   ├── multiples-of-3-and-5.js
│   └── multiples-of-3-and-5.py
├── next-highest-number
│   ├── Readme.md
│   ├── next-highest-number.js
│   └── next-highest-number.py
├── next-palindrome-number
│   ├── Readme.md
│   ├── next-palindrome-number.js
│   └── next-palindrome-number.py
├── odd-occuring-element
│   ├── Readme.md
│   ├── odd-occuring-element.js
│   └── odd-occuring-element.py
├── once
│   ├── Readme.md
│   ├── once.hpp
│   ├── once.js
│   └── once.py
├── permutation_generator
│   ├── Readme.md
│   └── generator.py
├── prime-number
│   ├── Readme.md
│   ├── bench.py
│   ├── bench.pyc
│   ├── prime-number-2.py
│   ├── prime-number.js
│   ├── prime-number.py
│   └── prime-number.rb
├── queue
│   ├── Readme.md
│   ├── queue.hpp
│   ├── queue.js
│   └── queue.py
├── quick-sort
│   ├── Readme.md
│   ├── quick-sort.js
│   ├── quick-sort.py
│   └── quicksort.rs
├── remove-duplicates-from-string
│   ├── Readme.md
│   ├── remove-duplicates-from-string.js
│   └── remove-duplicates-from-string.py
├── reverse-string
│   ├── README.md
│   ├── reverse-string.php
│   ├── reverse-string.py
│   └── reverse-string.rs
├── reverse-words-in-string
│   ├── Readme.md
│   ├── ReverseWordsInAString.java
│   ├── reverse-words-in-string.js
│   └── reverse-words-in-string.py
├── search-unknown-length-array
│   ├── Readme.md
│   ├── search-unknown-length-array.js
│   └── search-unknown-length-array.py
├── selection-sort
│   ├── readme.md
│   ├── selection-sort.c
│   ├── selection-sort.js
│   ├── selection-sort.py
│   └── selection-sort.rb
├── shortest-fizz-buzz
│   ├── Readme.md
│   ├── shortest-fizz-buzz.c
│   ├── shortest-fizz-buzz.js
│   ├── shortest-fizz-buzz.php
│   └── shortest-fizz-buzz.py
├── sorted-array-search
│   ├── Readme.md
│   ├── sorted-array-search.js
│   └── sorted-array-search.py
├── spiral
│   ├── Readme.md
│   ├── input-1.png
│   ├── input-2.png
│   ├── spiral.hpp
│   ├── spiral.js
│   └── spiral.py
├── split_string
│   ├── README.md
│   ├── split.lol
│   ├── splitString.php
│   ├── split_string.py
│   └── split_string.rs
├── stack
│   ├── README.md
│   ├── stack.c
│   ├── stack.h
│   ├── stack.hpp
│   ├── stack.js
│   ├── stack.php
│   └── stack.py
├── string-format
│   ├── Readme.md
│   ├── string-format.js
│   └── string-format.py
├── string-permutations
│   ├── Readme.md
│   ├── string-permutations.js
│   └── string-permutations.py
├── string-rotation
│   ├── Readme.md
│   ├── string-rotation.js
│   └── string-rotation.py
├── substrings
│   ├── 12435684.rb
│   ├── Readme.md
│   ├── substrings.php
│   └── substrings.py
├── sum-of-array-plus-one
│   ├── Readme.md
│   ├── sum-of-array-plus-one.cs
│   ├── sum-of-array-plus-one.js
│   ├── sum-of-array-plus-one.php
│   ├── sum-of-array-plus-one.py
│   └── sum-of-array-plus-one.rb
├── the-rabbit-question
│   ├── README.md
│   └── RabbitQuestion
│       ├── RabbitQuestion
│       │   ├── Answers.cs
│       │   ├── Properties
│       │   │   └── AssemblyInfo.cs
│       │   └── RabbitQuestion.csproj
│       └── RabbitQuestion.sln
├── transform-word
│   ├── Readme.md
│   ├── transform-word.js
│   ├── transform-word.py
│   └── words.txt
├── tree-level-order-print
│   ├── Readme.md
│   ├── tree-level-order-print.js
│   ├── tree_level_order_print.py
│   └── tree_level_order_print_2.py
├── word-analytics
│   ├── Readme.md
│   ├── huckleberry-finn.txt
│   ├── word-analytics.js
│   └── word-analytics.py
├── word-grid
│   ├── Readme.md
│   ├── word-grid-fast.py
│   └── word-grid.py
└── word-positions
    ├── Readme.md
    ├── word-positions.coffee
    └── word-positions.js

138 directories, 457 files

If you're interested in adding a solution for a programming language that is still missing, just add a comment here or create a pull request right away. I will provide mentorship if needed and do code reviews. 🌟 This is a good starting point for Hacktoberfest.

Statistics!

Would be nice to give people an overview of the already existing solutions.
Maybe have a cloc or a loc output in the README.md or so.
Something more visual would also be great.

Pull requests and ideas welcome.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.