Skip to content
Maciej Jankowski edited this page Mar 19, 2020 · 1 revision
1.1. Programming paradigms:	12
1.2. Strong typing, dynamic typing	12
1.3. Dynamic language vs static	13
1.4. Duck typing	13
1.5. What is monkey patching and is it ever a good idea?	13
1.6. Stack, call stack, stack overflow	13
1.7. What is GIL in Python language?	14
1.8. Explain how can you make a Python Script executable on Unix?	15
1.9. What is the process of compilation and linking in Python?	15
1.10. How is memory managed in Python?	15
1.11. How is multithreading achieved in Python?	16
2. PYTHON RULES	17
2.1. Clean code	17
2.2. What is PEP 8	17
2.3. What are docstrings / documentation strings	17
2.4. What is module and package in Python?	17
2.5. What does the __init__.py file do?	18
2.6. What does "if __name__ == "__main__"" do	18
2.7. How do absolute and relative imports work?	18
2.8. Why shouldn't you use "import *"	18
2.9. What is a circular import? How does Python handle circular dependencies?	19
2.10. How can you share global variables across modules?	19
2.11. What is tail recursion and why Python doesn't have it?	19
2.12. What is namespace in Python?	20
2.13. What is variable shadowing? (context: variable scope)	20
2.14. What is the lifetime of variables?	21
2.15. What is pickling and unpickling?	21
3. FUNCTIONS	22
3.1. How are arguments passed by value or by reference?	22
3.2. What are the main parts of a function?	23
3.3. What is a function call or a callable object in Python?	23
3.4. What are different types of arguments in Python?	23
3.5. Is it mandatory for a Python function to return a value?	23
3.6. What happens when you try to assign the result of a function which has no return statement to a variable in Python?	24
3.7. Does the order of the function definitions matter in Python? Why?	24
3.8. Why shouldn't you use a mutable object as default parameter (def foo(x, y=[]):)	24
3.9. What are generators in Python?	24
3.10. What are Closures in Python?	25
3.11. What are Python decorators?	25
3.12. What is lambda in Python?	26
3.13. Why lambda forms in python does not have statements?	27
3.14. How to store a function in a variable in Python?	27
3.15. Why traditional "functional programming" (map, reduce, filter) is discouraged in Python?	27
3.16. What does this mean: *args, **kwargs? And why would we use it?	29
4. DATA STRUCURES	30
4.1. Mutable and immutable in Python	30
4.2. What is the difference between an Iterator and Iterable?	30
4.3. Name 4 iterable types in Python!	30
4.4. What is the purpose of a list data structure? Name some methods of it!	30
4.5. Is Python list a linked list?	31
4.6. What can happen if you try to delete/drop/add an item from a List, while you are iterating over it in Python?	32
4.7. What type of elements can a list contain in Python?	32
4.8. What arithmetic operators (+,*,-,/) can be used on lists in Python? What do they do?	32
4.9. What is a set?	32
4.10. What is the purpose and methods of a dictionary/map data structure?	33
4.11. Are dictionaries ordered in Python?	33
4.12. What are tuples?	33
4.13. Is a string immutable or mutable in Python?	34
4.14. What does the + operator mean when used with strings in Python?	34
4.15. Different types of string literals:	34
4.16. Explain difference between "bytes" and "str" in Python	34
4.17. What is the difference between deep and shallow copy?	35
4.18. What are negative indexes and why are they used?	35
4.19. What is Dict and List comprehensions are?	35
4.20. What is the difference between list/set/dictionary comprehension and a generator expression in Python?	36
4.21. What kind of objects can you store in a set, or use as dictionary keys? Why?	36
4.22. Can you change a list that is inside a tuple? Why?	37
4.23. What does unpacking mean in Python?	37
5. BUILT-INS	38
5.1. What are the built-in types available in Python?	38
5.2. What is pass in Python?	38
5.3. What is the difference between range & xrange?	38
5.4. What is the use of // operator in Python?	39
5.5. What does the continue do in Python?	39
5.6. What is the difference between pass and continue in Python?	39
5.7. Does Python have a Main() method?	39
5.8. What is the purpose of “end” in Python?	39
5.9. How can you customize sorting	40
5.10. What is slicing?	40
5.11. What is operator overloading in Python?	40
5.12. What does the "global" keyword do?	41
5.13. What is the use of globals() function in Python?	41
5.14. What is the purpose of id() function in Python?	41
5.15. What is the usage of help() and dir() function in Python?	42
5.16. What means dunder or magic methods in Python?	42
6. CONTROL FLOW	43
6.1. How can the ternary operators be used in python?	43
6.2. What does "with" statement do in python?	43
6.3. What is conditional expression in Python?	43
6.4. What are chained comparisons (a <= b < c)	44
6.5. What does "try...else" and "for...else" do	44
6.6. What objects can you compare in Python?	44
6.7. How to achieve a switch-case-like structure in Python?	45
6.8. What is type – hinting?	45
7. ERROR HANDLING	46
7.1. What is exception handling?	46
7.2. Basic of exceptions handling in Python	46
7.3. What error can occur, when an array does not have an element on the requested index?	47
7.4. Why should we catch special exception types?	47
8. OBJECT-ORIENTED PYTHON	48
8.1. How Method Resolution Order in Python works	48
8.2. Basic concept of OOP in Python	48
8.3. What is a class?	49
8.4. What is an object?	50
8.5. What is a constructor?	50
8.6. Do we require parameter for constructors?	50
8.7. Static methods in Python	50
8.8. Overriding in Python	50
8.9. Overloading in Python	51
8.10. What does the “self” keyword do?	51
8.11. Explain how properties work (@property, getter, setter)	51
8.12. Explain super keyword, both in standard form (super(class, self).bla()) and in short form (super().bla())	52
8.13. Difference between __init__ and __new__	53
8.14. Difference between class attributes and instance attributes	53
9. DEBUGGING	55
9.1. What techniques can you use while debugging a program in Python?	55
9.2. What does step over, step into and step out mean while using the debugger?	55
9.3. How can you start to debug a program from a certain line using the debugger?	55
10. TESTING	56
10.1. What are unit test, integration test, system test, regression test, acceptance test? What is the major difference between these?	56
10.2. What is the difference between functional and non-functional testing?	56
10.3. What is code coverage? Why is it used? How you can measure?	56
10.4. What does mocking mean? How would you do it 'manually' (i. e. without using any fancy framework)?	57
10.5. What is the difference between stub and mock?	57
10.6. What is a test case? What is an assertion? Give examples	57
10.7. What is TDD? What are the benefits?	58
10.8. What are the unit testing best practices? (Eg. how many assertion should a test case contain?)	59
10.9. What is continuous integration? Why is CI important?	59
10.10. Why are tests important in the CI workflow?	59
10.11. What is Continuous Delivery?	60
10.12. What is Continuous Deployment?	60
10.13. What is DevOps?	60
11. ARCHITECTURE	61
11.1. What layers can you name in a simple web application?	61
11.2. What is n-tier (or multi-tier) architecture?	61
11.3. What are microservices? Advantages and disadvantages?	62
11.4. What is Separation of Concerns?	62
11.5. What is a layered design and why is it important in enterprise applications?	63
11.6. What is Dependency Injection?	64
11.7. What is the DAO pattern? When and how to implement?	65
11.8. What is SOA? When to use?	65
11.9. What is singleton, factory, prototype?	66
11.10. What is MVC?	66
11.11. What kind of design patterns do you know? Bring at least 3 examples.	66
11.12. What kind of software-lifecycle models do you know?	67
11.13. What is a UML diagram? What kind of diagram types do you know?	67
11.14. What is a UML class diagram? What are the typical elements?	68
12. ALGORITHMS	69
12.1. What is Big O complexity? Explain time and space complexity!	69
12.2. What is the difference between Stack and Queue data structure?	69
12.3. What is BubbleSort? Describe the main logic of this sorting algorithm.	69
12.4. Explain the process of finding the maximum and minimum value in a list of numbers!	69
12.5. Explain the process of calculating the average value in an array of numbers!	69
12.6. Explain the process of calculating the average value in a linked list of numbers!	69
12.7. What is recursion?	70
12.8. Write a recursive function which calculates the Fibonacci numbers!	70
12.9. What is a graph? What are simple graphs? What are directed graphs? What are weighted graphs?	70
12.10. What are trees? What are binary trees? What are binary search trees?	70
12.11. What is QuickSort? Describe the main logic of this sorting algorithm.	70
12.12. How can you store graphs in programs? What are the advantages/disadvantages per each?	70
12.13. What are graph traversal algorithms? What is BFS, how does it work? What is DFS, how does it work?	70
12.14. What is LinkedList?	71
13. VERSION CONTROL	72
13.1. What type of branching strategy would you use?	72
13.2. What would you do if you find a bug on the production code (master branch)?	72
13.3. How can you move changes from one branch to another in GIT?	72
13.4. How does a VCS help with code reviews?	72
13.5. What is your favorite git command? Why?	72
13.6. What does remote/local mean in Git?	72
14. DEVOPS	73
14.1. Why is it good to use a package manager software?	73
14.2. Why is it good to use a virtual environment for a project?	73
15. NETWORK AND SECURITY	74
15.1. What is HTTP?	74
15.2. What kind of HTTP status codes do you know?	74
15.3. How does an HTTP Request look like? What are the most relevant HTTP header fields?	74
15.4. How does an HTTP Response look like? What are the most relevant HTTP header fields?	75
15.5. What is TCP/IP? What layers does it define, what are they responsible for?	75
15.6. What’s the difference between TCP and UDP?	76
15.7. What is DNS? How does it work?	76
15.8. What is a web server?	76
15.9. Explain the client-server architecture.	77
15.10. What is a API?	77
15.11. What is REST API?	77
15.12. What is JSON? When to use?	77
15.13. What would you use a session for?	78
15.14. What would you use a cookie for?	78
15.15. What is OAuth2?	78
15.16. What is Basic Authentication?	79
15.17. What is CORS, why it’s needed in browsers?	79
15.18. How can you initialize a CSRF attack?	79
15.19. What is JWT used for? Where to store it on client side?	80
15.20. What is XSS? How to protect an application against it?	80
15.21. What is HTTPS?	81
15.22. What is encryption and decryption?	81
15.23. What is hashing?	81
15.24. What is the difference between encryption and hashing? When would you use which?	82
15.25. What encryption methods do you know?	82
15.26. What hashing methods do you know?	82
15.27. How to properly store passwords?	82
16. SOFTWARE DEVELOPMENT METHODOLOGIES	84
16.1. Software Development Methodologies	84
16.2. What kind of software development methodologies do you know? What are the main features of these?	84
16.3. What are the SCRUM roles?	84
16.4. What are the SCRUM ceremonies?	84
16.5. What are the SCRUM artifacts?	84
16.6. What is the main goal of a retrospective meeting?	84
16.7. Explain, when would you recommend to use the waterfall methodology?	84
16.8. What does 'fail fast' mean in terms of exception handling? Why is it a good practice?	84
16.9. What is the main goal of a retrospective meeting?	84
17. DATABASE	85
17.1. What is DBMS?	85
17.2. What is RDBMS?	85
17.3. What is SQL?	85
17.4. What is a Database?	85
17.5. What are tables and Fields?	85
17.6. What is a primary key?	85
17.7. What is a unique key?	85
17.8. What is a foreign key?	85
17.9. What is a View?	85
17.10. What is a relationship and what are they?	85
17.11. What is a query?	85
17.12. What is subquery?	85
17.13. What is a stored procedure?	85
17.14. What is a trigger?	85
17.15. What is Auto Increment?	86
17.16. What is user defined functions?	86
17.17. What is a dead-lock in databases? How to avoid?	86
17.18. What is a two-phase commit? Bring an example how to use?	86
17.19. What is an ORM? What are the benefits, when to use?	86
17.20. What is the difference between DELETE, DROP and TRUNCATE commands?	86
17.21. What is collation?	86
17.22. What is Union, minus and Interact commands?	86
17.23. What is an ALIAS command?	86
17.24. What are aggregate and scalar functions?	86
17.25. Which operator is used in query for pattern matching?	86
17.26. What is SQL injection? How to protect an application against it?	86
17.27. How the CASE condition works in SQL?	86
17.28. When do you use the DISTINCT keyword in SQL?	87
17.29. What are aggregate functions in SQL? Give 3 examples.	87
17.30. What kind of JOIN types do you know in SQL? Could you give examples?	87
17.31. What are the constraints in sql?	87
17.32. What is a cursor in SQL? Why would you use one?	88
17.33. What are database indexes? When to use?	88
17.34. What are database transactions? When to use?	88
17.35. What kind of database relations do you know? How to define them?	88
17.36. You have a table with an “address” field which contains data like “3525, Miskolc, Régiposta 9.” (postcode, city, street name and address). How would you query all records related to Miskolc?	88
17.37. How would you keep track of what kind of data has changed after an UPDATE or DELETE operation in a table?	88
17.38. How can you connect your application to a database server? What are the possible ways?	88
17.39. What do you know about database normalization?	88
18. DJANGO	89
18.1. Explain what is Django?	89
18.2.  Mention what are the features available in Django?	89
18.3. Architecture of Django	89
18.4. Why Django should be used for web-development?	90
18.5. Explain how you can create a project in Django?	91
18.6. Explain how you can set up the Database in Django?	91
18.7. Explain how you can setup static files in Django?	91
18.8. What does the Django templates consists of?	91
18.9. How does Django Templating work?	92
18.10. What is Jinja Templating?	92
18.11. Explain the migration in Django and how you can do in SQL?	93
18.12. Explain the importance of settings.py file and what data/ settings it contains.	93
18.13. What is a Model in Django and what is the Model class?	93
18.14. Give an example how you can write a VIEW in Django?	94
18.15. What are View functions?	94
18.16. List some ways by which we can add our View to urls.py file?	95
18.17. How can we extract the data from the request/ URL and pass the same to the View function?	95
18.18. Why Django uses regular expressions to define URLs? Is it necessary to use them?	96
18.19. What happens when a typical Django website gets a request? Explain.	96
18.20. Why permanent redirecting is not a good option?	97
18.21. What is Django ORM?	97
18.22. What is Django Admin Interface?	98
18.23. Is Django’s Admin Interface customizable? If yes, then how?	98
18.24. Explain user authentication in Django?	98
18.25. Explain the use of session framework in Django?	98
18.26. What is Django Rest Framework (DRF)?	99
18.27. Difference between AJAX and REST?	99
18.28. What are serializers?	99
18.29. What are viewsets?	99
Clone this wiki locally