코딩은 에러와의 전쟁입니다.
이 글을 읽게 된 여러분은 에러를 마주하게 됨으로 진짜 코딩을 시작하게 된 것입니다.
코딩에 있어서 대부분의 경우에는 코드를 몰라서 원하는 결과를 못 얻는 것이 아닙니다.
어떤 식으로든 (효율적이든 비효율적이든 간에) 가능한 코드를 받아서 적용하는 과정에서 에러가 발생하고
그 에러를 잡는 과정이 진정한 코딩입니다.
코딩에 맞는 적성이냐를 따지기 위해 가장 중요한 것은 명석한 두뇌도 끈기도 아닙니다
모두가 첫 손에 꼽는 코딩을 하기 위해 가장 중요한 능력은 문제해결 능력입니다
왜? 말씀드렸듯 코딩이 에러와의 전쟁 그 자체니까요.
문제해결 능력이라는 것 중에 에러를 해결하는 능력이 큰 비중을 차지합니다.
이 포스팅을 읽는 여러분은 코딩에 막 입문하셨거나 입문한지는 좀 되었지만 문제해결이 부족하신 분이실 겁니다.
그래서 질문을 통해 에러를 해결해 보려다가 이 글을 읽게 되셨을 겁니다.
코딩 에러 해결의 기본은 재현입니다
여러분의 에러를 상대에게 발생시키는 것을 재현시킬 수 있어야 그 에러는 질문을 통해 해결됩니다.
여러분이 상대에게 재현시킬 수 없다면 상대는 그 에러를 해결할 수 없습니다.
그런데 여러분은 왜 에러가 났는지 도무지 모르기에 상대에게 어떤 에러가 왜 발생했는지 설명하고 재현하기 어렵습니다
그럼 어떻게 해야 할까요?
결론부터 말하면 그렇기에 안타깝게도 초보자가 코딩하다 생긴 에러는
다른 사람이 대신 해결하기 힘듭니다
초보니까 질문으로 편하게 해결하고 싶으시겠지만, 오히려 초보라서 질문으로 에러 해결이 안됩니다
대부분의 경우 여러분은 당신이 겪은 에러가 생긴 상황에 대한 설명을 할 능력이 없습니다.
그래서 다른 사람은 여러분이 겪은 상황을 알 수 없기에 해결해 줄 수 없는겁니다.
여러분은 그 사람에게 본인 상황을 설명하기 위해 많은 노력과 시간을 쏟아야하며
그런 노력에도 불구하고 운이 매우 좋았을 때 며칠이 지난 뒤에 답변받게 될 겁니다.
(누군가가 당신을 위해 아까운 시간을 써서 답변이라도 해주는거라 며칠뒤라도 답변받는 것만으로도 다행인 겁니다)
한 걸음 한걸음마다 에러가 쏟아지는 초보자는 이런 방식으로는 도무지 실습할 수 없습니다
코딩에서 발생한 에러를 온라인으로 질문한다는 것은 가장 비효율적인 방식인 해결방법을 선택하겠다는 것입니다
그리고 그것은 비효율적일 뿐 아니라 앞으로의 여러분을 위해 가장 독이 되는 방법으로 해결방법을 선택하는 것입니다
코딩에서 가장 중요한 문제해결능력은 스스로 문제를 해결할 때 길러지는 것입니다.
즉 여러분이 스스로 에러를 해결하면서 코딩에서 가장 중요한 능력을 기를 수 있는 기회인 것입니다.
그리고 스스로 에러를 해결하는걸 못하면 미래적으로 코딩을 하기 힘듭니다.
그래서 에러를 남에게 질문으로 해결하는 습관을 들이는 것은 스스로를 코딩 못하는 사람으로 만드는 겁니다.
초보자이면서 에러를 스스로 해결할 수 없다면 온라인 강의는 강의 범위내에서만 실습하세요.
그러면 에러는 나지 않고 에러가 나더라도 원래 코드와 비교만 하시면 해결이 되실거에요
나는 강의를 듣고 초보지만 여러가지 응용을 해보고 싶고
그 과정중에 생기는 에러는 스스로 해결하지 않고 질문으로 해결하고자 하면 오프라인 강의를 들으셔야 합니다.
온라인 강의는 온라인 강의의 장점에 맞게 언제 어디서든 들을수 있다로 활용하세요.
그런 장점이 있지만 단점으로 여러분의 응용에서 생기는 에러를 상대에게 해결시키기는 힘든겁니다.
언제 어디서든 들을 수 있기 때문에 강사가 여러분과 분리되어 있고 그렇기에 에러 재현시킬 수 없으니까요.
그러니 온라인 강의는 강의 범위내에서만 실습하는 활용이 맞습니다.
범위 밖의 다양한 실습을 하고 그에 따라 발생하는 에러를 질문으로 수정하고 싶다면 실강을 들으세요.
개인 코딩 과외도 좋습니다.
초보자인 당신이 질문으로 에러를 해결하려면 당신을 가르쳐줄 사람이 물리적으로라도 당신의 옆에 있어야 됩니다.
당신은 당신의 상황을 설명할 능력이 없고 상대에게 에러를 재현시킬 방법이 없으니,
물리적으로라도 옆에 있어야 당신의 컴터를 두들기며 어떤 상황인지 알수 있으니까요
하지만 지금 옆에 당신의 문제를 해결해줄 사람이 없죠. 그럼 질문으로는 해결이 안되는 겁니다.
메일이든 메세지든 아무리 보내도 문제 해결이 안됩니다.
답변자는 당신의 상황을 볼 수 없고, 당신은 당신의 상황을 설명할 능력이 없으니까요
그럼에도 다행인건 코딩의 에러는 검색으로 여러분 스스로 해결할 수 있는 경우가 많습니다
질문으로는 해결이 힘들지만 코딩의 에러는 검색으로 손쉽게 해결되는 경우가 많습니다.
아래 몇가지에 유의사항을 먼저 확인하시면서 차근히 아래 방법에 따라 검색을 해보시면 여러분의 에러가 꽤 많이 해결됩니다.
1. 강의를 그대로 따라했는지부터 확인합니다
이게 초보자의 에러 중 가장 큰 부분을 차지하면서도 질문으로는 정말 해결이 안되는 부분입니다
본인은 '그대로 따라했는데 안된다'고 말하는데 사실은 그대로 따라하지 않았거든요.
그래서 아무리 상황을 알려줘도 답변자가 에러의 원인을 찾을 수가 없습니다.
당신이 코딩에 초보라는 것은 코딩에서 그대로 따라한 것과 따라하지 않은 것을 구분하지 못하는 상태라는 겁니다.
위 그림의 립스틱 색이 차이가 없어보이는 것과 같은 상태인거죠.
강의에서는 a='Bc'라고 변수를 지정했으나 내가 a='bc'로 변수를 지정해도 다른 점을 구분 못할 때가 많습니다
혹은 b='1'로 문자열로 지정했지만 나는 b=1로 정수로 변수를 지정해도 다르게 썼다는 것을 구분 못할 때가 많아요
당신의 눈을 믿지 마시고 도구를 활용해 확인하세요
반드시 눈으로 확인하지 말고 사이트를 이용해 확인하세요
코드 확인 사이트 링크: https://wepplication.github.io/tools/compareDoc/
2. 강의와 개발환경을 통일해야 합니다
구글 스프레드 시트로 엑셀 강의를 들으려는 사람이 있나요?
이런 사람들은 없을 겁니다. 혹은 있다하더라도 엑셀과 구글시트의 차이는 본인 스스로 해결할 수 있는 사람일겁니다
파이썬에는 다양한 개발환경이 존재합니다. vs코드, 파이참, 구글코랩, 주피터 노트북 등등 각자 다양한 에디터를 씁니다
드물지 않게 1번에서 그대로 똑같이 했더라도 개발환경이 달라서 에러가 나는 경우가 있습니다
주피터 노트북에서는 되지만 구글코랩에서는 안될 수 있습니다.
또한 파이썬과 판다스 버전에 따라 안되는 코드들도 존재합니다.
초보자때 강사와 다른 개발환경으로 강의를 따라하겠다는 생각 자체가
에러를 한번 양산해보겠다는 생각입니다
쏟아지는 에러속에서 안그래도 고통받는데 추가적인 에러를 더 당하면서 실습을 하겠다는 겁니다
그러지 마세요. 초보일수록 불필요한 에러를 줄이는 방향으로 가야 합니다
개발환경을 통일하지 않고 각자의 환경으로 실습하는 사람들은 스스로 본인의 문제를 해결할 수 있는 사람들입니다
'나는 초보자이기때문에 스스로 문제는 해결을 못하지만 강사와 다른 개발환경에서 배워보겠어!' 라는 야심찬 생각은 코딩 그만두게 되는 지름길입니다.
개발환경을 통일시키지 않는 초보분들이 그렇게 하는 이유는 대부분 귀찮아서 혹은 손에 익어서 쓰던 에디터를 계속 쓰려는 건데
그게 훨씬 귀찮은 일을 대규모로 양산하게 되는 일이라는 것을 잊지마세요.
주피터 노트북이나 구글코랩으로 강의한 경우 아래 영상을 보시면 설치 및 사용하실 수 있습니다
주피터 노트북 설치 및 사용법 : https://youtu.be/vyqLVnZW64c
구글코랩 사용법 강의 영상 : https://youtu.be/ewPNvWq3hAY
3. 에러 메세지를 확인하세요
놀라울 정도로 많은 초보자는 에러메세지를 확인조차 하지 않습니다.
영어라서, 코딩에 익숙하지 않아서, 그냥 물어보면 될거 같아서 등등의 이유로 에러메세지를 확인조차 하지 않는 사람들이 많습니다.
아니 어떤 에러가 났는지도 모르면서 어떻게 질문을 할까 싶은데 질문은 이렇게 합니다
"에러가 나는데 어떻게 하죠? 똑같이 따라했는데....."
이런 질문은 도무지 해결이 될 수 없는 질문입니다
에러메세지에 당신이 겪는 에러는 대부분 나와 있습니다. 에러메세지를 반드시 확인하세요
위 경우 가장 아래 줄의 FileNotFoundError: [Errno 2] No such file or directory: 'C:\x0colder\x0cile.xlsx' 부분이 에러메세지 입니다
그리고 에러메세지는 어떤 에러가 발생했는지 정확히 알려주었습니다
파일을 불러오는 코드였는데 해당 파일이나 폴더가 없다는 겁니다
영어가 무서운 분들은 번역기를 이용하세요
파이썬의 에러메세지는 모두 검색이 잦은 문구이기에 훌륭하게 구글번역을 통해 한글이 됩니다
4. 에러 메세지를 구글에 검색하세요
에러 메세지를 단순히 해석하는 것만으로 해결이 안될수도 있습니다
그럴 땐 해당 에러메세지로 구글에 검색하세요
위의
FileNotFoundError: [Errno 2] No such file or directory: 'C:\x0colder\x0cile.xlsx' 로 구글검색합니다
위처럼 수많은 페이지에서 해당 에러를 다루고 있습니다
구글에서 에러메세지를 검색해 최소 10개의 글을 읽어보세요. 그리고 해결을 시도해 보세요.
이 과정으로 초심자때 겪는 에러의 95%는 해결됩니다.
물론 저 모든 페이지를 다 읽어도 같은 방법으로 해결이 안될수도 있습니다
이런 과정을 거치는 중에 대부분의 에러는 해결거나 그건 아니더라도 본인이 어떤 에러를 겪고 있는 것인지 알게 됩니다
위 글들을 제목만 봐도 파일을 못찾고 있다는 느낌이 드시죠? (사실 에러메세지만 봐도 알수 있습니다)
대충 어떤 문제인지 파악하게 되었기에 정확하게 경로를 썼는지 확인하고 해당 경로에 파일이 있는지 확인하게 됩니다
그럼에도 실패하더라도 본인이 보다 더 상황을 파악하게 되었기에 질문도 보다 명확하게 할 수 있습니다
pandas read_excel함수로 엑셀 파일을 불렀고
FileNotFoundError: [Errno 2] No such file or directory: 'C:\x0colder\x0cile.xlsx'라는 에러가 발생했습니다
에러 메세지를 읽어보니 파일을 못찾고 있는 것 같습니다.
검색해보니 보통 파일명이나 경로명이 틀린 경우가 많다기에
혹시나 파일명이나 경로명이 틀렸는지 몇번을 확인했는데 파일명은 정확합니다
어떤 문제가 있을까요?
개발환경은 구글코랩을 쓰고 있습니다
라고 질문하실 수 있습니다
그러면 누군가가 답변해줄겁니다. 이제는 이전보다는 여러분의 상황이 파악이 되니까요.
파일명이 정확한데도 파일을 찾지 못하는 상황을 떠올리며 당신의 질문을 읽을 겁니다
그렇기에 에러메세지에 나온 No such file or directory: 'C:\x0colder\x0cile.xlsx 에 주목하게 되고
개발 환경이 구글코랩이면 C:\의 파일을 읽지 못하는걸 떠올리며
구글 코랩은 내컴퓨터의 파일을 읽을 수 없습니다라고 답변 해주게 됩니다
어떤 상황을 겪었는지 조금이라도 더 명확하게 알게 되었기에 답변도 할 수 있는겁니다
여러분이 어떤 상황을 겪고 있는지 답변자가 여러분께 다시 질문해서 확인해야 하면 해결이 될 수 없습니다
최소 2-3일동안 상황설명을 요구하는 메세지와 그에 대한 답변만 서로 오고갈 겁니다.
(이것조차 답변자가 열정이 있을 때의 이야기이고 대부분의 답변자는 부실한 여러분의 상황 설명에 관심도 갖지 않습니다.
에러를 해결해서 본인에게 도움이 되려는 여러분도 귀찮아서 상황 파악이 전혀 될 수 없게 의식의 흐름에 따라 질문하는데
본인의 문제해결과 관련없는 답변자가 되물어가며 해결을 하는 열정을 쏟을 이유가 전혀 없습니다.)
도무지 파악되지 않는 여러분의 상황을 파악하기 위한 메세지를 오고가며 되물어주는 답변자가 있더라도
이 과정이 매우 귀찮고 질문만 똑바로 했어도 굳이 겪지 않아도 될 과정이기에
질문자 혹은 답변자가 과정중에 포기하고 떨어져 나갑니다.
결국 명확하지 않은 질문은 답변이 안되는 질문이 될 뿐입니다.
아무리 초보자더라도 나는 초보니까 에러를 질문을 통해 해결하겠다고 생각하시는 분은 실강이나 개인과외를 하셔야 합니다.
누군가가 물리적으로 옆에 있지 않으면 해결이 안됩니다.
여러분이 온라인 강의로 코딩을 배우기로 마음먹었다면
에러 발생시 최소한 위의 행동은 하셔야 합니다.
이것도 최소한의 일입니다
어차피 여러분이 코딩을 시작한 이상 에러는 여러분과 항상 함께 합니다
이 과정이 귀찮아 보여도 미래의 여러분을 위한 자양분이며 언젠가는 해야될 일이고요 코딩을 위한 스킬업 시간입니다
여러분의 명확하지 않은 질문, 의식에 흐름에 따라 하는 질문이 오히려 답변받을 수 없기에 버리는 시간과 에너지입니다
이렇게 스스로 에러를 해결해보려고 시도하는 것이 여러분의 시간과 에너지조차도 아끼는 길입니다
요약 :
에러가 생기면 먼저
1. 강의를 그대로 따라했는지 확인합니다(코드 확인 사이트 링크: https://wepplication.github.io/tools/compareDoc/)
2. 강의와 개발환경을 통일합니다 (주피터 노트북으로 한 강의라면 주피터 노트북으로 실습하세요)
3. 에러 메세지를 확인하세요(에러 맨 아래의 메세지가 에러메세지입니다 구글번역으로 쉽게 한글화 됩니다)
4. 위 에러 메세지를 구글에 검색하세요 (최소 10개의 글을 훑어보시면 해결되지 않더라도 어떤 에러인지 감이 옵니다)
이 이후에 다른 방법을 모색하셔야 오히려 시간도 절약하며 가장 손쉽게 에러가 해결되면서 문제해결 능력도 길러집니다
유튜브에서 판다스 강의 중입니다
https://www.youtube.com/@KimPandas
'여러 가지 이야기 > 잡다한 이야기' 카테고리의 다른 글
[pandas] 내가 생각한 결과가 나오지 않을 때 가장 먼저 확인해야 할 것 (0) | 2023.08.12 |
---|---|
[pandas] 포괄적인 규칙성을 찾는 이들에게 드리는 조언 (0) | 2023.07.16 |
[slack] 슬랙에서 코드블럭 사용하는 방법 (0) | 2023.07.10 |
나의 개발 환경(파이썬 IDE)이 강의와 다르다면 어떻게 해야 할까요? (0) | 2023.06.10 |
[pandas] 코딩에 데이터에 대한 질문을 할 때 예시를 작성하는 방법 (0) | 2023.05.25 |