컴공 비전공자고 교양으로 파이썬 공부할때는 암기만 하고 재미가 하나도 없어서 코딩과 전혀 상관없는 삶을 살 줄 알았음
근데 수학도 공부해보고 컴퓨터의 역사에 대해 공부하니깐 파이썬으로 구현되는게 정말 신기하고 재밌음
컴공이란게 굉장히 논리적이고 공학적인 아름다운 학문이란게 보여짐
예를 들어 불대수
파이썬 책에서 불대수 다룰때는 "", 0 이런거면 False고 문자가 있거나 숫자가 있으면 True로 치잖슴
불대수가 전기회로로 표현되고 전원이 켜지면 1 꺼지면 0임을 생각하면 컴퓨터에서도 당연한거였음 역사가 불대수 -> 전자공학 -> 컴퓨터공학 순이니깐
프로그래밍도 알고리즘도 튜링머신이 뭔지 배우니깐 그걸 구현화한 폰노이만의 재능에 감탄하게 되고
왜 알고리즘에서 변수를 먼저 선언하고 입력하는지 일련의 과정들이 보임 튜링머신이니깐
자연수를 0으로 두는 이유도 0,N으로 구간을 두지 않고 1로 둔다면 초기값이 바뀔때마다 N+1로 바뀌니깐 계산을 줄이기 위함이고
인덱스 구간이 왜 반열린구간인가 하면 공백을 표현할때 [2, 2)로 두면 2<= x < 2를 만족하는 x값이 없으니깐 표현하기 편리함 그래서 끝값을 +1로 하는거였음
이런거만 봐도 컴공은 굉장히 논리적이고 공학적인 아름다운 학문인거야
이런 아름다운 학문을 단순 암기로 떼우다니 인생절반손해봤어 파이썬이 재밌다
살짝 관련없는 내용이지만 C언어에서 포인타 써서 인덱스 시작 바꿀 수 있긴 하던데 int *_d = (int*) malloc(10 * sizeof(int)); int *d = _d + 5; d[-2] = 123; printf("%i %i", d[-2], _d[3]);
https://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD831.html
프로그래밍 배우기 전에 컴퓨터구조를 먼저 배우는 것도 괜찮은 듯... 교양으로 듣는 비전공자 친구들한텐 과하긴 한데 전공자라면 1학년 1학기에 들어도 좋지 않을까 싶기도 하고