JavaRush /Java Blog /Random-KO /커피 브레이크 #55. 개발자 커뮤니티를 찾는 4가지 팁 초보 프로그래머가 마스터해야 할 5가지 예상치...

커피 브레이크 #55. 개발자 커뮤니티를 찾는 4가지 팁 초보 프로그래머가 마스터해야 할 5가지 예상치 못한 기술

Random-KO 그룹에 게시되었습니다

개발자 커뮤니티를 찾는 4가지 팁

출처: Honeypot 개발자의 전문성 개발에 도움이 되는 요소 중 하나는 그들이 속한 커뮤니티입니다. 아직 자신만의 것을 찾지 못했다면 걱정하지 마세요! 이 기사에서는 이를 수행하는 방법을 알려 드리겠습니다. 인간은 혼자 있기로 되어 있지 않습니다. 인류가 발전을 이룬 것은 공동의 목표를 달성하기 위해 협력하는 능력을 통해서입니다. 이러한 협업의 좋은 예는 개발자 커뮤니티입니다. 다른 전문 산업과 달리 개발자는 서로 매우 자주 상호 작용하며 삶의 대부분이 자신이 만든 커뮤니티와 연결되어 있습니다. 개발자이지만 아직 커뮤니티를 찾지 못했다면 절망하지 마세요. 경력의 어느 단계에서나 이들 중 하나에 합류할 수 있습니다.커피 브레이크 #55.  개발자 커뮤니티를 찾는 4가지 팁  초보 프로그래머가 마스터해야 할 5가지 예상치 못한 기술 - 1

1. 당신에게 필요한 것이 무엇인지 알아보세요

개발자 커뮤니티를 찾기 위해 온라인 심연에 뛰어들기 전에 정확히 무엇이 필요한지, 무엇을 찾고 있는지 파악해야 합니다. 개발자의 직업 경력의 각 단계에는 고유한 관심과 차이점이 있습니다. Java를 배우고 있다면 Python 커뮤니티에서 원하는 정보를 찾을 가능성이 낮으며, 그 반대의 경우도 마찬가지입니다.

2. 지역 커뮤니티를 찾아보세요

Ember 프로그래밍 팀의 일원인 Jessica는 베를린에 살고 있습니다. 다행스럽게도 이 도시는 다른 지역 개발자들과 네트워크를 형성할 수 있는 기회를 많이 제공합니다. “저는 전문적인 그룹회의 경험이 많았고 사람들이 기술에 대해 더 많이 배울 수 있도록 돕는 개방형 기술 학교에 오랫동안 참여했습니다.” 그 소녀는 세미나와 남녀공학 그룹에 참여했고, 그것이 초보자에게 매우 유용하다는 것을 알았습니다. “다른 학생들의 도움도 받았고, 무료 멘토링도 받았습니다. 책임감이 생겼고, 집회에 정기적으로 참석하고, 스스로 공부할 수 있는 용기가 생겼다고 할 수 있죠.” 지역 커뮤니티를 찾으려면 Jessica는 Google에서 검색할 것을 제안합니다. 대도시에 살고 있다면 가입할 지역 코딩 커뮤니티를 찾는 데 아무런 문제가 없을 것입니다. 그러나 소셜 네트워크의 일부 그룹은 더 이상 활동하지 않거나 오랫동안 메시지를 게시하지 않은 것으로 드러날 수 있습니다. 이러한 상황에서는 커뮤니티에 다른 일이 벌어지고 있는지 직접 물어보는 것을 두려워하지 마세요. 관심을 보이는 것은 언제나 감사한 일입니다.

3. 온라인 커뮤니티 찾기

다른 개발자를 직접 만나면 여러 가지 이점이 있습니다. 그러나 지역 커뮤니티에 대한 접근이 제한되어 있다면 온라인에서 대안을 찾을 수 있다는 것이 거의 보장됩니다. 이미 Discord나 Slack에 전용 커뮤니티가 있는 다양한 프레임워크나 기술을 사용하고 있을 수도 있습니다. 이는 작업 지원과 새로운 프로젝트, 아이디어에 대한 영감을 찾는 데 적합하며 공개 프로젝트에 참여하는 데도 적합합니다.

온라인 커뮤니티를 찾을 수 있는 장소는 다음과 같습니다.

