SGCSRelease / release-world

서강대학교 Release의 운영 시스템입니다.
7 stars 0 forks source link

C 스터디에 대하여 #39

Closed juice500ml closed 8 years ago

juice500ml commented 8 years ago

저는 기본적으로 C-family Languages들에 대해 스터디를 진행해야 한다고 생각하는데,

  1. 서강대학교에서는 C를 씁니다. C와 친숙해지는 것, 즉 학업과 프로젝트가 서로 방해가 되지 않을 정도로 C를 알아야 한다고 생각합니다.
  2. 이미 C를 알고 온 사람이 많다는 이유만으로 컴퓨터를 전혀 해보지 않은 사람들에게 피해가 가는 것 같습니다. 잘 하는 사람들만 데려가겠다는 생각인가요? (이 부분은 비판하는 것이 아니라 질문입니다. 이건 선택의 문제니까요.)

C가 너무 어렵습니다. 에 대한 반론 어려우니까 스터디로 진행해야하는 것 아닌가요? 심지어 학교 과제를 하려면 필수인데요.

C가 너무 쉽습니다. 에 대한 반론 정말로 C가 쉽나요? int[][], int*[], int 라던가 const int와 int const에 대한 차이점에 대해 잘 모르는 사람들도 수두룩할 것 같은데요. C는 절대로 쉬운 언어가 아닙니다. 시스템에 직접적으로 접근할 수 있는 언어이면서, 시스템을 이해하지 못하면 필연적으로 제대로 이해할 수 없을 언어라고 생각합니다. 당장 만드는 것도 좋지만 공학도와 공돌이의 차이를 만드는 건 이해도의 차이라고 생각합니다. 돌아가게 짜는 게 아니라 잘** 짜야 한다는 거죠.

확인:

minhoryang commented 8 years ago

c 언어 책이나 위키를 만드는 것도 좋을 것 같아요!

yunitto commented 8 years ago

릴리즈데이에 논의해보겠습니다

taeguk commented 8 years ago

저는 오히려 학교에서 C를 많이 하기때문에 저희는 학교에서 잘 하지않는 언어나 분야를 스터디하는게 더 좋지 않나 생각이듭니다~

juice500ml commented 8 years ago

:+1: for opinions

sk7755 commented 8 years ago

문법보다는 자구 알고리즘 스터디도 재밌을 듯..!

yunitto commented 8 years ago

자구, 알고리즘을 c로 하는것도 좋을듯!!!

juice500ml commented 8 years ago

제가 생각했던건 시스템 쪽이었어요! function parameters가 call stack에 어떻게 들어가는가... float형에서 NaN이나 INF는 어떻게 처리하는가... 이런 것들..?

JimJeon commented 8 years ago

우선 c를 알고온 사람들이 많다는 이유로 안 하려던건 아니었어요. 애초에 다른 언어들 한 사람은 많아도 c 그 자체를 만진 사람은 거의 없거든요. 그렇다기보다 지금 cnu, acm 특히 acm에서 해주는 스터디를 듣는 사람들이 많아서 생각보다 c언어 스터디에 대한 수요가 적엇던것이 그 이유였지요. 그래서 다른 학회에서는 하지 않는 방식으로 스터디를 진행해볼까 하고 있어요. 우리가 그냥 당연시 하고 넘어간다던가 평소에 관심갖지 않고 잇던 부분들등 학교에서는 잘 가르쳐주지 않는 숨은 c의 기능들등을 한 사람이 스터디 해주는게 아니라 다같이 알아나가면서 돌아가면서 토론, 세미나 방식으로 해보았으면 해요

JimJeon commented 8 years ago

사실 저도 C가 부족하고 15들 심지어 14들 중에도 C가 부족한 사람이 있을텐데 16대상이 아니라 전체 회원 대상으로 해서 진행하면 수요의 문제는 해결할 수 있을거 같아요

chldlftjs commented 8 years ago

개총 뒷풀이 때 16신입생 몇분한테 c언어 스터디 정말로 필요가 없겠냐고 물어봤어요. 근데, 본인들이 뭐가 필요한 건지를 잘 모르겠어서 의견 표명을 못했다고 하시는 분들이 많더라고요. 그래서, 일단 c스터디를 진행하게 되면16들이 여러 경험을 할 수 있는 스터디면서 15이상들이 원할만한 내용의 스터디를 진행해야한다고 생각해요. 그런 의미에서 @juice500ml 이 제안한 내용들이 상당히 괜찮은 것 같고요.

그리고, 이건 투표 방식에 대한 얘기인데요. 혹시 스터디 관련 내용에 대한 투표가 릴리즈 데이에 진행이 된다면..구체적인 내용을 먼저 정하고 미리 공지를 하는 편이 좋을 것 같아요. 그래야 회원들이 미리 고민도 하고 얘기도 해봐서 투표 당일날에 제대로 된 선택을 하게 될 것 같습니다. 아예 투표 후보도 톡방에서의 토론을 통해 정하는 것도 나쁘지 않을 것 같아요. 무엇에 대한 스터디를 하는 게 좋을지 고민하는 것 자체도 좋은 공부니까요.

taeseunglee commented 8 years ago

C 스터디에 넣을 수 있는 내용 건의 해봅니다! C 스터디라고 해서 문법에 대해서만 스터디 하지말고, optimization이나 readability를 향상시키는 코딩 방법 등에 대해서도 서로 논의나 세미나 해보는 것도 좋을거 같아요.

optimization을 하는 것은 지금 단계에서는 큰 영향이 없거나 오히려 속도 측정 해봤을 때 느릴 수도 있어요. 제가 실제로 해본 몇몇의 최적화한 코드가 속도가 더 느렸어요...otz 그렇지만 optimization 하는 습관이 나중에 큰 프로그램 짤 때 속도 향상을 하는 데 크게 기여한다고 생각하기 때문에...!! 이런 C 공부도 있었으면 좋겠어요~ optimization의 예로는 define을 이용한 inlining, loop unrolling, 혹은 register int i 등이 있습니다!

그리고 가독성은 주변에서 조언을 구할 때나 눈 디버깅할 때 정말 필요합니다. 예를 들면 int a; int aaa; 이런거 정말 싫어요. 안됩니다. 가독성이 높아야 프로그램 완성 속도나 완성도가 높아진다고 생각해서 이런 부분에 대해서도 스터디를 했으면 합니다. (+ 주석 잘쓰는 법...)

마지막으로, C에 국한 되어있지 않은 내용인데, 코딩할 때 좋은 습관이나 문제가 생겼을 때 문제 해결하는 방법, 구글링 잘하는 방법 같은 것도 스터디 내용에 있었으면 합니다.

JimJeon commented 8 years ago

사실 그러한 최적화에 필요한 부분들을 학교에서 C언어를 배울 때에는 하나도 가르쳐 주지 않아요. 저도 그래서 들어본 적은 있어도 실질적으로 사용해 본적은 없어요. 아는 것보다도 실제로 사용해 보면서 자기 것으로 만드는 것이 제일 중요한데 말이죠....

그래서 inline 함수나 macro함수 등등 굉장히 많은데 이 부분에 대해서 우리가 다같이 배우는거 정말 좋은 거 같습니다!!!

스터디를 준비할 때, 반드시 참고하도록 하겠습니다.

juice500ml commented 8 years ago

SGCSRelease/C_STUDY#1 로 옮겨갑니다!