Hogyan rendezheti el gondolatait a táblán, és hogyan törje össze a szakmai interjút

A szervezési képességekről és a sok minden egyesítésének alkalmazott tudományáról a szoftverfejlesztés mesterségében

Néhány héttel ezelőtt egy fényes egyén újraközölt egy átgondolt és tömör bejegyzést a Hacker News-on a szoftverfejlesztés legfontosabb készségéről. Ebben a bejegyzésben John D. Cook rámutatott James Hague Organizational Skills Beat Algorithmic Wizardry című cikkére. Mindkét szerző készségként kezeli a szervezet szoftvertervezési témáját . Ezt szembeállítják ainterjúkban tesztelt, az egyetemen tanított vagy blogbejegyzésekben reklámozott informatikai tudás elsajátítása. Elgondolkodásuk arra késztette, hogy azon gondolkodjak, hogyan lehetne javítani a mesterségünkön.

Mélyen átgondolva mindkét szerző üzenetét, idővel átéltem saját tapasztalataimat. Megérzem azokat, akik technikai interjúkat tapasztalnak, amelyek nem klasszikusan képzettek. Legutóbbi tapasztalataim néhány évvel ezelőtt rendezetlenek voltak.

Utolsó befejezett szakmai projektem egy három régi éves rendszer volt, amely a kód bonyolultságával foglalkozott, és a soha véget nem érő termékcsalád. Bátran küzdöttünk a növekvő rendetlenség megszervezéséért. Mindkét gondolatnak közös szála volt, mivel szervezésben kisebb és nagyobb gyakorlatokról volt szó . A szorongás, a kiszolgáltatottság, a stressz és a boldog pillanatok körül jártak. Nagyon érdekeltek az eredmények.

Ez arra ösztönzött, hogy a magam módján írjak nyomon követést. Ez azért van, mert megmozgatott ezeknek a hozzászólásoknak a súlya. Miért ne válaszolhatna a feltett kérdésekre, még akkor is, ha a példámra adott válasz nem egyezik tisztán? Szóval össze-vissza rúgtam az ötletet, és egy kérdésre lógtam. John megkérdezte:

... hogyan mutatsz be egy okos szervezettséget?

Ezen kissé elgondolkodva elnéztem a képernyőn, és láttam, hogy a táblám előtt áll. A fejem az oszlopok körül kavargott. Kemény technikai interjúk? Szervezet? Irányító állam? Összeomló súly? Kód összetettség? Talán a szakmai interjú tábla gyakorlata mindvégig a szoftvertervezés kiemelkedő pontját bizonyíthatja.

Így idegesen kezdtem megoldani néhány tipikus problémát a táblánál.

Ritkán a táblánál bárki is jól teljesít. Mesteri gondolkodási folyamatot kell bemutatnia, és sokat kell tartania a fejében. Kommunikálnod kell, de hogyan kommunikálsz, miközben figyelmen kívül hagyod a fejedben a sikoltó hangot, amely azt mondja: "siess!" miközben lelkesen mozogsz?

Jobb megközelítés

Nagy és kis műszaki cégeknél tábla technikai interjúkat tartanak. Ön egy fehér helyiségben van, ahol egy tábla található, és egy másik személy képviseli a vállalatot. Kérdést tesz fel, és meghívást kapunk a probléma megoldására. Akkor általában az interjúalanyon múlik, hogy megoldást keressen-e a problémára.

Itt kezdődik a fejem az irányítás alól szorongás és szervezetlenség miatt. Trombiták kezdenek játszani a fejemben, és gondolatmenetem összekeveredik. Az idő felgyorsul. Szűkül a látásom és könnyelművé válok.

Talán van rá mód, hogy lassítson, ütemezzen és végigvezesse a folyamatot a szervezettel . Valami, amit még soha nem láttam, miközben interjúkat készítettem a jelöltekkel az évek alatt, de talán ez megkönnyítheti az idegeket és élvezetes élményt nyújt. Először nézze meg a táblát, és vágja fel három részre.

