20211013 우테코 캡틴 멘토링 요약

jw kim·2021년 10월 14일
1

멘토링

목록 보기
1/1

현재상황

취업자 - 좋은 회사 구하기 전쟁 중

  • 가고싶은 회사가 요구하는역량.

    • 다른사람이 읽기 좋은 클린코드, 유지보수하기 좋은 코드를 구현하는 능력
    • 원활한 소통, 팀워크협업능력
    • 자기주도적으로 문제를 찾고, 근본적으로 문제를 해결하려는 역량
  • 고용주들이 입사 지원자들에게 불만스러워화는 부분은 성적으로 쉽게 증명되고 표시되는 특정지식, 전문기술의 부족이 아니다, 그보다 비평적 분석, 협력, 소통, 문제해결, 창의적사고 같은 능력을 아쉬워하고있다.

  • 자신만의 생각, 색깔, 개성이 보이지않는다. 그래도 괜찮다. 자신만의 색깔이 없더라도 소프트웨어에 대한 진정성이라도 느껴지면 좋겠다 - 네이버 팀장급 개발자의 이야기.

핵심 능력들 : 비판적사고, 의사소통, 협력, 창의력, 변화에 대응하는 능력

그러면 어떻게 이런 역량을 쌓을 수 있을까?
->key attitude 동의 되지 않는 권위에 굴복하지마라.

의심해봐야 할 권위는?

  • 부모님
  • 선생님/어른
  • 사회/문화
  • 좋은 직장에 대한 기준
  • 앞에서 떠들고 있는 아저씨의 말말말(발표자 자신을말함)
  • 등등등등....

필요한 것은 권위에 도전할 수 있는 용기.
그리고 권위에 도전하는 과정이 내가 진정 좋아하는 일, 잠재력을 찾는 과정.

지금까지 우리 삶의 성공 방식

  • 좋은 성적으로, 좋은 대학 진학
  • 월급 많고, 좋은회사에 들어가서 열씸히일하기
  • 회사에서 시키는대로 말 잘듣기
  • 지시받은 일만하는사람
  • 문자 그대로 해석하는 사람
  • 규율을 꼼꼼히 지키는 사람
  • 주말만 기대하는 사람
  • 안전한 선택만 추구하는 사람
  • 회사에서 잘리지 않을까 늘 걱정하는 사람

-> 공무원이 되려고 하고, 대기업에 가려고 노력하는사람

점점더 사회는 위와같이 살지 않는 사람들을 요구하고있다.

특히 개발업계는 위와 같은 사람과 정반대의 사람들을 요구한다.

공무원준비, 대기업은 이미 엄청난 레드오션이다 굳이 이 엄청난 경쟁의 대열에 합류해서 시간을 갈아넣으려고 왜그렇게 하는가...

이직은 정말 하지 말아야 할 일인가?

우리는 이직을 잘해야 하는 직종이다.

한회사에 있어봤자 1년지나면 5퍼센트 연봉이 오른다. 이직하면 20퍼센트가 오른다.

절대로 한 회사에 뼈를묻겠다는 생각을 하지마라.
업으로써 프로그래머의 길을 가는것이지 직장이 어디인지가 중요한것이 아니다.

오래다니더라도 5년은 절대 넘기지마라. 특히 네카라쿠배같은 대기업에 5년이상있으면 매너리즘에 빠져서 성장동력을 영원히 잃어버린다. 경쟁력이 사라진다.

발표자 친구들 (50대 개발자)이 네카라쿠배에 10년이상 리드, 시니어개발자로 일하고있는 직원들이 많은데 그사람들은 이미 두려워서 이직할 수 없고 어떻게든 남아있기위해서 노예처럼 일한다.
다른회사에 가고자하더라도 받아주는곳도 없다.

네카라쿠배에 입사하는 것이 진정 좋은 선택인가?

일단 당신들이 돈을버는것이 가장 중요하다면 절대 네카라쿠배에 가면 안된다.
이미 이 회사들은 성장의 결과를 나누는과정들이 끝났다.
달리고있는 스타트업에 합류해서 회사와 함께 성장해야한다. (스톡옵션을 받으면서)

도전할꺼리가 많고 성장여지가 많은 회사에 가야한다.

중간 Q&A 타임

첫직장이 중요하다는 말도 이제는 옛말일까요?

답변 : 첫직장은 중요하다. 올바른 개발문화를 가지고있는 회사에 가는것은 중요하다.

직장을 고르실때 개발문화가 괜찮은 곳인지 (ex. 지속적 통합툴 쓰는지, 이슈관리시스템 쓰는지, 코드리뷰를 시스템적으로 하는지) 파악하고 선택해야한다.

