소프트웨어 장인 - 산드로 만쿠소 저 의 '4장. 소프트웨어 장인의 태도'를 읽고 정리함과 동시에, 나는 책에서 소개하고 있는 것들을 어떤 방식으로 하고 있는지, 깨달은 바는 무엇인지를 중간중간 적어보았다.
나의 커리어와 프로페셔널로서의 미래는 누구의 책임인가?
SW 프로페셔널로 대우 받기를 원한다면 프로처럼 행동해야 한다.
그러기 위해서는 언제/무엇을/어떻게 배울 것인지 스스로 결정하고,
스스로의 발전에 돈과 시간을 투자해야 한다.
1. 내 커리어 주도적으로 이끌기
독서
- 특정 기술에 대한 서적: 현재의 업무에서 다음에 하고 싶은 업무로 옮겨가기 위해 필요한 특정 기술에 대해서 상세하게 또는 이용 방법을 급하게 알아야 할 때 필요하다. 그러나 배운 가치가 상당히 빨리 떨어진다. 새 버전의 기술이 릴리즈 되거나 다른 기술이 인기 있으면 이전만큼 쓸모없기 때문이다.
- 백엔드에서 데브옵스 일도 같이 하게 되면서 <테라폼 설치에서 운영까지 - 예브게니 브릭만 저>을 읽고 공부하고, 적용해 본 적이 있다.
- 특정 개념에 대한 서적: 기초를 쌓을 수 있는 책. 당장 활용하기 어렵고 제대로 이해하고 습득하는데도 시간이 오래 걸리지만 알아두면 새 기술을 배울 때 학습 시간을 단축시킨다.
- 네트워크 지식에 대한 갈증을 더이상 미루기 싫어서 요즘 <컴퓨터 네트워킹 하향식 접근 - James F. Kurose, Keith W. Ross 저>을 읽고 공부하고 있다.
- 행동양식에 대한 서적: 효율적으로 팀에서 일할 수 있게 안내하거나, 일반적인 상황에서 더 나은 프로페셔널이 될 수 있도록 조언하는 책.
- 소프트 스킬이 개발 실력과 거의 비슷하게 중요하구나 라는 것을 입사하고 배웠다. 애자일 방법론에 대한 책을 제대로 읽고 싶다.
- 혁명적 서전(또는 고전): 일 하는 방식이나 개인의 가치관을 바꾸는 책
- ML연구팀의 코드를 리펙토링 해야 하는 경우가 있었는데, 이때 추천해주신 책이 <Clean Code 클린 코드 - 로버트 C. 마틴 저> 였다. 그리고 ctrl + C, V로 이루어진 코드를 어떻게 우아하게(재사용성이 높고, 유지 보수도 쉽게..) 리펙토링 할 수 있을까 싶어서 디자인 패턴에 대해서도 조금 알아본 바가 있다. 이 때는 책은 아니고, 강의 <자바 디자인 패턴의 이해 - Gof Design Pattern>를 보았다.
블로그
- 경험과 발견을 공유함으로써 훌륭한 프로페셔널 커뮤니티를 이루는데 도움이 되어야 한다.
- 블로그를 쓰는 습관을 들이고 싶어서 <글또> 활동을 하고 있다.
- [글또] 글또 6기 시작
기술 웹사이트
- 시장의 최신 동향을 알아보기에 좋은 수단.
- 매주 메일로 받아보는 ≪ 📧 Dev Event 이메일 구독서비스≫를 구독 중이다.
- https://roadmap.sh/ 을 참고해서 각 직군의 주요 기술 스택이 뭔지 감을 잡는 것도 좋을 것 같다.
끊임없는 훈련
- 문제를 '어떻게' 해결할 것인지에 대한 끊임없는 훈련
- 이를 통해 편안해지고 주의 집중과 의식적인 노력 없이도 자연스럽게 할 수 있게 되자!
- 무엇을 훈련할 것인가
- 작성 가능한 최선의 코드를 만드는 데 집중!
- 어떻게 훈련할 것인가
- 처음엔 시간은 걱정 말고!
- 훈련할 때는 그 훈련이 완벽하도록!
- 코딩 가타(작은 훈련용 코딩)는 다른 테크닉, 다른 언어, 다른 기술, 다른 접근 방법을 사용해서 새로운 것을 시험하고 비교하는 게 좋다.
- <파이썬 알고리즘 인터뷰 - 박상길 저>를 일고, 알고리즘 문제를 풀고 있는데, 이 책에서는 여러 풀이 방식과 다른 언어 (특히 Go)로 구현하는 것을 제시하고 비교/분석을 돕는다.
펫 프로젝트
- 무엇을 배울지를 정하고 그것을 이용해서 해결할 문제를 찾는다.
- 펫 프로젝트를 통해 안전한 환경에서 실무 프로젝트와 유사하게 시험하고, 발견하고, 배우고, 즐길 수 있다.
- data engineering에 대해서 배우고 싶어서 data engineering udacity nanodegree program을 하고 있는데 곧 final project를 해야 하는 시기가 다가온다. 즉, 배운 것을 이용해서 해결할 문제를 찾아야 한다!
- 내년에는 IT 연합 동아리를 통해 함께 배우고, 프로젝트를 진행해 보고 싶다
글또에 참여하신 분께서 정리해주신 블로그 글: 대학생 IT 연합 동아리 정보 모음 (feat. 교육 프로그램)
오픈 소스 프로젝트에 기여하기
- 훌륭한 개발자들이 어떻게 일하는지 체험하고, 어떻게 코드를 작성하고 문제를 해결하는지 살펴볼 수 있다.
- 탈잉 <월간 코드 리뷰 ver_0.1 : 커리어 성장 CODE>의 'Session 2. 혼자서 오픈소스로 성장하기: 기여보다 학습 목적으로 바라보는 오픈소스'라는 강의를 통해 많은 것을 느꼈다.
페어 프로그래밍
- 한참 개발을 배울 때 매주 동기분들과 페어 프로그래밍을 진행했었는데, 그때 정말 파워풀하게 성장했다. 누군가와 함께한다는 것 자체가 많은 준비성을 필요로 하고, 약간의 긴장감이 대충 하지 못하게 한다.
- 이전에 페어 프로그래밍을 하면서 느낀 점에 대해 적은 글: About Pair Programming
그 외
- 팔로우할 리더 찾기
- 소셜 미디어
2. 모르는 것을 발견하는 방법
모르는 것을 배우는 기회를 만들기 위해 항상 노력해야 한다.
회사에 있는 시간이 많다 보니 회사에서 일하면서 모르는 것을 발견하고, 배우고, 성장하는 것이 내가 이 회사에 다니고 싶은 이유가 되는 것들 중 하나라고 생각한다.
나 같은 경우에는
- 개발자 세션: 사내에서 매주 돌아가면서 진행하는 개발자 세션을 통해 몰랐던 것을 많이 배웠다.
- 코드 리뷰: coding skill를 enhance 하는 가장 강력한 방법이라고 생각한다. 코드 리뷰를 받을 때 정말 감사하다는 마음가짐으로 받아야 한다고 생각한다. 리뷰어가 정말 오랜 시간과 많은 노력을 들어서 습득한 '좋은 코드, 좋은 설계...'를 몰랐다는 것을 알게 되는 과정과 배울 수 있는 기회를 동시에 얻는 것이기 때문이다.
이렇게 모르는 것이 무엇인지 알게 되었다면 <내 커리어 주도적으로 이끌기>에서 알아본 방법 등으로 무지에 대항해보자!
3. 모르는 것을 공부할 시간을 어떻게 만들어 낼 수 있나
의식적 절제가 필요하다.
- 한 주에 두 번 정도는 노트북과 샌드위치를 챙겨서 어딘가 조용한 곳으로, 집중할 수 있는 곳으로 가서 자투리 시간을 활용하자.
- 사는 곳 근처에 기술 커뮤니티가 있는지 찾아보자.
라는 사항들을 소개해 주었다. 이건 약간 꼭 이 책이 아니더라도 흔히 알 수 있는 내용이라고 심드렁하게 생각했다.
그런데 그다음에 나온 <뽀모도로 기법>에 대한 소개는 다시 한번 상기해 볼 만한 주제이다.
뽀모도로 기법의 다섯 단계
1. 어떤 일을 할지 정한다.
2. 뽀모도로(타이머)를 25분에 맞춘다.
3. 타이머가 끝날 때까지 그 일을 한다.
4. 짧게 쉰다. (보통 5분)
5. 매 4회의 뽀모도로 마다 길게 쉰다. (15~30분)
즉, 여기서의 핵심은 '집중해서 짧고 굵게 해야 할 일을 하고, 이를 통해 여분의 시간을 만들자!'인 것 같다.
야근한다고 해서 절대 업무의 양이 많다고 생각하지 않는다.
물론 업무량이 적당하다는 전제 하에, 주어진 시간 내에 할 일을 마무리할 수 있는 것도 능력이며 이를 야근하면 된다는 생각으로 질질 끌면 야근도 습관이 된다는 것을 느꼈던 적이 있다.
뼈 때리는 말로 마무리
배움과 훈련이 멈추는 순간 우리의 커리어도 멈춰버린다.
더 많은 지식과 기술을 가질수록 더 쉽게 커리어를 관리할 수 있다.
언제, 어디서, 누구와 일하고 나의 일에 대한 대가로 얼마를 받을지에 대한 결정권을 가질 수 있다.
시간이 없다는 말은 더 이상 변명이 될 수 없다.
우리는 모두 정확히 같은 만큼의 시간이 주어진다. 차이점은 우리가 그 시간을 어떻게 쓰느냐일 뿐이다.
'Today I.. > Today I Read' 카테고리의 다른 글
[Clean Code] Chapter 03. 함수 (0) | 2022.02.01 |
---|---|
[Clean Code] Chapter 02. 의미 있는 이름 (0) | 2022.01.29 |
[Clean Code] Chapter 01. 깨끗한 코드 (0) | 2022.01.28 |
마이크로서비스와 애자일 개발 프로세스 (0) | 2021.10.23 |
재택근무와 신뢰 (0) | 2021.10.06 |