ProjectEuler practice
이걸 안건 2017년 쯤이었던 것 같다. 영국에서 프로그래머 활동을 하는 어떤 분의 블로그를 봤는데, 꾸준히 그리고 부지런히 프로젝트 오일러의 문제 풀이를 하고 있는 걸 봤다. 그때는 막연히 나도 하면 좋겠다는 생각만 했을 뿐 실천해야 겠다는 생각은 하지 못했다. 그러다가 실천 의지를 발휘해서 하기로 했다.
TIOBE 순위 중 1 - 5위 까지의 프로그래밍 언어를 랜덤으로 하나씩 선택 해 문제를 풀고, 다음 문제는 나머지 선택되지 않은 프로그래밍 언어 중 랜덤하게 선택해서 풀어 나가는 방식
2020 state of the octoverse에서 Top languages over the years 순위를 참고해 1 - 10위 까지의 프로그래밍 언어를 랜덤으로 하나씩 선택해 풀고, 다음 문제는 나머지 선택되지 않은 프로그래밍 언어 중 랜덤하게 선택해서 풀어 나가는 방식.
26번 문제부터 이 방식을 채택해서 진행함.
2020 top languages over the years는 다음과 같다.
- 실제 알고 있어야 하는 수학적인 개념
- 수학적인 풀이 예제를 통한 구현 방식 이해
- 생각한 것을 pseudo level로 풀어야 하는 언어에 맞게 정리
- 생각했던 알고리즘이나 만들어야 하는 함수를 문서로 작성
- 분석, 설계 했던 내용 그대로 코딩 진행
- 코딩 진행 중 생각했던 것과 달랐을 경우 문서 내용에 추가
- 실제 테스트 데이터나 코드는 작성하지 않음
- 필요에 따라 성능 테스트를 위한 시간 측정이나 logging은 진행 => 필요시 uncomment
- 더 나은 구현 방식에 대한 걸 찾으면 diff 코드를 문서에 추가
- 언어별 다른 점이나 더 나은점이 있다면 역시 변경하면서 문서에 추가
- Revised할 문제가 필요하다면 별도로 새 프로젝트로 만들어서 진행
- 절대 코딩부터 하지 말고 문제 자체를 이해한다.
- 주어진 문제 내애서 해결해야 하는 방안을 코드로 구현할 수 있게 설계를 진행하고 문서 작성을 함
- 코딩은 그 다음에 해도 늦지 않음
- 문제를 푸는데 필요한 수학적 개념을 따로 정리
- 링크 참고: Notes
- Top languages over the years 2020: picked programming is JavaScript (top 1)
- Top languages over the years 2020: picked programming is C# (top 5)
- TIOBE index for Jun 2018, Ranking Top 1: Java
- TIOBE index for October 2020, Ranking Top 1: C
- TIOBE index for September 2020, Ranking Top 3: Python
- TIOBE index for July 2020, Ranking Top 4: C++
- TIOBE index for December 2019, Ranking Top 5: C#
- TIOBE index for June 2020, Ranking Top 2: Java
- TIOBE index for May 2020, Ranking Top 5: C#
- TIOBE index for September 2019, Ranking Top 1: Java
- TIOBE index for February 2020, Ranking Top 2: C
- TIOBE index for December 2019, Ranking Top 5: C#
- TIOBE index for October 2019, Ranking Top 4: C++
- TIOBE index for September 2019, Ranking Top 1: Java
- TIOBE index for December 2018, Ranking Top 3: Python
- TIOBE index for September 2018, Ranking Top 2: C
- TIOBE index for July 2019, Ranking Top 4: C++
- TIOBE index for January 2019, Ranking Top 5: Visual Basic .NET
- TIOBE index for September 2018, Ranking Top 1: Java
- TIOBE index for August 2018, Ranking Top 3: C++
- TIOBE index for August 2018, Ranking Top 5: Visual Basic .NET
- TIOBE index for August 2018, Ranking Top 2: C
- TIOBE index for August 2018, Ranking Top 1: Java
- TIOBE index for August 2018, Ranking Top 4: Python
- TIOBE index for August 2018, Ranking Top 3: C++
- TIOBE index for August 2018, Ranking Top 3: C++
- TIOBE index for July 2018, Ranking Top 2: C
- TIOBE index for July 2018, Ranking Top 5: Visual Basic .NET
- TIOBE index for July 2018, Ranking Top 4: Python
- TIOBE index for Jun 2018, Ranking Top 1: Java