프로그래밍 기술을 향상시키기위한 아주 작은 프로그램?
더 나은 프로그래머가 되려면 프로그래밍이 필요하다는 것을 알고 있습니다! 그래서 분명히 더 많이 연습할수록 더 나은 사람이됩니다.
내 문제는 이것입니다. 저는 현재 대학에 다니고 있고, 수 업로드가 약간 힘들고 자유 시간이 많지 않다는 것을 알았습니다. 나는 내가 큰 프로젝트를 맡을 수 있다고 생각한다. 특히 나는 그것을 보도록 동기를 부여 할 필요가 없을 것이라고 생각한다. 내가해야 할 일을 위해 계속 미루는 것이 더 쉬울 것입니다. 학교.
그래도 연습하고 싶어요. 그래서 저는 아주 짧은 시간에 완료 할 수있는 프로그래밍 문제가있는 리소스를 찾고 있습니다. 이상적으로는 작지는 편안하고 10 시간 이상의 작업을 수행 할 수 있습니다.
Google Code Jam에 대해 들어 봤지만 그것이 지정하는 프로그램의 길이나 기술 수준을 잘 모르겠습니다.
누구에게 제안이 있습니까? 다른 기능에 대한 안내의 개요도 유용 할 수 있습니다. 예를 들어, 파일 IO에 대한 안내는 상당히 작은 주제 일 수 있으면 (아직 몰랐습니다) 가치가 있습니다.
코드 katas를 살펴 봐야합니다 . 그들은 당신이 말하는 것과 정확히 일치합니다. 코딩 / 사고 능력을 완벽하게하기 위해 고안된 짧은 연습입니다.
기타 참조 :
프로젝트 오일러는 매우 흥미롭고 쉬운 것부터 매우 도전적인 것까지 다양한 수학 / 숫자 관련 문제가 있습니다. 원하는 언어를 선택하고 솔루션 (큰 정수) 만 할 수 있습니다. 올바른 솔루션을 구축하면 다른 사용자가 댓글과 솔루션을 게시 한 포럼 / 댓글 페이지에 액세스 할 수 있습니다.
경험을 통해 반복적으로 수행하는 작업을 찾아 프로그램으로 전환하는 것이 좋습니다. 나는 또한 프로그래밍을 연습하기 위해 바퀴를 다시 발명 할 것을 권장합니다. 사람들이 이미 존재하는 문제를 해결하기 위해 말라고 말하게하지 않습니다. 그것이 어떻게 작동하는지 모르면 직접 작성하십시오.
나는 당신이 어떤 프로그래밍 수준에 있는지 알지 못하지만 너무 미친 짓을하지 않습니다. 그것은 단지 동기를 떨어 뜨리는 것입니다 (예를 들어 PS3 용 게임을 작성하려는 시도).
이미 IO를 통해 할 수있는 리소스 컬렉션을 사용하는 방법을 직접 배우려고 노력해야합니다. 제가 해본 모범 사례 중 하나는 Java TreeMap 클래스를 다시 작성하는 생각합니다. 큰 도전이 많은 것을 배웠습니다.
다음은 연습 과제에 대한 몇 가지 제안입니다.
상당한 양의 정보가 들어있는 텍스트 파일을 가져옵니다 무엇이든 가져옵니다. 원하는 경우 여기에서 얻을 수 있습니다. http://www.gutenberg.org/ 다음을 수행하는 프로그램을 만듭니다.
- 파일에서 읽기
- 단어 모음 및 해당 어커런스 만들기
- 철자 모음 만들기
- 단어 모음과 단어가 발생하는 위치 (줄 번호, 단어 위치) 만들기
- 파일에있는 단어에 대한 통계를 개발합니다. 의미-각 단어를 개인으로 취급-단어 전후에 단어.
- 파일에서 모든 공백을 제거하십시오.
- 위의 모든 데이터를 자신의 파일에 씁니다.
내가 가장 좋아하는 작업 중 하나는 웹 데이터를 엉망으로 만들고, 투표 웹 사이트로 이동하고, 투표 데이터가 표 형식으로있는 페이지를 찾아 다음을 수행하는 것입니다.
- 데이터 다운로드
- 데이터를 구문 분석하고 표 형식 데이터를 CSV 파일로 변환
- 오류없이 Excel에서 열기
또는 사이트를 찾아서 데이터를 추출하고 사이트가 로봇인지 확인하십시오. http://www.robotstxt.org/ , 사이트도 계명 공격 어떤을 받고 있다고 느끼지 않도록 하십시오 . 대부분의 경우 일반적으로 문제가 없습니다. 사이트의 이용 약관을 계속 판매 할 의도가없는 한보 고있는 내용의 사본 1 개를 다운로드 할 수 있기 때문에 존재합니다. 물론 모든 사이트에서 변경됩니다.
웹 사이트로 이동하여 프로그래밍 방식으로 페이지의 모든 링크를 가져옵니다.
여기에 재미있는 것이 있습니다. Susan 프로그램 (왜 Susan이라고 이름이 지어 졌는지 기억이 나지)은 처음에 Unix 환경에서 C 프로그램과 두 개의 Bourne 쉘 펼쳐서 사용하여 작성했습니다. 이 프로그램의 아이디어는 4 개의 하위 프로세스를 포크하고 각각에 다음과 같은 작업을 제공하는 것입니다.
마이어 1 : 파일을 읽고, 각 단어의 사전과 파일에서의 위치를 만들고, 파일로 출력합니다.
Child 2 : Child 1의 출력을 가져옵니다. 이것은 파일로 출력됩니다.
마이너스 3 : 마이너스 2의 출력을 가져와 마이너스 1이 다시 한 작업을 수행합니다.
마이너스 4 : 마이너스 3의 출력을 가져와 2가 다시 한 일을합니다.
여기서 목표는 Child가 출력하는 한 원본 파일을 4가 만드는 것입니다. 이것은 도전적인 다소 무의미하지만이 연습의 요점은 연습을하는 것입니다.
귀하의 경우에는 여러 가지 경우가 있습니다. 두 개의 다른 함수가있는 단일 프로그램을 사용하고 순서대로 호출 할 수 있습니다.
다시 말하지만, 아직이 수준인지 확실하지 않지만, 연습처럼 프로그램에 "for"또는 "foreach"루프를 재귀로 바꾸십시오. 재귀는 엉덩이의 고통이지만 알고 이해하는 것이 중요합니다.
이것들은 당신의 기술을 연마하는 데 도움이 될 몇 가지 제안입니다.
즐겨
저는 SPOJ 와 Project Euler 가 빠른 프로그래밍 도전과 연습을 좋아 합니다.
Code Jam은 좋은 프로그래밍 경연 대회이지만 대부분의 문제가 있습니다.
과거 탑 코더 알고리즘 경쟁에서 나온 좋은 문제들이 있습니다. (이미 거의 10 년 동안 한 달에 2 번 정도 열리기 때문에 꽤 많이 있습니다.)
난이도 는 2 부 에서 매우 단순한 (하지만 여전히 흥미로운) 문제 부터 매우 어려운 문제까지 다양 합니다. 또한 코드를 제출하고 테스트 할 수있는 솔루션 및 라이브 환경 이 포함 된 사설 이 있습니다. 다른 사람의 제출물을 통해 배울 수도 있습니다.
문제 목록을 확인 하십시오 .
topcoder의 또 다른 장점은 그들이 개최하는 정기적 인 온라인 콘테스트입니다. 실시간으로 다른 사람들과 경쟁하는 것이 동기 부여에 큰 도움이된다는 것을 알았습니다.
솔루션이나 힌트를 거의 제공하지 않지만 SPOJ , UVA 및 Timus 와 같은 더 많은 문제 아카이브가 있습니다 .
http://codegolf.stackexchange.com 에는 원하는 프로그래밍 문제가있을 수 있습니다. 그 사이트의 많은 답변은 골프를 쳤지 만 (최소한의 문자로 프로그램을 구현 함) 배울 수있는 흥미로운 예가 확실히 있습니다.
다음 웹 사이트에서 IT 과정에 등록 해보십시오.
이 웹 사이트는 프로그래밍 기술을 연마하기위한 도전적인 연습이 많이있는 명문 학교의 무료 교육 IT 프로그램을 제공합니다. 이로 인해 여과, 패턴 인식, 튀는 공 등을 프로그래밍하는 방법을 배웠습니다. 연습을 마치면 프로그램을 업로드하고 그에 따라 등급을 매 깁니다 (기본적으로 프로그램이 확인됩니다).
각 과정이 끝나면 수료증도 받게됩니다. 멋지죠?
언어에 따라 다르지만, 과거에는 http://rubyquiz.com 과 http://pythonchallenge.com 이 저에게 큰 도움이되었고, 일반적으로 더 나은 코드 검토 기회를 제공하는 데 도움이되므로 오픈 소스 이니셔티브에 참여할 수도 있습니다.
나는 항상 샘플 인터뷰 질문으로 연습하는 것이 기술을 연마하고 일반적으로 해결하지 못하는 유형의 문제에 노출되는 좋은 방법이라고 생각했습니다. 또한 일자리를 찾고 있다면 훨씬 더 많은 도움이됩니다.
요 전에 재미로 한 아주 간단한 것입니다.
루프를 사용하지 않고 1에서 100까지의 숫자를 인쇄하고 다시 1로 돌아가는 루틴을 작성하십시오.
Glassdoor.com에는 실제로 인터뷰에서받은 사람들이 제출 한 좋은 인터뷰 질문이 많이 있습니다.
대학에 재학 중이고 코딩 기술을 향상시키려는 하드 카피 책 Cracking the Coding Interview 가 적합 할 수 있습니다. 기술 분야에서 최고의 회사와의 인터뷰에 대한 일반적인 프로그래밍 질문과 유용한 정보가 있습니다. 훌륭한 질문이있을뿐만 아니라 적절한 문제 분석도 있습니다.
[공개 : 책을 소유하고 있지만 관련이 없습니다.]
프로그래밍을 좋아하고 프로그래머 기술을 향상 시키려면 cocode.co 를 시도해야합니다 . StackOverflow와 비슷하지만 질문을하고 답하는 대신 프로그래밍 과제를 게시하고 해결하는 것을 기반으로하는 소셜 젊은 사이트입니다. 매우 쉬운 도전에서 매우 어려운 도전까지.
ACM 문제 해결을 시도 할 수 있습니다. 거기에는 수천 개의 문제가 있으며 난이도를 찾을 수 있으므로 먼저 할 문제를 선택할 수 있습니다. 이에 대한 공식 사이트는 다음과 같습니다.
http://uva.onlinejudge.org/ . 더 많은 것을 배울 수 있습니다.
안부 arefin
조금 분명해 보일지 모르지만 최근에 Stack Overflow에 대한 정규식 질문에 답하는 것만으로도 정규식 기술이 크게 향상되었음을 알 수 있습니다. 교육은 문제를 쉽게 설명 할 수있는 조각으로 나누도록 강요하며, 해결책의 전부는 아니지만 대부분을 알고있는 경우에 연구를 안내합니다.
이 유형은 초보자 자습서만큼 좋지 않기 때문에 이미 어느 정도 능숙한 주제를 찾는 것이 좋습니다. 해당 주제로 태그가 지정된 질문을 검색하고 답을 찾으십시오. 머릿속에 코드 만 작성하지 마십시오. 계속해서 작성하고 테스트하고 설명하십시오. 답이 정확한지 확실하지 않은 경우 게시하지 말고 작성하십시오.
참고 URL : https://stackoverflow.com/questions/5208268/very-small-programs-to-improve-programming-skills
'ProgramingTip' 카테고리의 다른 글
Visual Studio의 기본 네임 명명 규칙과 싸움을 중지해야합니까? (0) | 2020.11.21 |
---|---|
Android : Proguard에 권장되는 구성은 무엇입니까? (0) | 2020.11.21 |
10 개의 데이터 구조에서 10 개의 함수보다 하나의 데이터 구조에서 100 개의 함수가 작동하는 것이 더 좋은 이유 (0) | 2020.11.21 |
Backbone.js에서 뷰 및 모델 폐기 (0) | 2020.11.21 |
새 사용자 정의 컨트롤을 도구 상자 나 새 Winform에 어떻게 추가 할 수 있습니까? (0) | 2020.11.21 |