Skip to content

csharp-dev/codechallenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

----------------------------------------------


OBJECTIVE - Become A Competitive C# Programmer


----------------------------------------------


“ For me, great algorithms are the poetry of
  computation. Just like verse, they can be terse,
  allusive, dense, and even mysterious.

  But once unlocked, they cast a brilliant new
  light on some aspect of computing. ”

— Francis Sullivan


----------------------------------------------


“ An algorithm must be seen to be believed. ”

— Donald Knuth


----------------------------------------------


“ I will, in fact, claim that the difference
between a bad programmer and a good one is
whether he considers his code or his data
structures more important.

Bad programmers worry about the code.

Good programmers worry about data structures
and their relationships. ”

— Linus Torvalds


----------------------------------------------


“ Algorithms + Data Structures = Programs. ”

— Niklaus Wirth


----------------------------------------------


Hi! I am Anit. I am an ever learning student
of mathematics and computer science.

I have worked for few years as a software
development engineer and I believe that I
have to keep myself skilled and updated. 

So from time to time I go through the basics,
i.e. data structures and algorithms to enhance
my problem solving skills and keep myself 
competitive.

Furthermore, to keep myself updated in this
technology I need to follow the advancements
by trying out the changes on hand.

Hence, the objective of this repository is
personal growth and development of 
programming skills.

The repository contains the code challenges
and their solutions from different sources.
It also includes implementation of basic data
structures and algorithms in C#.

Books and other resources are in the 
Resource folder.

Code challenges solutions from different 
sources are in the CodeChallenge folder.


----------------------------------------------


References from Princeton University to
re-enforce the basic and advance programming
skills:

https://introcs.cs.princeton.edu/java/home/
https://www.coursera.org/learn/cs-programming-java

https://algs4.cs.princeton.edu/
https://www.coursera.org/learn/algorithms-part1/
https://www.coursera.org/learn/algorithms-part2/

https://aofa.cs.princeton.edu/home/
https://www.coursera.org/learn/analysis-of-algorithms/

https://ac.cs.princeton.edu/home/
https://www.coursera.org/learn/analytic-combinatorics


I am forever greatful to Princeton University
and it's outstanding faculty for making these
online resources free, and especially Robert
Sedgewick & Kevin Waynefor excellent contents.


----------------------------------------------


Recently came to know about a playlist on 
Algorithms by Abdul Bari on YouTube. I am 
very thankful to his effort on making very
hard things easy to understand.

youtube.com/watch?v=e2cF8a5aAhE&list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O


----------------------------------------------


Resources for Software Engineers

Design Principles like KISS, DRY, YAGNI, SOLID
Clean Code by Robert C. Martin
Refactoring by Martin Fowler
Test Driven Development by Kent Beck
Design Patterns by The Gang of Four

Introduction to Algorithms by CLRS
Algorithm Design by Kleinberg & Tardos
The Stony Brook Algorithm Repository


----------------------------------------------


C# Resources

Microsoft official site : https://docs.microsoft.com/en-us/dotnet/csharp
Introduction to C# : https://courses.edx.org/courses/course-v1:Microsoft+DEV204.1x+1T2019a
Algorithms and Data Structures in C# : https://courses.edx.org/courses/course-v1:Microsoft+DEV204.3x+4T2017
Object Oriented Programming in C# : https://courses.edx.org/courses/course-v1:Microsoft+DEV204.2x+1T2019a
Code repository for "Algorithms" textbook by Robert Sedgewick and Kevin Wayne : https://github.com/nguyenqthai/Algs4Net
Book: 22 Design Pattern in C# by Matthew P Jones, https://www.exceptionnotfound.net/introducing-the-daily-design-pattern

My personal collection of resources on C# : https://trello.com/c/FLyAcICx/33-📝📚must-know-for-c-dev


----------------------------------------------


Contents of the repository to cover this list 

- Mathematics : Prime Number, Big Integer, Permutation,
    Number Theory, Factorial, Fibonacci, Sequences,
    Modulus

- Dynamic Programming : Longest Common Subsequence,
    Longest Increasing Subsequence, Edit Distance,
    0/1 Knapsack, Coin Change, Matrix Chain Multiplication,
    Max Interval Sum

- Graph Traversal : Flood Fill,Floyd Warshal, MST,
    Max Bipartite Matching, Network Flow,
    Articulation Point

- Sorting : Bubble Sort, Quick Sort, Merge Sort,
    Selection Sort, Radix Sort, Bucket Sort

- Searching : Complete Search, Brute Force, Binary Search

- String Processing : String Matching, Pattern Matching

- AdHoc Problems: Trivial Problems


----------------------------------------------


If in anyway I can be of any help with my skills of
programming, I will undoubtably be willing to help.
Please do not hesitate to reach out to me!

[email protected]


----------------------------------------------


TODO:
1. Implement Code Review tool.
2. Impleemnt Clean Code guide lines.
2. Implement CI to run the unit tests.