# Microsoftin haastattelut

<datetime class="hidden">2004-01-05T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, Software Development, Testing -->
Lue vain [tämä artikkeli](http://www.sellsbrothers.com/fun/msiview/#myInterview) noin
Microsoftin haastattelu.

Minulla oli myös haastattelu työpaikalle Microsoftilla muutama vuosi sitten (in
minun tapaukseni, PM-työ yhdessä palvelinryhmässä).

Minä tapasin [Mark Anders](http://www.4guysfromrolla.com/webtech/MarkAnswers.asp) in
kirjakauppa Lontoon Islingtonissa vuonna 1999 pidetyssä ASP-ammattilaiskonferenssissa (minua tulee ikävä
Wrox-konferensseista!) ja saimme puhuttua turvallisuusjutuista - hän oli
Aika korkealla ASP.NET-ryhmässä - se oli silloin täysin alkiollista
Hän tutki yhä, mitä mieltä ihmiset ovat joistakin asioista. – – Joka tapauksessa,
Lyhyesti sanottuna minut kutsuttiin Redmondiin.

Lensin tänne, jouduin viettämään muutaman päivän Seattlessa, kiersin mukavasti Microsoftia
ja lopulta tuli päivän mittaiseksi.

Yksi suurimmista ongelmistani on se, että olen erittäin skotti - et ehkä ymmärrä, mitä tämä on.
Se tarkoittaa suoraa, äänekästä viestintää - mutta kuvittele, jos haluat, Billy Connolly
Kaksinkertainen nopeus (vaikka minulla on Barry Whitesque baritoni :-) - erittäin humalassa ja kanssa
Laukullinen marmoria hänen suussaan on aika lähellä.

Lisää tähän, että olin hyvin hermostunut - oli juuri löytänyt Starbucks (6 suuri
Espressot!) ja oli vielä jet-lagged hyvin, olisin näyttänyt puhuvan joitakin
outoa eksynyttä kieltä.

Joten yhden päivän aikana tapasin kahdeksan eri ihmistä useissa eri rakennuksissa -
harvoja koodauskysymyksiä (yksinkertaisia asioita, kuten hakua ja algoritmin korvaamista...
Tavallista), jossa olin aika hyvä. Oli joitakin "keksintöjä" ja luovia kysymyksiä

- taas aika hyvä.

Sitten tuli [ongelmia](http://www.sellsbrothers.com/fun/msiview/default.aspx?content=question.htm)!
Olen teknisesti ottaen hirvittävä matematiikassa, ja erityisesti
matematiikka kummastuttaa, kun on stressiä - yhdistettynä siihen, että olen alkanut puhua
Serbo-Koratialainen ei ennustanut hyvää.

Kysymyksiä oli autojen virtauksesta sillan yli ;tällä nopeudella, kuinka monta
autot kulkevat 2 minuutissa, yksi tasauspalloista (johon sain vastauksen)
sivuttaisen ajattelun kautta, ei matematiikan kautta).

Oli miten oli, minulta kysyttiin, harkitsisinko työtä testauksessa - sanoi ei... ja käytännössä päätti
Että olin saanut tarpeekseni suurista kehitysryhmistä.

Tämä todella väritti näkemystäni Microsoftista - se auttoi minua myös ymmärtämään
miten se toimii...

He etsivät Maths Geeksiä - tässä tapauksessa ainakin - en ole sellainen, olen enemmän
Vanhan koulun hakkerista (oikeassa mielessä :-) tykkään miettiä koodia
Kirjoitan ja muotoilen tuotteeksi, jota ihmiset haluavat käyttää - minulle se ei ole matemaattista
liikunta, moni vihaa tätä lähestymistapaa - ja suurin osa Microsoftilla tapaamistani ihmisistä
Hän ei tainnut ymmärtää sitä.

Luovan ajattelun puute on suuri ongelma verkkopohjaisten järjestelmien turvallisuudelle.
Vuosien mittaan näiden järjestelmien testaaminen, kirjoittaminen ja analysointi näyttää olevan yksi
suurimmat syyt ongelmiin ilmenevät tällaisissa järjestelmissä.

Kehittäjien pitää miettiä sovelluksiaan luovemmin, asettua aloilleen
Kun henkilö yrittää murtaa / murtaa koodisi turvallisuuden, aseta
raja-arvot pisteille, joissa kaikki käyttäjän syötteet on validoitu - sovellus palomuuri

- Se on turva-alueesi.

Tämä on todella melko helppoa, jos asetat rajat sille, mitä hakemuksesi hyväksyy
panoksena.

1. Validoida koko ajan, asiakas ja palvelin.
2. Tarkista raja-arvot testauksessa (mitä tapahtuu, jos syötät liian monta merkkiä
   Lomakekenttä?).
3. Catch jokainen virhe kaikkialla, jossa hyväksyt syötteen sovelluksen ulkopuolella - oli se sitten sitä
   Käyttäjältä tai tietokannasta (ne voivat mennä alas!) .
4. Aseta myöhemmälle koodille järkevät virhekoodit tarkistettavaksi - monet sovellukset kaatuvat
   yksinkertaisesti siksi, että ne eivät ole järjestyksessä - jokin olennainen menetelmä ei ole palannut
   Oikea arvo. Aseta murtopisteet koodiin, jossa jos jokin ehto on lyöty vetoa, jotkut keskeyttävät
   sekvenssi tapahtuu (virheen ilmoittaminen käyttäjälle, uudelleenohjaus... jne.)
5. Yksinkertaista - tämä on tärkein asia! Monimutkainen koodi kätkee ongelmansa, pitää
   Koodisi on luettavissa, joten muuttujanimesi ovat ilmeisiä, lisää kommentteja, jotka viittaavat odotettuun
   reitit ja esiintymiset lähteeseen. Tee yhden luokan tiedostoista samat nimet
   Pidä se yksinkertaisena!

Jo riittää jaarittelu...