21 일

2009-03-28 5 views
2

나는 K & R과 같은 책에서, C 학습 지난 2 년 반 (해제 등)을 썼다. 나는이 산문이 이해하기 어려웠다는 것을 깨닫고 곧 깨닫게되었다. 나는 21 세기에 "스스로 가르쳐라"라는 책을 먼저 읽었지만 나는 그것을 이해조차 할 수 없었다. 이제는 C의 기본 (포인터/구조는 포함되지 않지만 기본 디자인은 포함하지 않음)을 사용하는 방법에 대한 공정한 지식을 갖게되었습니다. 포인터에서 21 일 만에 직접 C를 읽으려는 생각이 들었습니다. 프로그램 작업. 나는 그것의 산문과 그 어려움의 수준과 약간의 연습 때문에 k & r를 끝내지 않았다. 나는 코드 작성법을 배우기 위해 책을 사용하지 않은 사람들의 점수를 알고있다. 그래서 저는 누군가 21 세기 책을 읽었으며 거기에서 앞으로 나아가고 APUE 나 전문가 C 프로그래밍과 같은 고급 도서를 읽는 것이 좋은 생각이라고 생각합니다.21 일

그것은 산문 이해하기 간단하다, 난 정말 내가 아마 자신을 위해 어떤 함정을 실현할 것 몇 가지 프로젝트에 싶어.

나에게 조언을 해 주 시겠어요? 나는 서두르지 않고, 일을 끝내기를 간절히 원해요!

+1

이 기사를 생각 나게하면 : http://www.norvig.com/21-days.html –

+0

그 링크는 같은 글에 덧글을 달아 놓은 멋진 기사입니다. –

+0

책에서 잘 배우지 않는 것 같습니다. 나도 책에서 잘 배웁니다. 나는 일종의 문제 또는 응용 프로그램을 찾는 것이 좋습니다. 자신 만의 작은 앱을 만들 수 있습니다. 코딩의 ** 일하는 ** 부분은 지식을 실제로 유지할 수 있도록 해줍니다. –

답변

8

나는 가능한 한 빨리 몇 가지 간단한 프로그램을 작성을 시작해야한다고 생각. 당신이 알고있는 것을 시험해보고 그것에 익숙해 져야합니다. 그런 다음 새로운 장을 읽고 시도하십시오.

코드를 작성하는 것은 그것을 가져옵니다. 책을 읽는 것은 매우 건조합니다. 가끔씩 새로운 언어를 배우기 위해 처음부터 끝까지 책을 읽었습니다.하지만 지금까지 많은 언어를 배웠기 때문에 문법과 이상한 소설 기능 만 배울뿐입니다.

9

K & R은 IMO에서 C를 배우는 가장 좋은 책이다.

나는 Peter Norvig에 동의 : 그것은 21 일 아무것도에 능숙 할 수 없습니다. 단순한 프로그램을 작성할 수 있도록 구문에 대한 느낌을 얻으려고하면됩니다. 당신이 전혀 프로그래밍 경험이없는 경우 모든

+2

K & R에서의 산문 난이도는 매우 간결하기 때문입니다. 거의 모든 문장이 중요합니다. 당신이 뭔가를 이해하지 못하면 다시 읽으십시오. 그래도 여전히 이해가되지 않는다면 잠시 생각한 다음 다시 읽으십시오. K & R은 전화 번호부 크기의 책보다 두 가지 가치가 있습니다. – dwc

+1

그리고 만약 당신이 그것을 10 번 다시 읽었지만 여전히 그것을 grok하지 마시고, 여기에 질문을하십시오 :). –

-1

첫째, 당신이 21 일 안에 언어를 배울 수 있습니다. 몇 달 동안 잘해야합니다.

프로그래밍 경험이 있다면 내 생각에 가장 좋은 방법은 here과 같은 "요리 책"을 찾는 것입니다. 나는 Deitel이 C 요리 책과 같은 것을 가지고 있었다고 생각합니다. 당신은 그들의 사이트를 방문하고보아야합니다. 그런 책을 찾은 후에는 프로젝트에서 작업 할 때 발생할 수있는 대부분의 문제 (메모리 관리/데이터 구조, 입출력, 네트워킹 등)를 다루기 위해 코드, 모든 종류의 코드를 작성해야합니다.

