소프트웨어 학습법 & 협업 태도

devstone·2021년 10월 24일
79

회고

목록 보기
1/1
post-thumbnail

개발을 시작한지도 어언 8개월 ... 그간 느꼈던 소프트웨어 공부법과 협업 방식에 대해 이리저리 정리해두었던 것들을 모아보았다.

1. 소프트웨어 학습법

1-1. 실수, 에러 해결 과정을 허투루 넘기지 말자

  1. 실수를 통해 어떤 것을 몰랐는지 파악하고, 개선하고, 자동화하고, 도구화하자. 오히려 다음 단계로 나아가는 발판이 될 수 있다.
    • 개발 환경의 개선, 코딩 스타일 표기법, 충분한 숙고의 필요성, 코드 버전 관리에 대한 부분 등 어느 부분을 중심에 두고 개선해야할 지는 본인의 실수에 달려있다.
    • 단순반복되는 업무들을 자동화 할 수 있는 방안들을 고안해보자. 능률이 꽤나 올라갈 수 있다
  2. 실수에 자책하지 말되, 같은 실수를 반복하지 않도록 충분한 반성 과정을 거치자. 그렇지만 점차 실수는 줄여야 한다.
  3. 간단하게라도 에러 해결 로그를 기록해두자. 공유하는 것도 좋은 것 같다

1-2. 무조건 직접 만들어보자

  1. 어떤 것을 뜯어보고 이해하는 것 만으로는 내가 절대 구현할 수 없다.
  2. 이론적인 배경을 학습했다면 이론과 동일하게 동작할 수 있도록 스스로 구현해보자. 구현할 수 없다면 충분히 깊게 이해하고 분석했다고 할 수 없다.

1-3. 끊임없이 도전하자

  1. 익숙한 것을 버리고 낯선 방식을 계속 도전하자. 모든 게 완벽해질 때까지 기다리다간 아무것도 못한다. 아직 부족하더라도 계속 새로운 걸 도전하고 도전을 통해 보완하는 과정을 거치자
  2. 학습→이해→적용→개선하기까지의 본인 루틴에서 의도적으로 낯선 방식들을 도입해보자
  3. 낯선 방식의 방향성을 찾기 어렵다면 피드백을 줄 수 있는 타인을 찾자. 인턴 경험이나 개발 동아리 등이 이런 것에 있어서 새로운 관점을 갖게 해줄 수 있는 것 같다
  4. 시도해볼만한 예시 : 함수 작성할 때 10줄 이내로 작성해보기, GUI로 해결했던 것들 CLI로만 해보기, 익숙한 문제들 새로운 언어로 도전해보기 등..

1-4. 코드는 단순히 구현하는 것이 전부가 아니다.

  • 소프트웨어 개발 과정은 아래와 같다.
    1. 요구사항 명세 단계
    2. 요구사항 분석 단계
    3. 기본 설계 단계
    4. 상세 설계 단계
    5. 테스팅 단계
    6. 유지 보수 단계
  • 코드에는 단순히 문제에 대한 솔루션 뿐만 아니라, 논리적 판단, 추론, 비교, 설득 등의 과정이 전부 포함되어야 한다.
  • 단순히 구현에서 그치는 것이 아닌, 테스팅, 유지보수, 버그 픽스, 리팩토링 등 더 나은 방법에 대한 고민을 통해 더 많은 것을 배울 수 있다.
  • 그리고 언제나 내 코드를 모두가 볼 것임을 염두에 두고 작성하자. 나 혼자만 읽을 수 있는 코드는 정말 최악의 코드다

1-5. 스스로 다양한 고민을 해보고 공유하자

  1. 일면적인 사고 방식에서 벗어나 유연한 사고를 가질 수 있어야 한다. 스스로 충분히 고민한 이후에는 공유하는 과정을 통해 다양한 답을 찾는 태도를 갖자. 너무 혼자서 고민만 하는 것도 좋지 않다. 스스로 어느 선을 정해두고 그 이상 고민해도 모르겠을 땐 고민사항도 함께 공유하자. 생각보다 상호 간의 공유를 통해 오히려 효율적으로 해결될 수 있다.
  2. 학습과정에서 지식을 공유하는 다양한 방법들
    • 타인의 코드를 읽고 기억 떠올리며 코드 작성해보기
    • 스터디나 블로그 포스팅
    • 페어프로그래밍 해보기

