You are on page 1of 5

Phng vn lp trnh vin qua in

thoi ng cch
Bi vit c dch t blog Coding Horror
Li bn ca Vinacode:
Trong bi vit ny th chng ta s nghe Jeff Atwood (sng lp StackOverflow.com) ni v
mt quy trnh phng vn tuyn dng cng ty c th tm kim c ngi ti, trong
bc u tin nn l mt cuc phng vn qua in thoi.

Cch thc tuyn dng rt n tng ca cng ty Silicon Straits Saigon.

Thc ra mi cng ty s c nhng hnh thc phng vn khc nhau ty thuc vo c th


ring sao cho ph hp. Chng hn nh bn nghe v cch thc tuyn dng ca cng
ty Silicon Straits Saigon cha? Silicon Straits Saigon (SSS) l mt cng ty ca Singapore
mi thnh lp Tp HCM c vi nm nay, y l mt cng ty chuyn lm v Web
(Ruby/Rails), iOS v Android. c gi phng vn th bn phi vt qua c mt
thch thc ca SSS, l bn truy cp vo a ch ny:http://hiring.siliconstraits.vn/ , ti
y bn s thy mt chui m ha kh hiu
dngR3JlYXQhIGhlcmUncyAxc3QgY2x1ZSAvdXNlcnMvOmlkL2FwcGx5ICAg, v
dng ch rt kch thch l Call our APIs and well call you back, nhim v ca bn
l lm sao call ci API ca h apply thng tin c nhn, v SSS s call li cho bn
sau.
P.S. Bn hy th sc mnh trc nh, p n s c mt bi vit sau ny. :)
Th trng vic lm cho cc nh pht trin phn mm ang rt si ng. y l tin tc
tuyt vi dnh cho cc lp trnh vin, nhng n cng khin cho quy trnh phng vn tr
thnh mt thch thc cho cc nh tuyn dng. Mt c gi gn y vit cho ti
by t kin v i iu anh ta quan tm trong quy trnh phng vn tuyn dng :
Anh c cp rng quy trnh tuyn dng ti cng ty Vertigo yu cu mt t code v
d, sau l phng vn qua in thoi, v tip n l mi n cng ty gp
mt lm bi test trc tip. Chng ti c mt quy trnh y chang nh vy, nhng
khng hiu sao phn ln nhng ng vin lt n vng lm bi test trc tip u c cht
lng rt thp v ng l nn b loi tr ngay t vng 1 hoc vng 2. T l nhng ng
vin ti lt n vng cui l rt ln. Chng ti mt rt nhiu thi gian tin hnh
phng vn trc tip vi nhng ngi m thng th h khng nn tr thnh mt lp
trnh vin ngay t u. Ti ang t m rng anh a ra nhng cu hi xc nh no
yu cu nhng ng vin ca anh tr li. Phn no ca quy trnh l hiu qu nht

c th loi tr c nhng ng vin khng ph hp, cch lm nh th no v ti


