본문 바로가기
TIL(Today I Learned)

[OKKY 4월 세미나] 개발자, 어떻게 성장하는가?

by 쿠키쿠 2023. 4. 28.

1. 주제 : 개발자, 어떻게 성장하는가?

2. 일정 : 2023년 4월 28일(금), 오후 8시 (60분 소요)

3. 발표자 : 이민석 교수님

4. 강연 목차

  • 성장이란 무엇일까?
  • 개발자 성장의 단계
  • 잘못된 성장의 원인과 대책
  • 학교는 학교다

 

개발자를 준비하는 사람들을 위해 이민석 교수님께서 '개발자, 어떻게 성장하는가?' 라는 주제로 세미나를 진행하셔서 약 100분간의 강연을 들을 수 있었다. 

 

'성장이란 무엇일까'에 대한 주제를 시작하면서 아래와 같은 자가진단을 보여주셨다.

아직 시작 단계라고 하지만 정말 많이 부족하다는 사실을 한번 더 깨달으면서 강연을 들었다...

(앞으로 위 내용을 숙지하면서 수시로 봐야겠다)

 

- 소트웨어 개발 배우기가 왜 어려울까 ? 

1. 프로그래밍 언어, 데이터구조 

-> 완전히 세세한 절차와 데이터의 디테일에 대한 고려를 우리는 해본적이 없다. 소위 말하는 '컴퓨터적 사고' 훈련이 필요한 영역이다.

-> 젖가락질, 자전거 배우기와 같다. 직접 해보는 많은 연습이 필요하며 과제처럼 해야한다.

-> 한 언어에 익숙해지면 다른 언어 배우기는 별로 어렵지 않다. 그렇게 익숙해지만 추상화/계층화가 가능해진다.

 

위 말에 특히 공감되었다. 자바스크립트와 자바는 완전 별개의 언어이지만 자바스크립트를 어느정도 학습한 후 자바를 배우니 익숙하지 않는 문법과 개념들은 어려울지라도 공통되는 부분이 있어서 좀 수훨한 느낌이 들었다.

 

2. 프레임워크

-> 워낙 많고 계속해서 새로운 것이 나오기 때문에 개발자는 계속 공부해야 한다. 

-> 따라해보고 현업 수준의 경험을 쌓고 배워야 할 것도 많다.

 

3. 알고리즘

-> 비용 관점에서 자원 효율적인 코드를 만들기 위한 노력이다.

-> 개발자 채용 시장에 최소한의 알고리즘 (+ 코딩) 역량이 진입장벽으로 존재한다.

-> 알고리즘을 온라인 코딩 테스트를 통화 할 수준까지 '토익처럼' 공부하자

-> 무엇보다 정답 보는 걸 두려워 하지 말자. 패턴을 익히는 것이 중요하다

 

프로그래머스에서 코테를 풀면서 막히면 몇 시간씩 투자하고 그래도 안풀리면 일단 놔두고 다음 문제를 풀고 했는데 교수님께서 그러지 말라고 하셔서 머리가 띵했다. 효율을 강조하시며 정답을 보고 그 코드를 따라 쳐보면서 이해하고 패턴을 익히는 것이 무엇보다 중요하다고 하셔서 코테 공부에 있어서 방향을 잡는데 많은 도움이 되었다.

 

4. 컴퓨터 과학 이론들

-> CS가 부족하면 금방 바닥이 드러나며 개발자로서 장기적인 연봉에 영향을 준다. 

-> 취업 인터뷰에서 면접관과 소통을 위해 최소한의 학습이 필요하다. 특히 협업을 위한 기술적 소통 언어에 해당 ! 

-> 운영체제, 네트워크, 데이터베이스, 알고리즘, 프로그래밍 언어론, 컴파일러... 등 모든 이론에 정통 할 필요까지는 없지만 전반적인 전공 이론에 대한 indexing이 필요하다. 적어도 몇 주제에 대해서는 심도있는 이해, 그리고 코드와 이론의 맵핑이 가능해야한다.

 

디케이***인 면접을 보면서 CS에서 털린 기억이 떠올랐다. 물론 그 후 '면접을 위한 CS 전공지식 노트' 책을 구매하여 읽기에 들어갔으나 몇 장 읽고 이해가 잘 안가서 잠시 멈춰있다. 물론 지금까지 멈춰있다..

 

5. 진짜 데이터

-> 특정 산업, 서비스 도메인의 지식과 현업 경험에 의해서만 배워진다.

 

 

-  개발자는 어떻게 성장 하는가?

- 정해진 답은 없다. 그냥 열심히 해야한다. 특히 이 과정속에서 작은 성취와 큰 성취를 느끼면서 재미를 느껴야 한다. 교수님께서 말하는 재미란 과정이다 아니다. 과정은 언제나 힘들다. 좋은 성과나 보람을 통해서 재미를 느껴야 한다. 이점이 정말 중요하며 그래도 재미가 없으면 다른 길을 가는게 낫다고 하신다. 

 

- 회사에서 원하는 신입은 우리가 생각하는 신입과 다르다. 즉, 중고 신입을 원하는 추세이기에 우리가 생각하는 신입으로 들어가기는 많이 힘든 상황이며 신입을 뽑는 수도 줄고 있다.

 

- 사이드 프로젝트 : 고객이 단 한명이라도 있는 뭔가를 만들어 보는 경험이 필요하다.  필요없는 기능이라도 학습 의도가 담긴 기능을 추가하는게 좋다

 

- 마우스 쓰지말고 Hot-Key 를쓰자, vim 에디터를 쓰자 

- 디버거를 쓰자 디버거를 잘 하는 개발자와 그렇지 못한 개발자의 정말 많은 차이를 가져온다.

- ChatGPT와 같은 AI 도구를 잘 이용하자 

 

- 시간 관리를 잘해야 한다. 프로는 시간 관리를 통해 자기 몸값을 안다.

-> 오답 노트를 쓰고 (issu관리) 쓰고 예측 시간과 해결에 걸린 실제 시간을 쓰자 

-> 내가 쓰는 시간을 관리하자

 

-  프로젝트를 대하는 자세

- PBL : Project Based Learning 

-> 키워드는 프로젝트가 아니라 학습이다. 배우는 과정에서는 창의성이 크게 중요하지 않다.

-> 타 사이트를 모티브로한 클론 코딩도 괜찮다.  새로운 문제로 기획하느라 머리 쓰는 시간을 아끼자

->팀안에서 문제의 관점을 논의하고 해결을 위한 기술과 협업 방법을 논의하자

-> 분업이 아닌 협업을 해야한다.

-> 문제애 대한 학습과 토론, 팀원들의 문제에 대한 관점 공유 조정

 

위 이야기를 들으면서 참 많은 생각이 들었다. 부트캠프에서 진행했던 프로젝트는 철저한 분업이었다. 클론 코딩이었기에 기획이 필요없어서 각자 맡은 파트를 나워서 자신의 것에 몰두하고 그리고 FE와 통신해보는게 끝이었다.

'프로젝트는 분업이 아니라 협업이 중요하다.'

이 말을 명심해서 다음 있을 프로젝트에서는 팀원들에게도 철저한 분업이 아닌 협업의 중요성에 대해 이야기 해줘야 겠다.

혼자가 아닌, 함께 일하고 싶은 개발자로 성장하자.