SlideShare a Scribd company logo
1 of 20
Download to read offline
Jak przygotować się do rozmowy
rekrutacyjnej na Python Developera
Wojciech Lichota - STX Next
Listopad 2015
Jak przygotować się do rozmowy rekrutacyjnej na Python Developera
Evolution
http://www.nicolasbize.com/blog/how-i-ended-up-conducting-
the-most-successful-technical-interviews-with-a-single-question/
Quiz
QUIZ
Idioms
&
Syntactic Sugar
★ slice
my_list[2:-1]
★ comprehensions
list [n ** 2 for n in range(10) if n % 2 == 0]
dict {n: n ** 2 for n in range(10)}
generator (n ** 2 for n in range(10))
★ def my_func(*args, **kwargs):
★ a, b, c = my_tuple
★ dekoratory (@)
★ generatory (yield)
★ context manager (with)
★ meta-klasy (__metaclass__)
QUIZ
Quirks
★ muttable types
a = [1, 2, 3]; b = a; b[1] = 0; print(a)
★ immutable types
Co może być kluczem słownika?
★ sort vs. sorted
★ ''.join(my_list)
★ __getattr__ vs. __getattribute__
★ _, _, _ = [1, 2, 3]
★ a, *b, c = [1, 2, 3, 4, 5]
★ a, b = b, a
★ True, False = False, True
★ ..., Ellipsis
QUIZ
Anti-patterns
★ from module import *
★ exec, eval
★ except:
★ % vs. format
★ range vs. xrange, keys vs. iterkeys
★ def my_dunc(data=[]):
★ my_obj._MyClass__attr
★ nadpisywanie built-in’ów
QUIZ
Tools
★ pep8, pylint, flake8
★ unittest, nosetests, pytest
★ pdb, ipdb, pdbpp
★ ipython
★ sphinx
★ git
★ IDE
★ Jenkins, Travis
★ dekoratory - http://stackoverflow.com/a/1594484/2342911
★ yield - http://stackoverflow.com/a/231855/2342911
★ meta-klasy - http://stackoverflow.com/a/6581949/2342911
★ http://stackoverflow.com/questions/101268/hidden-
features-of-python
★ https://www.quantifiedcode.com/knowledge-base/
★ https://github.com/faif/python-patterns
★ książka “Writing Idiomatic Python”, Jeff Knupp
Code
CODE
Algorithms
★ FizzBuzz
★ Fibonacci
★ palindrom
★ isPrime
★ histogram
★ podział na wiersze
>>> print(get_rows([1, 2, 3, 4, 5]))
[[1, 2, 3], [4, 5]]
★ GROT
★ WeirdText
CODE
Others
★ Testy jednostkowe
★ “Coś” nie działa!
Jak dojdziesz do tego co jest problemem?
★ Garbage Collector (gc)
★ Global Interpreter Lock (GIL)
★ optymalizacja (profile)
★ Big O notation
★ Project Euler
★ CheckIO
★ CodinGame
★ CodeCombat
★ CodeWars
★ exercism.io
★ GROT, GROT server
★ on-call duty - nauka debugowania złożonych problemów
★ http://pythonfasterway.cf/
Best project
End
★ Przeanalizuj ogłoszenie o pracę
★ Zaktualizuj CV (szczególnie “agencyjne”)
★ Ustal dostępność (np. sprawdź obecną umowę)
★ Zastanów się nad pensją i rodzajem umowy
★ Poproś o spotkanie “rano”
★ Nie przesadź z ubiorem
★ Spytaj czy możesz “googlować”
★ Nie rób ctrl+c / ctrl+v
★ Poproś o feedback
★ Podzękuj
★ książka “Cracking the Coding Interview”, Gayle L. McDowell
Podsumowanie
★ Ćwicz!
★ Trenuj!
★ Dokształcaj się!
Monty Python Job Interview
STX Next
wojciech@lichota.pl
@wlichota
http://lichota.pl
Wojciech Lichota
Employing over 100 Python programmers, STX Next is one of the largest
software development houses in central Europe. We are goal-oriented,
agile, and fast-paced.
We currently have 3 locations in Poland. We know that we are as strong as
the people working for us, so we try to maintain a work environment based
around honesty, trust, and hard work instead of management and
bureaucracy.
We develop Web Applications in Python and Javascript and mobile apps for
Android and iOS. We use agile methods and continuous delivery. We do
projects for clients all over the world, and see how people use our software.
…in3differentlocations...
…createawesomeproducts.
Over100talenteddevelopers…
stxnext

