Dovednosti vývojáře jazyka Scala

Vydáno: Poslední aktualizace:
Scala: otázky k pohovorům pro softwarové inženýry

Najít vhodného vývojáře jazyka Scala může být nesmírně obtížné. Abyste našli toho pravého, musíte prohledat hory životopisů zaslaných kandidáty a náboráři. Nakonec je však těžké určit, kteří z těchto potenciálních kandidátů budou schopni práci vykonávat a kteří se pro vaši organizaci jednoduše nehodí. Abychom vám usnadnili práci, napsali jsme tento článek, ve kterém přesně vysvětlíme, co musíte udělat, abyste našli toho správného vývojáře Scala.

1. Co potřebujete vědět o Scale, abyste mohli najmout vývojáře Scala

Scala (/ˈskɑːlɑː/ skah-lah) je univerzální programovací jazyk s podporou funkcionálního programování a silným statickým typovým systémem Návrh jazyka Scala začal v roce 2001 na École Polytechnique Fédérale de Lausanne (EPFL) Martin Odersky. Navázal na práci na programovacím jazyku Funnel, který kombinoval myšlenky funkcionálního programování a Petriho sítí. Odersky dříve pracoval na generické Javě a javacu, kompilátoru Javy společnosti Sun.

Scala se používá hlavně při vývoji backendu ve vysoce souběžných aplikacích.

Hlavní výhody jazyka Scala:

  • Objekty jsou "ve výchozím nastavení" neměnné (např. všechny kolekce).
    Díky tomu je jazyk mnohem méně náchylný k chybám, zejména ve vztahu k vláknům.
  • Pokročilý typový systém
    Více typů znamená, že Scala může provádět více druhů úloh než jazyky se základními typovými systémy, jako je Java.
  • Funkcionální, objektově orientované a imperativní programování jsou možné.
    Různé úlohy vyžadují různé styly programování. Zatímco jiné jazyky pracují pouze s jedním nebo dvěma styly programování, Scala pracuje se všemi třemi. To znamená, že vývojář pracující v prostředí Scala může provádět více typů úloh, aniž by musel přecházet na jiné programovací prostředí.

2. Co je důležité vědět o jazyce Scala pro IT náboráře?

Každý náborář by měl vědět především o třech důležitých věcech, když se snaží obsadit pozici vývojáře jazyka Scala.

  1. V současné době je Scala nejoblíbenějším funkční programovací jazyk. Ačkoli má řadu různých aplikací, pravděpodobně nejpopulárnější využití má nyní v oblasti Big Data.
  2.  Scala používá stejné běhové prostředí jako Java, které se nazývá Java virtual machine. Díky tomu je s Javou zcela interoperabilní. To znamená, že můžete používat knihovny Scala pro aplikace Java a knihovny Java pro aplikace Scala. Díky tomu mají vývojáři Scaly obrovskou výhodu oproti ostatním vývojářům, protože mají přístup k neuvěřitelně rozsáhlému a rozmanitému ekosystému Javy.
  3.  Jediná věc, která může vývojáře od Scaly odradit, je složitější syntaxe jazyků, jako je Java nebo C#. V důsledku toho může být křivka učení obzvláště strmá, což znamená, že může být obtížné najít kvalifikovaného vývojáře jazyka Scala.

(V březnu 2015 prohlásil bývalý viceprezident skupiny Platform Engineering ve společnosti Twitter Raffi Krikorian, že by si v roce 2011 Scalu nevybral kvůli jejímu učení. Ve stejném měsíci prohlásil Kevin Scott, SVP společnosti LinkedIn, že se rozhodli "minimalizovat závislost na Scale". V listopadu 2011 se společnost Yammer odklonila od Scaly z důvodů, které zahrnovaly křivku učení pro nové členy týmu a nekompatibilitu mezi jednotlivými verzemi kompilátoru Scala) Zdroj: Wikipedia

Při hledání vývojářů jazyka Scala je třeba si uvědomit, že budete hledat elitu, která je ochotna překonat překážky, jež tento jazyk představuje.

3. Jak ověřit dovednosti v jazyce Scala ve fázi výběru?