sao?
Lm th no phng vn lp trnh vin qua in thoi ng cch?
Bn s phi tr gi t nu tin hnh mt cuc phng vn qua in thoi sai
cch mt s lng ph thi gian rt ln cho tt c cc bn lin quan.
Bi vit hng dn cch phng vn qua in thoi tt nht m bn cha tng bao gi
tm thy l bi 5 Cu Hi Thit Yu Phng Vn Qua in Thoi ca tc gi Steve
Yegge, l mt mn qu khc gi n chng ta t Steve trong quy trnh tuyn dng
ca Amazon.
Steve bt u bng vic lu chng ta v hai sai lm nghim trng m nhng ngi
tin hnh phng vn qua in thoi cn nn trnh:
1. ng cho ng vin iu khin cuc phng vn. Ngi phng vn nn gi
th ch ng, hng dn sut cuc tr chuyn cho ti khi h cm thy hi
lng rng ng vin bit cc cu tr li cho nhng cu hi (hoc t b khng
tr li c).
2. Hy cn thn vi nhng con nga ch bit c mi mt tr. Nhng ng
vin m ch bit mt ngn ng hoc mi trng lp trnh ring bit no , v
xc nhn rng hon ton khng bit g v nhng th khc, l mt du hiu cnh
bo ln.
Cuc phng vn qua in thoi khng nn cho ng vin thao thao bt tuyt v
nhng ci m h lm. Ngi phng vn nn y ng vin ra khi vng an ton ca
h mt cht v hi h nhng cu hi lin quan v nhng th m h cha tng nhn thy
hoc lm trc . V mt l tng, bn mun bit ngi ny s phn ng nh th no
khi h phi i mt vi mt ci g mi, nh l codebase ca bn chng hn.
Trong mt n lc khin cho cuc sng tr nn n gin hn i vi nhng ngi phi
tin hnh phng vn qua in thoi, ti sp xp li danh sch 5 Cu Hi Thit Yu
m bn cn hi trong sut mt bui phng vn qua in thoi. Chng khng m bo
rng bn s kim c nhng ng vin tuyt vi, nhng chng s gip loi tr mt s
lng ln nhng ng vin km cht lng m c th lt qua c quy trnh sng lc ca
chng ta hin nay.
1. Kh nng lp trnh. ng vin phi vit mt s code n gin, vi ng
c php, trong C, C++, hoc Java.
2. Thit k hng i tng (OO). ng vin phi nh ngha nhng khi
nim OO c bn, v tin n xy dng cc class m hnh ha mt vn
n gin.
3. Scripting v regexes. ng vin phi m t cch lm th no tm
thy nhng s in thoi trong 50,000 trang HTML.
4. Cu trc d liu. ng vin phi trnh by c nhng kin thc c bn
ca hu ht cc dng cu trc d liu ph bin.
5. Bit v byte. ng vin phi tr li cc cu hi n gin v bit, byte v cc
s nh phn.

Lm n hiu rng: ci m ti ang tm kim y l khi ng vin khng bit mt


cht g v mt trong nhng khi nim nu trn. C th chp nhn c nu h
phi kh khn mt cht v sau th cng c th tr li c. N th OK nu h cn mt
vi gi nh hoc li nhc. Ti khng quan tm liu h c bc tc hoc tr li chm hay
khng. Ci m bn ang tm kim l cc ng vin m hon ton khng c manh mi g,
hoc b nhm ln ti t, v nhng lnh vc trong cc cu hi .
D nhin, bn s mun chnh sa quy trnh ny ph hp vi thc t ti cng ty ca
bn v vy ti khuyn khch bn hy c ton b bi vit . Nhng Steve cung cp
mt s v d bn c th bt u:

Coding
Vit mt function c chc nng o ngc mt chui.
Vit function tnh ton s fibonacci th N.
In ra bng tnh nhn ln ti 1212.
Vit mt function tnh tng cc s integer t mt file text, mi s int nm
trn mt dng.
Vit function in ra cc s l t 1 n 99.
Tm gi tr int ln nht trong mt mng int.
nh dng mt gi tr RGB (3 s dng 1-byte) thnh mt chui 6-digit
hexadecimal.
Nhng ng vin tt cho vn coding th c th xc nh kh d dng, ch vi mt s
vng lp c bn hoc quy v c l thm mt cht nh dng output hoc vic nhp
xut file. Tt c bn mun bit l liu h c thc s bit lm th no vit chng
trnh hay khng. Bi vit ca Steve ch r iu , nhng tht l thiu st nu ti
khng cp n bi vit Ti sao nhiu lp trnh vin li khng bit code? y. Vn
FizzBuzz cng tng i ging, v tht l sc khi bit rng rt nhiu ng vin khng
th lm c. iu tht kh hiu, n ging nh l mt g li xe ti tng lai m li
khng c kh nng tm thy chn gas hoc cn s vy.

Lp trnh hng i tng


Thit k mt c bi m c th s dng cho nhiu ng dng nh bi th
loi khc nhau.
M hnh ha mt vng quc ng Vt nh l mt h thng cc class,
s dng trong mt chng trnh Vn Bch Th o.
To ra mt class i din cho mt h thng file.
Thit k mt thc th hng i tng (OO) m hnh ha HTML.
Chng ta khng phi ang ni v nhng mt thun li v hn ch ca thit k hng i
tng (OO) y, v chng ta cng khng phi ang hi h v mt kin thc thit k
OO mc thp v ton din. Nhng cu hi ny c t ra y xc nh xem liu
cc ng vin c thn thuc vi cc nguyn tc c bn ca OO hay khng, v iu quan
trng hn l, liu ng vin c th to ra mt gii php OO dng chp nhn c
hay khng. Chng ta ang tm kim nhng ngi c s hiu bit v cc nguyn tc c
bn nht.