요즘은 포장을 잘하기때문에 우리가 그회사가 괜찮은지 파악해야한다. 더이상 갑을관계가 아니다.

회사 인터뷰시 질문거리를 만들어가야한다. 데일리미팅은 하는지, 코드리뷰시스템은 어떤방식인지 파악하고 지원해야한다. 구인공고에 속지말고 면접자리에서 질문과 답변을통해 스스로 알아내야한다.

어떻게 학습할 것인가?

학교가 가르쳐 주지 않는 것은?

효과적인 학습을 위한 공부법.

TDD(Test Driven Development인듯), 리팩토링을 잘 하려면?

  1. 테스트 실패케이스를 먼저 만든다
  2. 테스트를 통과한다
  3. 리팩토링을 한다 -> 1번으로 다시 반복

리팩토링은 설계활동이고 리팩토링은 상당히 어렵다. 연습, 연습, 연습....

연습이 중요한게아니다.

테스트하기 쉬운 코드와 테스트하기 어려운 코드를 보는 눈

테스트하기 어려운 코드를 테스트 하기 쉬운 코드로 설계하는 감

좀 더 효과적으로 연습할 수 있는 방법은 없을까?

의식적인 연습의 7가지 원칙

  1. 신중하고 계획적이다, 개인이 온전히 집중하고 '의식적'으로 행동할 것을 요구
  2. 피드백과 피드백에 따른 행동 변경을 수반
  3. 효과적인 심적 표상을 만들어내는 한편으로 심적 표상에 의존
  4. 기존에 습득한 기술의 특정 부분을 집중적으로 개선함으로써 발전시키고, 수정하는 과정을 수반

참고서적 : habit / 저자 : 웬디우드 -> 의지력에 기대지말고 주변상황(환경)을 바꾸는게 우리가 원하는 목표를 달성하는데 상당히 효과적이다.

여러분의 의지력을 밎지마라. 절대로

환경을 바꿔라.

천재적인 자질, 지능보다는 지속성(꾸준함)이 가장 중요하다.
특히 개발자는 포기하지않고 멘탈을 관리하며 꾸준히 지속하는 능력이 가장 중요하다.
의지력은 관계없다.

자꾸 불안하고 잡생각이들면 몰입하지 못하고있다는 반증이다.

의식적인 메소드연습을 해라

리팩토링 시-작

현재 -> NULL이면 바로 0 리턴

','과 ':' 문자열로 스플릿, 더해서 리턴한다.

인덴트 (탭) 을 1개로 제한한다.

인덴트가 깊어질수록 가독성이 떨어진다.

메서드가 한 가지 일만 하도록 구현하기.

if else 구문을 쓸수록 전후관계 컨텍스트를 이해해야되기때문에 가독성이 떨어진다.

For 문 두번돌려서 읽기좋은 코드를 만들자.

1000개 이하의 포문은 2단계로 돌려봤자 하드웨어성능이 싸기때문에 관계없다.

옛날에는 하드웨어 비용이 비쌌지만 지금은 사람이 더 비싸다 그래서

읽기쉬운코드를 만들어내는게 더 중요하다

문제가생기면 그때 고치면 된다.

메서드분리를 충분히 연습하고 나면 클래스분리도 연습할 수 있다.

메서드분리보다 클래스분리가 훨씬 더 어렵다.

그러나 신입개발자는 메서드분리만 잘해도 클린코드를 만들어내는 사람으로 성장할 수 있다.

이런 의식적인 연습을 지속적으로 연습하면 읽기 쉬운 코드를 만들어내는 개발자가 될 수 있다.

클래스 분리 연습을 위해 활용할 수 있는원칙

모든 원시값과 문자열을 포장한다.

일급콜렉션을 쓴다.

3개이상의 인스턴스변수를 가진 클래스를 쓰지않는다.

함수의 인자 수를 줄인다. 3개 이상은 가급적 피한다.

Q&A

Q

기업에 입사했는데, 자신의 업무속도나 퀄리티에 스스로 만족하지 못한다면 밥값하고있는지 자괴감에 빠지기 쉬울 것 같습니다. 개인적인 경험으로는 타 업계 무기계약직 하면서 느꼈고, 잘리지 않아 그냥 버텼습니다. 일은 하고싶지만 압박감을 심하게 느끼고 있다면 어떤 말을 해주고 싶으신가요?.

A

모든문제를 혼자 해결하려고 하지마라

