문제

나는 C.를 배우는 데 관심이있다. 나는 읽었다 K & r, 그리고 R과 Python에서 간단한 C 확장 작업을 수행했습니다. C와 더 실질적인 일을하기위한 가치있는 프로젝트 아이디어는 무엇입니까? 유사한 온라인 리소스 파이썬으로 뛰어 들었습니다? 특히, 자원은 C를 배우려고하는 새로운 언어를 이미 알고있는 프로그래머에 중점을 두었습니다 ( "길이에 대한 배열을 요청하는 것과 같은 것들은 C에서 말도 안됩니다.

내 배경:

수학/통계, Python, R의 일상 프로그래밍, 주로 자연-언어 처리, 알고리즘 등.

도움이 되었습니까?

다른 팁

몇 년 전, 내 친구가 나에게 같은 질문을했다. "어떻게 C를 배우나요?" 나는 그에게 장치 드라이버를 쓰라고 말했다.

그가 실제로 그것을했을 때의 놀라움을 상상해보십시오.

다소 주제를 벗어나지 만 배경은 수학과 통계에 있다고 언급하기 때문에 Project Euler에서 손을 시험해보십시오. 해결할 수있는 200 개가 넘는 수학/통계 관련 문제가 있습니다. 또한 솔루션에 도달하면 문제 포럼을보고 다른 사람들이 동일한 솔루션을 어떻게 해결했는지 확인할 수 있습니다. 다른 사람들이 문제를 해결하는 방법을보고 매우 편리합니다 ... 부팅하는 것이 재미 있습니다!

www.projecteuler.net

나는 당신과 비슷한 배경을 가지고 있습니다. Python을 사용하여 박사 연구 및 웹 프로그래밍을 위해 많은 수학 및 데이터 분석을 수행합니다. 차이점은 내가 90 년대에 C를 먼저 배웠다는 것입니다.

Python에 대한 C 확장을 쓸 수 있다면 C가 좋은 것을 잘 다루고 있다고 말하고 싶습니다. 제 생각에는 오늘 C는 두 가지에 가장 적합합니다.

  • 하드웨어와 상호 작용하는 저수준 소프트웨어 작성.
  • 반복적이고 지루한 CPU 집약적 인 것들 (수학, XML 파싱 등)을하는 코드를 작성합니다.

물론 많은 상위 수준의 응용 프로그램도 C, 특히 내가 찾은 Linux 아래에 작성되었지만 대부분 K & R의 "베어 본"C 또는 표준 라이브러리로 작성되지는 않습니다. 오히려, 그들은 glib, wxwindows, 또는 apache portable 런타임과 같은 프레임 워크를 사용하여 모든 종류의 객체 지향 구조 또는 컨벤션을 사용하고 종종 C의 기본 메모리 관리 세부 사항을 추상화시킵니다.

그래서 나는 당신의 C 기술을 유용하게 만드는 것이라고 생각합니다 오늘날의 프로그래밍 언어 환경에서 주로 저수준 작업을 수행하거나 이러한 상위 수준의 프레임 워크 중 하나에 익숙해지는 것입니다. 나는 개인적으로 glib와 gtk 라이브러리를 많이 좋아합니다. 동적 객체 지향 모델 (Python과 유사한)의 저수준 기능을 사용하지 않고 C.

간단한 언어를 위해 통역사를 쓸 수 있습니다. Flex/Bison을 사용하십시오. 멀티 스레드 등으로 만드십시오. 이것은 재미 있고 포인터를 많이 운동하는 경향이 있습니다. 나는 그런 것을 썼다 학교 프로젝트: 두 개의 다른 쓰레기 수집기, 2 개의 스페이스 및 동시 버전이있는 간단한 스택 기반 언어. 재미있었습니다. 그리고 "Hello, World"보다 더 큰 최초의 C 프로그램으로 할 수 있습니다!

CHERN C를 어려운 방법으로 확인하십시오. 무료 전자 책으로, 학습 할 수 있도록 C 코드와 연습의 많은 예를 안내합니다.

http://c.learncodethehardway.org/

일상적인 작업에서 문제를 찾거나 정의하고 파이썬 대신 C를 사용하여 해결하도록 강요하십시오. 그것은 당신이 일반적으로하는 일과 관련된 문제를 유지하면서 언어를 배우도록 강요합니다.

가상 머신 (예 : JVM)을 구현하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top