dev.to . 자체 표현에 따르면 "소프트웨어 산업은 협업과 네트워크 학습에 의존합니다." dev.to는 개발자들이 코딩의 기술적 측면, 직업 조언, 일반적인 지원 및 동기 부여 등 서로 만나 도움을 줄 수 있는 공간을 제공합니다. #Slack의 개발자 . 이 채널에 액세스하려면 몇 가지 질문에 답해야 하지만 일단 들어가면 필요한 모든 지원과 조언을 얻을 수 있습니다 :) Hashnode . 원하는 프로그래밍 주제에 대한 기사를 작성하고 더 넓은 커뮤니티와 상호 작용하십시오. 이는 다른 개발자들과 계속 소통할 수 있는 좋은 방법입니다. 코딩하는 여성들 . 이곳은 프로그래밍 리소스와 아이디어를 공유할 수 있는 열린 공간을 찾을 수 있는 기술 분야 여성을 위한 지원 장소입니다. 레딧 . 모든 코딩 틈새 시장에 대한 하위 레딧이 많이 있습니다. 가장 활동적인 r/programming , r/java , r/python , r/javascript , r/reactjs r/cscareerquestions를 확인해 보세요 . Facebook의 개발자 서클 . 여기서 주요 목표는 개발자가 "새로운 기술과 아이디어를 개발하고 경력을 발전시키기 위한 무료 도구를 얻을 수 있는" 지역적으로 조직된 커뮤니티를 만드는 것입니다. Facebook에서 커뮤니티를 찾으세요. 모든 토론은 현재 온라인에서 진행됩니다.

4. 오픈소스 커뮤니티 찾기

오픈 소스 커뮤니티에 참여하는 것은 전문성 개발의 중요한 부분이 될 수 있습니다. 오픈 소스 커뮤니티의 활발한 회원이 된다는 것은 기여하는 것뿐만 아니라 이벤트 및 컨퍼런스에 참석하고, 다른 사람들을 만나고, 멘토를 찾고, 네트워킹하는 것을 의미합니다. 오픈 소스 커뮤니티에서 습득한 기술(기술적, 비기술적 모두) 외에도 여기에 참여하면 업무 외의 프로그래머에게 소속감을 부여합니다. 오픈 소스 커뮤니티에는 뭔가 큰 일을 한다는 독특한 느낌이 있으며, 그 작업은 여러 면에서 의미 있는 기여입니다. 어디서부터 시작해야 할지 궁금하신가요? 당신이 좋아하는 오픈 소스 프로젝트가 무엇인지 생각해보고 거기에서 시작하세요. 코드에서 오타를 찾아 수정하는 것만큼 간단할 수 있습니다. 어딘가에서 시작하는 것이 중요합니다.

결론

전문 커뮤니티에서 개발자가 받는 자기계발에 대한 지원과 인센티브 수준은 매우 높습니다. 다행스럽게도 지역 소셜 미디어 그룹이든 프로그래밍 언어 전용 대규모 온라인 리소스이든 어디에서나 개발자 커뮤니티에 액세스할 수 있습니다. 가장 중요한 것은 자신에게 맞는 것을 찾는 것입니다.

초보 프로그래머가 마스터해야 할 5가지 예상치 못한 기술

출처: Codeburst 독학으로 개발자가 되기까지의 길은 멀고도 험난했습니다. 때때로 나는 내가 겪었던 모든 장애물과 실망을 기억하면서 이렇게 시작할 가치가 있었는지 자문합니다. 그리고 이제 나는 그것이 그만한 가치가 있었다고 말할 수 있습니다. 나처럼 처음부터 시작한 사람들에게는 학습 곡선이 매우 가파르다. 그러나 나는 장기적으로 볼 때 이 산을 정복하는 데 드는 노력보다 이익이 더 크다고 확신합니다. 물론 이는 배우는 내용이 마음에 드는 경우에만 적용됩니다. 좋은 개발자는 단순히 코드를 빠르고 쉽게 작성하는 것 이상의 일을 할 수 있어야 한다는 사실을 이해하는 데 몇 년이 걸렸습니다. 많은 초보자들은 개발 기술을 습득하려면 프로그램을 작성하고 실행하는 능력 이상의 것이 필요하다는 사실을 깨닫지 못합니다. 따라서 모든 야심 찬 개발자에게 꼭 필요한 코딩 외에도 5가지 기술이 더 있습니다!커피 브레이크 #55.  개발자 커뮤니티를 찾는 4가지 팁  초보 프로그래머가 마스터해야 할 5가지 예상치 못한 기술 - 2

