다시 C언어를 시작하면서......

oneday의 이미지

여태껏 C언어를 몇번이나 공부하다가 그만뒀는지 모르겠습니다.
포인터하다가 딴짓하고.. 구조체 하다가 딴짓하고..
몇년이나 되었군요.

그러다가 Java, PHP, Tcl/TK를 접하고 이것들 만지작 거린다고
또 C언어는 뒷편으로 밀려버렸습니다. 하하하하 T_T

역시 제일 하고픈걸 들라면 C언어인데.. 왜이렇게 손대기가 힘든지..

그리고 제가 생각하는 바로는 C언어를 계속하기 힘든 이유중 하나가
무얼 해야할지 모르겠다는 겁니다.
PHP같은 경우엔 처음에 게시판따라하다가 방명록, 그리고 머리속에
떠오르는 것들 이리저리 만들며 놀아서 금방 실력이 늘었습니다.
문법의 제약이 적은것도 한몫했죠.

그렇지만 PHP는 무엇보다 하고나면 결과가 바로 눈에 보이기 때문에
또한 웹에서 사용을 하니 이것저것 만들어볼게 많다는 겁니다.

그런데 C언어로는 막막하군요... 이제 C언어 기본말고는 거의 다
잊어버렸는데.. 만들고 싶은 거라면 proxy서버나.......
그외 없네요... 뭘 해야될지 모르겠습니다. 쩝..

이번에 한국들어가는데.. 서점을 싸그리 몽땅 뒤져서 무언가 길을
찾아볼랍니다. 이제부터의 목표는 1년안에 C로 진행중인 오픈소스
프로젝트 참가... 그리고 1년안에 영어공부해서 유럽쪽으로 뜨는겁니다.
크하하하하하하.....

열심히 해야겠군요...
이번엔 좀 잘해봐야겠습니다. 응원부탁드립니다. 꾸벅 ㅡㅡ;;

맹고이의 이미지

Windows쪽에서 공부할 때 대부분 탐색기를 한번씩 만들어 보듯이

저는 뭔가 하나 공부할 때마다 테트리스를 만들어 봅니다... -_-;

대충 그 언어에서 중요한(?) 처리방법은 익힐 수 있는 것 같더군요.

콘솔 테트리스, Win32API 테트리스... ;;

이제 GTK를 배우고 있는데 조만간에 또 테트리스를 만들 예정입니다. ^^;

암튼, 언어를 하나 익히면 뭔가 좋아하는 걸 만들어 보는 게

좋은 것 같습니다...

p.s. 더 좋은 방법 알고 계시면 좀 가르쳐 주세요~

oneday의 이미지

전 소켓쪽으로 관심이 많아서...
간단한 메신저나 채팅서버를 만들어봤습니다.
php로는 초간단버전 프락시를 만들어봤었죠...
java로는 메신저였고... VC로는 소스막기 해놓은 사이트전용 브라우저...(멀티탭은 꿈도 못꿈.. ^^)
VB는 멋옛날 주소록만들어본게 다네요... ㅎㅎㅎ
그러고 보니 C언어는 초초초간단 채팅밖에 만들어
본적이 없네요..... 에혀....

테트리스 자바로 해본적 있는데 머리 꽤 아프더군요.
이번에 C로 테트리스 도전해볼랍니다. ^^

saxboy의 이미지

제 확고한 믿음이지만 C를 사용해 연습삼아 만드는 첫 프로젝트로 주소록이나 게시판만큼 좋은 것은 없다고 생각합니다. "저장할 수 있는 레코드의 수와 각 필드의 크기에 제한이 없는" 주소록을 "잘 (아주 여러가지의 의미가 있겠지요)" 작동하도록 순수하게 std lib 만 이용해서 만드는 일은 생각보다 꽤 어렵습니다. 연습용으로 그만이지요. 고민을 많이 하실수록 나중에 써먹을 라이브러리를 많이 얻으실 수 있으리라 생각합니다. 이 문제는 나중에 어떤 코드를 작성하더라도 항상 접하게 되는 근본적인 모양과 같은 것입니다.

차리서의 이미지

saxboy wrote:
...(전략)...
순수하게 std lib 만 이용해서 만드는 일
...(후략)...

저도 한 번 해볼까 하는데, 말씀하신 의미를 좀 더 정확히 알고 싶습니다. std lib만 이용한다는 것이 (ndbm 등에 의존하지 않고) libc나 glibc 등의 표준 라이브러리만 이용한다는 의미인지, 아니면 문자 그대로 stdlib.h 라이브러리 하나만 이용한다는 것인지 말이죠.

개인적으로는, 후자라면 정말 재미있고 유익한 경험이자 상당한 고민과 삽질이 필요한 도전이리라 얼핏 예상됩니다. :)

--
자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다.
사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!

oneday의 이미지

훔... 재미있겠는데요..
간단히 말하면 표준 라이브러리를 이용한 파일DB기반 게시판이겠군요.(맞을려나 ?)

게시판에 한번 도전해보고 싶지만 말씀하신대로 머리가 많이 아플것 같군요..
특히나 저의 현재실력으론 머리가 아프다 못해 터질듯.. ^^

gurugio의 이미지

혹시 The C programming language 읽어보셨어요?

거기 보면 연습문제들이 무지 많습니다.

대부분 5,60줄짜리 코딩 문제들인데요

책 내용도 죽이지만 그 연습문제도 기가막힙니다.

