'The C Programming Language'를 읽었는데 지금 무엇을하고 있어야합니까? 이 책에서 놓친 C 중 중요한 것이 있습니까? 특히 리눅스 개발 측면에 관심이 있으니 리눅스에서 C에 관해 배워야 할 중요한 내용이 있습니까? (나는 이미 몇 가지 기본 사항을 알고있다.)C 프로그래밍 언어는 어디에서 읽습니까?
이 질문이 약간 일반적인 것 같아서 미안하지만 다음에 무엇을 배울지에 관해서는 약간 분실했습니다.
'The C Programming Language'를 읽었는데 지금 무엇을하고 있어야합니까? 이 책에서 놓친 C 중 중요한 것이 있습니까? 특히 리눅스 개발 측면에 관심이 있으니 리눅스에서 C에 관해 배워야 할 중요한 내용이 있습니까? (나는 이미 몇 가지 기본 사항을 알고있다.)C 프로그래밍 언어는 어디에서 읽습니까?
이 질문이 약간 일반적인 것 같아서 미안하지만 다음에 무엇을 배울지에 관해서는 약간 분실했습니다.
나는 실제로 다음에 뭔가 프로그래밍을 시작할 것입니다. Project Euler은 언어를 더 잘 이해하는 데 도움이되는 해결해야 할 좋은 문제가 있습니다. 거기에서 리눅스 관련 C 프로그래밍으로 이동할 수 있지만 C 기본 사항을 먼저 이해해야합니다.
프로젝트 Euler는 훌륭하지만, 임의의 정밀도가 높은 산술 라이브러리가 없으면 C 용으로는별로 좋지 않을 것입니다. 물론, 그런 라이브러리를 사용하지 않고 C 언어로 풀어 낼 수도 있습니다.하지만 종종 불필요하게 짜증납니다. –
리눅스 개발에 관심이있는 경우 W. Richard Stevens 도서가 다음으로 나옵니다 (일반적인 유닉스 유사 개발에 관한 내용이지만 모두 Linux에 거의 적용 가능합니다).
사용하지 않을 경우 학습에 사용하는 것은 무엇입니까? 프로그램을 만드십시오.
다음에 뭔가를하는 방법을 모르는 경우 찾아 보거나 여기에서 질문하십시오.
배우는 가장 좋은 방법은 할 일입니다.
많은 답변은 실제로 프로그래밍에 대해 언급하고 있으며, 그렇지 않다면 시작하겠습니다.
품질 코드 읽기를 권해드립니다. 읽기, 말, bzip2의 구현. 첫 번째 단계에서 모든 것을 이해하지 못하는 것에 대해 걱정하지 마십시오. 작은 것들, 관용구, 많이 ... 사전에 구현되는 알고리즘 (심지어는 the algorithm도 흥미 롭습니다)에 대해 읽지 않고도 선택할 수 있습니다.
프로그램 검증에 관심이 있으시면 ACSL을보고 C 언어 기능에 대한 계약서를 작성 (및 확인)하십시오.
Understanding Unix/Linux Programming
이 책은 정말 좋은 것입니다. 기본적으로 C 스펙에서 다루지 않는 모든 OS 관련 자료 (Unix 및 Linux에만 해당)를 다룹니다.
이 책은 신호, 스레드, 프로세스 간 통신, 네트워크 프로그래밍 및 다른 것들을 다루고 있습니다.
알기 C는 멋지다. 언어/구문 이외의 다른 측면을 배우는 것은 어떻습니까? 저를 공격
두 가지 사항
fork()
등 - 소켓에 잘 맞을 것임) 또는이 두 가지 (소켓, 멀티 프로그래밍)는 단일 프로젝트에 적합합니다. 쉘과 같은 네트워킹 프로그램을 작성한 다음 프로세스/스레드를 사용하여 다중 연결을 처리하도록 수정할 수 있습니다.
K & R에서 연습을하는 것 외에도, 일반적으로 사용되는 일련의 Linux 명령을 복제하여 시작할 것입니다. 이것은 크게 두 가지 이유로 도움이됩니다.
모든 수준의 복잡성을 가진 Linux/Unix 명령이 있습니다. 당신은 쉬운 것들로 시작하여 당신의 기술이 증가함에 따라 움직일 수 있습니다.
프로그램의 출력과 실행 시간을 실제 것과 비교하여 정확성과 효율성을 확인할 수 있습니다.
새로운 프로그래밍 언어를 배울 때마다 몇 가지 리눅스 명령을 복제하여 해당 언어의 실제 문제를 해결할 수있는 능력을 강화했습니다.
프로그래밍에 대한 정보는 시작하는 데 유용한 방법이지만 읽은 내용은 실제로 "Aha!"와 함께 시작하지는 않습니다. 당신이 시작 할 때까지 약간의 프로그래밍을하십시오. 프로그램을 작성하여 해결할 수있는 작업을 찾으십시오 (해당 작업이 이미 여러 번 해결 되었음에도 불구하고). 그리고이를 수행 할 프로그램을 작성하십시오. 이 프로그램은 예쁘고 효율적인 코드로 구성 될 필요가 없으며 그 결과가 매력적 일 필요는 없습니다. 을 수행하면 프로그래밍이 더 잘 수행되고 더 나은 프로그램이 제공됩니다.
Linux 해킹에 대해 자세히 알고 싶다면 이미 "UNIX 환경에서의 고급 프로그래밍"을 읽으십시오. 그러나 IMO에서는이 책을 읽기 전에 약간의 경험이 필요했습니다.
나는 SVN, DIFF, 포장 시스템과 같은 프로그래밍 도구에 대한 몇 가지 책 (리눅스에서 사용뿐만 아니라)을 제안한다Linux for Programmers and Users은 - 리눅스 프로그래머를위한 정보와 사용자
The Linux Programmer's Toolbox의 많은 - 프로그래머를위한 리눅스 도구에 대한 좋은 책을 다릅니다.
프로그램을 작성하십시오.:-) – Ken