Home Talk Free Talk 대학 학부생 진로 고민…. 대학 학부생 진로 고민…. Name * Password * Email 여기 게기판에 올라오는 컴싸 관련 질문들 가운데 최근에 특히 집중적으로 올라오는게 데이터 마이닝, 데이타 싸이언티스트, 인공지능 에 관련 내용이다. 넓은 시각에서 보자면 그 분야가 미래에 중요한 역할을 할것은 분명하다. 문제는 그런 분야가 지금 우리가 말하고 의미하는 분야로 미래에도 존재할것인지 아니면 그 분야는 단지 시작일뿐이고 그 뒤에 따라올 엄청나게 변화된 다른 형태의 애플리케이션일지...그건 아무도 모른다는거다. 한국에 처음 인터넷이 나타나기 시작한 1994년에서 2000년대 초반까지 사람들은 네트웍에 대해 참 많은 이야기들을 했고 미래의 핫한 분야가 될거라 말했다. 한편 어떤 인간들은 네트웍이란 단순히 네트웍 라인만 깔아주면 더이상 할일이 없는 기계적인 밑바닥 인프라 분야라고 폄훼하기도 했다. 하지만 양쪽 모두 지금같은 스마트폰으로 대표되는 모바일 테크놀러지가 이토록 엄청나게 발전하리라 아무도 예측하지 못했다. 지금 네가 어떤 생각을 하고 있든 그건 단순히 지금 현재 나타난 현상을 보고 판단할것일수도 있다라는 것이다. 중요한건 네가 지금 어떤 생각을 하든 그 생각들이 미래에 어떤 형태로 변하는가에 관계없이 변하지 않는것들이 있는데 그게 바로 프로그래밍 기술이란 것이다. 네트웍을 하든 데이터 마이닝을 하든 인공지능을 하든 결국 그 아이디어를 현실로 만드는 작업을 하는 사람이 필요한데 그게 바로 소프트웨어 엔지니어들이다. 그리고 그들이 쓸수 있는 무기는 오로지 한가지 뿐인데 그게 바로 프로그래밍 기술이다. 세상이 어떻게 변하든 어떤 기술이 나타나든 프로그래밍을 할수 있는 능력 자체가 인공지능에 의해 대체되기를 현직에서 소프트웨어를 개발하는 나의 입장에서 볼때는 거의 불가능하다. 애플리케이션이 엄청나게 다양화되고 변해도 그것들을 실제로 만드는 프로그래밍 기술은 여전히 80년대나 90년대가 2000년대나 동일하다. 그 화려한 네트웍 애플리케이션도 결국 벡엔드의 변하지 않는 연결고리는 tcp/ip같은 통신 프로토콜이고 그런것들은 이미 수십년전에 나온것들이고 여전히 변하지 않고 쓰이고 있고 그것들이 있어야 통신이 가능하다. 내가 하고싶은말은 이런거다. 일단 학교에서는 기본에 충실해라. 기본만 제대로 배워놔도 반이상 먹고 들어간다. 네가 하고 싶은것들은 정확히 말하자면 컴싸니 소프트웨어니 이런것들이 아니고 그보다 높은 레벨의 애플리케이션, 즉 상품이란 뜻이다. 그런것들은 소프트웨어 엔지니어들이 결정하는게 아니고 더 높은 차원의 다른 분야 지식을 가진 전문가들이 생산한다. 그들이 기획한 기술 상품을 스펙형태로 소프트웨어 엔지니어들이게 전달하면 소프트웨어 엔지니어들은 그들이 가진 프로그래밍 지식으로 그 이론들을 현실적을 프로그램으로 만드는거지. 그리고 소프트웨어 개발을 20년정도 해온 나의 입장에서 볼때 소프트웨어 엔지니어들의 무기는 다양한 프로그래명 경력이지 어떤 특정 애플리케이션에 종속된 도메인 지식이 아니다. 회사를 옮기면 전혀 다른 애플리케이션이 널 기다리고있다. 아니, 같은 애플리케이션이라도 회사마도 제작하는 방식 알고리듬 심지어 랭귀지 마져도 달라진다. 그때마다 난 이런거 몰라요하고 주저앉을순 없다. 적응해야하고 어떤 이유도 필요없이 만들어내야하는거다. 학생때 내가 지금 설명한 모든걸 이해하기는 현실적으로 불가능하다. 실제 프로들의 세계에서는 어떤 특정 애플리케이션을 개발할때 대단히 다양한 분야의 엔지니어들이 협업을 하는데 그들의 일은 대단히 세분화되어 있고 서로의 분야에 대해 전혀 모르는 경우가 많다. 네가 언급한 분야를 해보고 싶다라는 의미는 그래서 대단히 광범위하고 정확히 그 분야의 어떤 세부 작업에 참여하고 싶냐라는 질문을 네 스스에게 해야한다. 인공지능의 알고리듬 개발을 하고 싶다는건지 아니면 알고리듬 이전 단계의 새로운 인공지능 컨셉을 개발하고 싶다는건지, 인공지능 하드웨어를 설계하고 싶다느건지 아니면 다른 사람들이 만들어놓은 모든 스펙들을 코딩하는 실제 소프트웨어 개발자가 되고 싶다는건지 그렇게 다양하고 세분화된 분야와 역할 가운데 정확히 뭘 하고 싶다라는건지 생각해야 한다. 그건 지금 당장은 어렵고 어떤 형식으로든 그런 분야에 대한 실질적 경험이 선행되어야한다. 하지만 현재 너의 위치는 그런 단계를 경험할 위치는 아니기에 일단 지금 전공의 이론적 지식과 가능한 많은 코딩 기술으 익혀라. 그리고 그걸 필드에 조금씩 적용해보면서 새로운 분야에 대한 진로를 찾아가는게 안전하다. 결론은 요약해주면 이렇다. 1. 현재 학교에서 배우는 내용에 충실해라. 2. 소프트웨어 엔지니어가 되려는건지 과학자가 되려는건지 정확히 결정해라. (이건 시간이 좀걸린다) 3. 어떤 한군데 애플레이션 분야에 꽂히지 말고 다양한 애플레케이션에 적응할수 있는 기술능력을 키워라. 그래도 너같은 생각과 질문을 하는건 바람직하고 좋은 현상이다. 건투를 빈다. I agree to the terms of service Comment