1) 基礎語言描述理解考察
https://www.tutorialspoint.com/go/go_interview_questions.htm
這裏有一欄、全面的問答,而且很是基礎
也包括golang的一些開放性話題的討論html
基礎語言代碼考察
http://www.golangpro.com/2015/08/golang-interview-questions-answers.htmlgolang
10個基本問題考察
https://www.toptal.com/go/interview-questionsapp
(2)代碼工程考察
https://yushuangqi.com/blog/2017/golang-mian-shi-ti-da-an-yujie-xi.html?from=groupmessage&isappinstalled=0
這裏有代碼題的分析,直接面向工程和原理。看似簡單、簡短,從候選人的回答入口、思路,基本能夠探測到候選人的語言理解和運用經驗信息。ide
(3) 其餘 從網上爬的
What is good code design?
What version control tools did you use so far? (I just want to know about his/her experience)
How do you approach a new problem?
How to you test your software? (a bad answer here is a deal breaker for me)
(In case of server software) How do you deploy your applications?
How would you setup the authentication e.g. in a microservice environment?
Then some Go specific questions:ui
What are Go routines?
What are channels and how can you use them?
How can you distribute tasks in Go to different machines? (this is a pro question)this
-
Give a summary of Golang.
A system programming language developed at Google. It has inbuilt garbage collection and supports concurrency. The code can be compiled into a single executable binary and don't need addition library or runtime to execute it on server.code -
Can you declare a class in Golang?
Yes, Golang has a unique way of implementing class with the type interface.
See here on how to declare class in Golangserver -
Does Go supports generic? ( trick question )
No (as of 2015)htm -
What are the commands available in Golang to import codes from repositories such as GitHub or BitBucket?
go get and go install commandsblog -
A buffer was created with make() function and Go allocated some memory for the buffer. How do you destroy the buffer to reclaim back the memory?
buffer = nil
During runtime, buffer = nil will cause it to be garbage collected. -
What are these ? (trick question)
var num int ( integer variable)
var ptr *int (a pointer)
num = 10 (assign value of 10 to variable num)
ptr = &num (pointer holding the memory address of variable num) -
What are the notable differences between a slice and array ?
Array size is fixed, slice size is not. Can dynamically increase or decrease a slice's size during runtime but not for array. Slice is similar to a linked list, can do push, pop, FIFO, LIFO on slice. Use builtin append, copy functions to manipulate slice. -
What's the difference between cap() and len()?
Len() - gives the number of elements inside a slice.
Cap() - gives the capacity of the slice. Number of elements the slice can accommodate. -
Hash table or hash map allows fast lookup. How does Go implements hash map? (trick question)
The equivalent of hash table in Golang is map.
hash-table := make(map[string]string) -
Which of the following functions, variables or identifiers that are exportable or can be invoked from another function externally and why? (trick question)