구글의 구인광고

Programming/Etc 2007. 2. 21. 10:55

이 수학문제를 풀어야 입사지원 된다?

실리콘밸리 중심가 101번 고속도로가 통과하는 곳에 최근 광고판 하나가 달렸다. 광고판에는 아무런 설명없이 수학문제 하나만 덩그러니 담겨있다.


검색업계의 강자 구글이 아무런 표시도, 설명도 없는 광고판을 세운 이유는 이 문제를 풀 수 있는 수학적 두뇌를 가진 사람을 골라 입사 기회를 주기 위해서라고 한다. 수학자 폴 아도스의 유명한 “수학자란 커피를 정리로 변환시키는 장치”라는 말을 연상시키는 채용방법이다.


광고판에는 ‘{첫 10자릿수 솟수 e}.com’이라고 적혀있다. 답은 7427466391이다. 이 문제를 풀어 7427466391.com으로 접속해보면 2번째 관문인 다른 문제가 나오는데, 여기에도 구글이라는 이름은 없다.


2단계 문제까지 풀면 비로소 구글 연구개발부서인 구글랩 페이지로 연결되며, “구글을 키워나가면서 우리가 배운 점 한가지는 우리가 찾고자 하는 상대방 역시 우리를 찾고 있을 때, 그 사람을 더 쉽게 찾게 된다는 것이다. 우리는 세계 최고의 엔지니어를 찾고 있고, 당신은 여기에 와있다”라는 환영메시지를 볼 수 있다.


메시지는 “짐작하겠지만 우리는 엄청난 량의 이력서를 매일같이 받고 있기 때문에 이러한 절차를 이용해 ‘신호대 잡음비’를 개선하려 하는 것”이라는 말로 이어진다.


올해 말 27억달러 규모의 IPO를 준비중인 구글은 깐깐한 채용 과정으로 유명하다. 회사 설립 첫날부터 3월 31일 현재 직원수 1907명에 이르기까지 구글은 자사만의 채용 기준을 엄격히 준수해왔다.


팔로알토 차고에서 운영되던 초창기에 입사한 한 직원은 “면접 볼 때 세르게이 브린과 래리 페이지(이상 구글 공동설립인)의 책상 위에는 8권의 채용관련 서적이 쌓여 있었다”고 말했다.

구글 직원들은 많은 면접 단계를 거쳤으며, 종종 수학이나 사업전략에 대한 테스트도 요구받았다고 한다. 채용조건은 이와같은 단계가 끝난 후에나 알 수 있었다. 최근 2년 동안에는 우수 인력을 영입하기 위해 프로그래밍 대회를 개최하기도 했다.


구글이 시행한 또한가지 독특한 채용방법은 검색결과 페이지의 광고 링크를 이용한 것이다. 예를 들면 아마존의 검색기술 연구팀인 A9의 팀장 우디 맨버(Udi Manber)를 구글에서 검색하면 검색결과 오른쪽 스폰서 링크에 ‘구글에서 일하세요’라는 문구가 뜨고, 구글 구인 페이지로 연결하는 링크가 나타난다.


한편 현재 구글에서 근무하는 컴퓨터 엔지니어들은 대부분 스탠포드 대학 컴퓨터과학도 출신인 것으로 알려졌다. 이번 수학문제 광고판은 산타클라라 방향에서 롤스톤으로 빠지는 길 근처에 세워졌다. 이 회사 관계자는 상황에 따라 광고판을 더 늘릴 수도 있다고 밝혔다.


출처: ZDnet

    

설정

트랙백

댓글

Iterator Design Pattern

Programming/Design Patterns 2007. 2. 21. 10:54
// Iterator interface //

interface Iterator{
public function hasNext():Boolean;
public function next():Object;
}

// Aggregate interface //

interface Aggregate{
public function iterator():Iterator;
}

// Book class //

class Book{
private var name:String = "";
public function Book(name:String){
this.name = name;
}
public function getName():String{
return name;
}
}


// BookShelfIterator class //

