Wecode - Project 3 (부트캠프)/세션

주니어 개발자 마인드셋

JBS 12 2023. 10. 27. 14:07
세션은 아니지만, 늘 벽에 붙어있던, 
내가 가장 크게 공감했던, 부분들. 

나는 비즈니스와 프로덕트를 고려하는,
코드로 문제를 해결하고자 하는 개발자이다.

코드만 생각하는, 개발자 동기들로 인해 
어려웠다. 
앞으로는 미래만 나아가야 하니. 

 

🗣️ 성장하는 주니어 개발자의 11가지 혼잣말

1. 개발자는 내가 가진 기술로

누군가의 삶의 가치를 높여주는 업이다.

 

2. 프로그래밍은 무엇을 알고 있는가에 대한 것이 아니라

무엇을 알아낼 수 있는 가에 대한 것이다.

 

3. 코드의 90%는 개발 시간의 90%를 설명하며

나머지 10%는 그 시간에 일어난 다른 일의 90%를 설명한다.

 

4. 붓과 색을 공부한다고 좋은 화가가 되지 않듯이,

기술만 공부한다고 좋은 프로그래머가 되지 않는다.

 

5. 지금 쓰는 한 줄은 찰나를 기억하기 위한 메모가 아닌

미래의 나를 지키기 위한 기록이다.

 

6. 안다고 생각하는 것은 사실 모르는 것이니

항상 겸손하며 끊임없이 학습해야 한다.

 

7. 소통은 내가 무슨 말을 했느냐가 중요한게 아니라

상대방이 무슨 말을 들었느냐가 중요하다.

 

8. 문제해결 능력은 문제의 정답을 찾는 능력이 아니라

문제 자체를 정확하게 구성하는 능력이다.

 

9. 주도적인 사람은 실수를 두려워하지 않고

실수와 함께 성장하지 못함을 두려워한다.

 

10. 컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤수 있다.

좋은 개발자는 사람이 이해할 수 있는 코드를 짠다.

 

11. 개발자는 코딩만 하는 사람이 아니다.

프로덕트로 비즈니스를 해결하는 사람이다.


🤔 개발자가 가져야 할 필수 덕목

  1. 열정 (Passion): 개발에 대한 열정과 흥미를 가져야 합니다. 열정은 어려운 문제에 직면했을 때 동기부여를 유지하는 데 도움이 됩니다.
  2. 문제 해결 능력 (Problem-solving skills): 개발자는 복잡한 문제를 해결하는 능력이 있어야 합니다. 문제를 이해하고 적절한 해결책을 찾을 수 있는 능력이 중요합니다.
  3. 창의성 (Creativity): 창의적인 사고와 새로운 아이디어를 가져야 합니다. 새로운 기능을 개발하거나 문제를 해결하기 위해 다양한 관점에서 생각할 수 있는 능력이 필요합니다.
  4. 지속적인 학습 (Continuous learning): 개발은 빠르게 진화하고 변화하기 때문에 개발자는 지속적으로 학습하고 새로운 기술과 도구를 습득해야 합니다.
  5. 커뮤니케이션 (Communication): 개발자는 효과적으로 커뮤니케이션할 수 있어야 합니다. 팀원들과 원활한 소통을 하고 요구사항을 이해하며, 프로젝트의 진행 상황을 공유할 수 있어야 합니다.
  6. 협업 (Collaboration): 협업은 효율적인 개발을 위해 중요한 능력입니다. 다른 개발자나 팀원들과 함께 작업하고, 의견을 조율하며, 프로젝트의 목표를 달성하기 위해 협력해야 합니다.
  7. 문서화 (Documentation): 코드나 프로젝트에 대한 문서화는 개발 과정에서 매우 중요합니다. 개발자는 자신의 작업을 문서화하여 다른 사람들이 이해하고 사용할 수 있도록 해야 합니다.
  8. 자기 주도성 (Self-motivation): 개발은 종종 독립적인 작업을 요구합니다. 개발자는 자기 주도적으로 일할 수 있어야 하며, 일의 우선순위를 결정하고 작업을 계획하고 추진할 수 있어야 합니다.
  9. 윤리적인 책임 (Ethical responsibility): 개발자는 윤리적인 책임을 갖고 자신의 작업을 수행해야 합니다. 사용자의 개인정보 보호, 보안 및 사용자 경험을 고려하는 등의 윤리적인 가이드라인을 준수해야 합니다.
  10. 문제 분해 (Decomposition): 큰 문제를 작은 단위로 분해하고 해결 가능한 작은 문제로 나누는 능력이 필요합니다. 이를 통해 복잡한 문제를 보다 쉽게 다룰 수 있고, 모듈화된 소프트웨어를 개발할 수 있습니다.

 

