面試題字符集和編碼區別
A recruiter calls you for a position with your dream company. You get extremely excited and ask about their recruiting process. He replies saying “Its nothing big, you will have 5 coding rounds with our senior tech team, just the standard whiteboard coding round”. You blatantly lie and end the conversation by saying you love your current job and will try again at a later point in time. If you can relate to this situation please keep reading.
招聘人員給您打電話,要求您在理想公司任職。 您會非常興奮,并詢問他們的招聘過程。 他回答說:“沒什么大不了的,您將與我們的高級技術團隊進行5輪編碼,只有標準的白板編碼輪”。 您大膽地說謊并結束談話,說您愛自己當前的工作,并且稍后會再試一次。 如果您可以解決這種情況,請繼續閱讀。
I have met so many top class software developers who are smart, resourceful, reliable and know the knack of getting the job done despite a lot of dependencies. But the mere thought of whiteboard coding interviews strikes fear in their hearts. Most of these people believe that they can never crack such type of interviews and it is only for the rockstar kids who do competitive programming from age 12. Nothing is farther from the truth. I would like to bust such myths and show you a clear path to clearing these interviews.
我遇到了這么多頂級軟件開發人員,他們聰明,足智多謀,可靠,并且盡管有很多依賴性,卻知道完成工作的訣竅。 但是白板編碼面試的想法在他們的心中引起了恐懼。 這些人中的大多數人都認為,他們永遠也無法完成這種類型的采訪,而且僅適用于從12歲開始進行競爭性編程的搖滾明星孩子。 我想破掉這些神話,并向您展示清除這些采訪的明確途徑。
為什么呢 (Why ?)
First, we need to understand why companies conduct these types of interviews.
首先,我們需要了解為什么公司進行此類采訪。
Strong Filter to get good employees — The people who clear coding interviews can be of two types. 1. The extremely smart people who do not need any preparation and can clear such interviews on the fly. The people who take time to prepare and practice DS and algorithms and clear the interviews. The former is an extremely smart person and the latter is a person who can get the job done through perseverance and both of these are the hallmarks of a good employee.
獲得優秀員工的強大過濾器-清除編碼面試的人員可以分為兩種。 1.非常聰明的人,不需要任何準備,可以即時清除此類采訪。 花時間準備和練習DS和算法并清除面試的人員。 前者是一個非常聰明的人,而后者是一個能夠通過毅力完成工作的人,而這兩者都是優秀員工的標志。
Clear Signals—Knowledge based interviews are notorious for giving ambiguous signals. It is very hard to judge a candidate based on his knowledge of an obscure feature of some technology. But in coding interviews, in 1 hour you get a clear signal regarding the candidate. Based on the performance in the coding round, you can easily make a hire/no-hire call.
基于清晰的信號-知識面試是臭名昭著的給予模棱兩可的信號。 很難根據候選人對某種技術的晦澀特征的了解來判斷候選人。 但是在編碼面試中,在1小時內您會清楚地了解候選人。 根據編碼回合的表現,您可以輕松進行錄用/不錄用呼叫。
Indicator of skills — Most of the companies which conduct these interviews need people who can work on any tech stack and cutting-edge problems. So they need an objective way to determine the skills of a candidate irrespective of the stellar resume(most people who apply to such companies have a stellar resume). Coding interviews test the problem-solving skills of a candidate which arguably indicates his ability to tackle new problems.
技能指標-進行這些采訪的大多數公司都需要能夠處理任何技術堆棧和前沿問題的人員。 因此,他們需要一種客觀的方法來確定候選人的技能,而不論其履歷表如何(大多數申請此類公司的人都擁有履歷表)。 編碼面試測試了候選人的解決問題的能力,可以說這表明了他解決新問題的能力。
Experience independent — Coding interviews suits people of all experience levels. Anyone who wants to join such companies is expected to have a working knowledge of data structures and algorithms and thus it can be used as an objective measure to judge the candidates across levels.
獨立的經驗-編碼訪談適合所有經驗水平的人。 希望加入此類公司的任何人都具有數據結構和算法的工作知識,因此可以用作客觀判斷各個級別候選人的方法。
怎么樣? (How?)
Let’s see how to go about preparing for these interviews.
讓我們看看如何準備這些面試。
選擇一種語言 (Pick a language)
The language you choose does not matter! As long as you are comfortable with coding in the chosen language and it has support for data structures and algos(STL, Collections) you are good to go.
您選擇的語言沒關系! 只要您對使用所選語言進行編碼感到滿意,并且它支持數據結構和算法(STL,Collections),那么您就很好了。
Gotcha — The biggest mistake I see people make here is picking a fancy language to impress the interviewer and struggle with implementation. It is like digging your own grave. The only thing that matters is how you can implement a solution using the language of your choice and not the fanciness of the language.
陷阱–我看到人們在這里犯下的最大錯誤是,選擇了一種奇特的語言來打動面試官,并為實施而掙扎。 這就像在挖自己的墳墓。 唯一重要的是如何使用所選語言而不是該語言的奇特性來實現解決方案。
利用您選擇的語言 (Exploit the language you picked)
You need to be extremely comfortable using the inbuilt DS and Algos in the language you picked. It can be STL or Collections or anything else. Command over these allows you to focus on solving the problem by picking and using the right constructs and churn out code fast in an interview setting.
您需要以選擇的語言使用內置的DS和Algos時要非常舒適。 它可以是STL或Collections或其他任何東西。 通過使用這些命令,您可以通過選擇和使用正確的結構來集中精力解決問題,并在面試環境中快速編寫代碼。
Timeline: 1 week.
時間表:1周。
熟悉理論 (Get familiar with theory)
There are only a handful of things you need to know for coding interviews.
編寫采訪采訪時,您只需要了解幾件事。
- DS — Array, Stack, Queue, Linked List, Tree, Hash, Graph DS —數組,堆棧,隊列,鏈接列表,樹,哈希,圖
- Algos — Searching, sorting, BFS, DFS, Topological sort 算法-搜索,排序,BFS,DFS,拓撲排序
The things you need to understand are the different implementations, time and space complexities and when to/not-to use them. I would highly recommend The algorithm design manual for this purpose.
您需要了解的是不同的實現,時間和空間的復雜性以及何時使用/不使用它們。 為此,我強烈推薦算法設計手冊 。
Timeline : 2-3 weeks based on previous knowledge.
時間表:根據先前的知識需要2-3周。
Gotcha — Do not skip time and space complexities. This is one of the biggest expectations in a coding interview. You are expected to analyse and consider tradeoffs between different implementations and to do that you need to understand the time/space complexities for all the things.
注意-不要跳過時間和空間的復雜性。 這是編程采訪中最大的期望之一。 您將需要分析和考慮不同實現之間的權衡,并且需要了解所有事物的時間/空間復雜性。
動手實踐 (Get Hands-on)
Now that you have a solid foundation of DS and algos you can jump into solving problems. You can use Leetcode and InterviewBit for this purpose. They both allow you to solve problems grouped by type and have a wide array of problems. Do not concentrate on quantity but quality. Try to solve the problem on your own and if you notice patterns among different problems note in down and use these notes to refer again later. If you prefer a book for problems you can use Cracking the coding interview or Data Structures and Algorithms Made Easy.
既然您已經擁有DS和算法的堅實基礎,就可以跳入解決問題的過程。 為此 ,您可以使用Leetcode和InterviewBit 。 它們都可以讓您解決按類型分組的問題,并且有各種各樣的問題。 不要只關注數量,而要關注質量 。 嘗試自己解決問題,如果您注意到不同問題之間的模式,請記下這些注釋,并在以后再次使用這些注釋。 如果您喜歡一本有問題的書,則可以使用《 破解編碼面試》或《輕松實現數據結構和算法》 。
Timeline : 8–12 weeks.
時間表:8-12周。
Gotcha — The worst thing you can do here is trying to learn the problems by reading from somewhere else once you hit a roadblock. However tempting it may be, please avoid it. Do it only after trying for more than 2 hours. It gives you the satisfaction of learning something but, in reality, you cannot solve it when you encounter it somewhere.
陷阱–在這里遇到的最糟糕的事情是,一旦遇到障礙,便要通過從其他地方閱讀來學習問題。 不管有多誘人,請避免使用它。 僅在嘗試2小時以上后再進行操作。 它使您滿意地學習某些東西,但實際上,當您在某處遇到它時無法解決它。
模擬面試 (Mock interviews)
If you had followed the above steps correctly, you would be familiar with major types of problems and would be able to solve most problems you encounter in the interview. But whatever you have done till now and the interview setting is totally different. So to get familiar with the interview setting try practicing mock interviews. You can use Pramp for free mock interviews with peers. If you want to have a mock interview by professional and detailed feedback please get in touch.
如果您正確地遵循了上述步驟,您將熟悉主要類型的問題,并且能夠解決您在面試中遇到的大多數問題。 但是,到目前為止您所做的一切以及面試的設置都完全不同。 因此,要熟悉采訪設置,請嘗試練習模擬采訪。 您可以使用Pramp與同行進行免費的模擬采訪。 如果您想通過專業且詳細的反饋進行模擬面試,請與我們取得聯系 。
This is basically a step by step recipe to crack the interviews. I followed the same path and most of the people I know also have done the same. Its just hard work and has nothing to do with previous knowledge or smartness.
從根本上講,這是破解面試的逐步方法。 我走了同樣的路,我認識的大多數人也都做過同樣的事情。 它只是艱苦的工作,與以前的知識或聰明程度無關。
下一步 (Next steps)
I am planning to write a series of posts discussing various topics like Stack, Queue, Trees, etc. one by one and dissecting the various types of problems in each of those. Please follow me to get notified as soon as they are published.
我打算撰寫一系列文章,逐個討論各種主題,例如堆棧,隊列,樹等,并逐一剖析各種類型的問題。 請關注我,以便它們發布后立即得到通知。
If you liked this story, feel free to reach out to me at https://kaizencoder.com/contact.
如果您喜歡這個故事,請隨時通過 https://kaizencoder.com/contact 與我聯系 。
翻譯自: https://www.freecodecamp.org/news/the-one-thing-between-you-and-your-dream-job-coding-interview/
面試題字符集和編碼區別