A három szakasz átmeneti helyet biztosít a probléma megoldása érdekében.

1. lépés: a probléma

Ne felejtse el felírni a problémát egy teljes mondatba. Ez meg fogja érezni a jelzőt, és segít legyőzni a „hogyan tudom ezt megoldani?” Rohanás kezdeti találatát.

Miután megírta a kérdést, nézzen rá egy pillanatra, és kezdjen el gondolkodni a kérdéseken. Húzza meg a vonalakat bőséges hellyel. Ne aggódjon a szünet miatt, tudassa az interjúztatóval, hogy a feltett kérdésekre gondol.

2. lépés: Feltételezések

Gondoljon néhány általános kérdésre. Mint például, melyik programozási nyelvet részesíti előnyben? Menjen a tábla jobb oldalára. Nincs kérdés? A probléma olyan fogalmakat tartalmazhat, amelyeket nem ismer. Kérdezd meg, mik ezek. Ezután kezdje el kezelni a problémás kérdéseket. Elsőként azt kérdezik, hogy mi a példa a paraméter bemenetére és kimenetére. Kérdezze meg, hogy az adatok előre vannak-e választva.

A feltételezések tisztázása egyszerűsítheti a problémát. Az egyes kérdések feltevésekor minden válaszpárt be kell írni a feltételezések területére. Amikor válaszokat kap, szerezzen be egy másodlagos jelölőt (más színű) a válasz kiemeléséhez. Segíthet a saját markereinek felvétele.

Csak annyi tárgyat tarthatunk a fejünkben, ezért erősen támaszkodjon a táblára, hogy minden tudást megragadjon. A kérdések és válaszok megírása lelassítja a megközelítést, így emészthető.

3. lépés: a megközelítés

Miután a tábla jobb oldalán számos kérdésed van, fizikailag lépj balra. Itt kezdjük el megvitatni a megoldásunk megközelítését.

Itt nagyon durva álkód, lépések és vizualizációk történnek. Tájékoztassa interjúztatóját, hogy ez nem az Ön megvalósítása, hanem egy olyan hely, ahol a stratégiával és megközelítéssel kapcsolatos gondolatait rendezi, lazán az adatstruktúrákról és az absztrakt adattípusokról. Rajzolja ki a megoldást, mint egy képet.

A bal oldali mező nagyon érdekes dolgot fog bemutatni, mivel lyukakat tár fel a kérdéseinkben. Írás közben és gondolkodása közben állítsa le gondolkodási folyamatát, ha egy kérdésre nem adnak választ. Menjen vissza a jobb oldali részhez, írja ki a kérdést, és próbálja megkapni a választ.

Az abszolút minimumon ez néhányszor megtörténik, amikor felismeri az átlagos, a legjobb és a legrosszabb eseteket . Ez a stratégiától, a határoktól és a korlátoktól függ. Kérjen relaxációt a megközelítéshez, például: "Például használhatok-e egy kis adatsort?" "Feltételezhetem, hogy a bemeneti tömb rendezve van?" A bemeneti hitelesítés szintén egy másik kérdésgenerátor.

4. lépés: kód megvalósítása

Miután elegendő feltételezés és megközelítési anyag készült, ez azt jelenti, hogy most már készen áll arra, hogy magabiztosan átírja a megvalósítási kódot. Mindkét fél támogatni fogja. Jelölje ki és mutasson az egyes lépésekre a kód írása közben. Óvatosan lépkedjen át a bal oldalán felsorolt ​​megközelítésen. A megvalósítás megírásakor ellenőrizze a feltételezéseket.

Még akkor is, ha a megoldással küzdesz, a szervezés varázslója vagy.

Természetesen van rá lehetőség, hogy valamit találjunk a cselekményben. Sétáljon vissza balra, és bontsa le újra a megközelítést, és kérjen segítséget. Új kérdések jelennek meg. Menj jobbra. Menj előre-hátra balról jobbra középre, amíg sikerül. Fogsz.