More Related Content

Viewers also liked

AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)Marcin Baran
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaWojciech Lichota
 
Sandman - makes things REST
Sandman - makes things RESTSandman - makes things REST
Sandman - makes things RESTWojciech Lichota
 
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSIWojciech Lichota
 
Raspberry pi - tiny hardware, huge idea
Raspberry pi - tiny hardware, huge ideaRaspberry pi - tiny hardware, huge idea
Raspberry pi - tiny hardware, huge ideaWojciech Lichota
 
Scrum Master - Breakout session.
Scrum Master - Breakout session.Scrum Master - Breakout session.
Scrum Master - Breakout session.STX Next
 
Transformation to agile.
Transformation to agile.Transformation to agile.
Transformation to agile.STX Next
 
Discover, Define, Deliver - a workflow to create successful digital products.
Discover, Define, Deliver - a workflow to create successful digital products. Discover, Define, Deliver - a workflow to create successful digital products.
Discover, Define, Deliver - a workflow to create successful digital products. STX Next
 
Pozytywna komunikacja w praktyce (warsztat).
Pozytywna komunikacja w praktyce (warsztat).Pozytywna komunikacja w praktyce (warsztat).
Pozytywna komunikacja w praktyce (warsztat).Agata Landzwójczak
 
Continuous Deployment aplikacji w Django
Continuous Deployment aplikacji w DjangoContinuous Deployment aplikacji w Django
Continuous Deployment aplikacji w DjangoWojciech Lichota
 

Viewers also liked (13)

AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)AngularJS szkolenie wewnętrzne (into)
AngularJS szkolenie wewnętrzne (into)
 
Grok Artykul
Grok ArtykulGrok Artykul
Grok Artykul
 
Grok Prezentacja
Grok PrezentacjaGrok Prezentacja
Grok Prezentacja
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
Sandman - makes things REST
Sandman - makes things RESTSandman - makes things REST
Sandman - makes things REST
 
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSI
 
Raspberry pi - tiny hardware, huge idea
Raspberry pi - tiny hardware, huge ideaRaspberry pi - tiny hardware, huge idea
Raspberry pi - tiny hardware, huge idea
 
Scrum Master - Breakout session.
Scrum Master - Breakout session.Scrum Master - Breakout session.
Scrum Master - Breakout session.
 
Transformation to agile.
Transformation to agile.Transformation to agile.
Transformation to agile.
 
Dlaczego nie powinniśmy zapominać o metodologii Waterfall?
 Dlaczego nie powinniśmy zapominać o metodologii Waterfall? Dlaczego nie powinniśmy zapominać o metodologii Waterfall?
Dlaczego nie powinniśmy zapominać o metodologii Waterfall?
 
Discover, Define, Deliver - a workflow to create successful digital products.
Discover, Define, Deliver - a workflow to create successful digital products. Discover, Define, Deliver - a workflow to create successful digital products.
Discover, Define, Deliver - a workflow to create successful digital products.
 
Pozytywna komunikacja w praktyce (warsztat).
Pozytywna komunikacja w praktyce (warsztat).Pozytywna komunikacja w praktyce (warsztat).
Pozytywna komunikacja w praktyce (warsztat).
 
Continuous Deployment aplikacji w Django
Continuous Deployment aplikacji w DjangoContinuous Deployment aplikacji w Django
Continuous Deployment aplikacji w Django
 