🤔 프로젝트와 프로덕트를 만드는 개발자가 지켜야 할 5️⃣가지 성장 방법

  1. 전체적인 비전 이해: 개발자는 단순히 코드를 작성하는 역할을 넘어서 프로젝트나 프로덕트의 전체적인 비전과 목표를 이해해야 합니다. 이를 통해 개발자는 자신의 작업이 어떻게 전체적인 목표에 기여하는지 이해하고, 더 나은 솔루션을 제공할 수 있습니다.
  2. 사용자 중심 개발: 사용자 중심의 개발은 개발자가 사용자의 요구와 경험을 고려하여 소프트웨어를 개발하는 것을 의미합니다. 사용자의 피드백을 수용하고 반영하여 사용자가 원하는 가치를 제공하는 제품을 만들 수 있도록 노력해야 합니다.
  3. 품질과 성능 개선: 개발자는 지속적으로 코드의 품질과 성능을 개선하는데 주력해야 합니다. 효율적이고 확장 가능한 코드를 작성하고, 테스트와 리팩토링을 통해 코드 품질을 유지하고 개선해야 합니다.
  4. 다양한 기술 스택과 도구 활용: 개발자는 단일한 기술 스택에 의존하지 않고 다양한 기술과 도구를 익히고 활용하는 능력을 갖춰야 합니다. 다양한 기술과 도구를 사용함으로써 더 많은 문제를 해결하고 효율적인 솔루션을 제공할 수 있습니다.
  5. 커뮤니케이션 및 협업 능력 강화: 개발자는 효과적인 커뮤니케이션과 협업 능력을 갖추어야 합니다. 팀원들과 원활하게 소통하고 아이디어를 공유하며, 프로젝트의 목표를 달성하기 위해 협력해야 합니다. 또한 비기술적인 팀원과의 커뮤니케이션 능력도 중요하며, 프로젝트의 요구사항을 이해하고 효과적으로 전달할 수 있어야 합니다.

 

wecode는 진짜 개발자를 양성하는 교육 양성소 입니다. 다음의 항목을 살펴봐주시고,

개발자로 살아가기 위해 꼭 필요한 마음가짐을 점검합니다.

1. 개발자 마인드

  • 코드와 개발 지식은, 주변과 사회가 마주한 불편함을 해결하는 ‘개발자의 도구’ 입니다.
  • 단순히 코드를 써내려가는 Coder가 아니라, 고객이 마주한 문제를 해결해주는 제품을 개발하는 Developer로서 성장합니다.
  • 개발자는 자신이 작성한 코드에 대한 책임을 져야 합니다. 버그를 찾고 수정하거나, 기능 개선을 위해 노력하며 사용자의 요구사항을 충족시키는 것에 대한 책임을 갖는 것이 중요합니다.
  • 개발자는 자신이 쓴 코드가 팀의 방향성, 제품성, 고객에 대한 편익과 관련이 없을 시
  • 미련없이 그리고 과감히 지울 수 있어야 합니다.

 

2. 제품

  • 개발자는 제품을 분석하고 그에 대한 가치를 파악하여 해당 기능이 왜 필요한지 알아야 합니다.
  • 개발하는 제품이 지닌 가치와 기능을 파악하여 내가 가진 기술력이 도입되는 이유와 배경 원리를 알아야 합니다.
  • 사용자 요구사항, 기능과 목표, 필요한 기술, 사용자 경험, 유지보수와 확장성 등을 사고합니다.

 

3. 고객

  • 내가 할당 받은 기능이 고객의 어떠한 니즈에 기반하여 기획되었는지 고민합니다.
  • 고객의 요구사항과 우선순위를 이해하여 어떤 기능이 가장 중요하고 필수적인지를 알 수 있어야 합니다.
  • 마찬가지로, 내가 구현한 기능이 고객에게 어떠한 기대효과를 선사할 지 예측하며 코드를 작성합니다.

 

4. 학습자세

  • 개발 학습은 끊임없는 성장과 도전을 요구합니다.
  • 새로운 기술과 도구에 대한 적극적인 태도와 열린 마음을 가지고, 지속적인 학습과 발전을 추구해야 합니다.
  • 더 효과적이고 올바른 학습을 하기 위해서 나에게 맞는 최적화된 공부 습관과 방법도 깨우쳐야 합니다.
  • 또한 내가 가진 지식을 남들에게 설명할 수 있을 정도로 학습이 되어야 하며, 실제 다양한 지식을 전파하여 주변의 동반 성장을 이루어 냅니다.

 

5. 커뮤니케이션 스킬

  • 개발자는 혼자 프로젝트를 진행 할 수 없습니다. 늘 누군가와 함께 업무를 보아야 하는 개발자의 직업적 숙명을 명심한 채 타인과 열린 마음으로 소통합니다.
  • 소통 능력을 키우기 위해 필요한 환경에 스스로를 능동적으로 노출시켜 훈련합니다.
  • 다른 개발자들 뿐만 아니라 유관 부서들과 원활하게 협력하여, 아이디어와 코드를 유기적으로 공유하여 팀워크를 개선해야 합니다.
  • 개발자 커뮤니케이션은 정확하게 이슈를 요약하는 스킬이 필요하며, 상대방이 이해하기 쉽게 전달하는 노력이 중요합니다.

 

