Overview
-
This is my Python Leetcode solution. As time grows, this also become a guide to prepare for software engineer interview.
-
The solution is at
problems/python/
orproblems/python3/
. For example,merge-sorted-array.py
's solution is athttps://leetcode.com/problems/python/merge-sorted-array/
. -
I really take time tried to make the best solution and collect the best resource that I found.
Because I wanted to help others like me.
Please BUY ME A COFFEE if you want to show support.
Leetcode Problem Lists
I found it makes sense to solve similar problems together, so that we can recognize the problem faster when we encounter a new one. My suggestion is to skip the HARD problems when you first go through these list.
- https://neetcode.io/practice (150 problems with video explaination)
- https://www.programcreek.com/2013/08/leetcode-problem-classification/
- https://github.com/wisdompeak/LeetCode
- https://docs.google.com/spreadsheets/d/1SbpY-04Cz8EWw3A_LBUmDEXKUMO31DBjfeMoA0dlfIA/edit#gid=126913158 (huahua).
- https://leetcode.com/list/?selectedList=535ukjh5 (Only 74 problems)
Software Engineer Interview
Overall Mindset
-
Having a right mindset is the most important one. It keeps you going when you are tired after work. Studying when everyone else are out having fun. Reminding you that your goals are not going to come easy, it takes time, self-discipline, mental and physical toughness...
-
The #1 Daily Habit of Those Who Dominate with Andy Frisella. It is also avaliable on Spotify or Youtube, just google it.
Prepare in a Structural Way
Data Structures and Algorithms for beginners
If you are new or know nothing about data structures and algorithms, I recommend this course. This course is taught in Python and design to help you find job and do well in the interview.
System Design
-
Systems Design Interview Concepts. There are also lots of tech interview related topic in his channel.
Knowledge Base Question
- Session vs Cookie
- Token Authentication
- TCP/UDP
- Transport Layer
- Application Layer (HTTP, FTP)
- Transport Layer (UDP/TCP, Slice data to small packages)
- Network Layer (IP)
- Link Layer (Wifi)
- Physical Layer (Coaxial Ethernet Cable)
- UDP has smaller package size (8 bytes), while TCP needs 20 bytes due to it has larger header.
- UDP are not order guaranteed. TCP are in order.
- They both have error messages, but TCP will resent it again, UDP does not.
- TCP needs a three-way handshake to initiate a connection between ports. It’s like a phone call. While UDP is like a mail.
- In short, UDP is smaller and faster while TCP is reliable and ordered.
- UDP example, video streaming, DNS lookups.
- Transport Layer
- HTTPS, CA, PKI
- HTTP, HTTP Code, Socket, WebSocket, HTTP KeepAlive, HTTP2
- DNS, CNAME, NS, A, AAAA, IPv4, IPv6
- Code, Process, Thread
- Stack memory vs Heap memory
-
Stack memory
- Stores temporary variable created by functions.
- Memory is managed by CPU for you. No need to allocate and free it by hand.
- L.I.F.O.
- Stacks has limit (That is why we seldom use recursion real life)
- Stacks variable are local variable in nature.
-
Heap memory
- Larger.
- Slightly slower. Because we has to use "pointers" to access.
- We are responsible to free() the memory.
- Heap variable is global variable in nature.
-
- GET vs POST
- CORS
...
Others
Resume
https://drive.google.com/file/d/10b9NZDhPbUOW_C7108IKe9ev6Ed2UG7F/view
Interview Question Survey
https://www.glassdoor.com/index.htm
https://www.careercup.com/
Offer Negotiation
https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/