1. 협업 도구 사용

많은 인기 있는 자가 학습 프로그래밍 플랫폼은 언어 구문과 데이터 구조에 중점을 둡니다. 일부에서는 학생들이 처음부터 기본 프로젝트를 만들 수 있도록 허용합니다. 간단한 게임이나 작업 목록 앱을 가정해 보겠습니다. 이 수업은 프로그래밍 기술을 시작하는 데 매우 중요하지만 앞으로 접하게 될 실제 작업 환경을 시뮬레이션하지는 않습니다. 개발자는 대규모 프로젝트에서 함께 작업하며 때로는 개발자가 동시에 여러 코드 기반에서 작업할 수도 있습니다. 팀워크에는 Google 스프레드시트 또는 Invision과 같은 도구를 사용하는 경우가 많습니다. 개발팀에는 자체 표준 협업 도구 세트가 있습니다. 우리 회사는 미국의 수만 개의 다른 회사와 마찬가지로 GitHub를 사용합니다. 나는 동료들이 나에게 GitHub를 소개한 날을 결코 잊지 못할 것입니다. 먼저 그들은 내 컴퓨터에서 터미널을 열라고 했습니다(내 컴퓨터에 그런 것이 있는지 전혀 몰랐습니다). 그러자 동료들이 내 화면에 있는 이 신비한 창에 횡설수설을 입력하기 시작했습니다. 이 횡설수설은 내 컴퓨터의 여러 폴더를 코드로 가득 찬 온갖 종류의 파일로 채우는 것과 같은 마법 같은 일을 하는 것으로 밝혀졌습니다. 그런 다음 그들은 "원격"인 "가지"와 "보풀"에 대해 이야기했습니다. 그리고 문자 그대로 모든 단어가 접두사 "git"으로 시작되는 것 같았습니다. 나는 그들이 영어를 사용한다는 것을 알고 있었지만 그들의 말의 의미는 나에게 불분명했습니다. 이전에 다른 개발자와 코딩을 해본 적이 없는 초보자라면 언어와 협업 도구를 배워야 합니다. 특히 명령 프롬프트를 열어본 적이 없다면 이는 복잡해 보일 수 있습니다. 하지만 시간이 지나면 습관이 될 것입니다.

2. 로깅 및 오류 처리

이미 다른 프로그래머와 협력하는 방법을 배웠고 코드가 프로덕션 환경으로 전송되었다고 가정해 보겠습니다. 당신이 작성한 내용이 수천, 수백만 명의 사용자가 사용하게 되면 정말 기분이 좋아질 것입니다. 하지만 일단 이 단계에 도달하면 코드에서 예상치 못한 오류가 항상 발생한다는 어려운 방식을 배우게 될 것입니다. 예를 들어, 생성한 변수는 값을 받지 못했습니다. 이제 null 값을 사용하여 메서드를 호출하고 있으며 프로그램은 이를 어떻게 해야 할지 모릅니다. 오류가 발생하여 이제 사용자는 귀하가 만든 멋진 페이지에 더 이상 액세스할 수 없습니다. 프로그램을 테스트해 보면 모든 것이 올바른 것처럼 보이므로 문제를 인지하지 못할 수도 있습니다. 이 특정 오류는 전체 시간의 5%에서만 발생할 수 있지만 100,000명의 사용자 중 5%에게는 심각한 오류입니다. 코드의 오류를 기록하고, 처리하고, 예측하는 방법을 배워야 합니다. 이는 개발자에게 절대적으로 필수적인 기술입니다. 그렇습니다. 문제를 예측하는 능력은 시간과 경험에 따라 발달하는 본능입니다. 그러나 초보자는 오류가 개발의 거의 필수적인 부분이라는 것을 기억하는 것이 중요합니다. 다양한 유형의 오류 로깅을 사용하여 코드를 보호하는 방법을 알면 나중에 특히 디버깅 작업을 수행할 때 많은 어려움을 덜 수 있습니다. 또한 자신이 겪고 있는 줄도 몰랐던 문제를 식별하는 데 도움이 될 수 있습니다. 현재 우리는 코드베이스의 취약점을 쉽게 추적할 수 있는 다양한 버그 로깅 도구에 액세스할 수 있습니다. 제가 가장 좋아하는 것 중 하나는 Sentry입니다. 이를 통해 문제가 처음 발생한 시기와 발생 빈도를 확인할 수 있습니다. 또한 언급할만한 가치가 있는 것은 Logentries, Rollbar 및 Instabug입니다. New Relic 및 Datadog과 같이 시스템 전체의 데이터 및 문제를 모니터링하는 프로그램이 있습니다. 개발 경력을 쌓으면서 이러한 프로그램의 조합을 접하게 될 가능성이 높으며, 이를 사용하는 방법을 배우는 것은 가치가 있습니다.