6. 기술블로그

  • 기술블로그는 개발자로서 자신의 기술적인 경험과 지식을 공유하고 커뮤니티를 통해 다른 사람들과 소통하는 데에 있어서 매우 유용한 방법입니다.
  • 기술블로그를 통해 개발자는 기록하는 습관을 가지고, 내가 어떤 부분에 있어서 강점이 있고 부족한지를 알 수 있는 기회를 얻어야 합니다. 또한 꾸준히 기록하는 습관을 통해 스스로의 성장과 꾸준함을 나타낼 수 있는 지표로 활용해야 합니다.
  • 기술블로그는 “나”를 지키기 위해 작성해야 합니다. 지금의 나를 글로서 잘 기록해서 남겨놓은 것들을 나중에 나를 더 성장시킬수 있는 근거가 됩니다.

 

7. 프로젝트

  • 위코드와 함께 하는 프로젝트에서 지켜야할 5가지 규칙
  1. 적극적인 참여: 팀 프로젝트에 적극적으로 참여하고 기여해야 합니다. 주어진 역할과 책임을 충실히 수행하고, 업무 분담과 일정을 지키기 위해 노력해야 합니다. 다른 팀원들이 의존할 수 있는 신뢰성과 신속한 응답을 보여주어야 합니다.
  2. 열린 의사소통: 원활한 의사소통은 팀 프로젝트의 핵심입니다. 의견이 충돌하거나 문제가 발생했을 때, 적극적으로 대화를 시도하고 갈등을 해소할 수 있는 방법을 찾아야 합니다. 모든 의견을 존중하고 팀원들과의 의견 조율을 위해 토론과 피드백을 활발히 주고받아야 합니다.
  3. 협업과 공유: 팀원들과의 협력과 지식 공유는 팀 프로젝트의 품질과 성공에 큰 영향을 미칩니다. 자신의 아이디어와 지식을 솔직하게 공유하고, 다른 팀원들의 아이디어에도 관심을 가지며 존중해야 합니다. 팀원들과 함께 문제를 해결하고 성장하기 위해 상호간의 지식과 경험을 나누는 노력이 필요합니다.
  4. 존중과 이해: 팀원들은 서로 다른 배경과 역량을 가지고 있을 수 있습니다. 이를 인정하고 상호간의 존중과 이해를 기반으로 협업해야 합니다. 다른 팀원들의 강점을 인정하고 이를 적절히 활용하는 것은 팀의 성과를 높이는데 도움이 됩니다.
  5. 문제 해결과 대안 제시: 문제가 발생했을 때 자신의 의견을 적극적으로 제시하고, 가능한 대안을 제안해야 합니다. 문제에 직면했을 때 불평하거나 타인에게 책임을 돌리는 대신, 협력하여 문제를 해결하려는 태도를 갖추어야 합니다.

 

8. 문제해결

  • 개발자로 성장하기 위해서는 일정 범위의 기술을 공부하고 이를 암기하여 적용하는 방향(주입식 교육)이 아닌, 어떤 문제를 만나더라도 이를 해결할 수 있는 능력을 키우는 것이 중요합니다.
  • 내가 해결해야 하는 문제가 무엇인지 정의하는 연습, 정의 된 문제를 해결하기 위해 어떤 포인트로 접근 해야하는지, 이를 기록하고 나의 것을 만들 뿐만 아니라 공유하는 연습이 필요합니다.
  • 문제 해결 시, 문제인식 → 문제고민 → 전략도출 → 해결책 적용 → 효과 회고 → 개선책 도출 및 적용 의 선순환을 끊임없이 이루어 냅니다.

 

9. 커리어전환

  • 개발자가 되기 위해 커리어 전환을 하는중이라면 기술 스택, 산업과 직무 등에 대한 명확한 목표를 설정해야 합니다.
  • 목표가 세워졌다면, 목표에 따른 기술 습득을 하며 결과물 제시를 위한 포트폴리오를 만들어야 합니다.
  • 학습 과정중 개발 네트워킹에 대한 관심을 지속적으로 가지고 참여하며, 새로운 사람들과 연결되고 지식을 공유하는 경험을 합니다.

 

10. 개발자 직업정신

  • 개발자는 Developer 이며, Coder가 아닙니다.
  • Coder는 문제에 대한 고민 없이 주어진 과제를, 주어진 방향대로 해결하기만 합니다.
  • Developer는 제품이 자아내는 가치를 고객에게 전달하기 위해서 다음의 내용을 필히 지켜냅니다.
  • 제품의 발전
  • 내 코드의 효율/효과성 개진
  • 팀 내의 업무 프로세스 개선
  • 동료 및 팀의 성장
  • 제품과 고객에 대한 윤리성 고민
  • 개발자가 편한 개발을 할 수록 고객과 동료는 불편해지기 마련입니다. 개발자의 수고로움이 다른이의 수고를 덜어준다는 사실을 명심합니다.
  • 개발자는 윤리적인 책임이 있습니다. 사용자의 개인정보 보호와 보안등에 책임을 느껴야하며, 수익 창출에만 치중된 불법적인 제품의 개발에 참여하지 않습니다.