3.1. Technická kontrola dovedností v jazyce Scala na základě životopisu uchazeče

Před jakoukoli širší technickou prověrkou je vhodné prověřit zájem kandidátů na vývojáře o funkcionální programování. To znamená, jaký mají zájem o učení nových jazyků a také funkcionálních jazyků, jako jsou Haskell, F sharp a OCam.

Slovníček jazyka Scala pro náboráře technických pracovníků

Rámce a knihovny Scala Backend: Akka, Finagle

Velká data: Spark, Scalding

Web: Přehrát, zvednout, Scalatra

Utils: Scalaz, Cats

Nástroje pro testování jazyka Scala ScalaTest, Specs2
Nástroje pro sestavení jazyka Scala sbt (Simple Build Tool)

Vztahy mezi jednotlivými verzemi technologie Scala:

Většinou se používá verze 2.12, menší část vývojářů používá verzi 2.11. Vydání verze 3.0 je plánováno na rok 2020. Tyto hlavní verze Scaly nejsou binárně kompatibilní - je třeba překompilovat všechny knihovny, ale menší verze (2.11.1, 2.11.2 atd.) ano; všechny verze jsou kompatibilní se zdrojovými kódy.

Význam certifikátu Scala pro hodnocení dovedností vývojáře Scaly

K dispozici je mnoho kurzů. Nejoblíbenější z nich nabízí společnost Lightbend, která také vydává certifikáty. Hodně lidí ale absolvuje kurz Scala na Coursera, který vyvinula společnost Centrum Scala.

Podívejte se také na tyto kurzy:

Ačkoli certifikáty mohou prokázat určité schopnosti, existuje mnohem více faktorů, které rozhodují o tom, zda pro vás bude kandidát tím pravým vývojářem jazyka Scala.

3.2. Technická kontrola dovedností v jazyce Scala během telefonického/video pohovoru

Obvykle je po kontrole životopisu dalším krokem náborového procesu telefonický nebo video pohovor s uchazečem. Hlavní výhodou této části procesu je možnost zeptat se otázky týkající se chování zjistit, jak by váš kandidát reagoval v určitých reálných situacích. Často to rozhoduje o tom, zda bude uchazeč pozván na osobní technický pohovor, proto je v této fázi důležité klást správné technické otázky.

Tyto otázky se samozřejmě mohou lišit v závislosti na typu dovedností, které hledáte. Přesto by zde uvedené otázky měly být užitečné pro obsazení jakékoli pozice vývojáře jazyka Scala.

Otázka 1: Co je to porovnávání vzorů?

Proč byste se měli ptát: Je důležité to vědět, protože Scala má zabudovaný obecný mechanismus porovnávání vzorů. Tento mechanismus umožňuje porovnávat jakýkoli druh dat se zásadou první shody.

Otázka 2: Co jsou to případové třídy?

Proč byste se měli ptát: Třídy případů jsou ve Scale jedinečné. Jsou to vlastně jen obyčejné třídy, ke kterým je přidáno několik dalších podmínek. Ve výchozím nastavení jsou neměnné, rozložitelné pomocí porovnávání vzorů, porovnávají se podle strukturální rovnosti místo podle reference a jejich instanciace a operace s nimi jsou stručné.

Otázka 3: Které objektově orientované vzory jsou implementovány v jazyce Scala?

Proč byste se měli ptát: Existují tři hlavní objektově orientované vzory, které by měl vývojář jazyka Scala znát. Díky vzoru Singleton poskytuje Scala přímou realizaci vzoru Singleton v jazyce. Hodnotové objektové vzory je možné použít pomocí Tuples, typů nebo tříd case. A konečně, ve Scale existuje klíčové slovo lazy, které nabízí línou inicializaci

Otázka 4: Co je to vlastnost a existuje nějaký ekvivalent v jazyce Java?

Proč byste se měli ptát: Znaky jsou podobné rozhraním v jazyce Java a jsou částečně implementovány.

Kromě specifických technických otázek existuje řada otázek týkajících se chování, které vám pomohou zjistit, jak se váš kandidát bude chovat v určitých situacích.

Otázka 5: S jakými technologiemi jste měl/a v posledních dvou letech obchodní zkušenosti? Jaké byly vaše povinnosti? Jaký byl váš největší úspěch?

Proč byste se měli ptát: Ne všechny programátorské dovednosti jsou stejné. Vývojáři mají často širokou škálu zájmů a věnují se různým technologiím, ale je důležité zjistit, které z nich ovládají funkčně a ve kterých pouze fušují do řemesla. Tato otázka také pomůže ukázat, jak budou danou technologii využívat pro komerční půdu.

Otázka 6: Které knihovny s otevřeným zdrojovým kódem v jazyce Java považujete za hodnotné a proč?

Proč byste se měli ptát: Jak již bylo zmíněno, Scala je interoperabilní s Javou. Protože Java má mnohem více knihoven, ze kterých lze čerpat, bude efektivita vašeho enginu Scylla rok záviset na tom, kolik z těchto knihoven znají. Tato otázka vám poskytne přehled o tom, jaké knihovny mimo Scalu váš kandidát zná a jak je v minulosti používal.

Otázka 7: Všiml jsem si, že jste ve svém životopise uvedl rámec X. Jaký na něj máte názor? Je to dobrá volba?

Proč byste se měli ptát: Skutečná hodnota vývojáře nespočívá pouze v jeho znalosti jazyka, ale také ve schopnosti efektivně realizovat projekt. Ti nejlepší znají řadu nástrojů a zdrojů, které znásobují rozsah toho, čeho jsou schopni Dosáhnout. tato otázka se dostane k jádru toho, jak pohodlně vývojář používá tyto externí zdroje k superpozici svého vývoje softwaru.

3.3. Technická kontrola dovedností v jazyce Scala pomocí online testu kódování

Telefonická prohlídka vám může poskytnout mnoho informací, stejně jako důkladná kontrola životopisu kandidáta, ale nakonec musíte být schopni určit, jaké jsou kódovací dovednosti vašeho kandidáta. Koneckonců žádná z dosud uvedených metod prověřování vám neřekne, zda váš kandidát umí programovat, nebo ne. K tomu potřebujete test kódování.

V současné době se nabízí řada způsobů, jak provádět testy kódování. Od rozhovorů u tabule až po platformy pro algoritmické testování. Většina těchto metod vám bohužel neposkytne informace, které potřebujete k informovanému rozhodnutí. Datové struktury a algoritmy jsou základními stavebními kameny softwaru, ale zároveň mají jen málo společného s každodenní prací vývojáře softwaru. Bylo by to jako chtít po bagristovi, aby vykopal díru lopatou. Technicky vzato testujete, jak dobře dokáže přemístit hlínu, ale ve skutečnosti chcete vědět, jak dobře dokáže použít nástroje, které má k dispozici, aby efektivně vykopal obrovskou díru v krátkém termínu.

Stejně tak nechcete při náboru ztrácet čas testováním základních dovedností. Místo toho chcete zjistit, jak vývojář využívá všechny nástroje a zdroje, které má k dispozici, aby včas dodal efektivní řešení. Pravděpodobně nejlepším způsobem, jak toho docílit, je test s ukázkami práce. Na jiném místě tohoto blogu jsme se zabývali tím, jak vytvořit tzv. test pracovních vzorků ale zde jsou hlavní body, které byste měli vzít v úvahu, když zadáváte vývojáři jazyka Scala ukázkový test.

  • Neměli byste testovat pouze znalost jazyků, ale také znalost frameworků a knihoven, které vaše společnost používá.
  • Namísto otázek s výběrem odpovědi se zaměřte na programovací úkoly.
  • Kdykoli je to možné, použijte skutečný úkol s využitím vlastní kódové základny, protože tak uchazeč získá představu o tom, jakou práci bude vykonávat, až pro vás začne pracovat.
  • Přistupujte k testu jako k běžnému pracovnímu dni. To znamená, že kandidátovi umožníte přístup k vysokým knihovnám, rámcům a obecným zdrojům, které by používal v běžný den. Netestujete jejich schopnost zapamatovat si fakta. Místo toho chcete vědět, zda dokáže vytvořit úžasné řešení.

Hlavní výhodou tohoto typu platformy je, že testy jsou doručovány automaticky, takže uchazeč si je může později vyzkoušet odkudkoli na světě. A nejen to, platforma automaticky vyhodnocuje kvalitu kódu i výkon řešení bez jakéhokoli vstupu technického personálu na vaší straně. Je to efektivní způsob, jak získat efektivní přehled o tom, jak dobře váš kandidát dokáže vykonávat práci, a je neuvěřitelně pohodlný jak pro vaše zaměstnance, tak pro kandidáta. Znamená to, že z vašeho náboru vypadne méně kandidátů a méně hodin promarníte tím, že vaši drazí vývojáři budou pracovat na náboru.

Autor - Adam Warski

fotografie Adama Warskiho autora článku o vývojáři Scaly Adam je zakladatelem a technickým ředitelem společnosti SoftwareMill, vývojáře vlastního softwaru na zakázku s využitím jazyků Scala, Akka, Java a dalších jazyků a zajímavých technologií. Adam je častým bloggerem, řečníkem a přispěvatelem do oblasti open source a můžete s ním sledovat dění na blogu SoftwareMill. Společnost SoftwareMill se soustředí v Polsku, vytváří inovativní aplikace a zachraňuje skvělé projekty, přičemž úzce spolupracuje se svými zákazníky.

4. DevSkiller připravený k použití online hodnocení kódování v jazyce Scala

Ačkoli DevSkiller nabízí možnost použít vlastní kódovou základnu pro testování vývojářů, ne každá společnost má čas nebo prostředky na vytvoření vlastního pracovního vzorku testu. Pro tyto společnosti jsou k dispozici předpřipravené testy Scala od DevSkiller. Místo toho, aby se zabývaly abstraktními koncepty, všechny testují vaše kandidáty tím, že jim zadávají reálné úkoly, takové, s jakými se setkají první den v práci.

Akka
SENIOR
Testované dovednosti
Doba trvání
102 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Scala, Funkční programování

Programování - Úroveň: těžká

Scala | Akka Streams | IoT Data Streaming - Definujte časově založený agregátor pro proud dat ze senzorů IoT.

Scala
JUNIOR
Testované dovednosti
Doba trvání
66 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Scala

Úloha programování - Úroveň: Snadné

Scala | Spark | ML Logs Transformer - Dokončení implementace transformačního potrubí logů.

Scala
JUNIOR
Testované dovednosti
Doba trvání
96 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Scala

Úloha programování - Úroveň: Snadné

Scala | ScalaCalc - matematická knihovna - Rozšiřte funkčnost modulu geometrie o operace s mnohoúhelníky.

Scala
JUNIOR
Testované dovednosti
Doba trvání
88 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Scala, Akka, Scala-Actors

Úloha programování - Úroveň: - Střední úroveň

Scala | Parser hlaviček | Připravte si jednoduchý parser jazyka Scala.

Akka
STŘEDNÍ
Testované dovednosti
Doba trvání
76 maximálně minut.
Hodnocení
Automatické
Přehled testů

Otázky s výběrem odpovědí

hodnocení znalostí Scala, Akka, Scala-Actors

Úloha programování - Úroveň: - Střední úroveň

Scala | Akka | TCP Stream Messages - Implementace klientské obsluhy pro TCP stream zprávy, jejich zpracování a odeslání výsledku zpět odesílateli a databaseSaverActor.

Zdroj obrázku: godatafy

Sdílet příspěvek

Další informace o najímání zaměstnanců v oblasti technologií

Přihlaste se k odběru našeho vzdělávacího centra a dostávejte užitečné informace přímo do své e-mailové schránky.

Bezproblémové ověřování a rozvíjení dovedností v oblasti kódování.

Podívejte se na produkty DevSkiller v akci.

Bezpečnostní certifikace a shoda s předpisy. Zajistíme, aby vaše data byla v bezpečí.

Logo DevSkiller Logo TalentBoost Logo TalentScore