3. 테스트 범위

앞서 말했듯이 프로그래밍 기술을 연마하는 것은 단순히 코드를 작성하는 것 이상입니다. 여러분의 코드를 다른 개발자가 이해할 수 있는지 확인해야 하며, 2년 후 누군가가 코드를 공개하면 그 사람이 신속하게 코드를 선택하여 변경 작업을 시작할 수 있어야 합니다. 당신이 작성한 논리는 앞으로 몇 년 동안 이해 가능하고 재사용 가능해야 합니다. 그러나 때로는 논리가 복잡하여 단순화할 수 없는 경우도 있습니다. 아마도 비즈니스 로직의 복잡성 때문일 것입니다. 아마도 시간이 부족해서일 것이다. 현실은 마감 기한으로 인해 때때로 이상적이지 않은 기술적 결정을 내리게 된다는 것입니다. 그리고 작업을 시작하기 전에 항상 모든 사용 사례를 명확하게 정의할 수는 없습니다. 코드를 안전하게 유지하는 한 가지 방법은 변경 사항을 수반하는 테스트를 작성하는 것입니다. 대부분의 프로그래밍 언어에는 설치할 수 있는 추가 테스트 패키지가 있습니다. 예를 들어 Ruby의 경우 Rspec을 사용하고 React의 경우 Jasmine을 자주 사용합니다. 단위 테스트(작은 로직 조각 테스트용) 및 통합 테스트(엔드 투 엔드 흐름 테스트용)를 포함하여 다양한 유형의 테스트가 있습니다. 코드를 공통 코드베이스에 제출하려면 전체 테스트 스위트를 통과해야 하는 경우가 많습니다. 작성 방법을 배운 후에는 향후 변경 사항이 실수로 작성한 기능을 덮어쓰는 것을 방지하는 "안전 장치"를 추가합니다. 많은 테스트 사례가 일반 영어로 작성되므로 테스트 범위는 예상되는 동작을 정의하는 데도 도움이 됩니다. 몇 년 전에 작성된 일부 파일에 들어가서 변경 사항을 적용하고 예상되는 동작을 잘 이해하고 있다고 생각했음에도 불구하고 이로 인해 수십 가지 테스트가 실패했다는 사실을 얼마나 많이 발견했는지 말할 수 없습니다. . 한 번은 제가 몇 달 전에 직접 작성한 기능을 깨뜨린 적도 있습니다. 운 좋게도 내 단위 테스트에서 이 사실이 즉시 드러났습니다. 끌어오기 요청을 살펴보면 개발자가 테스트 범위에 충분히 주의를 기울이지 않는 경우가 많으며 이는 단순 변경과 복잡한 변경 모두에 적용됩니다. 나 역시 이것에 대해 죄책감을 갖고 있다. 특히 마감일이 촉박할 때는 더욱 그렇다. 하지만 한 곳을 변경하면 다른 네 곳에서 고장이 발생한 여러 프로젝트를 생각해 볼 수 있습니다. 이미 마감일을 맞추기 위해 서두르고 있었음에도 불구하고 이로 인해 스트레스 수준이 높아지고 더 많은 일이 추가되었습니다. 적절한 시기에 단위 테스트를 작성하는 데 시간을 투자했다면 이러한 상황은 피할 수 있었을 것입니다. 이를 작성하는 방법을 배우는 것은 특히 새로운 개발자에게는 지루한 작업이 될 수 있으며, 이를 작성하면 전반적인 개발 프로세스가 확실히 느려집니다. 그러나 테스트 작성을 빨리 시작할수록 앞으로 귀하와 귀하의 팀이 직면하게 될 골칫거리가 줄어듭니다.