Scripting v Regular Expressions


Nm ngoi nhm ca ti phi xa tt c cc s in thoi t 50,000 trang web
template ti Amazon, v c nhiu s trong khng cn s dng na, v chng ti cng
mun sp xp li tt c cc thng tin lin h khch hng ch thng qua mt trang duy
nht.
Hy gi s rng bn trong nhm ca ti, v chng ta phi nhn din nhng trang m
c th cha nhng s in thoi kiu M trong . n gin ha vn , gi s
chng ta c 50,000 file HTML trong mt cy th mc Unix, di mt th mc gi l
/website. Chng ta c 2 ngy ly ra danh sch cc ng dn file cung cp
cho cc nhn vin ca phng bin tp. Bn cn phi a cho ti danh sch ca cc
file .html trong cy th mc m c cha cc s in thoi theo mt trong hai nh
dng sau y: (xxx) xxx-xxxx v xxx-xxx-xxxx.
Bn lm th no gii quyt vn ny? Nn nh rng nhm ca bn ch c thi gian
ngn (2 ngy) lm iu .
y l mt cu hi th v. Steve ni rng c t 25% n 35% trong tt c cc k s pht
trin phn mm ng vin khng th gii quyt vn ny cht no c thm ch vi rt
nhiu li gi v cho php s dng ton b thi gian phng vn cho vn . Ci m
chng ta ang tm kim l mt s min cng chung pht minh li ci bnh xe, v
mt s khc th thn thuc vi cc ngn ng kch bn v regular expressions. i vi
ti, cu hi ny cho bit liu mt lp trnh vin s dnh nhiu ngy lm cng vic lp
trnh m anh ta hoc c ta c th d dng trnh c, c l ch vi mt cht tm kim
nhanh v mt s code mu tn ti ngoi kia.

Cu trc d liu
Mt s kiu cu trc d liu thc s ph bin, v d trong java.util l g?
Khi no th bn nn s dng mt danh sch lin kt v khi no th s dng
mt vector?
Bn c th biu din mt Map bng mt tree? Th cn bng mt list th
sao?
Lm th no bn c th in ra nhng node trong mt tree nhng cp
khc nhau (v d: cp 1, sau cp 2, sau cp 3, v.v)
Tc insert ti nht l ca mt hashtable hay mt cy nh phn?
C nhng ty chn no cho vic thc thi mt hng i u tin (priority
queue)?
Mt ng vin nn c kh nng th hin mt mc hiu bit c bn trong hu ht cc loi
cu trc d liu. Chnh xc hn, nhng loi nh mng, vector, danh sch lin kt,
hashtable, tree, v graph. H cng nn bit v nn tng phc tp ca thut ton
big-O: hng, logarit, tuyn tnh, a thc, hm m, v giai tha. Nu h khng th, th
l mt tn hiu cnh bo ln.

Bit v Byte

Hy ni cho ti cch lm th no kim tra xem liu mt bit c nm v


tr cao trong mt byte hay khng.
Vit mt function m tt c cc bit trong mt gi tr int; v d:
function c dng l int countBits(int x)
M t mt function ly u vo l mt gi tr int, v tr v gi tr true nu
bit pattern ca gi tr int th ging ht nu bn o ngc n, v d:
boolean isPalindrome(int x)
Nh Steve ni, My tnh khng c 10 ngn tay, chng ch c mt. V vy con ngi cn
phi bit mn ny. Bn khng nn b i x bng mt s im lng khng thoi mi sau
khi hi mt ng vin v gi tr ca 2^16; n l mt s c bit. H nn bit n. Tng t
nh vy, h nn bit v nn tng ca AND, OR, NOT v XOR v php AND theo bit khc
php AND logic nh th no. Bn c th thm ch hi v s signed vs. unsigned, v ti
sao cc php dch bit c th quan trng. H nn c kh nng gii thch ti sao cu
chuyn ca cc lp trnh vin ng tui l, ti sao cc lp trnh vin ngh rng Oct 31
v Dec 25 l cng mt ngy? l mt cu chuyn ci.

You might also like