펌-이슈

수준 ㄷㄷ한 고등학생 코딩 경량화 교육에 대한 토론

세학 2021. 6. 17. 16:56
반응형

 

 

 

 

코딩의 ㅋ도 모르는 비 전문가 입장에서는 이런식이라도 코드 경량화 하고

반사적으로 여기서는 이 알고리즘 공식처럼 탁 탁 튀어나오면

실무로 가서 배우거나 뭐 하기에는 좋을 거 같은데 전문가들이 보기에는 어때보임? 

점수를 타이핑 시간을 줄이면 준다고는 하지만 결과적으로는 코드 경량화와 런타임 시간 줄인다는건 동일하지 않음? 

 

자기가 만들고 싶은거 대로 만들다 보면 코딩이 재미있어 질텐데

 

숏코딩하면 못알아봐서 감점 당할듯

 

어차피 2025년만 되면 킹파고 보다 만배정도 똑똑한 인공지능이 온라인으로 코딩 다 해줄 거임.

야 내가 이런 이런 프로그램을 만들고 싶은데

자료는 어떤 식으로 모으고 대입해서 이런식으로

말하면 딱 만들어주고

중간에 이거 이거 수정해주고 이러면 딱 해주고 그런 시대가 오지 않을까 ㅋㅋ

 

그게 어려움... 사실 그걸 완성하면 거즘 50%이상은 끝났다고 봐야함. 내가 무얼 만들고 싶은가? 그러게 위해서 어디서 in을 넣고 out은 어찌되야 하는가. 이런거 분석 설계가 실제 프로젝트의 50%는 차지함. 이걸 잘하면 시간안에 별 문제없는 프로그램 나오는거고 실패하면 끝도 없이 프로젝트 늘어지는거지.

 

나에게 코딩이란?

생각하는 힘을 길러주는데 큰 도움이 된것도 '코딩'

일의 순서도와 올바른 Flow, 그것이 사회나 실생활에도 도움이 되게 해준 '코딩'

일의 편리함과 단순화, 사람들에게 편안함을 제공해줄수 있다는 마음을 갖게 해준 '코딩'

 

손 보려면 손 볼 수 있지만 기본기로 사용 된 함수의 코드의 타이핑 시간을 잰다는건

그냥 코드 외우게 하는거지 이게 효과를 볼 수도 있음

자연스럽게 코드를 줄줄 치게 되는데 그러려면 완벽암기는 또 힘드니 어느정도 이해하는 범위까지 감

이해하면서 외우면 가장빠를거고

이해를 완벽하게 하면 두번째

외우기만 하면 특정 범위는 엄청 빠르지만 결국 다 못할 가능성이 높음

실제 코딩교육장에서 간간히 보이는 평가방식임

실제 개발 실무자들한테 위와같은 요건은 개소리지만

억지로 공부하는 애들도 많은 학교와 평가라는 특성에는 생각보다 맞춤형임 

 

그렇긴 함 무슨 학문이든간에 기본은 암기지 ㅋㅋ 중등교육이라는 특성도 있고 

 

ㅋㅋㅋㅋ코딩하고 거의 전공 연관없는 이과대학생인데 교양필수 코딩에서 시험문제로 진짜 저런거 나옴.

빈칸 뚫어놓고 코드 채우시오 ㅋㅋㅋㅋ

 

근데 알고리즘이나 명령문 이해하고 빈칸 채우는거랑 빈칸 채우려고 그 부분만 공부하는거랑은 다르긴하지 ㅋㅋ

 

ㅋㅋㅋ CP에서도 선 넘는 숏코딩은 지양하는데

코드 라인수 줄이는건 진짜 개 신박하다 ㅋㅋ 그럼 ㅅㅂ 걍 1라인에서 메소드 이어붙이면서 다쓰면 최고점수임? ㅋㅋㅋㅋ

 

프로그래밍에서 글자수 라인 줄이고 이런건 진짜 쌍팔년도때나 하던 짓임. 지금은 의미없는 짓이라고 봄. 특히 주니어들은.

