잡담

삼성SDS 랜선 멘토링 후기

민철킹 2021. 2. 18. 16:36

행사 순서는 다음과 같다.

대학생을 대상으로 진행된 행사였기 때문에 현재 내가 고민했던 것들이나 궁금했던 점들을 기반으로 말씀해주셔서 굉장히 유익한 시간이었다.

다음에 코드 리뷰나 백엔드 전반에 대한 멘토링이 열려서 꼭 다시 참석하고 싶다.

 


강의 내용 정리

# 어떤 기술을 쓰게 될지는 나도 모르고 회사도 모르고 세상도 몰랐다.

  • 대학생 때 배우고 생각했던 것과는 아예 다른 정말 다양한 기술을 실무에서는 사용하고 다루게 된다.

 

# 개발자란?

  • 세상의 문제를 {기술로} 해결하는 사람
    • 기술 : 문제를 풀기 위한 도구
  • 능력 있는 개발자 == 문제를 잘 해결하는 사람
  • 기술을 많이, 잘 사용하는 것이 개발자의 목표가 아니다.
  • [ 문제 ]가 너무나도 다양하다.
  • 언제 어떤 문제를 풀게 될지 모른다.
  • 심지어 계속 변하고 어떻게 변할지도 모른다.
  • 그런 문제들을 계속해서 해결해 나가야 한다.
  • 따라서, 기술을 많이 갖고 있어 봤자 새발의 피
  • 문제를 풀기 위한 기술이 무엇인지 빠르게 찾아내고, 이를 빠르게 습득하는 기술 ==> 좋은 개발자가 갖춰야 할 요소
  • 기술을 빠르게 습득하는 기술 == 기초
  • 기술을 빠르게 습득하기 위한 힌트 == 트렌드
  • 프레임워크나 API의 유행은 계속 바뀌지만, 근간이 되는 기반 지식은 오래간다.
  • 즉, 이것을 이용하여 문제를 해결하는 능력은 평생 간다.

 

# 기초

  • 기술을 잘 선택하고, 잘 쓰기 위한 근간이 되는 것들
    • Network OSI 7 Layer, Operating System, Algorithm, 자료구조, 그래픽스....
    • 리팩토링, Clean Code, Programming Patterns, 프로그래밍 패러다임(객체지향, 함수형 프로그래밍 등)
    • Monolithic or MSA Architecture, TDD, BDD 등
  • 기술은 스택 한 줄만 다뤄보아도 충분하다.
    • ex) React - Spring - MongoDB
  • 익숙해진 후, 기준을 삼아 다른 기술들을 비교해 보거나, 기초 지식을 쌓아 나가기
  • 아는 만큼 보인다. 한 가지 기술에는 꼭 깊이 익숙해지자.
  • 한 가지를 깊이 있게 알게 되면 다른 것에 익숙해지는 시간이 걸릴 뿐이지 금방 배울 수 있다.
    • ex) java를 배우고 나서 python을 배우면 금방 배우는 것과 같은 맥락
  • 기술을 다루는 것은 해봐야 안다.
  • 다뤄보고 고민하는 만큼 이야깃거리가 생긴다.
  • 내 적성을 알 수 있게 도와준다. (back-end VS front-end)
  • 트렌드 쫓기 ==> 시장 분위기와 흐름을 주기적으로 파악하기

 

 

# 비기술 영역

  • 내가 풀스택 엔지니어라서 모든 걸 할 수 있다?
  • 1인 프리랜서 개발자라도 협업할 일은 있다.
  • 모든 일은 사람과 함께 팀을 이뤄야 한다. ==> 경쟁력을 갖추는 길
  • 리더쉽 역량
    • 리더쉽을 이해하는 사람이 팀원으로서도 좋은 팀원이 된다.
    • 팀의 일이 곧 나의 일
    • 회사에서 일하려면 팀의 목표와 나의 목표가 일치되어야 한다.
    • 팀의 일을 추진해 나가는 경험 쌓기
  • 내가 한 명의 팀원으로 어떤 개성을 가진 사람인지 알기 (나를 먼저 파악해야 함.)
  • 개발 팀은 축구팀에 비유된다.
    • "내가 이만큼 잘난 사람이다" 보다는 "조직에서 나는 이런 사람이고, 이런 역할을 할 수 있다."
  • 내 강점을 확실히 알자.
  • 알고 어필하자.
  • 왜?라는 질문을 던져보자.
  • 보다 근본적인 것들에 집중하자.
  • 최근 트렌트는 마케팅 부서, 개발 부서, 기획 부서가 따로 나누어져 있는 것이 아닌 한 팀에 마케팅 담당자, 개발자, 디자이너, 기획자들이 모여있기 때문에 더더욱 커뮤니케이션 능력이 중요해지고 있다.

 

 

# 좋은 코드

  • 좋은 코드의 궁극적인 목표는 잘 동작하는 코드.
  • 잘 동작하기 위해서는 함께 개발(협업)을 해야 한다.
  • 즉, 여러 명의 개발자가 함께 개발할 수 있는 깔끔한 코드 == 좋은 코드
  • 코드의 스타일, 패러다임 등이 일관성 있게 짜여있어야 함.
  • "이 코드를 남들이 봤을 때, 나중에 내가 다시 봤을 때 이해할 수 있을까?"를 항상 고민하고 생각하기.
    • 직관성 있는 코드

다시 한번 마음을 다잡고 방향을 설정할 수 있는 좋은 기회였다고 생각한다. 다음에 또 이런 기회가 감사하게 주어진다면 또 참석하고 싶다.

반응형