2009-12-02 2 views
3

'The C Programming Language'를 읽었는데 지금 무엇을하고 있어야합니까? 이 책에서 놓친 C 중 중요한 것이 있습니까? 특히 리눅스 개발 측면에 관심이 있으니 리눅스에서 C에 관해 배워야 할 중요한 내용이 있습니까? (나는 이미 몇 가지 기본 사항을 알고있다.)C 프로그래밍 언어는 어디에서 읽습니까?

이 질문이 약간 일반적인 것 같아서 미안하지만 다음에 무엇을 배울지에 관해서는 약간 분실했습니다.

+12

프로그램을 작성하십시오.:-) – Ken

답변

15

책 연습을하십시오! 독서가 너무 적습니다.

+2

+1 전적으로 동의합니다. 해결은 어려운 일입니다. – AraK

+0

내가 그것을 말했을 때, 나는 또한 운동을 의미했다. – danpker

+0

연습 7-3 (156 페이지) :'minprintf' 수정 ...'% * f'를 받아 들일 수있게 함 – pmg

6

나는 실제로 다음에 뭔가 프로그래밍을 시작할 것입니다. Project Euler은 언어를 더 잘 이해하는 데 도움이되는 해결해야 할 좋은 문제가 있습니다. 거기에서 리눅스 관련 C 프로그래밍으로 이동할 수 있지만 C 기본 사항을 먼저 이해해야합니다.

+0

프로젝트 Euler는 훌륭하지만, 임의의 정밀도가 높은 산술 라이브러리가 없으면 C 용으로는별로 좋지 않을 것입니다. 물론, 그런 라이브러리를 사용하지 않고 C 언어로 풀어 낼 수도 있습니다.하지만 종종 불필요하게 짜증납니다. –

0

사용하지 않을 경우 학습에 사용하는 것은 무엇입니까? 프로그램을 만드십시오.

다음에 뭔가를하는 방법을 모르는 경우 찾아 보거나 여기에서 질문하십시오.

배우는 가장 좋은 방법은 할 일입니다.

2

많은 답변은 실제로 프로그래밍에 대해 언급하고 있으며, 그렇지 않다면 시작하겠습니다.

품질 코드 읽기를 권해드립니다. 읽기, 말, bzip2의 구현. 첫 번째 단계에서 모든 것을 이해하지 못하는 것에 대해 걱정하지 마십시오. 작은 것들, 관용구, 많이 ... 사전에 구현되는 알고리즘 (심지어는 the algorithm도 흥미 롭습니다)에 대해 읽지 않고도 선택할 수 있습니다.

프로그램 검증에 관심이 있으시면 ACSL을보고 C 언어 기능에 대한 계약서를 작성 (및 확인)하십시오.

0

Understanding Unix/Linux Programming

이 책은 정말 좋은 것입니다. 기본적으로 C 스펙에서 다루지 않는 모든 OS 관련 자료 (Unix 및 Linux에만 해당)를 다룹니다.

이 책은 신호, 스레드, 프로세스 간 통신, 네트워크 프로그래밍 및 다른 것들을 다루고 있습니다.

2

알기 C는 멋지다. 언어/구문 이외의 다른 측면을 배우는 것은 어떻습니까? 저를 공격

두 가지 사항

  • 소켓 프로그래밍. 기본 채팅 클라이언트/서버를 작성하십시오. 또는 작은 파일 전송 프로그램
  • 다중 프로그래밍.프로세스 (fork() 등 - 소켓에 잘 맞을 것임) 또는
  • pthreads. 멀티 스레드 프로그래밍에 대해 배우고, 프로세스를 다른 프로세스와 비교하여 병렬 처리 할 수있는 방법에 대해 알아보십시오.

이 두 가지 (소켓, 멀티 프로그래밍)는 단일 프로젝트에 적합합니다. 쉘과 같은 네트워킹 프로그램을 작성한 다음 프로세스/스레드를 사용하여 다중 연결을 처리하도록 수정할 수 있습니다.

0

K & R에서 연습을하는 것 외에도, 일반적으로 사용되는 일련의 Linux 명령을 복제하여 시작할 것입니다. 이것은 크게 두 가지 이유로 도움이됩니다.

  1. 모든 수준의 복잡성을 가진 Linux/Unix 명령이 있습니다. 당신은 쉬운 것들로 시작하여 당신의 기술이 증가함에 따라 움직일 수 있습니다.

  2. 프로그램의 출력과 실행 시간을 실제 것과 비교하여 정확성과 효율성을 확인할 수 있습니다.

새로운 프로그래밍 언어를 배울 때마다 몇 가지 리눅스 명령을 복제하여 해당 언어의 실제 문제를 해결할 수있는 능력을 강화했습니다.

0

프로그래밍에 대한 정보는 시작하는 데 유용한 방법이지만 읽은 내용은 실제로 "Aha!"와 함께 시작하지는 않습니다. 당신이 시작 할 때까지 약간의 프로그래밍을하십시오. 프로그램을 작성하여 해결할 수있는 작업을 찾으십시오 (해당 작업이 이미 여러 번 해결 되었음에도 불구하고). 그리고이를 수행 할 프로그램을 작성하십시오. 이 프로그램은 예쁘고 효율적인 코드로 구성 될 필요가 없으며 그 결과가 매력적 일 필요는 없습니다. 을 수행하면 프로그래밍이 더 잘 수행되고 더 나은 프로그램이 제공됩니다.

2

Linux 해킹에 대해 자세히 알고 싶다면 이미 "UNIX 환경에서의 고급 프로그래밍"을 읽으십시오. 그러나 IMO에서는이 책을 읽기 전에 약간의 경험이 필요했습니다.

나는 SVN, DIFF, 포장 시스템과 같은 프로그래밍 도구에 대한 몇 가지 책 (리눅스에서 사용뿐만 아니라)을 제안한다

  • Professional Linux Programming - 오픈 소스를 사용하여 비디오 대여 서비스를 만드는 방법에 대한 단계 튜토리얼에 의해 좋은 책 단계 도구. 불행히도 C에 관한 것은 아니며 다른 언어에 대한 지식이 필요합니다.
  • Linux for Programmers and Users은 - 리눅스 프로그래머를위한 정보와 사용자

  • The Linux Programmer's Toolbox의 많은 - 프로그래머를위한 리눅스 도구에 대한 좋은 책을 다릅니다.

  • The Art of UNIX Programming

    IMO 모든 프로그래머가 약간의 소스 코드, 철학의 금주 모임이 많이있다,이 책 (어떤 사람은 그것을 좋아하지 않아 수 있습니다)하지만 가장 중요한이 아름답게 유닉스 디자인의 표시이며, 방법을 보여줍니다 자신의 프로그램에서 그것을 따르십시오.

  • Data Crunching: Solve Everyday Problems Using Java, Python, and More 데이터 크 런칭 : Java, Python 등을 사용하여 일상적인 문제 해결 - C 나 Linux는 아니지만 데이터 처리 작업을 현명하게 해결하는 데 도움이됩니다.
관련 문제