요즘 개발자 요약 및 신입 개발자의 방향성 찾기(feat. 커피챗)
요즘 개발자 책을 읽고 적은 후기와 커피챗 후기
Last updated
요즘 개발자 책을 읽고 적은 후기와 커피챗 후기
Last updated
우리는 항상 왜 그런가라는 질문을 던지고 고민해야 한다. 내가 생각하는 개발자의 모습 구체적인 모습이 그려지지 않는다면, 먼저 자주 사용하는 서비스나 회사를 떠올려보자..!
어떤 문제를 어떻게 해결했는지를 보며, 세상에서 정의하는 개발자의 모습이 문제를 효율적으로 해결하는 문제해결사라면 회사가 정의하는 개발자는 특정 문제를 회사만의 방식으로 탁월하게 해결하는 문제해결사
같은 개발자여도 모두 다른 커리어를 쌓으면서 그 과정에서 자신만의 장점이 녹아든 길을 직접 만들어야 함
즉, 어떤 문제를 해결하고 어떤 가치를 만드는 개발자가 되고 싶은지 고민하며 정의
좋은 개발자의 덕목은 무엇인가를 고민하며 동시에 내가 잘하고 싶은 것이 무엇인지를 생각하는 것이 중요하다고 한다.
예시로 문제 정의, 문제 해결, 해결방안 공유라고 생각하고 함께 밝게 나답게 성장할 수 있는 교육환경을 구축하는 개발자
한 번에 정의하는 것이 아닌 꾸준히 재정의
의 필요하다고 함
나와 거리가 먼 개발자보다는 어떤 변화를 일으키고 싶은지 질문하며 접근
너무 많다면 자신이 어떤 부분에 가장 많는 돈을 쓰는지 살펴보고 실패한 경험 또한 공유하자. 회사의 문화와 비전을 이해하면 해당 회사가 자신에게 적합한지, 그 회사의 개발자는 어떤 종류의 문제를 해결해야 하는지를 알 수 있다.
그렇게 되면 자신의 진로와 정체성을 더 명확하게 정의할 수 있으며 내가 지향하는 가치를 추구하고 내가 풀고 싶은 문제를 해결하는 기업을 찾자.
프로그래밍의 학습의 시작은 피드백과 회고
즉각적인 피드백이 필요하다. 그래야 더 효과적으로 성장할 수 있기 때문에 마치 경험치를 얻고 성장하는 속도를 보며 재미를 느끼는 것처럼 말이지
주기적인 회고가 필요한 이유는 피드백을 잘 반영하기 위해서이다.
공부를 끝낸 후 어떤 학습 방법이 나에게 유용했는지 어떤 내용을 학습시 힘들었는지 적어보는 것
정기적인 회고를 통해 스터디가 목적을 향해 잘 나아가고 있는지 개선 여부 확인 가능
살펴보기 : 전반적인 구조 이해하고 어떤 부분을 집중해서 읽을지를 결정
질문하기 : 각 장이나 절을 읽기 전에 스스로 질문하는 과정으로 적극적인 학습 태도
읽기 : 앞 서 만든 질문들에 대한 답을 찾으며 심도 깊게 고민하는 것이 좋음
요약하기 : 자신의 말로 요약하고 중요한 개념 정리
복습하기 : 2단계에 만든 질문에 댜한 답하고 학습한 내용 되짚어보기
목차보기 : 배울 내용 시뮬레이션
내가 생각 한 내용과 강사의 이야기 비교 : 왜 같고 다른지 이유를 파악하며 지식을 능동적 흡수
과거의 경험과 강의 내용을 적극적 접목 : 정리하는 것에 그치는 것이 아닌 경험 적극적 반영
프로그래밍 학습에 있어 하나의 정답은 없다. 최적의 학습 환경은 스스로 만들어 나가야 한다
프로그래밍의 본질은 문제 해결이므로 어떤 문제를 해결할지 먼저 정의하고 그 문제를 효율적으로 해결하기 위해 적절한 도구 사용하는 것이 중요 => 해결하고 싶은 문제
에 초점을 맞춰 학습 방향을 설정
Step 1 내가 해결해보고 싶은 문제와 맥락 찾기
평소 관심을 가졌던 회사나 서비스를 살펴보면서 내가 정의한 개발자의 모습까지 고민한다면 해결하고자 하는 문제를 찾는 과정은 더 쉬워질 것
Step 2 실무자에게 연락하기
** 연락할 수 있는 방법**
인프런 커피챗
커피챗 앱
트위터
링크드인
오픈 카톡방
문제를 해결하기 위한 역량을 실무자에게 물어보며 프로그래밍으로 문제를 해결하는 사람을 찾자(링크드인 콜드메일)
Step 3 각 팀에서 원하는 역량 조사하기
원하는 직군과 회사에서 일하기 위해서는 우선순위가 가장 높은 역량 파악하고 이를 기반으로 성장하는 사이클 만들기
팀 문화는 어떤지
테스트 코드를 작성하는지
pr 리뷰는 어떻게 진행하는지
현재 팀에서 가장 목말라하는 역량은 무엇인지
채용 공고에 있는 모든 요건을 충족하는 사람은 거의 없다. 채용 공고에서 어떤 것이 더 중요한 지 파악하고 채운 후 나머지 역량은 어떠한 방향으로 점진적으로 성장시키려고 한다는 가능성을 보여주는 것이 중요
문제 해결에 필요한 역량을 적극적으로 찾아서 학습하는 사이클을 만들어야 빠르게 성장 가능하고 번아웃이 덜 올 수 있다. 제대로 목표에 다가가고 있는가에 대한 질문을 스스로 하기
동작 가능한 작은 버전부터 만들기 : 핵심 기능 파악 가능
확실성에 대응하기 위해 사용자의 피드백을 받으며 점진적 발전
시켜야 한다. 즉 다 구현을 못하더라도 언제나 핵심 기능이 동작하도록 만드는 연습
연계 기능 확장
레이아웃 구현
스타일 적용
사용자 피드백 적용 : 어떻게 피드백을 요청할까
피드백을 요청할 때는 목적을 분명히 하고 현재 상황을 구체적으로 설명하며 서로 이해한 내용이 일치하는지 확인하는 과정
구체적인 목표 설정
Ex. X시간 안에 y 구현하기 자바스크립으 기본서에서 모르는 개념 다룬 챕터 4개 한달 간 공부한 후 예제를 통해 설명 할 수 있을 정도로 학습하기
주기적인 목적 확인 똑똑하게 질문하기
성의 있게 질문하기 : 시행착오 과정을 설명하는 방법을 러버덕 디버깅이라하며 질문하기 전 발생한 문제를 처음부터 설명하고 해결해보는 방법 => 답변해주는 사람 또한 모든 단계에 대한 설명 해 줄 것
스타일보다는 구체적인 해결방안 질문하기 저는 이런 방식으로 구현했는데 혹시 다른 방법이 있을까요?
이해 내용 싱크 맞추기
오류를 빨리 탐지하도 버그 수를 줄일 수 있고 팀원 간의 신뢰가 높아지며 더 읽기 좋은 코드를 만들 확률이 높아진다.
💥 내비게이터와 드라이버
드라이버 :키보드를 직접 잡고 프로그램 작성하는 역할
내비게이터 : 내비게이션처럼 전체 지도를 보며 목적지까지 제대로 갈 수 있게 확인하는 역할, 버그 확인
💥 페어 프로그래밍의 주의점
한 사람이 한 가지 역할을 오래 하지 않아야 한다.
수평 관계 유지
문제은 명확하게 정의하고 요구 사항을 함께 정리
코딩 스타일 규칙을 정하고 요구사항을 만들며, 편하게 이야기를 나누는 것이 중요하다. 마지막으로 회고까지 해주자.
해결하고 싶은 문제의 의도 드러내기 : 내가 먼저 코드를 복기하다가 문제를 해결하는 경우도 있음 복기 후 피드백 요청
코드 리뷰 과정에서 리액션하기 : 질문을 똑똑하게 하며, 피드백 적극적 반영
코드 리뷰 후 회고로 되돌아보기 : 내가 다음에 더 잘하고 싶은 부분이나 만족스러운 부분에 살펴보는 과정과 코드 리뷰 후 규칙 만들기
💥 코드 리뷰 시 검토할 항목
1. 이 코드가 어떤 문제를 해결하는가(특히 중요) : 놓친 경우의 수는 없는지 혹은 예상 되는 버그는 없는 지 살펴보는 것이 중요
2. 코드 표준을 지켰는지 코딩 표준은 코드 가독성, 일관성, 유지 보수성, 버그 위험 감소 등 다양한 이유로 중요하게 여겨짐
3. 성능 및 확장성을 확인했는가 현재 코드가 컴퓨터의 자원을 필요 이상으로 사용하지 않는디, 사용자의 입력 또는 데이터 수가 증가하면서 처리 속도가 저하되거나 멈추는 일이 없는지 등을 판단한다.
4. 보안 측면에서 취약한 부분은 없는가
💥 체크리스트를 만들고 확인
코드 리뷰 시 완벽하지 않아도 공유하는 것이 중요하며, 시간 제한을 정하는 것을 추천한다고 함
단, 코드 리뷰는 구체적인 해결 방안을 질문하며 똑똑하게 요청해야 하는데 코드와 함께 내 의도와 피드백 받고 싶은 부분을 자세히 남겨야 함
동작 가능한 가장 작은 버전부터 물어보기 : 소프트웨어의 본질은 문제 해결이므로 문제 해결하는 과정에서 프로그래밍을 배우면 학습 효과가 더 크다
코드 작성 및 리뷰 요청하기 : 챗지피티가 작성한 코드가 어떤 문제를 해결하기 위한 것인지 간략하게 성명라도 개선 가능한 문의(구체적인 예시)
성능 최적화를 위해 이 코드를 어떻게 개선할 수 있을까요?
이 코드의 보안 위험 요소가 있나요?
방향성과 예시 요청하기 코드 작성 시 어려움을 느낀다면 지금 문제를 해결하기 위해 어떤 것주터 시도해야 하는지 이해하는 것이 중요하다. 검색과 학습을 통해 내용을 검증하며 강력한 피드백 도구로 사용 가능하다.
3장은 이력서 관련이라 읽기만 하고 정리는 no no
피드백을 주고 받을 수 있는 환경에 참여하며 성장할 수 있는 환경 직접 만들기
목표, 기간, 규칙 정하기
목표 설정
측정할 수 있는 목표를 설정하는 것이 가장 중요
자바스트립트 10가지 핵심 개념을 예시와 함께 설명할 수 있도록 연습하기
기간 설정
한 달 이내로 짧게 설정해서 작은 성공 빠르게 맛보기
바쁠 때는 잠시 멈춰가기
규칙 설정
스터디 시간에 늦을 것 같다면 10분 전까지 메세지 공유하기 처럼 구체적으로 설정
가장 중요한 규칙 2-3지
모든 구성원의 능동적 참여
중간 회고
개념을 적용하고 함께 학습한 내용으로 각자 어떤 경험으로 개척해나가는지 공유하는 것이 가치 있는 일이며 다른 사람과 피드백을 주고받는 환경 개척
스스로 만드는 환경 어떻게 하면 개발 중에 피드백을 받을 수 있는지 고민해야 한다.
회사 내 동료 만들기 : 다른 팀에 혼자하는 개발자가 있다면 찾아보자
외부 환경 만들기 : 내부에서 찾기 어렵다면 외부에서 스터디나 커뮤니티를 통해 함께 성장할 동료 찾기
다른 직군의 동료와 페어 프로그래밍하기 혼자라고 느껴지거나 충분한 피드백을 받지 못하고 있다고 느낄 때, 바로 그때가 새로운 도전을 시작할 최적의 기회 좋은 팀원이 되고 싶다면 : 메신저와 회의편
협업의 핵심은 커뮤니케이션
5장의 경우 이직 관련된 이야기로 읽고 요약은 하지 않았다!
어떤 개발자가 되고 싶은가보다 중요한 건 어떤 개발자로 살아가고 싶은가이다.
위의 사진의 경우 한국비폭력대화교육원에서 제공한 욕구목록으로 욕구목록 중 자신이 중요하게 생각하는 키워드를 3가지를 고른다.
나의 경우 3가지로 추리기가 힘들어 4가지 골랐다 ㅋㅋㅋ
신체적 생존
사회적/정서적 상호작용
놀이/재미
자기 구현
그 다음 그것에 밑에 있는 키워드를 여러 개 1차로 뽑고 그 중 3가지를 뽑는다.
1차로 뽑은 키워드 : 휴식, 안전, 친밀한 관계, 배려, 협력, 즐거움, 성장, 창조성
2차로 뽑은 키워드 : 협력, 성장, 즐거움, 휴식
위의 키워드를 기반으로 보면
나는 성장을 하고 싶으며, 성장하기 위해서는 즐거움을 가지고 다른 사람들과 협력하며(= 공유하며) 1명에게라도 도움을 주는 개발자가 되고 싶으면 적당한 휴식은 필요하다.
어쨋든 성장은 장기전이기 때문에 빠르게 달리는 것이 아닌 내가 원하는 방향으로 달리고 있는가가 중요하다.
즉, 작은 성공들로 천천히 채워가며 자신이 원하는 방향으로 간다면 원하는 개발자가 될 수 있다.
회사를 다닌 지는 2주 조금 넘었지만 자신이 원하는 서비스를 회사에서 만들 수 있는 곳은 극히 일부 일 것 같다라는 생각이 든다. 자신이 원하는 서비스를 만드는 회사에 들어갈 수도 있지만 그렇지 않다면 자신의 의견을 피력할 수도 있겠지만 회사에도 규칙이 있기에 회사에서 말하는 문제를 그 회사의 규칙에 방식에 맞게 해결하는 것이 개발자겠지..
회사로 성장도 가능하겠지만** 회사랑 개인을 조금 분리해서 봐야 할 것 같다**라는 생각도 든다. 하지만 대부분의 시간을 회사에서 보내는 것만큼 자신이 싫어하는 분야를 가면 그 시간이 고통스럽겠지..(퇴사의 길로..)
물론 일 적으로 변하면 자신이 좋아하는 분야도 싫어하게 된다고는 하나 흥미가 있는 것과 아예 없는 것은 다를 듯하다ㅋㅋㅋ
아 그리고 덤으로 뿌듯함이 있다면 좋을 수도..(쉽지 않겠짘ㅋㅋ) 나름 일을 제대로 시작하지는 않지만 교육쪽이라 일하면서 뿌듯함을 가져갈 수 있을듯
그리고 자신이 뭐가 중요한지 생각해보는 것도 중요할 듯하다. 워라벨 vs 돈이냐 물론 지금 취업시장 상태는 고르는 것도 힘들 정도로 갑자기 퇴화됐지만...(물론 연봉도 합격전에 안알려주는 곳이 다수지만.. 잡플래닛을 보면 대출 알 수 있음)
회사의 가장 좋은 점은 워라벨과 사람이 좋다는 것..
개인적인 생각으로는 신입때는 si의 경우 워라벨이 좋아야 개인적인 공부할 수 있지 않을까..?라고 나는 생각한다. 그리고 포괄로 야근해도 돈도 휴가도 안주는 곳이 다수라...ㅋ..ㅜ
일단 내가 취업하고 싶었던 쪽도 게임개발이었음 하지만 신입인 지금 취업은 현실과도 어느정도 타협함..
그 이유로
첫 번 째는 게임 개발은 신입 개발자를 잘 안 뽑음
두 번 째는 게임 개발에 대해 해 본 것이라고는 유니티 뿐..
세 번째는 좋지 않은 게임 시장**(요즘 nc도 자회사 정리하고 수익 내기가 쉽지 않나봄)**
네 번째 소문에 좋지 않은 워라벨..(지인과 일본게임개발자를 본 적 있는데 야근..밤샘이 진짜...🥲)
내가 게임 개발에 흥미를 가지고 있는 건 내가 하고 있는 게임이 어떻게 구현되는 지 궁금해서가 크다. 일단 게임 개발 지식이 적으니 그것부터 공부하고 생각해보려 한다.
그리고
회사의 문화와 비전을 이해하면 해당 회사가 자신에게 적합한지, 그 회사의 개발자는 어떤 종류의 문제를 해결해야 하는지를 알 수 있다.
si, sm는 대부분 그저 고객사에 맞추는 경우가 많기에 회사의 마인드..?가 좋은지를 보면 좋을 수도
최근에.. 입사한 지 2주밖에 안됐지만 취업의 문제가 사라지니 커리어에 대한 고민중이었다... 나의 경우 작년 부트캠프를 하는 도중 개발용 트위터를 만들어서 고민 등을 적음 ㅋㅋㅋㅋ 다음의 글을 쓰니 비슷한 고민을 하는 사람도 있었으며, 주말에 쉬어도 벌어먹고 괜찮다는 사람도 있었다.
나는 MBTI가 INFP인데 성격 상 끊임없는 성장을 갈망하지만 또 금방지친다. 하지만 조금이라도 성장하지 않으면 나 자신에 대한 회의감이 온다ㅋㅋㅋㅋ(진짜 이상한 성격)
나만 이런가? 내가 문제인가?라는 생각과 회사에서 나 자신은 너무 작아보이고 고민이 많았는데 비슷한 고민을 가진 사람이 있다는 것만으로 **깊게 땅굴 파기 전에 나올 수 있었다. **
자신만 부족하고 자신만 이런 고민을 할 거라는 생각은 다른 사람과 이야기를 나눠보면 없어질 것이다. 더 깊은 굴 파기 전에 나올 수 있을 것이다.
트위터에서 봤는데 도움이 될 것 같아 가지고 왔다. 우리나라는 특히 개발자의 경우, 끊임없이 공부해야 한다는 말 때문에 번아웃이 왔음에도 온 채로 공부하다가 지치고 더 지쳐서 돌이킬 수 없는 상태까지 되는 것 같다 😭😭
특히, 부트캠프에서 짧은 기간에 공부하다 보니 주변에서 그런 분들이 많다.. 뿐만 아니라 오래 일 하신 분들도 지쳐하는 것을 봤다. (나도 부트캠프 기간에 넘사벽 비전공자분에 번아웃 주마다 왔었음..)
번아웃이 자주 오는 것보다는 왔을 때 자신만의 대처법으로 완전히 이겨내지는 못하더라도(대부분 번아웃을 가지고 산다고 함) 그래도 다시 일어 설 정도의 힘을 휴식하면서 만드는 게 낫지 않을까?
이번주 금요일에 트친 3분과 커피챗과 칼국수챗을 하게 되었다. 1분은 나랑 같은 신입 (분야는 다름)보안쪽 2분은 대기업 개발자와 매니저(두 분의 회사는 다름)
회사 끝나고 칼국수집
에서 먼저 만나게 되었으며, 칼국수를 먹고 2차로 바로 옆 카페를 가게 되었다. 카페가서 두 분이 명함을 주셨다..
되게 많은 이야기를 나누고 문화에 대해서도 들었다. 그리고 내가 아직 아는 세계는 좁구나..ㅋㅋㅋㅋㅋ 실제 현업에 써보신 스택에 대해서 보여주셨는데 흐억... 굉장히 많았다. 반은 내가 처음 보는 것들 ㅋㅋㅋㅋ..
그리고 현재 기업의 체계, 지금 기업들의 상태 등도 알게 되고 어떤 부분이 중요한지.. 실제 대기업에서는 log가 개많아서 DBMS로 안돼서 하둡을 쓴다는 것, 보안쪽은 어떻게 돌아가는지 그리고 한 가지 궁금한 것을 여쭈어봤다.
🤔 "회사 공고를 보면 능통함이라고 적혀있잖아요 능통함의 기준이 뭘까요?" 😳"능통하게 할 수 있는 사람은 거의 없다. 다만 인터넷에 나와있는 것들은 알고 거기서 기업에서 원하는 것을 조금 알고 있다면 뽑히는 거다. 실제로 코테에서 겁나 능통한 사람이 있었는데 면접을 보니 그런 이론적 지식은 전무하더라"
거기다 생각보다.. 트친분들 중에 대단한 분들이 많구나..를 느낌ㅋㅋㅋㅋㅋㅋㅋㅋ 트위터에 개발 고수분들이 너무 많다.. 트위터 강추..ㅋㅋㅋㅋㅋㅋ
올해 커피챗 다양하게 만나 볼 예정이다..
완벽함을 목표로 하지 않는다. 빨리 시작하고 중간중간 피드백을 받는 것이 중요하다.
배워야 할 것은 많고.. 외울건 많고 ㅋㅋㅋㅋㅋㅋㅋ
하지만 어차피 장기전이기에 완벽함보다는 천천히 나아감을 목표로 잡자...
트위터에서 도는 글인데 그렇다고 함 참고하라고 가져옴
트위터던지.. 오픈채팅이라던지.. 링크드인이라던지 아무거나 괜찮다... 나의 경우 전문대라 사실 이 분야로 간 사람이 한정적이라 에타를 이용할 수는 없었다.
생각보다 트위터를 개발자들이 많이 이용한다고해서 8월에 글 1~2개 적고나서 트친소하고 꾸준히 교류를 늘려왔다.
트위터로 인해 내 개발자 삶에 많은 도움을 얻었다고 해도 과언이 아니다 ㅋㅋㅋㅋ😭😭 진짜.. 위로도 많이 받고 공감도 많이 했다ㅋㅋㅋ 좋은 글도 많았다. 이런 대화를 나누고 공유할 수 있는 환경을 만들자!!!
물론 이건 개인마다 생각이 다를 수가 있다. 하지만 나는 방향성을 잡으면 우직하게 나가기 때문에..(사실 빠르게가 안됨 ㅋㅋㅋ)
아직 입사한 지 한달도 안됐고 몇 달 간은 방향성에 대해 고민하면서 공부해보고자 한다!!!
커피챗에서 요즘 기업들이 러스트로 많이 바꾸고 있다는 소식을 들었다..c++, c#도 러스트(Rust)로 많이 바꾸고 기업에서 쓰는 사람이 많이 늘어나고 있다고..
그래서 주말에 일단 Rust에 대해 잘 모르기 때문에 IDE 툴이랑 컴파일러만 설치했다.
찍먹을 해보고 나랑 맞는지 판단해야 겠다.
사이드 프로젝트 관련 사이트 : 데브폴리오
모든 개발자, 직장인, 취준생, 대학생 모두 화이팅!!!
(출처 : @PacerKorea)