사실 쉽지 않은 질문입니다. 3년차 웹 프로그래머에 대한 정의도 쉽지 않고요. 3년차 웹 프로그래머가 경험하면 좋겠다고 생각하는 내용을 정리하고 있는데요. 실제 현장에 계신 선배 개발자들의 의견을 듣고 싶어 질문해 봅니다.
이런 식으로 질문하면 막막하겠죠. 그래서 제가 욕먹을 각오를 하고 몇 가지만 예시로 적어 봅니다.
- 하나 이상의 웹 또는 앱 서비스를 통해 자신이 만들고 있는 소프트웨어의 사회적 가치를 찾아보는 경험
- 웹 UI, 웹 서버, 모바일, 자료구조, 알고리즘, 네트워크, 데이터베이스가 어떻게 연결되는지에 대한 연관 부분을 찾고 이해하는 경험
- 웹 서비스 운영을 위해 필요한 프로시저, 쓰레드, 락에 대한 지식과 쉡 스크립트에 대한 경험
- Java, Ruby, Python 등 다양한 웹 프레임워크의 기반이 되는 공통 기반 지식에 대한 경험
이 자체만으로도 많은 경험이라고 할 수 있습니다. 하지만 모든 것은 얼마나 깊이 있게 다루느냐에 따라 상당히 다른 내용이 될 수 있다고 생각합니다. 여러분들은 위와 같은 방식으로 정리했을 때 웹 프로그래머가 기본적인 역량을 만들기 위해 필요한 경험들에 어떤 것이 있다고 생각하시나요?
이 질문을 하는 이유는 제가 해야할 숙제를 해야하는 부분도 있지만 그 보다는 현장에 있는 선배들의 목소리를 담아 NEXT 학생들을 가르치기 위함이니 후배들을 위해 선배님들이 한마디씩 해주시면 좋겠네요.
0개의 의견 from FB
4개의 의견 from SLiPP
안녕하세요, 형님 javacafe의 유동환입니다.
흠.. '3년차의 웹 프로그래머'라 저도 생각을 해봤는데요,
먼저 회사원으로서의 3년차에게는 그리 많은 능력을 기대하기는 어려울 것 같습니다. 회사의 규모에 따라 벤처기업이라면 한 사람의 여러 방면 (SW , 웹서버 때론 DB일부)를 볼 수 있겠지만 대기업이라면 그중에 한가지를 재대로 하기도 쉽지 않죠. SW기술뿐만 아니라 엄청난 이메일처리 , 맨날 바뀌는 용어, 조직개편등의 '회사 life'따라가기도 쉽지 않거든요. 기술이 전부라고 생각하면 경력 6~7년차 즈음부터 매너리즘에 빠지는 선배들을 많이 봐왔습니다. 지속가능성 측면에서요^^;
사회적 가치..라는 말은 넘 어렵습니다.
그리고 어떤 도표? diagram? 이런 것을 가지고 가시화 해주시면 좀더 설득력이 있을 것 같구요.
NEXT에서 키워내고 싶은 인재가 아마 '3년차 정도의 내공'을 가진 개발자 양성으로 생각됩니다.
SW 프로젝트는 혼자서 만드는게 아닌 만큼 개인의 능력 / 의사소통 능력 / 자기가 뭐를 하고 싶은지를 결정하는 의사결정 능력 측면을 함께 생각해주시면 더 풍부한 리스트가 나오지 않을까 싶습니다.
ㅎㅎ 적어놓고 보니 얘기가 산으로 갔네요.
10년을 넘게 일해봐도 아직 제 전문분야가 뭔지 모르겠는 1인이었습니다^^;
내가 생각 하는 3년차 웹 프로그래머가 경험해야될 것이라면 딱 두가지는 꼭 경험 해 봤으면 한다. 일단 3년차라면 이제 어느정도 신입의 딱지를 벗고 본격적인 개발자로서의 리소스를 해소 해나가야할 시기일 것이다.
나의 경험에서 미루어 보는 것이지만(모두다가 그렇지 않을까?)
일단 3년차 웹 개발자라면
어떤 것을 했던 주위 대부분에게 인정받는 무언가를 만들어 보아야한다. : 너무 추상적인 내용이지만 개발자라면 개발을 하면서 뭔가 불편하고 불합리 한 것들을 하나이상의 격을 것이다. 본격적인 개발을 하는 시점에서 개발을 하면서 자신을 불편하게 만드는 소스코드가 있다면 그것을 개선하는 코드를 만들어 보는것은 꼭 필요하다고 생각 된다. 이제 본격적인 개발을 해야될 개발자가 이런 불편함에 아무런 의문이나 개선의지가 없다면 그것은 문제가 있다고 생각된다. (예를 들자면 예전 cgi로 web을 만들때 jsp같은 template engin을 c로 만들어 보는 것 같이, c로 웹 프로그래밍을 하면서 항상 문제가 되는 html을 내포하는 소스를 html template과 소스를 분리 해보는 framework를 허접하지만 만들어 봄으로서 좀더 코드가 깔끔해지고 다른 사람들에게도 인정받았던 기억이 있다.)
일단 추상적인 내용이긴 하지만 내가생각하는 경험은 위 두가지가 필수이지 않을까? 한다. 개발 기술 몇가지를 경험하고 그걸 이용하는 것이 이러한 개발자의 자세를 가지고 있다면 언제든지 필요할때 경험하고 사용할 수 있으리라 생각된다.
@koreacio 의견 감사해요.
SW 프로젝트는 혼자서 만드는게 아닌 만큼 개인의 능력 / 의사소통 능력 / 자기가 뭐를 하고 싶은지를 결정하는 의사결정 능력 측면을 함께 생각해주시면 더 풍부한 리스트가 나오지 않을까 싶습니다. => 이 부분도 목록에 추가해 놓은 상태입니다. 앞에 제가 예시로 든 내용은 지식 측면에 한해 정리한 내용입니다. 저도 기술적인 측면 보다는 말씀해 주신 능력이 훨씬 더 필요하다는 것에는 충분히 공감합니다. 이와 관련해 정리한 내용 몇 가지 공유해 봅니다.
위 경험들을 모두 하게하고 싶지만 짧은 기간 내에 하기는 힘들 듯 하고요. 가능한 범위 내에서 최대한 많은 경험을 할 수 있도록 설계하려고 합니다.
@jhindhal.jhang 의견 고맙다. 두가지 내용과 관련해 내가 정리한 몇 가지 경험 공유해 본다.
첫 번째 내용과 관련해 다음과 같은 경험을 하면 좋겠다고 정리해 봤다.
일단 위 4가지가 네가 이야기했던 첫 번째 능력과 부합하는 부분이 있지 않을까 생각한다. 좀 더 구체화해야 학생들에게 전달이 가능하다고 판단했기 때문에 정말 상세하게 하나씩 풀어가고 있다.
두 번째 내용은 아마도 프로젝트 수업을 통해 협업을 하면서 발생하지 않을까 생각한다. 사실 이 두 번째 경험이 정말 중요한 경험인데 학교라는 공간과 짧은 기간 내에 이 같은 경험을 우리가 강제적으로 심어줄 수는 없고, 이런 경험을 할 수 있는 멍석을 깔아줄 수 밖에 없을 듯하다. 일단 팀 프로젝트 기반의 수업을 계속해서 강화하려는 생각은 하고 있다. 아마도 이 부분의 앞에 단 답변에서 일정 부분 소화하리라 생각하고 네 글 속에서 뽑아낼 수 있겠다고 생각하는 경험들 추출해 볼께.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.