본문 바로가기
개발공부하며 느낀 인생 공부

왜 다들 코딩을 안하지?[20220808 til]

by 날파리1 2022. 8. 8.

사실 요새 코딩이 프로그래밍이? 점점 재밌다. 저번주는 학습하는 내내 서버때문에 빡친 3시간말고 즐거웠는데 사실 실력이 너무 허접인데 이걸 재밌다고하면 좀 창피해서 참았다. 근데 티아이엘이 굳이 애꿎은 내용넣는거 보다 그때 그때 내 기분 ,생각 넣는게 좋으니 그냥 쓸련다.

 

왜 재밌을까? (문과도 코딩배워도 되나요 ? )

나는 사람들이 농담처럼 하는 문과 이과를 대학이 졸업한지 한참 지나고도 너 문과잖아 넌 이과잖아 이렇게 나누는걸 저엉말 싫어하는데 그게 개인의 역량을 너무 문이과로 나누듯 이분화한다는 것이랑 그리고 언어는 정말 중요한데 그렇게 말함으로써 자기 자신의 역량을 딱 '문과'로 한계지음으로써 발전을 막는 것 같다. '실제로 그런말 하는 사람들은 수학 관련된 것을 보면 도망치고 언어관련된 것을 보면 당연한듯 난 이과라서 저런 말 장난 잘 몰라 로 퉁치기 다반사인듯?)

 

코스시작전에 나도 수리적 논리 부분이 정말 약한 것을 알고 있어서(수학이랑 과학도 좋아했다 근데 언어 외국어가 훨씬 강한 걸 어떡해...) 사실 걱정도 했다. 그런데 아직까지는 정말 수능문제에서 정답률 5퍼센트 미만의 다이나믹한 기하학 증명 문제나 수학 정의의 반례를 찾는 다는 그런 건 아직 못 봤다. 다만 해결하려는 문제가 여러 이해관계가 꼬여있어 문제간에 논리를 명확하고 순서대로 해결해야한다는 것은 잘 알겠다. 

 

꼬인 논리(코드뭉치)를 풀려면 수많은 코드와 논리를 검사해야하는데 이 디버깅 과정이 상당히 재미있다. 
문제점 찾기 게임같다고 해야하나?
문과 이과가 중요하기보다는 problem-sloving 능력이 중요한 것 같다.
그것이 끈기이든 집요함이든 논리적임이든.

처음에는 이 문제들이 어디서 터지는지 도통 모르니 맨날 울상이었는데 조금씩 내가 가설을 세우고  '이 문제가 생겼으니 이 부분들에서일거야 하나하나씩 주석처리후 테스트해보자' 로 접근해서 그 가설이 딱 맞으면 재미있다.

 

사고 회로가 바뀌는 것 같기도하다.

보면 우리인간은 모든걸 러프하게 보는 것을 좋아하는 것 같다.(당연히 그래야 뇌가 쉬니까) 근데 이것을 더욱 잘게 세분화하여서 즉 하나의 코드를 하나의 논리로 본다면 그 순서를 묘하게 따라가면서 내가 당연시 여겨서 생략한 사고과정을 찾는 것이 재미가 있다. 근데 사실 생각해보면 이런 사고과정은 코딩뿐만아니라 모든 일에서 중요하지 않나?

문제가 발생 -> 문제의 결과로 기반해 문제점이 될만한 원인들을 파악 -> 나머지 요인들을 차단한 채 실험 -> 핵심 문제 선별해서 해결

저 구조 과정은 어디에나 도움될 법한 사고방식인 것 같다.

 

시험하려고 테스트 코드를 짜는게 아니라 만드려고 테스트 코드를 짜는 것 같다.

테스트 말그대로 시험이라서 어떤 것을 세우고 시험해볼 것같은데 항상 순서는 역순이다. 근데 첨에 왜이래...이러다가 요새는 익숙해져서 인지 테스트코드부터를 왜짜는지 살짝 알 것 같기도하다. 

집을 지어보자!
자 모래,시멘트,문, 철근 인부 보일러 배관.. 뭐부터 해야하나...?
어휴.. 막막해

위가 우리가 설계하려는 프로그램이라면 저런 느낌인데 테스트코드가 있으면

 

 

 

자 다시 집을 지어보자!
일단 안방,거실, 화장실이 필요하겟군
오케이 자 그것중 화장실부터 만드려면 뭐가 필요하지?
타일,변기,샤워부스 등이 필요하군..
그럼 타일러.. 배관공..오케이 일단 그렇게 준비해서 시작해보자!

좀 더 쉬워지지 않았는가? 나만 그런가? 집은 안지어봤지만 일단 화장실부터 만든다치면 타일러와 배관공부터 불러서 필요 자재랑 과정부터 물어보면 될 법하다 그럼 러프한 그린!

 

 

근데 진짜 집을 지을 수 있네?

근데 진짜 집을 지으려면 일단

1. 인건비 , 자재비 수천 수억원

2. 한번 초기 모델 설정후 변경 불가

3. 변경 할 수 있다고 하더라도 수개월 시간 추가

 

라는 극한의 한계가 있는데 

 

프로그래밍에선 정말 몇버이든 새로운 대지위에 무언가를 세우고 실험을 하고 실제로 사람들이 사용할 수 있는 집이 되기도한다.

 

그래서 요약하면

하나하나씩 코드를 짚어가며 문제점을 발견하는 재미

복잡한 논리식과 문제들을 프로그래밍으로 해결하여 단순화시키는 재미

마지막으로 완성되었을때 하나의 작품이 되는 재미

 

이렇게 있는 것 같다.

 

아직 너무너무너무 허접이라 뭐 말하기도 부끄럽지만 내가 이만큼 재밌다고 할 수 있는건 돌이켜보면 지금 뿐 일것이다. 곧

1. 코드를 짚어가며 밤을 새서 야근

2. 복잡한 논리식과 문제들을 해결해야하는데 해결못해서 못퇴근

3. 완성했는데 내가 만든게아니라 돈벌려고 만든 서비스라서 작품이 아니라 그냥 취직한 회사에서의 서비스

 

로 고통으로 바뀔 것이니

 

그러니 지금을 즐기자! 무야호!

 

힘들땐 웃자 랄로처럼~
얼른 시작하세요 코딩!!

 

아 끝으로 재밌다곤 했지만 정말 끈기랑 학습에 대한 탐구심있으신분들이 하면 좋아욥!

댓글