Legyen a szervezés mestere. Ha falnak ütközik, vagy valami olyasmit talál, ami éppen nem stimmel, ne feledje, hogy az oldalak vezetnek.

Bónusz 5. lépés: teszt

Ha a gyakorlatot olyan kóddal hajtotta végre, amely szerinte működik, tegye meg az első lépést, hogy megvitassa, hogyan kell tesztelni. Használja a feltételezések részt tiszta tesztkód megírásához, ha úgy döntene.

Mostanra valószínűleg biztonságos az összes kérdés eltávolítása erről a területről. Törölje a kérdéseket, és próbáljon meg egység teszteket írni. Végül rendben leszel, mert magabiztosan szerveztél.

Összefoglalva

Nesze. Ez néhány perc tiszta szervezés volt, sok elmélet nélkül. Néhány egyszerű fogalomra támaszkodik.

  1. Szakaszolás -a problémát darabokra vágva az elejétől a végéig.
  2. Állványzat - az ideiglenes építészet fogalma, vagy ahol felépítünk egy tartószerkezetet, amikor körülöttünk építjük.
  3. Kapuzás - nem szabad folytatnunk a következő lépést addig, amíg nem vagyunk kényelmesek és magabiztosak a probléma megfelelő kezelésének ügyeiben. Mutasson magabiztosságot, de vegyen részt aktívan a „Hiányoztam valamilyen feltételezést?” vagy „Van-e lyukam a megközelítésemnek?” eljárás előtt.
  4. Az államszervezetet  vizuálisan kezelik, hogy fenntartsák a probléma összetettségét. Kerülje a radír használatát, ha teheti.

Következtetés

Néhány aprósággal szerettem volna befejezni, amelyek hazahozzák a gondolkodásomat.

Nem értékelheti a szervezés bravúrját, amíg meg nem tapasztalja a szervezetlenséget. - John

Egyetértek. Ez vonatkozik minden emberi tapasztalatra, beleértve a kódot tartalmazó projekteket, az embereket és a technikai táblára vonatkozó tapasztalatokat. De ha egy lépést hátrébb teszünk, és a szervezéssel megválaszoljuk a problémát, az a mérnöki munka. Probléma és lehetséges megoldás.

A tervezés kulcsa a potenciális szervezet . Nagy mozgási energia származik abból a tényből, hogy az idő múlásával hirtelen és folyamatosan szerveződik.

Soha ne becsülje alá ezt a jelenséget.

Csak akkor tudod felölelni a fejed és értékelni a fejlesztéseket, ha a rendezetlen rendetlenség a te felelősséged, ami számodra többet jelent, mint esettanulmány. - John

Mindannyiunknak van egy története a tábláról. Meg akartam találni, hogyan javíthatnám és egyszerre tudnám feladata a mérnöki elmém. Sok mérnök csatlakozik érzelmileg a táblához. Mindannyiunknak vannak az átkozott vereség történetei.

Mesterségünk nagy része alkalmazott tudomány. A tehetségesek ritkán tudnak hamisítani és manipulálni új adatstruktúrák vagy algoritmusok kitalálását. A miénk az egyik egy minta nyelv és kézműves . Ritkán művészet, ha valaha. Nagyon sok tennivalója vana legújabb szervezési készségek azonosításával és a dolgok nagyon jó, ismételt összeragasztásával és összeragasztásával. Talán néhány eszközzel az eszköztárból. De vigyázzon azokra a szervezési eszközökre, amelyeket egy csere vagy lelkesedés nyom meg rajtunk.

Ne feledje, hogy büszkeség van arra, hogy a szervezeten és a struktúrán keresztül javítsunk a kódon. Írtam néhány bejegyzést a szervezetről és a témáról, amely összekapcsolja a szervezetet a rendszer komplexitásával. Van egy erős kapcsolat. Ezért nagyra értékeltem John és James gondolatait. Ők szervezik üzeneteket anélkül siettek lejárati idő.

Ha ilyen helyzetbe kerül, kérjen nagyobb táblát!