이는 Codesignal의 사전 스크린에서 발견되는 것과 유사한 업계 코딩 프레임 워크 평가의 모의 예입니다. 인터넷에서 이러한 유형의 평가를 탐색하는 데있어 포괄적 인 가이드 또는 예제의 희귀 성을 강조하는 것이 중요합니다.이 문서는 그러한 과제를 준비하려는 사람들에게 귀중한 자원이됩니다.
더 많은 통찰력과 리소스를 보려면 Twitter @paullockettkpb의 제작자를 팔로우하십시오.
이 안내서는 코딩 커뮤니티 내에서 지식을 탐구하고 공유하는 그의 여정의 일부입니다.
이 문서에 요약 된 작업은 기술 인터뷰 또는 코딩 경쟁에서 일반적으로 발생하는 코딩 평가의 복잡성과 폭을 모방하기 위해 제작되었습니다. 각 수준은 점차 더 복잡한 문제를 도입하여 데이터 구조, 알고리즘 및 소프트웨어 엔지니어링 원리에 대한 확실한 이해가 필요합니다.
작업에 뛰어 들어이 안내서에 요약 된 테스트를 실행하기 전에 개발 환경이 올바르게 설정되도록하는 것이 중요합니다. 테스트 및 시뮬레이션을 효과적으로 실행하는 데 필요한 전제 조건은 다음과 같습니다.
python --version 또는 python3 --version 실행하여 설치를 확인할 수 있습니다.중요 참고 : CodesIngal은 평가에 Python 버전 3.10.6을 사용합니다.
터미널 또는 명령 프롬프트에 대한 친숙 함 : 터미널 (Mac/Linux) 또는 명령 프롬프트 (Windows) 사용에 대한 기본 지식이 도움이됩니다. test_simulation.py 파일에 제공된 테스트 스크립트를 실행하려면이를 사용해야합니다.
필수 파이썬 패키지 설치 : 작업부터 시작하기 전에 요구 사항 requirements.txt 파일에 나열된 Python 패키지를 설치해야합니다. 이 패키지에는이 안내서의 작업 전반에 걸쳐 사용될 수있는 필요한 라이브러리가 포함되어 있습니다. 이 패키지를 설치하려면 터미널 또는 명령 프롬프트에서 다음 명령을 실행하십시오.
pip install -r requirements.txt
또는
/path/to/python3.10.6 -m pip install -r requirements.txt
이 명령은 Python의 패키지 설치 프로그램 인 Pip에게 요구 requirements.txt 파일에 나열된 모든 패키지를 설치하도록 지시합니다. 이 명령을 실행할 때 requirements.txt 과 동일한 디렉토리에 있는지 확인하거나 올바른 경로를 제공하십시오. 이러한 패키지를 미리 설치하면 필요한 모든 도구와 라이브러리가 처분 할 때 더 부드러운 코딩 경험을 용이하게합니다.
중요 참고 : Python 및 필요한 패키지를 설치할 때 Python의 버전이 Codesignal에서 사용하는 버전 ( 3.10.6) 과 일치하는 것이 중요합니다. 또한 통합 개발 환경 (IDE)이 동일한 Python 통역사를 사용하도록 구성되어 있는지 확인하십시오. 이 일관성은 파이썬 버전의 차이로 인해 행동이나 기능의 불일치를 피하는 데 필수적입니다.
이러한 전제 조건이 충족되도록함으로써 작업에 참여하고 테스트를 실행 하며이 모의 Codesignal 프리 스크린 평가를 최대한 활용할 수 있도록 준비가되어 있습니다. 잘 정리 된 개발 환경은 원활하고 효율적인 코딩 경험의 핵심입니다.
타이밍 : 작업을 완료하기 위해 스스로 90 분의 엄격한 시간 제한을 설정하십시오. 이 관행은 실제 평가에 종종 존재하는 시간 제약을 시뮬레이션하여 효과적인 시간 관리 기술의 개발을 촉진하도록 설계되었습니다.
순차적 진행 : 레벨 1부터 시작하여 앞의 것을 완전히 완료 할 때까지 다음 레벨로 진행하지 마십시오. 이 체계적인 접근 방식은 제시된 도전에 대한 점진적이고 철저한 이해를 보장합니다.
테스트 및 개발 환경 : simulation.py 파일 내에서 코딩 노력을 집중하십시오. 이 파일은 솔루션을 구현하고 작업에 설명 된 작업을 시뮬레이션하는 곳입니다.
실행 테스트 : 제공된 test_simulation.py 파일을 사용하여 코드에 대해 단위 테스트를 실행하십시오. 이 파일에는 각 레벨에 대한 테스트 케이스가 포함되어있어 솔루션의 정확성을 점차적으로 확인할 수 있습니다. 특정 레벨에 대한 테스트를 실행하려면 터미널 또는 명령 프롬프트에서 다음 명령 구조를 사용하십시오.
python3 -m unittest test_simulation.TestSimulateCodingFramework.test_group_1python3 -m unittest test_simulation.TestSimulateCodingFramework.test_group_2test_group_x 부분을 적절하게 조정하십시오.Refactoring : 레벨을 진행하면서 나중에 작업에 필요한 추가 기능을 수용하기 위해 필요한 경우 이전 솔루션을 다시 방문하고 리팩터링하십시오. 이 반복 프로세스는 확장 가능하고 유지 관리 가능한 소프트웨어를 개발하는 데 핵심입니다.
레벨을 통한 가장 빠른 진행을 보장하려면 다음 전략을 고려하십시오.
프레임 워크에 익숙해 지십시오 : 타이머를 시작하기 전에 코딩 프레임 워크와 작업 구조를 이해하는 데 시간을 보내십시오 (이 리포지션의 PDF 참조). 이 선불 투자는 시간이 정한 세션 동안 작업을 해석하는 데 필요한 시간을 줄임으로써 배당금을 지불합니다.
코딩 전에 계획 : 각 작업마다 코딩을 시작하기 전에 접근 방식을 몇 분 동안 보내십시오. 여기에는 의사 코드 작성, 도면 다이어그램 또는 취해야 할 단계를 설명하는 것이 포함될 수 있습니다. 명확한 계획은보다 효율적으로 코딩하고 디버깅에 소요되는 시간을 줄이는 데 도움이됩니다.
연습 속도 타이핑 : 타이핑의 물리적 행동은 병목 현상이 될 수 있습니다. 연습을 통해 타이핑 속도를 향상 시키면 전체 속도에 놀랍게도 큰 영향을 줄 수 있습니다.
스키밍의 기술을 마스터하십시오 : 핵심 요구 사항과 제약 조건을 식별하기 위해 작업 설명을 신속하게 훑어 보는 법을 배우십시오. 이 기술을 사용하면 작업 읽기를 마치는 경우에도 솔루션을 공식화 할 수 있습니다.
코드 스 니펫 및 라이브러리 사용 : 적절한 경우 코드 스 니펫 및 라이브러리를 사용하여 휠을 재창조하지 않도록하십시오. 그러나 도서관이 적합하지 않은 일을하도록 강요하는 데 시간을 낭비하지 않도록주의하십시오.
병렬화 및 코딩 : 가능하면 환경을 설정하여 이미 작성한 코드에서 테스트를 실행하면서 작업의 다른 부분에서 계속 작동합니다. 이는 문제를 조기에 식별하고 전반적인 개발 시간을 줄이는 데 도움이 될 수 있습니다.
완벽함에 대한 테스트 전달에 중점을 둡니다 . 가장 우아하지 않더라도 가능한 한 빨리 작업 솔루션을 얻으십시오. 시간이 남아 있으면 나중에 항상 리팩토링 할 수 있습니다.
이러한 전략을 통합함으로써 속도와 효율성을 크게 높여서 가속화 된 속도로 레벨을 진행할 수 있습니다.
해킹 가능한 방법으로 자동화 된 코딩 평가에 소스 된 다음 표는 업계 코딩 평가 내에서 질문에 대한 예상 시간 할당에 대한 자세한 분석을 제공합니다. 명확한 이해와 참조를 위해 형식화되어 있습니다.
| 수준 | 예상 시간 (분) |
|---|---|
| 1 | 10-15 |
| 2 | 20-30 |
| 3 | 30-60 |
| 4 | 30-60 |
모든 수준의 시간 범위를 집계 할 때, 평가를 완료하기위한 누적 추정치는 90 분에서 165 분 사이입니다. 그러나 후보자에 대한 규정 된 완료 시간은 90 분으로 설정됩니다. 이 불일치는 의도적이며 아래에 요약 된대로 특정 목적을 제공합니다.
평가의 최대 허용 완료 시간은 90 분으로 제한됩니다. 이 제약 조건은 후보자 가이 한도 내의 모든 작업을 해결할 것으로 기대되지 않습니다. 후보 기술의보다 정확한 측정 가능성에도 불구하고 짧은 평가의 이론적 근거는 후보자의 기꺼이 평가에 참여하려는 의지가 기간 동안 2 시간을 초과하는 시험에 대해 크게 감소한다는 관찰에 근거하고 있습니다. 후보자의 능력을 평가하는 중요한 측면은 모든 작업의 완료보다는 할당 된 기간 내에서 진행의 정도를 관찰하는 데 있습니다.
이 지침을 준수하고 지정된 기간 내에 작업을 완료하면 코딩 평가를 다루는 데 실질적인 경험이 있습니다.
행운을 빕니다. 진행 상황을 추적하고 접근 방식에 대한 피드백을 얻기 위해 솔루션을 자주 테스트해야합니까?.
이 가이드에 기여하는 것은 다른 사람들이 업계 코딩 평가를 준비하는 데 도움이되는 환상적인 방법입니다. 더 많은 질문과 도전을 추가하는 데 관심이 있다면 기여를 환영합니다! 기여하는 방법은 다음과 같습니다.
프레임 워크 이해 : 새로운 질문을 만들기 전에 기존 코딩 프레임 워크와 작업 구조에 익숙해 지십시오. 질문 구성 방법과 평가를 목표로하는 방법에 대한 자세한 지침은이 저장소의 PDF를 참조하십시오.
새로운 질문 만들기 : 실제 코딩 평가를 모방하기 위해 질문을 디자인하십시오. 그들이 명확하고 간결하며 다양한 어려움을 커버하십시오. 각 질문은 알고리즘 사고, 데이터 구조 또는 시간 제약 하에서 문제 해결과 같은 코딩 평가와 관련된 특정 기술 또는 기술 세트에 도전해야합니다.
기존 구조를 따르십시오 : 귀하의 질문은 Practice Assessments Directory, 특히 file_storage 예제와 관련된 구조 (콘텐츠가 아닌)와 유사해야합니다. 이 일관성은 후보자들이 형식에 익숙해지고 문제 해결에 집중할 수 있도록 도와줍니다.
PDF 지침을 준수하십시오 . 저장소의 PDF는 질문의 작동 방식에 대한 규칙을 간략하게 설명합니다. 평가의 품질과 관련성을 유지하기 위해 귀하의 질문 이이 규칙을 준수하도록하십시오.
질문 제출 : 질문을 만든 후에는 Practice Assessments 디렉토리에 질문하십시오. 질문이 현재 다루지 않은 새로운 테마 또는 개념을 기반으로하는 경우, Practice Assessments 내에서 새로운 하위 디렉토리를 작성하여 이에 따라 구성하는 것을 고려하십시오.
풀 요청 열기 : 풀 요청을 통해 기부금을 제출하십시오. 풀 요청에서 질문에 대한 간단한 설명과 코딩 프레임 워크의 목표와 어떻게 일치하는지 설명하십시오. 우리 팀은 제출물을 검토하고 필요한 경우 피드백을 제공합니다.
계속 참여하십시오 : 질문을 제출 한 후 커뮤니티와 약혼하십시오. 풀 요청에 대한 피드백에 응답하고 검토자가 권장하는대로 질문을 조정할 수 있습니다.
이 안내서에 기여함으로써 다른 사람들이 코딩 평가를 준비 할뿐만 아니라 의미 있고 도전적인 코딩 문제를 일으키는 자신의 기술을 연마하도록 도와줍니다. 우리는 귀하의 기여를보고 실습 평가 컬렉션을 확장하기를 기대합니다!