Из вопроса про нехватку математики и логики следует логичный совет идти на литкод, потому что там этого добра навалом, и компьютер сайнс это именно алгоритмы, структуры данных и основы операционок (память, диски, проц вот это все), вот и весь CS. А, ну и распределенка, но это уже не совсем фронт) Если нужно качать именно продвижение как разработчика, то нужно искать популярные курсы по паттернам проектирования для фронта если это фронт, популярным подходам современным, и поднимать это все на домашнем компе и работать вживую. Реальный опыт в любом случае идет только из реальных кейсов, то есть из рабочих когда осознаешь ответственность перед командой. А чтобы такие были нужно показывать что можешь не только маленькие задачки делать и знаешь технологии.
- Solve more Medium problems on LeetCode: easy(20%) + medium(60%) + hard(20%)
- There will be no multiple submits during the interview!
- Submit failure in practice might be equal to rejection in the actual interview.
- Treat your submitted solution as the final solution in the interview!
- Try to find your own corner test cases to check before submitting. Recheck you solution and think that you can Submit ONLY ONCE!
- Interview lasts between 45 min to 1 hour! Try to reduce solving time for medium problem from 45 min to 30 min at least.
- Some LeetCode problems can be solved more optimal if input data would be sorted!
- If you want to make your life easier you should break your solution to helpers functions if possible.
Advantages of HELPER FUNCTION:
- You don't look like a newbie.
- Makes debugging easy.
- Pass interview with incomplete code.
- Pay attention to your interviewer! Use your interviewer wisely:
- Clearly explain your solution
- Pay attention to clarifying question
- Concentrate on your Circle of Control and keep improving yourself:
- You prepared Data Structure Algorithms?
- You practiced enough questions?
- If you will be on time
- PRACTICE A LOT!!!
- https://www.youtube.com/watch?v=NW6CPOmlV2M
- Just solve 145 problems from: https://leetcode.com/problem-list/top-interview-questions/?sorting=W3sic29ydE9yZGVyIjoiQVNDRU5ESU5HIiwib3JkZXJCeSI6IkRJRkZJQ1VMVFkifV0%3D&page=1
- Solve Easy problems then move to Medium
- The Approach:
- 1 - come to solution in your brain(don't think about how to code, just think how to solve problem if you don't know programming). Think 15 min before coding and come to solution!
- 2 - code the solution
- If you cannot solve problem in 1 hour give up! Even if you solved the problem: Look at 3 most voted solutions and choose the easiest one. Understand solution and code it(NOT just read)!
- How to know then you are ready? If you can CONSTANTLY solve medium problems in 30-35 min then YOU ARE READY!
- https://youtu.be/xF554Tlzo-c
- Mistakes:
- Overlearning - learn firstly that asked more often on interviews
- Overconfidence
- It's not enough
- https://youtu.be/s2mYsPWzLjg
- This is a self-learning guide to computer science, and a memento of my three years of self-learning at university.
- https://github.com/pkuflyingpig/cs-self-learning/
- MIT 6.006 | Spring 2020 | Undergraduate: Introduction to Algorithms
- YouTube Playlist: MIT 6.006 Introduction to Algorithms, Spring 2020
- MIT 6.006 | Fall 2011 | Undergraduate: Introduction to Algorithms
- YouTube Playlist: MIT 6.006 Introduction to Algorithms, Fall 2011
- MIT Notes on 6.006: Introduction to Algorithms
Back of the envelope нужен, что бы оценить решаема ли задача и примерно оценить где будет затык - compute, network, storage. И второе - если ты его сделал, то надо его где то применить. Иначе зря потраченное время!
- hello interview: Learn System Design in a Hurry
- GitHub: System Design Primer
- GitHub: open source training courses about distributed database and distributed systems
- Designing a Comprehensive Course in Distributed Systems: Reading List
- https://news.ycombinator.com/item?id=5192650
- Papers: Distributed Systems Reading Group
- MIT 6.824: Distributed Systems
- GitHub: mit-6.824 labs solutions
- YouTube Playlist: MIT 6.824 Distributed Systems (Spring 2020)
- Introducing Non-Abstract Large System Design
- Online book: Site Reliability Engineering
- Distributed systems for fun and profit