공부,개발 팁

코딩 공부는 이렇게 해야한다!

최지로 2024. 1. 5. 20:07

일단 저는 비전공자에 c++ 공부중 입니다
저도 이제 뭘 만들어보는 입장이고

코딩이 어쩌구 공부방법이 어쩌구.. 잘해서 떠드는게 아니라

제가 느끼는 이 감정을 적어두고 싶었습니다

분명 누군가는 공감을 하거나 힘을 얻거나 할 수있을꺼라 생각도 하구요..

 

사실 제가 학창시절에 공부를 안했어요

뭘 만들거나 그리거나 게임이나 컨텐츠 시청 하는걸 되게 좋아했어요

비속어로 빡대갈이였습니다

그래서 사실 돌아다니는 코딩의 관련된 글이나 영상보면 이해가 안되는 부분도 있고

제일 핵심적인 기초를 벗어나는 방법 이런건 알려주는곳이 없더라구요

그래서 저는 제가 코딩 공부를 하면서 느끼고 배운걸 한번 공유하려고 합니다

 

우선 코딩을 하려면 강의던 책이던 기초문법을 공부해야됩니다

기초문법에서 어렵다고 하면 뭐 포인터, 객체지향.. 동적할당.. 뭐 이런게 어렵다고 많이 나온는데

사실 저는 반복문이 제일 어려웠어요

문법이 어렵다 개념이 어렵다는게 아니고 응용해서 만드는게 어려웠어요

반복문 공부하면 보통 별찍기, 피라미드, 다이아몬드, 구구단.. 이런거 많이 만들잖아요

 

그리고 어떤 사람들은 반복문이 어렵다고하면 개발의 적성이 안맞는거다 포기해라 이러는 사람이 많던데

진짜 개소리이에요..

어려움의 구간은 사람마다 다른거고 처음에 어렵지 하다보면 계속 하다보면 별거 아니에요

저도 처음에 반복문 별찍기 못해서 3~4일을 고민하다 정답보고 이런걸 반복했는데

지금은 조금만 고민해도 금방 만들어요

 

결국 방법을 모르고 익숙하지가 않았던거지

항상 하는 말.. 많이하면 실력이 늘어요.. 이건 진짜 개발에선 진리입니다..

 

여기서 개발공부 팁 1)

=머리로만 생각하지 말고 글을 쓰던 그림을 그리던 하세요

개발 초보자가 많이하는 실수가 머리로만 생각하는건데 이거 진짜 안좋아요..

뭐든지 글이던 그림이던 내 생각을 막 분출해야되요

실제로 반복문은 무조건 그림으로 동작 하나하나를 그려보는게 이해하기 제일 좋아요

 

개발공부 팁1.2)

= 코드를 어떻게 쓸지 모르겠으면 일단 글고 써보세요
만약에 1~10을 출력을 해야한다고 치면

어떻게 출력을 하지..? 일단 1부터 10까지 하나하나 출력문을 써보자

그럼 출력문이 반복이 되고있다는걸 알 수 있고

그럼 반복문을 이용하면 되지 않을까??

반복문은 어떻게 쓰는거지..?

이런식으로 코드를 모르겠으면 일단 글로 써보세요

이러면 문법을 모르는거지만 동작원리는 어느정도 이해했다고 볼 수 있어요

코딩에서도 의외로 국어능력 필요합니다.. ㅋㅋ

 

개발공부 팁2)

= 모르면 시간을 정해두고 고민하고 넘어가라

개발자한테 제일 중요한건 코드를 잘짜고 이런것보단 문제를 해결하는 능력이 제일 중요합니다

그럼 문제를 해결하는 능력을 키우려면 어떻게 해야할까요??

심플하게 어려운 문제를 직면하고 푸는걸 많이 해봐야됩니다

그래서 초보떄는 사실 모든게 다 어렵기만한 문제들 투성이라서

초보떄 어렵더라도 몇시간이나 며칠을 고민해보라고 하는게 이런 이유에요..

 

문법공부가 끝나고 프로젝트 몇 개를 해보면 아시겠지만
사실 플젝마다 필요한 기능이나 구현 방법은 거의 비슷해요 

그래서 플젝 몇 개 해보면 왠만한 플젝은 어떻게 설계할지나 기본적인 기둥은 만들 수 있어요

그래서 초보떄 어려운 문제를 많이 직면하니 많이 고민하라는 이야기 입니다

 

근데.. 여기서 문제는 정말 고민을 한다고 풀 수 있을까? 이런 의문이 들어요..

저도 문제를 못풀어서 고민은 많이 해봤지만..처음 직면한 문제는 못풀었어요..

 

제 개인적인 생각은 저처럼 학창시절에 공부를 안해서 기본 베이스가 없다고 하시면

무작정 풀릴 떄까지 생각만 하는건 비추에요

0에서 아무리 곱하기를 해도 0입니다..

 

수학 공부 할 떄도 많이 쓰는 공부법인데

고민할 시간을 정해두세요 1~2시간정도.. 그리고 이 시간을 너무 길게 설정하지마세요

