Chcete se podílet na programování nejnavštěvovanější stránky českého internetu www.seznam.cz?

Teď máte jedinečnou možnost, protože právě hledáme zkušené vývojáře, ale taky nadané absolventy, který posílí náš tým.

Jestli je programování vaší vášní a nebojíte se výzev, tak pro vás máme jednu připravenou. Níže najdete úkol, který je vstupní branou jak se k nám dostat. K vypracování můžete použít libovolný programovací jazyk (kromě ezoterických 😉️). Bude nás zajímat, jak nad věcmi přemýšlíte a jaký je váš kód. Svoje řešení úkolu nám zašlete spolu s komentářem jak jste uvažovali a proč jste zvolili takové řešení do odpovědního formuláře.

Co by vás u nás čekalo?

  • Spolupracovali byste na implementaci nových funkcí do portálu www.seznam.cz.
  • Na frontendu používáme primárně TypeScript a React a Redux, na backendu zase GoLang a MariaDB. Vy byste pracovali pouze na frontendu.
  • Celou aplikaci provozujeme ve vlastním cloudu stojícím na Kubernetes a OpenStack.
  • Pokud některou z těchto technologií nebo jazyků neznáte, nevadí. Je pro nás důležité jak nad věcmi přemýšlíte, ne že znáte každou technologii. Co nevíte vás rádi naučíme 🙂️

Co ještě u nás v Seznamu najdete:

  • prostředí, ve kterém se člověk může realizovat a které je otevřené inovacím
  • velkou míru seberealizace i svobodu v práci
  • tým lidí, kteří jdou za stejným cílem a dokážou při té cestě jeden druhého podržet a podpořit
  • možnost profesního růstu v rámci firmy
  • neformální pracovní prostředí, kde si všichni tykáme a pomáháme si

Zadání úkolu

Vaším úkolem je implementovat funkci zipItems. Funkce má za úkol zamíchat do první sekvence hodnot hodnoty z generátoru druhé sekvence hodnot a vrátit vzniklou sekvenci jako pole. Funkce má použít všechny prvky z první sekvence a vložit prvky druhé sekvence na pozice určené zbylými argumenty. Výstupní sekvence musí končit položkou z první sekvence. Vstupní sekvence nemá být změněna.

Funkce zipItems obdrží následující argumenty:

  • primaryItems - pole obsahující sekvenci hodnot do které mají být zamíchány hodnoty z druhé sekvence
  • secondaryItemsFactory(n) - funkce, která obdrží kladné číslo n a vrátí n následujících položek z druhé sekvence jako pole. Funkce vždy vrací následující položky sekvence a neumožňuje "přetočení" na začátek
  • offset - index (počítán od 0) na který má být vložena prvá položka z druhé sekvence
  • period - perioda s jakou mají být vkládány položky z druhé sekvence do výsledné sekvence (t.j. ve výsledné sekvenci bude mezi 2 položkami z druhé sekvence právě period - 1 položek z první sekvence)

Předpokládejte že funkce zipItems vždy dostane platné hodnoty na vstupu.

Můžete použít libovolný imperativní nebo funkcionální programovací jazyk (s výjimkou ezoterických jazyků). V řešení nepoužívejte žádné knihovny nebo nástroje které nejsou součástí zvoleného jazyka.

Varianta pro pokročilé
V implementaci funkce zipItems zavolejte funkci generující položky druhé sekvence (secondaryItemsFactory) pouze jednou se správným argumentem (nesmíte vygenerovat ani jednu položku druhé sekvence navíc).

Příklad použití a návratové hodnoty
zipItems([1000, 1001, 1002, 1003, 1004], secondaryItemsFactory, 1, 3)

[1000,0,1001,1002,1,1003,1004]

JSFiddle playground
Pokud chcete k implementaci použít JavaScript, můžete využít následující předpřipravené prostředí: https://jsfiddle.net/8v3tLwgr/

Informace o pozici

Společnost
Seznam.cz, a.s.
Adresa
Brno
Požadované vzdělání: Vzdělání není podstatné
Benefity: Bonusy/prémie, Notebook, Stravenky/příspěvek na stravování, Dovolená 5 týdnů, Vzdělávací kurzy, školení, Kafetérie, Občerstvení na pracovišti, Zvýhodněné půjčky zaměstnancům, Firemní akce, Individuální rozvržení pracovní doby, Možnost si napracovat hodiny, Dog-friendly office
Zařazeno: IS/IT: Vývoj aplikací a systémů, Programátor
Typ pracovního poměru
Typ pracovního poměru: Práce na plný úvazek
Typ smluvního vztahu
Typ smluvního vztahu: pracovní smlouva
Zadavatel: Zaměstnavatel

Pozice je vhodná i pro absolventy.


Seznam.cz, a.s., Nikola Sabaková
+420 724 443 596