새싹들은 저런 쓸대없는걸 배우는게 아니라 자기가 생각한 프로그램을 만드는 연습을 해야됨. 코드가 그지 발싸개 같고 그런거 정말

큰 의미가 없음. 예를 들어 내가 게임을 하는데 데미지 계산기가 있었으면 좋겠다. ui는 이랬으면 좋겠고 이런 내용이 들어가야지. 이런 발상을

하고 실제로 작동이 되겠금 만드는게 100에 100배 만큼 의미가 있음. 옛날에 어디 하꼬대학 시험지보면서 이딴 의미없는 짓을 왜하나 싶었는데

지금 생각해보니 선생의 무능 때문이었음... 이건 시키면 안되는 짓임.

 

존나 줄인다고 하면 변수명 a,b 쓰고 goto쓰고 ㅋㅋㅋ 어디 실무가서 뒤통수맞을라고

 

글쓴이가 러닝타임을 이해를 못해서 그런거 같음. 둘은 완전 다른개념임…

그리고 난 코딩교육 무용론에 가까움. 코딩에 익숙해지면 좋지만 그보다 더 중요한게 논리학이나 영어 수학임.

저런 식의 코딩은 테크니션을 만들어내지 프로그래머를 만들어내지 못한다 생각함.

 

러닝타임 = 알고리즘이 한바퀴 돌면서 결과를 도출하는데 까지 걸리는 시간 이고

여기서 내부 코딩 명령어가 단어길이 = 내부처리속도시간 이 아닌데다가 그 속도가 천차만별이라

프로그램 텍스트 길이 =/= 프로그램 처리 속도 기 때문에 아니라는거지?

 

한번싸는게 목표인 딸딸이를 간단하게 100번 치라고 명령하는것보다 존나 길게 짜서 한번 깔끔하게 하는게 훨 낫지

 

학원출신도 아니고 문외한인 선생님이 벼락치기로 코딩 교육을 하고 이제 이걸 평가할 수단을 찾아야 하는데 머리굴리다가 나온 결과가 아닐까? ㅋㅋ

 

코드 수 줄여봤자 알고리즘이 개판이면 무쓸모 아닌가?
가독성 개판 나는 건 당연할거고

 

숏코딩 원하는건가 ㅋㅋㅋ 그거 코드 보기 드러운데

 

굉장히 안좋은 방법이지 싶음.. 예를 들어 a라는 기능을 수행하기 위한 코딩을 할때 방법이 정말 여러가지임

누구는 정말 간단하게 짜내고 누구는 길게 써내는데 어떤게 맞다 라고 할수가 없음

결론적으로 그 기능만 수행하면 되기 때문

물론 실무에 들어가면 속도와 수정이 용이하도록 어느정도 정석이 있겠지만

저런 교육은 의미가 없다고 봄

 

융통성은 개줘버린 반쪽짜리가됨 즉 실무에서 유연할수없다

 

저런거말고

1.구글링을 효율적으로 하는법

2.스택오버플로우 효율적으로 검색하는법

3.x같이 복사하기 막아놓은 블로그의 코드 긁어오는 방법

이것만 알려줘도 효율성있음

 

애초에 코딩 가르치는 목적이 논리적 사고력 기르려는거 아니었나

저렇게 달달 외워서 시험치는게 무슨 의미가 있어 ㅋㅋ

 

ㅋㅋ 애초에 코딩이란걸 정규 과목에 넣을때 이렇게 될거란거 다 알고 있었을거고 건의도 했겠지만 윗선에서 조또 듣지도 않았겠지.

그저 4차 산업혁명이니 뭐니 떠들어대면서 정작 그 본질을 이해 못하는데 그게 될리가 있나.

차라리 그 시간에 그냥 수학 함수나 알고리즘 개념이나 심화해서 가르치는게 나을지도 모름

 

개발자가 아닌 코더로 살고 싶으면 상관없음

변수 이름은 길고 자세할수록 좋고 가독성을 뛰어나게 작성하고 상세한 주석이 붙을수록 좋은코드임 즉 자세하게 적을수록 좋은코드가 되는건데 저러면 안좋음

 