행운을 빈다.

+0

내가 말했듯이, 나는 약 2 년 동안 C on/off를 배우고 있었고, 나는 기초를 알고있다. 나는 단지 일을 끝내고 싶다. –

+0

그런 다음 요리 책과 함께 가라. – Geo

+0

나는 21 일 동안 랭을 배울 수 없다는 사람들이 지쳤다. 참고로 얼마 전까지 만해도 자바를 2 주내에 배웠고 지금은 스윙 앱과 간단한 2D 게임을 만들 수 있습니다. 나는 PHP에서 이전의 프로그래밍 경험을 가졌지 만 –

0

K & R이 좋은 책입니다 모두 당신이 필요

+0

초보자는 C를 배워야하는 책이 아닙니다. – Geo

1

배울 수있는 가장 빠른 방법은 그것을 알아야하는 것입니다 일부 인내와 노력이다 (어쩌면 당신이 C를 얻기 위해 필요한 모든 것입니다). 만약 당신이 해결해야 할 문제가 있다면 말하자면, 지역 사회의 축구 팀을위한 최적의 토너먼트 순서를 계산할 필요가있다면 문제 해결 방법을 배우는 것이 더 바람직 할 것입니다. 결국에는 어려움을 겪으면서 결국은 어려움을 겪게 될 것입니다. 그러나 '나는 정말로 x를 얻지 못합니다.'보다는 '내 프로그램이 x를하지 않습니다'라는 형식이 될 것입니다. 각 단점을 수정하는 각 연습은 언어 에 대한 새로운 내용과이를 사용하는 방법을 가르쳐줍니다. 목표를 분명히하는 것 외에도 많은 작은 성공을 거두었을 때 얻을 수있는 이점은 활력을 불어 넣고 학습에 긍정적 인 피드백을 제공하는 것입니다.

RR C 책은 C 관용구를 사용하여 문제에 접근하는 데 적합한 도구를 제공합니다.

당신이 해결하는 문제에 대한 몇 가지 일반적인 아이디어를해야하는 경우, projecteuler.net을 시도하거나 스택 오버 플로우

1

아이쿠 여기에 관련 질문을 검색는 2.5 년은 굉장히 긴 시간처럼 보인다! 필자는 상용 교육 회사와 C 코스 (강사) 였지만 기능 포인터와 같은 "고급"기능을 포함한 전체 언어를 다루는 C 코스는 4 일 밖에 걸리지 않았습니다! 어느 부분에서 특히 어려움을 느끼고 있습니까?

+0

닐, 나는 어려운 C를 찾지 않고있다, 단지 k & r의 산문! 특히 운동. 제 생각에는 2.5 년이 너무 오래되었습니다. 그래서 사람들이 유용하다고 느끼는 멋진 일을 시작할 수 있도록 구문을 사용하여 몇 주가 지나고 싶습니다. –

+0

가혹한 것처럼 들린다면 유감 스럽지만, (2 년 이상 노력한 후에) 구문을 배우기 위해 몇 주가 필요하다면, 아마도 C는 당신의 언어가 아닙니다. (아마도 프로그래밍은 당신의 것이 아닙니다). –

+0

제 첫인상도 오랜 시간이 걸렸습니다. 나는 K & R을 읽었지 만, 실제로 몇 가지 프로그램을 만들 때까지 C를 "얻지"않았습니다. 무엇이 잘못 되었는가를 알아 내려고 포인터와 주소를 이해해야 제대로 작동합니다. 도움이 될 것입니다. –

0

R.

먼저 쉽게 사람을 선택 K &에서 연습을 수행하여 그 이십일일 사용합니다. 걸릴 때 Stackoverflow를 요청할 수 있습니다. ;)

0

C를 배우는 가장 좋은 방법은 실제로 배우는 주제를 연습하는 것입니다.

예를 들어 루프 및 if 문과 같은 기본 원칙을 수행하는 경우 자동 판매기에서 변경 횟수를 계산하는 기능을 시뮬레이션하는 작은 프로그램을 직접 만들 수 있습니다.

