미국 살기_4

Memory 2016/01/16 09:30
간만에 올리네요. 새해 복 많이 받으세요!
적응기 안쓴 연말에 이사하고, 짐정리하고 하다보니 벌써 입국한지 60일이 좀 안되는 시점이 되었습니다.




뭐 암튼 몇일동안 사이에 지난번에 Santa monica 면접본 회사는 언리얼 한다는데 자꾸 유니티 언급해서 떨어지고, (아마도 더 많은 이유가 있었겠지만..)

* 처음 이사오고 나서 장만한 TV 다이입니다.
사용자 삽입 이미지

* 한국에서 붙인 이삿짐이 1월 9일에 드디어 도착했어요.
사용자 삽입 이미지
총 87개 박스를 다 풀어서 대충 정리하는데만 3일. 일평균 10시간 정도 걸렸습니다. OTL..
정리할 가구가 아직 도착하지 않아 (새로 주문 했습니다. 이케아꺼 싼거 2번 사보고 도저히 이건 쓰면 안되겠다는 허접한 품질이 가장 눈에 먼저 띄더군요)
아직도 정리할 박스가 8개 정도 남아 있습니다.

암튼, 새로 이사온 동네는 코리안 타운입니다. 크리딧문제와 직업문제가 있어 제대로된 아파트 (교외에 사람적고 범죄률 낮아서 차가 덜 막히는 동네에, 좋은 학생들이 있는 학교 근처) 는 구하질 못해 다운타운 근처 코리안 타운으로 왔습니다. (자유 이민의 부작용 되겠슴돠)

* 그래도 여긴 천조국.. 집근처 다른 집을 보면 으리으리~~!!! 하게도 마치 판타지 RPG INN을 보는듯한...
사용자 삽입 이미지

새롭게 이사온 LA다운타운 근처에서 유니티 개발자 채용한다는 공고를 몇일동안 보일때 마다 두들겨 보았더니..
다행히 LA 다운타운에 몇몇 회사에 일자리가 있어 resume를 넣고 linkedin에 정보 업댓하면서 몇일을 보냈던거 같아요.

* Linkedin 정보
https://www.linkedin.com/in/shinhyunmin

처음 인터뷰했을때를 회고해보면...
버벅버벅이는 영어로 인해 원할하게 제가 가지고 있는 능력을 어필하지 못했다는 생각이 들었고,
코딩 Test도 없어서 살짝 멘붕오기도 했습니다.

몇일 첫 인터뷰를 꼽씹으며 시간을 보내던중 드디어 인터뷰보자는 회사에서 연락이 왔고, 어제 인터뷰를 보았습니다.
첫 인터뷰때의 교훈이 있었기에 인터뷰 전날 저를 설명하는 자료를 만들었습니다.

인터뷰전 소개자료
https://www.dropbox.com/s/foyett316knk42v/Presentation.pptx?dl=0

처음 인터뷰장에 들어갔을때 영국친구 한명과 독일친구 한명 총 2명과 인사를 하고 인터뷰를 진행했는데...
"영어가 부족해서 자료를 만들어왔다. 시간을 달라"고 요청했고, 그 분들 역시 이력서 한장 가지고 따지기 보다는 뭐 만들어왔다니.. (사실 빔프로젝터도 들고 갔습니다.)
보자고 해서 위의 링크된 자료로 프리젠테이션을 했습니다.

(인간은 역시 도구의 동물입죠... 넵)

다행히 일반적인 프로젝트 검증은 화이트보드와 준비한 자료로 충분히 설명했습니다.
(인터뷰 끝날때쯤 프리젠테이션은 훌륭했다.(i seen nice presentation about u) 라고 하더군요.)

하지만, 문제는 코딩시험이었습니다.

1차 면접때 VFX에서 코딩시험을 보지 않아 머릿속 가득 VFX회사는 코딩시험을 보지 않을꺼야라고 생각하고 있었는데.. 갑작이 웃고 즐거운 가운데 코드 테스트하자고 하더니, 다음의 문제를 줬습니다.

1. Linked list class를 만드세요.
이건 간단하게 Class 하나 만들어서 금방 만들었지만, 메모리가 너무 커지는것 아닌가?라는 지적을 받았고, 불필요한 Arguments를 그 자리에서 제거함으로써 해소할 수 있었습니다.

2. 위에 만들어진 클래스에 다음의 데이터가 있다고 생각하고 C Value를 삭제하면 하위 Tree에 있는 Value를 삭제하는 로직을 짜보세요.