타이핑 시간 줄이는 거랑 경량화 런타임은 전혀 상관 없음.

int a;

int intScore;

이딴식으로 꼼수 쓰면 타수는 줄지만 가독성은 망함;;;;

 

이름이 김개붕인데 김씨로 줄여서 호출하는 수준임

저런게 잔뜩 늘어나면 나중엔 이게 김개붕인지 김붕개인지 헷갈려서 코드 십창나는수준

 

ㅇㅇ 있음. int는 Integer의 줄임말. 그래서 int로 씀. 모든 함수나 명령어는 어쨌든 사람이 만들었기 때문에, 사람이라면 당연 줄이고 싶어하겠지.라는생각해보시면 됩니다.

 

변수든 클래스명이든 뭐든 이름 지을 때 짧게 지으면 타수는 줄어들어 하지만 육안 가독성 너무 나빠서 실무에서 저런식으로 나만 아는 방법으로 선언하면 욕먹어 아니 욕먹기 전에 형상관리나 소스체크 툴에서 노란줄 쫙쫙 끄일껄;;;;;

그리고 부적절한 제어문 사용을 바로 잡는 거라면 몰라도 단순 타수는 런타임과 전혀 무방해..

 

코드 글자수랑 수행시간은 전혀 전혀 상관이없고

수행시간이 같을때 코드가 짧으면 좋으냐 나쁘냐도 전혀 상관이없음.

코드가 존나 길어도 가독성이 좋으면 잘짠코드고 코드가 존나 짧아도 가독성이 존나 나쁘면 나쁜 코드는 아니지만 협업하기 존나 싫지

 

구조와 매커니즘을 파악하는게 핵심인데

타이핑 연습이 되면 아무런 의미가 없음...

 

어렸을 때 코딩을 배우는 이유는 문제해결 능력을 키우기 위해 문제를 정확히 인식하여 합리적인 해결방법을 찾아가며 발생하는 문제를 수정하는 등의 일련의 과정을 컴퓨터 언어로 배우는 건데, 그런 거에 대한 고찰따위 전혀 없이 프로그래머가 잘나가니 그걸 육성하는걸로 생각하고 가르치고 있는거임. 그래서 나오는건 그냥 유사 프로그래머밖에 없는건데...

 

이런식으로 교육받으면 코딩이 재밌을리가 없음...

나도 몇십년간 한국교육 받았지만 이런 주입식 교육 개 좆같음.

코딩공부 늦게 시작하고나서 스스로 해보니깐, 그렇게도 싫어하던 수학을 공부하고 있더라 ㅋㅋ;

'왜 필요한가?'에 대한 물음을 한국교육은 시험에 필요하니깐?라는 답변을 내놓으니깐 애들이 좆같아서 떨어져나가는거임

스타니슬라스 드엔이라는 프랑스 뇌 신경학자가 동물이든 인간이든 뇌 구조학적으로 가장 쉽게배우고 잊어버리지 않는 공부법은

본인이 스스로 흥미가 있어야 되고 적극적인 태도가 중요하다고 계속 강조함 (자세한 내용궁금하면 HOW WE LEARN이라는 책 읽어봐라)

저딴식으로 가르쳐봐야 프로그래머가 아니라 그냥 코드만 고대로 복붙하는 몽키코더 밖에 안됨 원숭이랑 다를바 없어짐  

 

글세 나도 과제 제출정도 밖에 안해봐서 모르는데

전체 시간의 70%는 어떻게 짤지 계속 생각하다가, 10% 타이핑해서 작성해보고

나머지는 될 때까지 디버그 하고 이런 식인데

의미가 있는지 모르겠다 저게

 

구글에 모르는거 쳐보고 블로그 한번씩 들어가봐서 가장 쉬운 비유로 알려주는 글 읽어봐 진짜 금방 이해 됨. 별거 아님

 

모든 공부라는것은, 이해없이 암기를 하려면 그것은 고문에 가까운데,

높으신분들의 공부법은 가학적이고 스트레스 받아야만 공부라고 생각하는듯

 

