C 언어 초보자를 위해 작성되었으며 C 언어 학습 방법을 알려줍니다.
C 언어를 배울 필요는 없습니다. 조급하면 차근차근 나아가야 하고, 서두르면 낭비가 된다는 것을 알아야 한다. 맹목적으로 많은 코드를 작성하지 마십시오. 그렇게 하면 낮은 수준의 코드가 많이 쌓이고 나쁜 코딩 습관이 형성될 뿐입니다. 먼저 이 기본 교재를 구입하여 C 언어에 대한 기초적인 이해를 가질 수 있도록 살펴보세요.
추천 튜토리얼: C 언어 동영상 튜토리얼
주변에 수준 높은 개발자가 있다면 다른 사람에게 조언을 구하는 것이 가장 좋습니다. 하지만 제가 아는 한, 대부분의 초보자들은 IT 업계에 입사한 후 수석 소프트웨어 엔지니어의 지도를 받지 못하고, 대신 회사에 입사한 후 최전선으로 밀려나서 상사를 위해 고객을 속이는 경우가 많았습니다. 사람들은 코드를 쌓고 형편없는 임금을 벌기 위해 애쓰고 있습니다. 비록 돈은 잘 벌지 못했지만, 첫 회사에서 나를 유닉스와 C 언어 분야로 이끌어준 멘토를 만난 것은 행운이었다. “유닉스와 C 언어는 언어다. 평생 배워야 한다"는 말은 저를 그들과 사랑에 빠지게 만들었습니다. 그의 문장은 "당신은 루트 비밀번호를 가지고 있습니다. 그것은 루트 비밀번호를 갖는 것만큼 간단하지 않고, 더 많은 책임을 져야 합니다"라고 말했습니다. 이 문장은 다른 사람의 것을 루트 비밀번호로 SUN 서버에 접속한 후 쓸모없는 것이라고 생각하여 삭제했다는 것입니다.) 이를 통해 책임이라는 단어에 대한 매우 구체적인 이해를 얻을 수 있었습니다. 그래서 여기서는 뉴소프트 멘토인 yuhj에게 깊은 감사를 표할 수 있는 공간을 마련해 주시기를 독자 여러분께 부탁드립니다. 동시에 CU 친구들에게도 깊은 감사의 말씀을 전하고 싶습니다. 당신은 저의 두 번째 멘토라고 할 수 있으며 저는 더 이상 당신 없이는 살 수 없습니다.
모두가 나보다 행운이 있기를 바라요. 행운의 신의 총애를 받지 못한 친구들도 낙심하지 마세요. CU에 더 자주 오셔서 모두와 소통하고 논의하세요. 포럼에서 토론할 때 많은 것은 단지 하나의 문장이 아닙니다. 남는 시간에 에센스 영역에 가면 예상치 못한 혜택을 얻을 수 있습니다.
영어 볼 때 헷갈리지 마세요. 저도 그렇지만, 못 알아듣는 건 아닙니다(결국 CET4, 6급 뮤트 영어 교육을 받았기 때문에 그래도 이해할 수 있어요). . 인간의 도움은 최고의 교재이며, 많은 외국 포럼에서는 기술에 대해 매우 명확하고 간단하게 설명하고 있습니다. 더 중요한 것은 국내 포럼에서는 볼 수 없는 것들을 볼 수 있다는 것입니다(컴퓨터 기술은 항상 서양에서 동양으로 전해졌습니다. 언젠가 외국인들이 우리 중국 포럼에 와서 기술 정보를 찾기를 바랍니다.)
C 언어를 배울 때 꼭 배워야 할 것이 있는데, 동시에 배우는 것이 가장 좋다고 생각하는 친구들도 있을 겁니다. 네, 바로 유닉스입니다. 유닉스와 C 언어가 많이 언급됐다고 할 수 있다. 유닉스가 있는 곳에는 C 언어도 있다. 동시에 유닉스가 존재하는 것도 바로 C 언어 때문이다. (먼저 치킨의 철학적 문제를 논해보자. 또는 계란) 자, 토마토로 나를 때리세요) 심지어 어떤 사람들은 C 언어가 Unix용으로 설계되었다고 말하는데, 이는 Unix와 C 언어의 특이한 관계를 보여줍니다. 과거에는 Unix를 대규모 서버에서 실행했지만 이제는 Linux를 사용합니다(GNU에 따르면 Linux는 Linux이며 Unix라고 할 수 없습니다). PC에 Linux 세트를 설치할 수 있습니다. 학습할 때 Linux와 Windows를 비교하지 않도록 주의하십시오. 둘은 동일하지 않습니다. Linux는 고전이 무엇인지 알려주고 항상 한 방향으로 큰 성과를 거둘 수 있도록 허용합니다. Windows에서는 다른 사람의 함정에서만 플레이할 수 있으며 때때로 함정을 변경해야 합니다. 다음은 Unix를 배우면서 얻은 경험 중 일부입니다.
1) Unix와 C 언어를 배우려면 먼저 모든 사람에게 책을 추천합니다"Unix 고급 환경 프로그래밍" 이 책은 Unix와 C 학습의 고전입니다. 책에 언급된 모든 시스템 호출을 이해하려고 노력하세요. .연습 프로그램을 작성하고 먼저 Linux 시스템이 사용자에게 제공하는 시스템 호출이 무엇인지, 어떻게 사용하는지에 대한 지각적인 이해를 얻으십시오. 시스템콜은 사용자가 커널 서비스를 신청하기 위해 커널이 제공하는 기능이다. 리눅스 커널을 익히려면 시스템콜부터 시작하는 것이 좋다. 학습 과정은 Linux 온라인 도움말과 인터넷 정보를 참조할 수 있습니다. 거의 완료되었다고 생각되면 연락 질문을 드리겠습니다. FTP 서버와 클라이언트의 기능을 구현하려면 간단한 명령으로 파일을 전송할 수 있는 한 일부 응용 프로그램 계층 프로토콜을 직접 완전히 정의할 수 있습니다.
이 질문을 통해 TCP/IP의 기본 프로그래밍 방법과 파일 작업의 기본 방법을 연습할 수 있어 나중에 커널 파일 시스템을 학습하는 데 도움이 될 것입니다.
2) Unix 시스템을 어느 정도 이해하면 대부분의 시스템 호출에 대한 지식도 갖게 됩니다(핵심은 파일에 대한 시스템 호출입니다. Linux 시스템의 커널의 경우 비교적 쉽습니다. 파일 시스템부터 시작하세요) 명확하게 이해한 후에는 책"Linux Kernel Scenario Analysis"을 추천합니다. 이 책은 Linux 커널에 대한 고전적인 책입니다. 네트워크 하위 시스템. 파일 시스템의 시스템 호출부터 시작하면 천천히 Linux에 대한 더 깊은 이해를 갖게 될 것입니다. 동시에 Linux에서 많은 고전적인 방법과 아이디어를 적용하는 데 주의를 기울이십시오. Unix가 왜 모든 것을 파일로 취급하고, 당신이 조작하는 모든 것이 파일 작업인지 깨닫게 될 것이며, 천천히 Unix의 고전을 감상하게 될 것입니다.
3) Linux 커널을 어느 정도 이해한 후에는 전문적으로 개발 방향을 찾을 수 있습니다. 대중적인 네트워크 프로그래밍에 관심을 갖고 싶다면 다른 책을 추천합니다"TCP /IP 자세히 설명", 이 책은 TCP/IP 프로토콜에 관한 고전입니다. TCP/IP 프로토콜 스택이 구현되는 방법, 이유 및 다양한 프로토콜 계층이 작동하는 방식을 학습합니다. 이 책을 읽고 나면 DOS 공격 프로그램을 작성하고 스스로 스니핑할 수 있게 된다.
사실 제가 언급한 모든 책은 적어도 오랫동안 공부하기에 충분하기 때문에 초보자도 불안해하지 말고, 교만하지 말고 열심히 하면 된다고 믿습니다. 당신은 반드시 마스터가 될 것입니다.
코드를 작성할 때 모든 사람은 좋은 코딩 습관, 스타일 및 추상화 능력을 개발하는 데 주의를 기울여야 합니다.
다음은 코드 작성 시 모든 사람을 위한 20단어 지침입니다.
1) 함수는 작아야 합니다.
더 적은 코드 줄을 사용하여 함수를 최대한 일반적으로 만들려고 노력하세요. 각 함수는 하나의 작업만 완료합니다. 간단한 함수이므로 이 함수에 코드 오류가 있는지 한 눈에 알 수 있습니다. 모든 함수가 견고하면 프로그램도 견고합니다.
2) 코드가 적어야 합니다
함수를 완성할 때 논리가 명확하면 코드가 적을수록 좋습니다.
3) 알고리즘이 더 좋아져야 합니다
기능을 완성할 때 효율성을 고려해야 합니다. 현재 컴퓨터에는 많은 양의 메모리가 있으므로 메모리는 더 이상 주요 고려 사항이 아니지만 일부 특수에서는 여전히 효율성이 중요합니다. 장소. 효율성이 높은 알고리즘이 있다면 비효율적인 알고리즘은 필요하지 않습니다. 문자의 양쪽 공백 제거(트림)에 대한 이 기사의 훌륭한 게시물을 살펴보십시오. 많은 사람들이 알고리즘을 제안했지만 하나의 알고리즘은 다음과 같습니다. 효율성이 가장 높고 코드가 가장 적은 최고는 좋은 알고리즘을 가장 잘 반영하는 것입니다
4) 이름은 명확해야 합니다
이름은 명확해야 하며 가장 중요한 것은 술어를 사용하는 것입니다- set_buffsize() 같은 중국어 객체 구조
5) 파일이 더 많아야 합니다
대용량 프로그램 보안 기능은 여러 파일로 나누어서 사용하고, 한 파일에 1,000줄을 넘지 않도록 하여 명확하게 알 수 있도록 하세요. 어떤 파일 코드가 강력하고 어떤 파일에 숨겨진 위험이 있는지 알 수 있습니다. 코드에서 확인하면 특정 파일을 타겟 방식으로 확인할 수 있습니다