시간 길게 설정하면 몇 번 고민하다 집중력 떨어지고 걍 딴짓하게되요..

그리고 제일 중요한건 그 시간동안 무작정 막 시도하라는게 아니라 생각을 잘 해야되요..

 

이 공부 방법의 핵심은 설정한 시간동안 얼마나 생각이나 고민을 잘 하는지 입니다

보통 1시간이면 그 시간동안 논리적인 생각을 하고 그걸 위에 팁 있는 글처럼

글로 계속 쓰거나 그림을 그리다가 맞는거 같다 싶으면 코딩을 해보고 여기서 안된다면 디버깅 해보시고..

그래도 안풀린다? 정답 보세요 그리고 비교해 보세요

내가 어디가 틀린건지.. 그리고 복습해보세요

 

여기서 중요한건 정답을 보고 문제를 풀었다가 아니라

정해진 시간동안 고민과 생각을 하면서 답에 접근을 하려고 했다는거에요

 

이거 처음 한두번 할 떈 제대로 안될꺼에요 생각이 정답 근처에도 안갈꺼에요

근데 이게 계속 쌓이고 익숙해지다 보면 실력이 금방 늘꺼에요

 

그렇다고 무작정 며칠동안 고민하는게 안좋다는게 아니고

풀떄까지 고민하는게 사실 제일 좋은 정석인 방법인데

 

저처럼 공부를 안해봤던 사람들은 저렇게 고민만 하다가 딴짓할 확률도 높고

그게 코딩을 포기하게 될 수 있어요.. 나랑 코딩은 안맞다고 하면서..

그러니까 제가 말한 공부법은 이런식으로 조금씩 조금씩 익숙해지게 해서

나중엔 저렇게 정석대로 할 수 있게 해주는 좀 돌아가는 공부방법이라는 겁니다 

 

코딩공부 팁3)

=기초 문법을 공부 할 떄 모르면 일단 넘어가자

사실 기초문법에서 제일 문제는 이해 못했고 뭔가 찝찝하면 다음으로 못넘어가는게 제일 문제에요..

사실 문제까지는 아니고 어떤 사람의 경우는 정말 좋은 습관이지만

어떤사람은 그게 쌓이다가 그냥 포기하게되요.. 그래서 문제라고 하는겁니다..

 

객체지향 전까지는 사실 관련 실습문제가 많아서 강의듣고 애매하다 싶으면 그 문제들 풀면되요

이제 객체지향 이후부턴 그런 풀 수 있는 문제들이 거의 없고 어느정도 암기를 하셔야되요

그래서 한 2~3번 반복해서 보면 대충 어떤 문법인지는 알겠지만 

어떻게 써야할지는 모르는 느낌이 들꺼에요 그럴 떈 걍 지나가세요...

 

나중에 자료구조나 알고리즘 공부 할 떄 이해되거나 

좀 난이도 있는 플젝을 하다보면 자연스럽게 공부하고 이해하게 될겁니다..

보통 강의 후반부에 있는 개념들은 한번에 이해하고 쓰기 힘들어요..

그냥 이런 문법이 있구나 하고 넘어가세요..

 

이제 기초문법 공부 끝나고 만드는 플젝은 객체지향도 적용하기 힘들어요 사실..

플젝 좀 하다보면 이런게 불편한데? 이렇게 하고싶은데? 이런 경우가 생기는데

그 떄 찾아서 공부하시면 되요..

 

코딩공부 팁4)

= 따라치기가 나쁜건 아니다

대부분 기초문법인 강의나 책을 다 보면 

배운 문법을 이용해서 뭔가를 만들어보시게 될텐데요

여기서 의견이 좀 갈리는게 남의 코드 따라치는 클론코딩 하지마 vs 해도좋다 가 있는데..

결론은 하세요 입니다...

 

왜 하지말라는 소리가 나오냐면

그냥 뇌 비우고 따라치기만 하면 알아서 결과물이 나오는데

사람들이 여기서 착각을 많이 하더라구요 자기가 만들었고 그 코드들은 자기가 이해한거라고.. 전혀 아닙니다 ㅋㅋ

그리고 뇌를 비우고 따라치지만 하면 머리에도 잘 안들어와서 금방 까먹고요

 

클론코딩을 하는 이유는 이제 기초문법 끝났는데 뭘 만들려고 하면 막막하니까

남이 만든거 보면서 이런식으로 만든는구나.. 구조나 문법을 익히라고 하는거에요

 

제가 클론코딩 하는 방법은 3가지에요

1)쭉 코드를 읽고 대충 어떤 코드인지 유추해보기

2)구글링이던  gpt를 이용하던 해서 코드를 읽고 이해한거 주석처리로 다 써놓고

3) 새롭게 내가 스스로 만들어보기 + 기능추가하기

 

여기서 3번할 떄 코드를 외워서 안보고 치라는게 아니고

2번까지 했으면 이 플젝을 만들 떄 어떤 구조로 만들어지고 문법을 어떻게 쓰는지 느낌이 옵니다