포인터 및 데이터 구조와 같은 고급 주제로 이동하면 로고와 같은 프로그램을 만들 수 있습니다. 사용자는 거북이 움직임의 각 단계를 입력 할 수 있으며 링크 된 목록에 저장할 수 있습니다. 그런 다음 노드를 h 제, 역전 또는 추가하여 데이터 구조에서 포인터 조작을 수행 할 수 있습니다.

그래서 아이디어는 배운 것을 테스트하기 위해 코딩을 시작하는 것입니다. 책에서 분명히 보였을지라도 당신이 정말로 이해하지 못하는 것들을 발견하게 될 것입니다. 좋은 프로그래머라면 실제로 알기 전까지는 주제를 다시 읽지 않아도됩니다.

+0

나는 완전히 이해하지 못했던 것들을 위해 내가 참조로 k & r을 사용하는 것을 상상했다. 하지만 C –

0

21 일 동안 C를 가르치는 것은 2 분 안에 권총의 안전을 가르치는 것과 같습니다. 둘 중 하나의 결과는 정의되지 않습니다. 단, C에는 안전 메커니즘이나 디코드 메커니즘이 없습니다.

실제적으로, 어떤 종류의 능숙한 정의를 이루기 위해 2 년 중 더 좋은 부분을 차지하려고합니다. C를 사용하여 실용적인 문제를 해결하기위한 결심에서 배운 채로 반복적으로 발을 쏴서이 효과를 얻습니다.

깜박임을 발견하는 데 9 개월 중 더 좋은 부분을 차지하지만 깜박임은 매우 복잡한 과정이므로, C는 항상 본능적 인 것은 아닙니다.

+0

에 대한 자습서가 아니므로 wahtever (21 일)를 읽고 내가해야하는 것을 구현해야합니까? –

+0

@Icamtuf, 좋은 시작입니다. 당신에게 의미있는 것을 읽고 당신이 배우는 데 도움이된다 ... 그런 다음 그것을 적용하기 시작하십시오. 실제 학습은 그것을 적용하여 컴파일러에 정신병자를 호출하고 다시 시도합니다. –

+0

@Icamtuf, 읽은 것을 적용하면 신속하게 텍스트를 두 카테고리로 구분할 수 있습니다. 좋든 나쁘 든. 배우는 가장 좋은 방법은 그것을하는 것입니다. –

0

다른 사람들의 코드를 사용할 때 더 많이 배우기 때문에 GWT와 같은 라이브러리를 사용해야한다고 생각합니다. 그리고 UI를 사용하는 것은 콘솔 앱을 작성하는 것보다 훨씬 더 동기 부여가됩니다. int, float, double보다 Windows, Button, CheckBox를 조작하는 것이 더 재미 있습니다.

3

=== 제 개인적인 경험과 IMO에서, 당신은 그것을 뒤로하고 있습니다. Hello World로 시작하십시오! ===

새로운 프로그래밍 언어를 배우고있을 때, "나는 배울 것이 좋다"라는 말 때문에 "이 언어를 배울 것"이라고 말하지 않습니다. I 이유이 있어야 언어를 알 수 있습니다. 그렇지 않으면 내가 언어를 배울 이유가 없다면 나는 새로운 프로그래밍 언어에 관해 읽은 것을 배우거나 유지하지 않을 것이다.

나는을 수행함으로써 배우기 때문에 "hello world" example부터 시작합니다.

C는 가장 사용자 친화적 인 언어가 아니며 구현할 수있는 멋진 "쉬운 프로그램"이 많지 않으므로 ... 들어가기가 어렵습니다.

내가 생각하는 이유 즉이 당신은 정말 지금 당신이 가지고있는 현재의 동기는 "사람들이 배우고 좋은 말 때문에 나는 C를 배워야한다"

C.을 배울 수있는 좋은 동기 부여가 필요합니다 .. . 그리고 나는 이것이 C를 배우는 동기 부여로는 충분하지 않다고 생각한다. 하나의 제안은 C로 GTK GUI 애플리케이션을 작성하는 것이고, C에 관해 많은 것을 가르쳐 줄 것이며 최종 제품은 매우 구체적 일 것이다. 그리고 가리 키도록 (그러므로 좋은 동기 부여 자).