주변사람들에게 도움을 구하고, 어떻게하면 압박감을 주는 상사 혹은 동료와 협력적으로 일을 할 수 있을지에 대해서 고민하라, 문화를 바꾸려고 해라. 혼자 고립되어 일하지말고 함께도와주며 일하는 문화를 만드려고 노력해라.

선배개발자들은 이런 문화를 잘 만들어놓지를 못했다. 여러분들이 해야된다.

신입은 너무 잘하려고도, 완벽할 수 도 없다. 일단 문제를 해결하고 지속적으로 고쳐나가면된다.

Q

짝프로그래밍을 할때 어려움을 겪을수 있는 부분들이 있다고 생각하는데 좋은 노하우가 있을까요~.

A

처음 시작할 때 자기의 성향에 대해서 공유하는 시간을 가져라.
처음 10~15분 동안 서로 알아가는 시간을 가지자. 그리고 약속을 정하자.

서로 알아가는 대화가 필요하고 짝프로그래밍 할때 지킬 원칙이 필요하다.

그리고 회고가 필요하다. 상대방의 좋았던점 아쉬웠던점을 서로 피드백하면서 부족한점을 보완해나가야된다.

Q

제가 신입으로 들어가기에는 나이가 많은편인데, (30대 초반) 문과출신이라 개발경력, 인턴경험 등 아무것도 없는 상태입니다. 이런 상황에서는 바로 취업준비를 해서 중소기업부터 커리어를 시작 해야하나요? 아니면 공부를 좀 더 해야할까요? 사실 나이가 많다보니 제가 신입개발자로 입사를 할 수 있을지 잘 모르겠고 시간을 좀 더 들인다고 해서 입사 가능성이 있을지도 잘 모르겠습니다. 제가 인사담당자라면 20대 전공자를 뽑지 저같은 사람 안뽑을 것 같다는 생각이 듭니다.

A

지금 나이는 별로 중요하지않다. 포비(발표자)가 직접 가르켰던 친구중에 32살에 넥스트(네이버 개발자 교육 프로그램)에 들어와서 공부해서 34살에 쿠팡에 취직한 친구가 있다.

본인의 역량을 그냥 키워서 취직하면된다. 이쪽 업계는 점점더 이런 경우가 많아지고있다.

권위에 도전해라 사회의 고정관념에 계속 도전해라.

리더쉽이 중요하다 리더쉽은 리더가 됬을때 발휘하는게아니라 신입으로 들어가서 문화적으로 어떤 문제가 있을때 내가 나서서 그 문화를 바꾸려고 노력하는 그 자체가 리더쉽역량을 발휘하는 것이다.

프로그래머는 감정노동을 하기 싫어한다. 그렇기에 이런 문화를 만들어 나가려고 하는 사람이 된다면 경쟁력이 있는 개발자가 될 수 있다.

Q

흔히 비전공자가 it 분야 대기업 취직을 준비할 때 포폴, cs 지식공부, 알고리즘 3가지 분야로 나눠서 준비를 하라고 얘기하던데, 실무나 교육현장에서 비전공자임에도 눈에 띄는 사람들은 구체적으로 어떤특징이 있었나요?

A

사람들이 각자 가진 자질들과 프로그래밍이 만나서 시너지가 일어났을때 가장 눈에띄는 결과물이 나오더라.

Q

한국에서 웹개발은 자바가 위주이고 우테코나 싸피 같은 곳도 자바를 쓰는것으로 알고 있습니다. 백엔드 개발자가 된다면 자바를 언제가는 꼭 할줄 알아야한다 라고 생각하시나요?

A

안해도된다. 백엔드프로그래밍을 공부하다보면 결국에는 클린코드 OOP TDD, 웹프로그래밍은 MVC 등등 근간이 되는 역량을 잘 쌓는게 중요하지 무슨기술, 무슨언어로 하느냐는 중요하지않다.

Q

시작에 어려움을 겪거나 성장을 돕는 일에 관심이 있습니다.
현장 경험과 전문성을 기른후 관련 교육일을 하고싶은데 어떻게 준비를 해나가면 좋을까요.

42에서 교육을 받으며 잘 짜여진 교육환경(시스템)이 있다면
교사가 없더라도 학생들이 스스로(동료가 있다면 함께)
학습하고 성장할수 있는것 같다 라는 생각이 들었습니다.
이런 환경에서 교육자는 어떤 역할을 할수 있을지 궁금합니다.

A

환경을만들고, 상호협력할 수 있는환경, 그런 환경에서 활동을하다가 지칠때 코칭을 해줄 수 있는 방향으로 교육자의 역할이 바뀌어야되는게아닌가, 어짜피 지식은 넘쳐나고있다.

profile
Hitchhiker

0개의 댓글