그럼 그걸로 제가 스스로 코드를 짜는거에요 변형하면서..

 

애초에 안보고 제가 이해한대로 코드를 짜면 코드가 똑같이 안만들어져요

여기서 주의할 점이 완벽하게 만들라는게 아니에요!!

어떻게든 동작을 하기만 하면 거지같이 만들어도 성공이에요

이제 이 플젝은 시간이 지나고 나서 

내가 기초떄 얼마나 엉망이였고 지금 내가 얼마나 성장했는지 알 수 있는 훌룡한 자료가 될꺼에요

 

+아마 2번까진 쉽지만 3번은 한번에 안될꺼에요

그떈 다시 2번으로 가서 공부하세요 나는 2번에서 완벽하게 이해를 했다고 생각하시겠지만

사실 동작 원리를 이해못했기 떄문에 못짜는겁니다.. 

그렇게 3번에서 고생하다가 2번으로 다시 돌아가면 이전보다 코드가 더 잘보이게 될꺼에요

 

저에 경우엔 2번 확실히 이해했다고 넘어가서 첨부터 만드는데.. 안되서 2~3일 멍 떄렸는데..

다시 2번으로 돌아가니까 전 코드를 이해한게 아니라 걍 읽기만 했던거에요

그니까 이 코드를 보고 이런 기능을 만들기 위해 이렇게해서 만들었다를 이해한게 아니라

if(i == 0) 이런 코드라면 이건 if문이고 조건문은 i가 0과 같아지면 실행.. 이런식으로 걍 읽기만 했더라구요..

클론코딩 두번쨰 할떄도 똑같은 짓으로 고생했어요.. 

2번하고 3번으로 넘어갔는데 첨부터 코드가 안짜진다??

코드 동작원리를 제대로 이해 못했다는 겁니다! 다시 2번부터 하세요!

 

코딩공부 팁5)

= 오류뜨면 눈으로 오류찾지말고 디버깅 하세요!! 제발!!! 

사실 기초 수준에야 코드줄이 적어서 눈으로 찾는게 편하니까 그런건 알겠는데

저도 그랬으니까.. 그래도 오류났으면 일단 디버깅 돌리는걸 먼저 해보세요..

 

이게 처음에는 뭔지도 모르고 어색하고 그런데

나중에 플젝해보시면 느끼지만 디버깅 익숙해져야 편합니다..

기초수준에 하는 플젝인데도 오류뜨면 에러 이유도 안뜨는 경우가 많고

이 오류가 뭔지는 아는데 이 오류가 왜 이부분에서 터지는지 모를떄가 많습니다 ㅋㅋㅋ
그럴 떄는 걍 디버깅 돌리면서 변하는 값들 보시면 대부분 해결이되요..

저도 사실 클론코딩 하면서 디버깅 하는 습관이 생겼어요 ㅎㅎ

 

코딩공부 팁6)

= ghat GPT 이용 많이하세요...

저도 이전부터 말은 많이 들었지만 코드 만들어 달라고하면 이상하게 뱉어줘서 처음에 몇 번 만지고 안썼는데요
요즘은 구글링보단 GPT 많이써요 

현직자분들한테 물어봐도 구글링보단 더 많이 쓰이더라구요

그리고 오히려 기초 떄 더 필요한 기능이에요

 

기초떄는 사실 뭐가 뭔지도 모르고 질문하려면 장문의 글과 코드를 복붙해서 하는데..

이런건 구글링이나 어디 커뮤니티에 질문하기도 애매한데

이런건 gpt로 질문하면 진짜 편해요 이해가 될 떄까지 자세하게 파고들면서 질문 할 수 있구요

주의할 점은 GPT 가끔 잘못된 정보도 주니까 조심하세요..

gpt가 알려준게 계속 이해가 안된다??
이해가 안되는걸 정리해서 이게 맞는거야? 라고 다시 질문하면 gpt가 잘못알려줬다고 죄송하다고 할 떄 은근 있어요 ㅋㅋ 

 

코딩공부 팁7)

= 문서화 시키세요

공부하면서 내가 막혔던 것들이나

막혔던 문제를 어떻게 해결 했는지

공부하면서 이런점이 힘들었다던지..

내가 만든 플젝에 설계나 코드를 적는다던지
자주 쓰이는 문법들은 적어둔다 던지

이런거 다 적어두세요

 

개발블로그나 티스토리를 이용하셔도 좋고
노션같은 프로그램 이용하셔도 좋아요

전 노션 잘 쓰고있습니다 ㅎㅎ

 

당장은 귀찮아도 이게 의외로 도움이 많이되고

나중에 취직을 하게 되셔도 도움이 많이 될꺼에요
회사는 더더운 제가 한 일에 대해서 문서화를 시켜야되요..

일반적인 회사도 똑같구요..

지금 대충 적는것보다 더 철저하게 적어서 오히려 문서작성하시는게 더 힘드실 수 있습니다..

그러니 미리미리 습관을 기른다 생각하고 공부한것들 다 문서화 시키세요~