Jak przygotować się do rozmowy rekrutacyjnej na Python Developera

  • 1. Jak przygotować się do rozmowy rekrutacyjnej na Python Developera Wojciech Lichota - STX Next Listopad 2015
  • 5. QUIZ Idioms & Syntactic Sugar ★ slice my_list[2:-1] ★ comprehensions list [n ** 2 for n in range(10) if n % 2 == 0] dict {n: n ** 2 for n in range(10)} generator (n ** 2 for n in range(10)) ★ def my_func(*args, **kwargs): ★ a, b, c = my_tuple ★ dekoratory (@) ★ generatory (yield) ★ context manager (with) ★ meta-klasy (__metaclass__)
  • 6. QUIZ Quirks ★ muttable types a = [1, 2, 3]; b = a; b[1] = 0; print(a) ★ immutable types Co może być kluczem słownika? ★ sort vs. sorted ★ ''.join(my_list) ★ __getattr__ vs. __getattribute__ ★ _, _, _ = [1, 2, 3] ★ a, *b, c = [1, 2, 3, 4, 5] ★ a, b = b, a ★ True, False = False, True ★ ..., Ellipsis
  • 7. QUIZ Anti-patterns ★ from module import * ★ exec, eval ★ except: ★ % vs. format ★ range vs. xrange, keys vs. iterkeys ★ def my_dunc(data=[]): ★ my_obj._MyClass__attr ★ nadpisywanie built-in’ów
  • 8. QUIZ Tools ★ pep8, pylint, flake8 ★ unittest, nosetests, pytest ★ pdb, ipdb, pdbpp ★ ipython ★ sphinx ★ git ★ IDE ★ Jenkins, Travis
  • 9. ★ dekoratory - http://stackoverflow.com/a/1594484/2342911 ★ yield - http://stackoverflow.com/a/231855/2342911 ★ meta-klasy - http://stackoverflow.com/a/6581949/2342911 ★ http://stackoverflow.com/questions/101268/hidden- features-of-python ★ https://www.quantifiedcode.com/knowledge-base/ ★ https://github.com/faif/python-patterns ★ książka “Writing Idiomatic Python”, Jeff Knupp
  • 10. Code
  • 11. CODE Algorithms ★ FizzBuzz ★ Fibonacci ★ palindrom ★ isPrime ★ histogram ★ podział na wiersze >>> print(get_rows([1, 2, 3, 4, 5])) [[1, 2, 3], [4, 5]] ★ GROT ★ WeirdText
  • 12. CODE Others ★ Testy jednostkowe ★ “Coś” nie działa! Jak dojdziesz do tego co jest problemem? ★ Garbage Collector (gc) ★ Global Interpreter Lock (GIL) ★ optymalizacja (profile) ★ Big O notation
  • 13. ★ Project Euler ★ CheckIO ★ CodinGame ★ CodeCombat ★ CodeWars ★ exercism.io ★ GROT, GROT server ★ on-call duty - nauka debugowania złożonych problemów ★ http://pythonfasterway.cf/
  • 15. End
  • 16. ★ Przeanalizuj ogłoszenie o pracę ★ Zaktualizuj CV (szczególnie “agencyjne”) ★ Ustal dostępność (np. sprawdź obecną umowę) ★ Zastanów się nad pensją i rodzajem umowy ★ Poproś o spotkanie “rano” ★ Nie przesadź z ubiorem ★ Spytaj czy możesz “googlować” ★ Nie rób ctrl+c / ctrl+v ★ Poproś o feedback ★ Podzękuj ★ książka “Cracking the Coding Interview”, Gayle L. McDowell
  • 18. Monty Python Job Interview
  • 20. Employing over 100 Python programmers, STX Next is one of the largest software development houses in central Europe. We are goal-oriented, agile, and fast-paced. We currently have 3 locations in Poland. We know that we are as strong as the people working for us, so we try to maintain a work environment based around honesty, trust, and hard work instead of management and bureaucracy. We develop Web Applications in Python and Javascript and mobile apps for Android and iOS. We use agile methods and continuous delivery. We do projects for clients all over the world, and see how people use our software. …in3differentlocations... …createawesomeproducts. Over100talenteddevelopers… stxnext