정말 필요한 공부를 할 수 있도록 해줍니다.

저도 참 막막했었는데 그 문제들을 하나씩 풀어보면서

많이 배웠습니다. 그리고나니 네트워크나 커널이나

유닉스 프로그래밍등 뭘 해야하고 뭘 만들어볼지 자연스럽게

알게됬었습니다.

codebank의 이미지

맹고이님이 추천하신 방법을 저도 주로 사용하죠.

제 친구는 언어 하나 배울때마다 천자문 교육용 프로그램(처음으로 친구들과 같이
만든 프로그램이죠.)을 선택해서 만들어봅니다.
한자출력을 하기위해서 많은 노하우가 필요하고 천자문에 있는 한자가 기존에 등록
되어있는 한자중에 없는 한자가 많아서 그것을 대처하기위한 다른 방법도 생각해야
하고...

저도 언어를 한가지씩 배울때마다 만들어보는 아주 간단한 프로그램이 있죠.
숫자 야구게임입니다.
방식은 아주 간단하면서도 혼자서 열심히 놀수도 있는 재미있는 게임이죠. :)

C언어를 배울 때는 아마 File Database를 이용해서 주소록 관리 프로그램을 작성하지
않았었나 생각되네요. 파일 Control과 기본 라이브러리를 적절히 이용해야하고
몇가지 테크닉도 익힐 수 있으니 이것보다 좋은것은 없다고 생각합니다.
요즘은 네트워크가 발달해서 흥미를 많이 유발시키기는 하지만 문제점은 컴퓨터가
2대 이상이어야한다는점이죠. 물론 한대가지고도 가능하지만 이렇게 되면 문제점을
발견하기가 쉽지가 않기때문에 네트워크쪽으로 C언어를 공부하는것은 왠지 추천하고
싶지 않은 방법이긴합니다.(개인적인 취향이겠죠. :))

어쨌든 결론은 자신이 만들어보고자하는것을 목표로 시작하면 의외로 금방 하나의
언어를 배울 수 있다는 점입니다. 거기다가 이미 Java, PHP, Tcl/Tk등을 해보셨으니
C를 배우는 것은 어려운것이 아니라고 생각합니다. 특히 Java를 아신다면 Pointer개념만
잘 잡으면 쉽게 배워질겁니다.(저는 Pointer = 배열 이라고 생각하고 있답니다.
물론 원론적으로는 그렇지 않지만... :))

P.S. : 그런데 영어를 배워서 유럽으로 간다는건 조금... 유럽이 영국을 말하는거라면
모를까 차라리 가고 싶은 나라의 언어를 배우는게 좋지 않을까요? :)
P.S.1 : 유럽 그러면 보통 프랑스밖에 생각이 안나서... :oops:

------------------------------
좋은 하루 되세요.

shyxu의 이미지

buttfly wrote:
이번에 한국들어가는데.. 서점을 싸그리 몽땅 뒤져서 무언가 길을
찾아볼랍니다. 이제부터의 목표는 1년안에 C로 진행중인 오픈소스
프로젝트 참가... 그리고 1년안에 영어공부해서 유럽쪽으로 뜨는겁니다.
크하하하하하하.....

전 3년후에 유학을 갈 생각입니다만..
...저도 델꾸 가면.. ;;;
쿨럭.. 농담이고..

좋은 결과 빕니다. :)

Since 2003.
지금은 맥유저...
---
http://jtjoo.com

kyang2의 이미지

언어를 하나씩 배울 때 마다 뭔가를 만든다는 방법을 여기서 처음 배우네요~

확실히 배운것 응용도 되고 좋은 것 같습니다.. :)

이제 막 프로그래밍 시작해서 그래도 C와 VB를 조금 알고있다(?)고 생각했는데..

위에서 말씀하신 것을 구현하려고 하니 생각해줘야 할 것이 한 두개가 아니네요.

오늘 당장 뭐라도 만들어 봐야겠습니다.. ^^

신이 있다고 가정하지 않는 한, 삶의 목적에 대한 질문은 무의미하다. -B. 러셀, 철학자

sugarlessgirl의 이미지

저도 이짓 저짓 하다가..
C 부터 다시 공부하고 있습니다.

윗분께서 말씀해주신 The C Programming Language 를 옛~날에 사놓고 거의 안보고 보관만 해놓다가.. -_-;; 꺼내서 다시 읽고 있습니다.

saxboy의 이미지

Quote:
저도 한 번 해볼까 하는데, 말씀하신 의미를 좀 더 정확히 알고 싶습니다. std lib만 이용한다는 것이 (ndbm 등에 의존하지 않고) libc나 glibc 등의 표준 라이브러리만 이용한다는 의미인지, 아니면 문자 그대로 stdlib.h 라이브러리 하나만 이용한다는 것인지 말이죠.

제가 의도했던 것은 아무래도 전자가 되겠지요. 후자라면... 흥미있는 일이기는 하지만 대단한 퍼즐이 되겠군요. 하지만 차리서님은 C를 학습하실 단계는 훨씬 지나셨으니 머리회전삼아 한번 해보시는 것도 즐겁지 않을까요? 물론 stdio.h 도 없는 상태에서의 코딩이 좀 더 즐겁겠지요. GP32 어플리케이션같은 놈들을 코딩하시면 이런 즐거움을 충분히 맛보실 수 있을 것 같은데요.