class BookShelfIterator implements Iterator{
private var bookShelf:BookShelf;
private var index:Number;
private var book:Book;
public function BookShelfIterator(bookShelf:BookShelf){
this.bookShelf = bookShelf;
this.index = 0;
}
public function hasNext():Boolean{
if(this.index < bookShelf.getLength()){
return true;
}else{
return false;
}
}
public function next():Object{
this.book = bookShelf.getBookAt(this.index);
this.index++;
return this.book;
}
}



// BookShelf class//



class BookShelf implements Aggregate{
private var books:Array;
private var last:Number = 0;
public function BookShelf(){
this.books = new Array();
}
public function getBookAt(index:Number):Book{
return books[index];
}
public function appendBook(book:Book):Void{
this.books[last] = book;
last++;
}
public function getLength():Number{
return last;
}
public function iterator():Iterator{
return new BookShelfIterator(this);
}
}



// Main class //

class Main{
private var bookShelf:BookShelf;
private var it:Iterator;
private var book:Book;
public function Main(){
init();
}
public function init(){
this.bookShelf = new BookShelf();
this.bookShelf.appendBook(new Book("Around the World in 80 Days"));
this.bookShelf.appendBook(new Book("Bible"));
this.bookShelf.appendBook(new Book("Cinderella"));
this.bookShelf.appendBook(new Book("Daddy-Long-Legs"));
this.it = bookShelf.iterator();
while(it.hasNext()){
this.book = Book(it.next());
trace(""+this.book.getName());
}
}
}
    

설정

트랙백

댓글

동적으로 로드한 이미지 Allow smoothing 컨트롤 하기...

Programming/ActionScript 2.0 2007. 2. 21. 10:54

Dcaland.com을 만들면서 사용한 메소드를 하나 올릴까 합니다. 플래시 8 버전에서는 이미지를 외부로 부터 로드를 할 경우에 default로 Allow smoothing(매끄럽게)이 false 값을 가지게 되는데 Allow smoothing이 false일 경우에는 에니메이션(좌표,로테이션등) 할때 이미지가 지글거리는 문제가 있죠. 라이브러리에 등록된 이미지는 속성에서 수동으로 채킹을 해서 사용하면 된다지만 외부에서 동적으로 불러온 이미지를 움직일 때는 문제가 있죠. 아래 메소드는 그 문제를 해결해 주는 메소드입니다. http://www.kaourantin.net/ 에 기술된 내용을 간단하게 수정해서 사용하고 있습니다.







import flash.display.*;

private function loadImg (target : MovieClip, url : String) : Void
{
        var bmc : MovieClip = target.createEmptyMovieClip ("bmc", target.getNextHighestDepth ());
        var listener : Object = new Object ();
        listener.tmc = target;
        listener.onLoadInit = function (mc : MovieClip)
        {
                mc._visible = false;
                var bitmap : BitmapData = new BitmapData (mc._width, mc._height, true);
                this.tmc.attachBitmap (bitmap, this.tmc.getNextHighestDepth () , "auto", true);
                bitmap.draw (mc);
        };
        var loader : MovieClipLoader = new MovieClipLoader ();
        loader.addListener (listener);
        loader.loadClip (url, bmc);
}


BitmapData 를 사용하기 위해서 import flash.display.*; 임포트 시켜서 사용하세요
입맛에 맞게 수정해서 사용하세요 어떻게 보면 약간의 꼼수가 있는거 같지만 8.5 나오기 전까지는 작지만 유용한 메소드가 될듯 싶습니다.

    

설정

트랙백

댓글

jasu'blog 오픈합니다.

Miscellaneous/Story 2007. 2. 21. 10:53

그동안 사용하던 개인 사이트 및 블로그를 정리하고 이것으로 개인 자료를 정리해 보려고 합니다.
여러가지 블로그를 찾아보다가 용량 및 트래픽 무제한으로 제공하는 티스토리로 오게 되었는데 언제까지 그런 지원이 가능할지는 모르겠네요...

앞으로 개인적인 관심 분야 및 기타 자료들을 모아놓을 예정입니다. 참고로 앞으로는 특별히 대외적인 글이 아닌 이상은 글에서의 존칭은 생략하도록 하겠습니다.

감사합니다.

    

설정

트랙백

댓글