개 병신같네 진짜 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

마치 문학 수행평가로 글짓기를 하는데 글을 잘적는게 아니라 얼마나 짧게 적냐를 평가하는것과 같다. 병신같으...

한컴 타자연습에서 타자 속도를 빠르게 하기 위해서 빠른 타자속도를 내기 보다 문장이 짧은걸 여러개 친다는 그런 느낌 같은데

평가 방법 저거 괜찮은거 맞나?

 

하나도 안 괜찮아. 타이핑 빠른 놈이 이기는 건 의미가 없어.

어차피 실무는 10분 생각하고 1분 타이핑하는 건데, 손이 느려서 타이핑 좀 늦어봤자 10분 생각하고 1분 30초 타이핑하겠지.

생각을 어떻게 하는지가 훨씬 중요함

 

코드 간소화가 효율을 올려준다는 것에는 동의 못함

아무 의미 없는 짓이라고 생각함.

 

개발자는 아니지만, 코딩 공부를 해 본 입장으로써 자기 손으로 짜보고 어디가 비효율적인지 파악하는 단계가 있어야지 발전이 있던데, 저건 너무 편법 지향적 아닌가?

 

음 난 딱히 없던데

손코딩이라고 컴퓨터를 안쓰고 손으로 적어서 내게 함

그게 좀 맘에 안들었는데 다른데도 그렇게 한다 하더라고

어차피 코딩은 컴터로 하는건데 그게 좀 맘에 안들었음

 

애초에 비슷한 시험은 대학시험이 아니라 사기업 공채에서 진행하는 코딩태스트인거같은데,

거기선 정확도하고 구동시간으로 평가함

 

나는 전기과라서 그리 깊게 안 배웠는데

어떻게 만들든 시간안에 지시한 기능을 가진 프로그램을 짜라고만 했음

선착순으로 점수주고 결과물에 문제가 있을 때 마다 점수 팍팍 깠음

1등+문제없음 = 100점

2등+문제 1개 있음 = 89점

3등+문제없음 = 98점

이런식이었어

 

ㄴㄴ 예시를 보면 알겠지만

빨리 만들어 봤자 등수에 따른 점수차이는 얼마 안나서

결국은 잘 돌아가게 짜는 것만 중요했어

학생들의 대다수가 정상적으로 작동이 안되거나

시험 시간을 오버해버린지라 (시험시간 지나면 시간에 따른 감점 있음)

그냥 정상적으로 작동하기만하면 A 받았어

 

제가 대학다닐때는 교수님이 만든 시험지, 즉, 코드에서 '문제, 해당 코드에서 에러를 찾아 수정하시오' 라던가

'빈칸에 알맞은코드를 넣어 정상작동되게 만드시오'

맨 마지막 주관식 같은경우는 'xx 기능이 있는 코드를 작성하시오'

손으로 모두. 이건 필기시험 / 실기시험을 본적도 있음.

점수가 상이하면, 교수님에게 가서 따지기보단 의견을 제시하고, 합리적 이유를 받던가, 내가 틀리지 않았다를 증명하면 됨.

 

우리는 그런 주입식 코딩 교육을 받은 개 병신 하꼬새끼들을 '코더'라고 부르기로 했어요

저런 교육은 나중에 버그 발생하면 왜 틀린지도 어떻게 고쳐야하는지도 모름 

 

저기에서 교육하는 코딩의 목 적이 타이핑수 줄이는 거라면 그냥 한컴 타이핑 켜고 시키는게 맞음 저건 잘못된 교육이라 생각함.

 

실무에서는 코드경량화는 둘째문제고

처음부터 만드는 개발자라면 전반적인 구조랑 돌아가는 알고리즘을 소스로 만들어낼 수 있는 능력

중간중간 팀프로젝트면 내가 어느부분을 건드리면서 동시에 기존소스의 흐름을 방해하지 않는 능력

그런게 필요한데 걍 외워서 하는건 눈에 소스 익히는거 이상의 도움은 없을듯

타자수 빠르게 하는거에 도움은 되겠네