화이트보드 코딩중에 끊임없이 여긴 왜 이렇게 했는가? 저긴 왜 저렇게 했는가? 하는 압박을 하더군요.
(이건 시각에 따라 다르지만 좋은 인터뷰 방법인것 같습니다. 왜냐하면 같이 일하면서 서로 녹아들수 있어야 하는데 딴지 걸릴때마다 머리에 부하가 걸리면서 식은 땀이 줄줄줄 흐르면서 당황하게 되니 밑바닥 실력이 들어납니다!)

암튼 아주 더티하고도 부끄러운 코드를 작성했고, 저는 테스트 해보기전이지만, 원하는대로는 작동할 것이다.라고 했지만, 너무 엉성한 코드에 짜증이 올라 왔습니다.

집에와서 다시 코딩했고, 오늘 아침에 재귀호출 함수를 추가해서 개선하였습니다.



using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;


namespace TestCode
{
    class Program
    {
        static void Main(string[] args)
        {
            List<NodeClass> _LinkedNode = new List<NodeClass>();
            SetNode(_LinkedNode);
            #region For Debug (Input data check)
            //foreach (NodeClass _n in _LinkedNode)
            //    Console.WriteLine("Parent:{0}, Value:{1}",_n._Parent, _n._value);
            #endregion

            RemoveValue(_LinkedNode, "A");

            #region For Debug (Input data check)
            foreach (NodeClass _n in _LinkedNode)
                Console.WriteLine("Parent:{0}, Value:{1}", _n._Parent, _n._value);
            #endregion
            Console.ReadLine();
        }

        static void SetNode(List<NodeClass> _LinkedNode)
        {
            string[] _Values = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
            foreach (string _value in _Values)
                _LinkedNode.Add(new NodeClass
                {
                    _Parent =
                    ((_value == "B") ? "A" :
                    (_value == "C") ? "A" :
                    (_value == "D") ? "A" :
                    (_value == "E") ? "B" :
                    (_value == "F") ? "C" :
                    (_value == "G") ? "C" :
                    (_value == "H") ? "D" :
                    (_value == "I") ? "F" :
                    (_value == "J") ? "F" :
                    ""),
                    _value = _value
                });

        }
        static void RemoveValue(List<NodeClass> _LinkedNode, string _X)
        {
            foreach (NodeClass _n in _LinkedNode)
            {
                if (_n._value == _X) _n._value = "";
                if (_n._Parent == _X) RemoveValue(_LinkedNode, _n._value);  
            }
        }
    }

    public class NodeClass
    {
        public string _Parent { get; set; }
        public string _value { get; set; }
    }

}


코드가 아직도 흠이 많습니다. 특히 변수명과 메소드명은 뚜렷하게 현지인들이 식별하기 어려운 상태예요.
이 부분이 아마도 제 약점 같네요.

여기와서 유명 회사에 다니시는 지인분들께 들은 정보에 의하면,

- 회사는 가능하면 Human Resource에 투자할 여력이 있는 회사에 지원할 것.
(제가 생각을 해도 한참 잘못한거 같더군요. 큰 회사일 수록 여유가 있으니 당연히 조금은 여유있게 사람을 뽑는다 하더군요.)
- 회사는 항상 Negotiation 가능한 인재를 찾으니 고집피우지 말것.
- 회사 채용기준은 3가지임.
  . smart : 기본지식이 튼튼하고 해당 도메인 지식과 경험이 있는 인재
  . diligence : 열정을 쏟아 낼 수 있는 인재
  . culture fit (friendly) : 회사 문화에 맞는 인재

매번 느끼는 거지만, 한국과 너무 다른 문화 때문에 정신을 못차리겠습니다.
- 작은 회사에서 먼저 적응하고 큰 회사로 옮기려 했는데, 처음부터 큰회사로 지원하는게 취업은 상대적으로 더 쉽다.
(왜냐하면 작은 회사는 당장 성과 낼 수 있는 준비된 인재가 필요하고, 큰 회사는 키워서 성과 낼 수 있는 인재라도 괜찮음. 즉, 작은 회사나 큰 회사나 급여차이는 별로 없음. 금전적 이유로 따지자면 작은회사가 스톡옵션으로 대박날 확률이 더 큼)
- 영어는 못해도 할 수 있는 모든 도구를 활용하여 커뮤니케이션을 더 원할히 하는게 중요함

문화에 적응하는게 이론처럼 담담히 받아들여지질 않네요.

그럼에도 영주권이 드디어 집으로 배송됐네요! =) 크하하하..
사용자 삽입 이미지
2016/01/16 09:30 2016/01/16 09:30

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다