A plan for dummy developer who would like to take a serious aboard job
At this time I'm writing this line. I'm so seriously to learn Data Structure + Algorithm from the scratch again.
The main reason why I'm doing a (shit) things, because I would like to apply a aboard job after I've finished everythings (which I've started) at feels.
Actually, as a iOS developer, in the whole working time, rarely I touch to Heap, Tree, Balance-Tree or Matric or advantage data structure or even some basic algorithm like heap sort, merging sort or somethings looks similars.
Sometime I use Queue, Stack, Priority Queue or basic sort are enough.
And stop at there.
And I know you're too (expept if you're a expert back-end or real data-science)
Don't worry about it. I know it. WE'RE DUMMY TOO.
The secondary reason is I don't want to stay and work at VN anymore. Not because they people or quality of company or environment or gorvement. I know there are lot of awesome company/startup around here. Such as Gotit, NotABasement, Misfit, East Agile, ...
All of them are really cool, and it was a my dream.
I don't want to be a "normal" people.
- Pass entrance examination university after high school
- Get a bachelors degree at 22 year old
- Take a normal job
- Make it confortable and enough salary
- Get marriage at 25
- Have a children at 27
and call it's successful (as their parent wants)
^ ^ ^
Unfortunately, I don't like this ^
Sorry.
Actually, I can follow their path. Just stay at feels to the end. Make around 2-3000 USD monthly for high-class living cost. Find some girl, and to next step.
If I close my eyes and do it, I will be the same people I know.
IT's so boring at all.
I want to step out COMFORTABLE ZONE (at feels - for 3 years)
Try to live in DANGEROUS ZONE.
When my friends shared me about their journey at oversea countries, how they struggle to pass tough interview. How they see, and how they experiement when they work with foreign people around the world.
I feels I have more motivation to do it.
They can do it, so I can to it do
This repos is a best place to list the road map to achieve my goal.
And I maybe a good referencer for anyone who want to take steps like me.
Account Hackerrank
- Data Structures and Algorithms in Java, 6th Edition, 2014
- Hackerank
- Geeks For Geeks
- Research Bloom filter http://stackoverflow.com/a/30247022/3127477
- Understand Longest common subsequence
- Do experiement on swift placeground
- Implement diff protocol - Get Insertion/Deletion for Array
- Write blog LCS - part 1 -> Implement LCS by swift-playground
- LCS part 2 -> Apply to iOS development
- Implement by Dynamic Programming
- Branch and Bound - http://www.geeksforgeeks.org/branch-and-bound-set-1-introduction-with-01-knapsack/
- Boyer Moore Algorithm
- Read linked-list at http://www.geeksforgeeks.org/data-structures/linked-list/
- Implemented generic linked list in Swift: LinkedList
- Implement basic functionality. Such as append/remove/indexOf/reversed/map/filter like array
- Try to conform IteratorProtocol and Sequence Protocol for LinkedList
- Do all real test at HackerRank - https://www.hackerrank.com/domains/data-structures/linked-lists/page:1
- Research Circulary Linked-list and implement rotate.
- Research and implemented Robin-round circulary linked-list.
- Research Queue
- Do exercise on HackerRank
- Research Priority Queue
- Implement Priority Queue by Heap. Tried min/max heap.
- Read about Tree in Chapter 8: General tree, Binary Tree, Binary Search Tree.
- Understand tree traversal algorithm: Pre-order, post-order, in-order.
- Do exercise on HackerRank
- Understand what is heap
- Advantage bwtween heap and normal tree
- Implement basic heap
- Insert/remove node by swapping top/down to match 2 important property of Heap.
- Get Hashmap interface
- Implement hashmap by array-base, and BST-base
- Understand why, when, advantage, drawback, time/space-complexity between ^ two approach.
- Collision in hashmap, reseach basic solution to resolve it.
and more ....