1-6. 객관적인 태도로 스스로를 파악하자

  1. 지금 내가 하고자 하는 것은 무엇인가
  2. 그것을 위해 필요한 기술은 무엇인가
  3. 지금 내가 하고 있는 것은 내가 목표하는 경로의 어느 지점에 있는가
  4. 나는 한번에 어느 정도를 학습할 수 있고, 목표를 위해서 어느 정도의 비용을 들여야 하는가

→ 무기력증에 빠지지 않기 위해선 스스로 항상 목표를 세우고 갱신하자. 나의 우울감은 성취할거리의 부재로부터 온다.

2. 협업 태도

2-1. 칭찬하기

  • 사소한 것이라도 칭찬 받고 인정 받고 싶어하는 욕구가 기본적으로 내재되어 있다. 내가 그렇듯 남들을 인정하고 칭찬하고 겸손해지자!

2-2. 해야할 말은 의미가 명확하게 전달되도록

  • 말을 해야 나중에 후회하지 않는다. 해야할 말을 안하는 것이 배려가 아니다. 해야할 말을 명확히 하되 무례하지 말자. 할 말은 꼭 해야한다.
  • 즉각적으로 질문하자. 끌어봤자 좋을 것이 없다.

2-3. "내가 한 것"에 큰 의미를 부여하지 말자

  • 남이 한 것을 알아보고 인정하고 칭찬하는 것은 중요하지만, 나 스스로 내가 한 것에 큰 의미를 부여하며 으스대지 말자. 협업의 메인은 "내가 잘한 것"이 아니라 "함께 일하는 것" 이다.
  • 인생은 혼자 살 수 없다. 나보다 뛰어난 사람 혹은 나보다 부족한 사람 등등 모두와 함께 협업을 하게될 것이다. 뛰어난 사람에 대해 열등감을 느끼지도, 부족한 사람에 대해 우월감을 느끼지도 말자. 어차피 함께 결과물을 만들어가는 거고, 뛰어난 사람이 있으면 그들로부터 더 배울 것이 있는 것이다. 혼자 열등감에 빠져 우울해지지 말자! 함께 일하고 싶은 사람은 무조건 잘 하는 사람이 아니다. 그들을 인정하고 배울 것을 배우며 함께 일 할 수 있는 사람이 되어야 더 뛰어난 사람들과 함께 일하고, 내가 그만큼 성장할 수 있다.

2-4. 믿자

  • 상대가 나를 믿어주길 바라듯, 나도 남에게 할당된 것에 대해 믿고 응원하자

2-5. 하던 이야기를 끊지 말자

  • 커뮤니케이션 해야할 일들이 많다면 이전에 이야기하던 사람 or 팀을 우선시 하자
  • 급한 사안이라면 양해를 구하고 꼭 잊지 말고 그 이후에 먼저 찾아가서 그 이야기에 대한 토픽을 지속하자
profile
개발하는 돌멩이

6개의 댓글

comment-user-thumbnail
2021년 10월 25일

저도 쓸데없는 생각과 고민이 정말 많은 편인데,, 덕분에 협업 꿀팁 잘 배워갑니다!!

답글 달기
comment-user-thumbnail
2021년 10월 26일

이제 걸음마 단계인데 정처기 공부할 때 나왔던 내용이랑 비슷한게 많아서 와닿았네요. 열심히 해보겠습니다.

답글 달기
comment-user-thumbnail
2021년 10월 28일

좋은 글 잘 봤어요! 특히 해야할 말은 꼭 하되 무례하지 말자, 인생은 혼자 살 수 없다란 말에 공감되네요! 좋은 글 올려주셔서 감사합니다 :)

답글 달기
comment-user-thumbnail
2021년 10월 28일

좋은 글 잘 봤습니다 🙂

답글 달기
comment-user-thumbnail
2021년 11월 1일

이게 구름 개발자인가..? 무릎을 탁 치고 갑니다

답글 달기
comment-user-thumbnail
2021년 12월 5일

아악

답글 달기