4. 코드 검토

이 점은 코드 기반에서 함께 작업하는 첫 번째 점과 관련이 있습니다. 종종 코드베이스를 변경하는 프로세스는 다음과 같습니다. 로컬에서 일부 코드를 작성하고 있습니다. 이를 코드베이스의 메인 브랜치로 푸시하려면 끌어오기 요청(변경 사항에 대한 시각적 요약)을 생성하고 팀의 다른 개발자가 병합을 진행하기 전에 코드를 검토합니다. 팀마다 끌어오기 요청 승인에 대한 요구 사항이 다르지만 일반적으로 변경 사항은 누군가가 확실히 검토하고 구현할 것이라고 예상해야 합니다. 검토를 위해 코드를 제출할 뿐만 아니라 다른 사람의 코드도 검토한다는 점은 주목할 가치가 있습니다. 다른 사람의 코드를 읽는 방법을 배우는 것은 개발자에게 중요한 기술이며 경력 전반에 걸쳐 개발되어야 합니다. 제가 처음 시작하고 다른 사람의 끌어오기 요청을 살펴보라는 요청을 받았을 때 무엇을 찾아야 할지 잘 이해하지 못했습니다. 처음에는 버그를 찾아야 한다고 생각했습니다. 몇 년이 흘렀고 이제 나는 코드 리뷰를 철저한 조사보다는 온전한 상태 점검에 더 가깝다고 생각합니다. 궁극적으로 코드를 검토하고, 필요한 테스트를 추가하고, 이 코드를 공용 데이터베이스에 안전하게 제공하는 책임은 풀 요청을 보낸 개발자입니다. 숨겨진 문제를 찾아내는 것은 리뷰어의 임무가 아닙니다. 요즘에는 코드를 검토할 때 가독성(예: 변수 및 메서드 이름이 설명적인지), 구성, 구조(처음 보는 사람이 더 명확하게 볼 수 있도록 코드를 더 잘 구성할 수 있는지 여부)를 확인합니다. . 물론, 코드베이스에 익숙해질수록 잠재적인 문제를 더 쉽게 식별할 수 있습니다. 하지만 초보자라도 코드 검토 기술을 습득할 수 있습니다. 무엇보다도 이는 경험이 많은 동료가 사용하는 코드 패턴에 익숙해지는 좋은 방법이기도 합니다.

5. 적절한 Google 검색

프로그래밍, 프로그래밍 언어, 심지어 코드베이스에 대해 모든 것을 아는 개발자는 없습니다. 이전에는 저를 제외한 모든 사람이 이 경우에 어떤 방법, 쿼리 및 전략을 사용해야 하는지 즉시 이해할 수 있다고 확신했습니다. 하지만 더 많은 사람들과 짝을 이룰수록 개발자들이 질문에 대한 답변을 Google에서 검색하는 빈도가 얼마나 되는지 더 많이 깨닫게 되었습니다. 경험자라도! 우리 업무에는 기억해야 할 세부사항이 너무 많습니다. 나에게 필요한 것은 모든 것을 암기하는 것이 아니라 올바른 답을 찾는 방법을 배우는 것임을 곧 분명해졌습니다. Stackoverflow는 당신의 가장 친한 친구가 될 것입니다. 당신이 어떤 것에 붙어 있다면 다른 사람이 이전에 그것에 붙어 있었을 가능성이 있습니다. 문제 해결에 있어서는 무엇이 잘못되었는지 정확히 파악하고, 이를 단어로 설명하고, 해당 단어를 검색 엔진에 입력하십시오. 당신이 직면한 문제를 명확하게 표현할 수 있는 것은 암기하는 것보다 훨씬 더 도움이 될 것입니다.

결론

소프트웨어 개발 여정에서 조만간 실망을 겪게 될 것입니다. 이것으로부터 탈출구는 없습니다. 그러나 이러한 좌절감을 완화하기 위해 고안된 도구와 전략을 더 많이 사용할수록 귀하의 경력에 ​​더 많은 보람이 있을 것입니다. 코스를 유지하고 포기하지 마십시오.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION