Fejlesztő kiválasztása: interjú feladatok

 ( Tassadar | 2019. április 30., kedd - 7:03 )

Sziasztok,

Ki tudtok emelni olyan fejlesztői interjú feladatot, amit a munka szempontjából is relevánsnak gondoltok és egyben érdekesnek is találtatok?

Üdv,
Tassadar

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Milyen fejlesztő? Milyen nyelv? Milyen környezet? Milyen pozíció?
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

.net (C# preferencia), de nem feltétlenül nyelvspecifikus feladatra gondolok.

Lehet senior és junior feladat is.

Jó ötlet azt mérni amit tud? Nem lenne jobb megmérni, hogy mi az amit nem tud és mennyi idő alatt képes megoldani?

hat nem art valahogy a cvben leirt skilleket is ellenorizni (senior feketeoves coder)

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Codewars és hasonló jellegű algoritmus fejtörők. Ezek nyelvtől és szakterülettől függetlenek, pont arra jók, hogy jó fejlesztő tudjon átmenni rajtuk. Amúgy első körben egy sokkal egyszerűbb feladat is elég, ott még prímszám kiíráson is sokan elvéreznek.

Szerintem a kreativitást - ami egy fejlesztőnél munkaeszköz - nagyon nehéz mérni. Egy konkrét személy egy konkrét feladatnál lehet, hogy elvérzik, 10 másiknál, amihez mások hozzászólni sem tudnak, pedig nem.

Én csak elbeszélgetnék a jelöltekkel, sőt, hagynám őket, hogy irányítsák a beszélgetést és a belső hangra figyelnék. Vagy összeengednék 8-10 jelöltet egy könnyed, félig-meddig szakmai beszélgetésre, és enyhén, de célirányosan tematizálnám a diskurzust. A végén csak egy marad.

> Sol omnibus lucet.

Nem annyira. Itt a probléma. Itt egy szoba és egy gép. Kapsz 1 órát. Bármilyen eszközt használhatsz (internet/telefon). Szólj, ha megvagy. Majd interjú/élménybeszámoló az elmúlt 1 óráról. Kifaggatom az érzéseiről, gondolatairól.

Ha belegondolsz a munkáltatónak az kell, hogy megoldják a problémáit. Minden más csak a vezető fölényeskedése, elitizmusa. Akinek zsenik kellenek az önmaga nem az. A zseninek jók az átlagosak is, mert velük is tud zseniálisat alkotni.

Hát igen... ez is egy megközelítés. Ugyanakkor nem tudni, hogy a topikindító mire akar szelektálni. Úgy látom abban egyetértünk, hogy nem a KONKRÉT tudást "mérnénk", hanem a feladathoz való alkalmazkodás sikerességét. Hogy ezt az információt miként lehet a legpontosabban és leggyorsabban megszerezni, nos ez szerintem nagyon nehéz kérdés.

> Sol omnibus lucet.

Isten 9 milliárd neve ?


using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;

namespace NamesOfGod
{
public class RowSummer
{
const int N = 100000;
public BigInteger[] p;

private void calc(int n)
/* Translated from C */
{
p[n] = 0;

for (int k = 1; k <= n; k++)
{
int d = n - k * (3 * k - 1) / 2;
if (d < 0) break;

if ((k & 1) != 0) p[n] += p[d];
else p[n] -= p[d];

d -= k;
if (d < 0) break;

if ((k & 1) != 0) p[n] += p[d];
else p[n] -= p[d];
}

}
public void PrintSums()
/* translated from C */
{
p = new BigInteger[N + 1];
var idx = new int[] { 23, 123, 1234, 12345, 20000, 30000, 40000, 50000, N, 0 };
int at = 0;

p[0] = 1;

for (int i = 1; idx[at] > 0; i++)
{
calc(i);
if (i != idx[at]) continue;
Console.WriteLine(i + ":\t" + p[i]);
at++;
}
}
}

public class RowPrinter
/* translated from Python */
{
List> cache;
public RowPrinter()
{
cache = new List> { new List { 1 } };
}
public List cumu(int n)
{
for (int l = cache.Count; l < n + 1; l++)
{
var r = new List { 0 };
for (int x = 1; x < l + 1; x++)
r.Add(r.Last() + cache[l - x][Math.Min(x, l - x)]);
cache.Add(r);
}
return cache[n];
}
public List row(int n)
{
var r = cumu(n);
return (from i in Enumerable.Range(0, n) select r[i + 1] - r[i]).ToList();
}
public void PrintRows()
{
var rows = Enumerable.Range(1, 25).Select(x => string.Join(" ", row(x))).ToList();
var widest = rows.Last().Length;
foreach (var r in rows)
Console.WriteLine(new String(' ', (widest - r.Length) / 2) + r);
}
}

class Program
{
static void Main(string[] args)
{
var rpr = new RowPrinter();
rpr.PrintRows();
var ros = new RowSummer();
ros.PrintSums();
Console.ReadLine();
}
}
}