일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- cloudformation
- KSP2
- M42
- 개발환경
- 관측일지
- 모델 분석
- 가상환경
- 혼공파
- 시가은하
- monolithic
- 벌집성단
- 파이썬
- python
- 보데은하
- 커벌스페이스프로그램
- dunder
- cursor
- 패키지 매니저
- CDK
- m82
- Argument
- 천체관측
- AWS
- virtualenv
- m81
- terraform
- function
- ai
- 오리온성운
- grok-4
- Today
- Total
ulismoon 잡학서고
어디까지 해야 코딩 기초를 한걸까? (사실 중요한건 그게 아님) 본문
요즘 코딩 과외를 하면서 모 플랫폼을 자주 이용하고 있다. 생각보다 파이썬 기초를 가르쳐달라는 요청이 있는데, 저런 요청을 볼 때마다 어디까지 하고싶은건지 좀 궁금할 때가 있다. 물론 뭘 해야 하는지, 어떻게 해야 하는지 아예 감도 안 와서 도와달라고 하는 것일테니 요청자를 탓할 생각은 추호도 없다. 다만 가르치는 입장에서 어느정도까지 준비를 하고 가르쳐야 "기초" 를 다 했다고 할 수 있을 지에 대해 고민이 돼 이런 내용을 좀 적어보려 한다.
개인적으로 "기초" 를 가르쳐달라고 하면 이정도를 수업 범위로 잡는다. 변수, 자료형, 연산자(+, -, *, /, //, %), 자료구조(list, dict, set), 제어문(if, for), 함수. class 를 비롯한 OOP 를 넣어야 하는게 아닐까? 하는 생각을 지금도 하긴 하는데, 이건 배우는 사람이 이걸 필요로 할 경우에 추가로 수업하면 되는 부분이라 생각해서 생기초 수업에는 넣지 않는다. 경험 상 여기까지만 해도 생각하고 있는 것을 코드로 구현하는 데 별 무리가 없다. 새 언어가 어떻게 작동하는 지 알기 위해 변수와 자료형을 배워 기본적으로 어떻게 값을 다루는지 배운다. 그리고 여러 개의 자료를 효율적으로 다루기 위해 자료구조를 공부하고, 이 데이터를 원하는 방식으로 조작하기 위해 if, for 를 이용한 흐름 제어를 한다. 사실 파이썬은 여기까지만 하면 끝이다. C 나 C++ 처럼 main()함수가 있을 필요도 없고, (물론 `if __name__ == '__main__':` 같은 게 있기는 하다) 그저 쭉 코드를 작성하고 컴파일도 필요 없이 python xx.py 로 실행하면 바로 작동하니까. 여기에서 내가 만든 코드를 여기저기에서 재활용하기 위해 로직을 떼어내 함수로 만들 수 있으면 코드를 효율적으로 사용하는 것까지 할 수 있게 된다. 왜냐? 프로그래밍의 핵심, 본질은 언어나 기술에 있는 게 아니니까.
최근에 고등학생에게 파이썬 기초를 가르치고 있는데, 이 친구가 잘 받아들이는 것도 있었지만, 3시간 수업으로 위 내용 수업을 다 하고 실습 코딩까지 완료할 수 있었다. 마지막 실습 문제는 다음과 같았다.
당신은 학원 원장입니다. 새학기가 되어 학생들이 과목별로 배치고사를 봤습니다.
과목별 성적을 입력으로 받아 기준에 따라 반을 배치하는 함수를 만들어 학생들을 배치하세요.
성적은 과목별로 따로 기록되어 있기 때문에 작성한 코드는 재사용할 수 있어야 합니다.
반 배치 기준
80점 이상 : A
70점 이상 80점 미만 : B
60점 이상 70점 미만 : C
60점 미만 : D
예시 입력
math_scores = [
{"name": "alex", "score": 80},
{"name": "betty", "score": 72},
{"name": "charlie", "score": 68},
{"name": "don", "score": 57},
{"name": "eric", "score": 100},
]
예시 출력
{
"A": ["alex", "eric"],
"B": ["betty"],
"C": ["charlie"],
"D": ["don"]
}
프로그래밍 좀 해본 사람들에게는 에이 이게 뭐야 싶을 정도의 문제겠지만, 잘 보면 이걸 만드는 데 프로그래밍과 개발적 사고에 필요한 핵심은 다 들어있다. 그리고 프로그램을 개발하는 데 있어서 진짜 본질은 list, dict 따위가 아니라 주어진 문제를 모델링하고 데이터를 어떻게 구조화해 흐르게 할 것인지를 설계하는 능력이기 때문에 기술적인 부분은 이정도를 다룰 줄 알면 나머지는 필요에 따라 익혀가면 된다고 생각한다. 내가 고등학교때 친구에게 처음 C 를 배울 때에도 if, for 를 다룰 수 있게 되니 내게 "너 이제 다 배웠어" 라고 했고, 실제로 그 즈음부터는 생각한 내용을 코드로 작성하는 것 자체에는 큰 무리가 없게 되었다. 물론 고급 기술을 알면 더 효율적이고 관리하기에도 좋은 코드를 짤 수 있었겠지만 개발자적 사고를 하고 그것을 코드로 만들어내는 데 있어서는 if, for 만 있으면 되더라. 그래서 나도 사람들에게 프로그래밍을 가르칠 때 if, for 를 열심히 가르치고 이걸 이해하면 "이제 어디 가서 개발 기본은 할 줄 안다고 하셔도 됩니다" 라고 말해도 된다고 한다.
점점 더 많은 책과 강의가 나오고 점점 더 많은 AI 도구가 나오고 있다. 바야흐로 개발자가 필요없는 세상이 된 것 같지만 개인적으로 난 그 날이 그렇게 빨리 오지 않을 것이며, 사실 개발자가 필요없는 세상이 되는 것은 별로 중요하지 않다고 생각한다. 중요한 것은 내가 AI, 즉 프로그램에게 원하는 작업을 올바르게 시킬 수 있는 능력일 것이다. 그런 의미에서 이미 이런 일을 많이 해본 사람인 개발자는 AI 활용자로서의 직업 시장에서도 계속 우위를 점할 수 있지 않을까?
추신 : 얼마전에 공유학교 어쩌고 하는데서 3일간 중학생을 대상으로 파이썬 기초를 가르치는 특강 안내문이 와서 보니까 3시간씩 이틀동안 기초를 가르치는데 딱 함수까지 하더라.
'Educational' 카테고리의 다른 글
AWS 수업 후기 및 인터뷰 (0) | 2025.06.18 |
---|---|
내가 생각하는 프로그래밍 커리큘럼 - 파이썬을 중심으로 (0) | 2025.06.09 |