더 많은 프로그래밍 경험을 얻을 수있는 방법


9

저는 3 학년 컴퓨터 과학 학생이 될 것이며 저는 Head first Java, Head First C를 읽었으며 현재는 경험이있는 사람들에게 좋은 교수법을 가지고 있기 때문에 가장 좋아하는 언어 인 C ++를 읽고 있습니다. QT로 소프트웨어를 만들거나 objective-C (iPhone의 경우)를 배우거나 Effective C ++를 읽을 계획입니다.

프로그래머로서의 경험을 어떻게 얻을 수 있습니까? 오픈 소스 프로젝트에 참여하는 기술이 있습니까, 아니면 PHP, mySQL 또는 다른 언어를 배워야합니까? 일부 수업은 극도로 어려울 수 있지만 (이론적 컴퓨터 과학) 일반적으로 프로그래밍과 컴퓨터 과학을 좋아합니다. 나는 또한 C ++의 전문가가 될 계획이지만 곧 나오지 않을 것입니다.


1
다른 사람들이 사용하는 프로그램을 작성 했습니까? 그렇지 않은 경우, 사랑하는 가족이 필요로하는 것을 쓰고, 그에게 유용하게 만드십시오 (몇 차례 반복 될 수 있음). 마지막 부분은 진정한 교훈이있는 곳입니다.

카네기 홀에 어떻게 가나 요?
jfrankcarr

1
나는 잠시 바보 같은 소리로 들리 겠지만 ... 경험 -이벤트 또는 활동에 적극적으로 참여하여 지식이나 기술을 축적합니다. 프로그래밍에 적극적으로 참여하십시오.
스티븐 에버스

1
BTW, StackOverflow와 프로그래머의 차이점은 무엇입니까? 닫는 질문의 패턴은 프로그래머를 다른 StackOverflow로 만드는 것입니까? 요점은 무엇입니까-둘을 병합하십시오. 우리는 StackOverflow에서 할 수 없었던 프로그래머들에 대해 난해한 질문을 할 수있었습니다.
שינתיא אבישגנת

답변:


11

ABC-항상 코딩해야합니다. 정말 간단합니다. 언어를 아는 가장 좋아하는 방법 중 하나는 언어 자체의 언어 하위 집합에 대한 장난감 통역사를 작성하는 것이거나 그것이 아닌 경우 광선 추적기 또는 사소하지 않을 정도로 큰 것입니다. 한 달 정도면 끝낼 수 없을 정도로 크지는 않습니다. 요점은 표준 라이브러리와 언어가 제공하는 데이터 추상화 기능을 보도록하는 무언가에 대해 연구하는 것입니다. 때로는 프로젝트가 성공한 경우도 있지만 때로는 성공하지 못하지만 언어의 강점과 약점이 무엇인지, 계속 배우기를 원하는지 여부에 대해 충분히 알고 있습니다. 언어가 마음에 든다면 흥미로운 논문이나 블로그 게시물을 읽을 때마다 논문이나 블로그 게시물에 제시된 아이디어 중 일부를 구현하는 프로젝트를 시작하려고합니다. 이런 식으로 저는 항상 연습을하고 새로운 아이디어를 배우기 때문에 선순환이됩니다.

과거에 저에게 정말 도움이 된 일부 프로젝트 : 일부 언어의 일부에 대한 해석기, 광선 추적기, PEG 파서 생성기, HTTP 헤더 파서, 간단한 에코 클라이언트 / 서버, 큐에서 트윗을 자동으로 게시하기위한 트위터 봇, Amazon 제품 거래를 찾을 스크레이퍼.


+1 정말 흥미로운 프로젝트에 대해 언급했습니다. 감사합니다.
Anthony

8

10 년 후의 Teach Yourself Programming에서 잘 설명했듯이 다음 단계를 따라야합니다.

  • 프로그래밍에 관심을 갖고 재미 있기 때문에 몇 가지를하십시오. 당신이 당신의 10 년 / 10,000 시간을 기꺼이 넣을 수 있도록 충분히 재미있게 지내십시오.

  • 프로그램 . 가장 좋은 종류의 학습은 실천함으로써 배우는 것입니다. 보다 기술적으로 말하자면, "지정된 도메인의 개인에 대한 최대 성과 수준은 연장 된 경험의 함수로서 자동적으로 달성되지는 않지만, 고의로 개선하려는 노력의 결과로 고도로 숙련 된 개인에 의해서도 성과 수준을 높일 수 있습니다. " (p. 366) 및 "가장 효과적인 학습을 위해서는 특정 개인에 대한 적절한 난이도, 유익한 피드백, 반복 및 오류 수정 기회가있는 잘 정의 된 작업이 필요합니다." (p. 20-21) 일상 생활에서의인지 : 실천, 마음, 수학 및 문화라는 책은이 견해에 대한 흥미로운 참고 문헌입니다.

  • 다른 프로그래머와 대화하십시오. 다른 프로그램을 읽으십시오 . 이것은 모든 서적이나 훈련 과정보다 중요합니다.

  • 원한다면 4 년 동안 대학 (또는 대학원)에 입학하십시오. 이를 통해 자격 증명이 필요한 일부 일자리에 액세스 할 수 있으며 현장에 대해 더 깊이 이해할 수 있지만 학교를 즐기지 않으면 자신이나 직장에서 비슷한 경험을 할 수 있습니다. . 어쨌든 책 학습만으로는 충분하지 않습니다. "새로운 과학 해커 사전"의 저자 인 에릭 레이몬드는 "컴퓨터 과학 교육은 브러시와 안료를 연구하는 것만으로도 전문가 프로그래머가 될 수 없다"고 말했다. 내가 고용 한 최고의 프로그래머 중 하나는 고등학교 학위 만있었습니다. 그는 훌륭한 소프트웨어를 많이 생산했으며, 자체 뉴스 그룹을 보유하고 있으며, 자신의 나이트 클럽을 구입할 수있는 스톡 옵션을 충분히 갖추고 있습니다.

  • 다른 프로그래머와 함께 프로젝트를 수행하십시오 . 일부 프로젝트에서 최고의 프로그래머가 되십시오. 다른 사람들에게는 최악입니다. 최고가되면 프로젝트를 이끌고 비전을 통해 다른 사람들에게 영감을 줄 수있는 능력을 테스트하게됩니다. 당신이 최악 일 때, 당신은 주인이하는 것을 배우고, 그들이 싫어하는 것을 배우게됩니다.

  • 다른 프로그래머들에게 프로젝트를 진행하십시오 . 다른 사람이 작성한 프로그램을 이해하십시오. 원래 프로그래머가 없을 때 이해하고 수정하는 데 필요한 사항을 확인하십시오. 프로그램을 관리하는 사람들이 프로그램을 쉽게 유지할 수 있도록 프로그램을 디자인하는 방법에 대해 생각해보십시오.

  • 최소한 6 개의 프로그래밍 언어를 배우십시오. 클래스 추상화 (예 : Java 또는 C ++)를 지원하는 언어, Lisp 또는 ML과 같은 기능적 추상화를 지원하는 언어, Lisp와 같은 구문 추상화를 지원하는 언어, 선언적 사양 (Prolog 또는 C ++ 템플릿과 같은)을 지원하는 언어, 하나 아이콘 또는 구성표와 같은 코 루틴과 Sisal과 같은 병렬 처리를 지원하는 코 루틴을 지원합니다.

  • "컴퓨터 과학"에는 "컴퓨터"가 있다는 것을 기억하십시오. 컴퓨터에서 명령을 실행하고 메모리에서 단어를 가져오고 (캐시 미스가 있거나없는) 디스크에서 연속 단어를 읽고 디스크의 새로운 위치를 찾는 데 걸리는 시간을 알 수 있습니다. (답변은 여기에 있습니다.)

  • 언어 표준화 노력에 참여하십시오. ANSI C ++위원회 일 수도 있고 지역 코딩 스타일에 2 ~ 4 개의 공백 들여 쓰기 레벨이 있는지 결정할 수도 있습니다. 어느 쪽이든, 당신은 언어로 다른 사람들이 좋아하는 것에 대해, 그들이 얼마나 깊이 느끼는지, 그리고 왜 그렇게 느끼는지에 대해 조금 배울 것입니다.

  • 언어 표준화 노력을 최대한 빨리 끝내는 것이 좋습니다.


3

기능성 프로그램을 효과적으로 작성하여 스스로 훈련 할 것을 제안합니다. 기본이 있다고 생각되면 더 큰 프로젝트를 수행하십시오. 소프트웨어 개발을위한 qt 프레임 워크를 배우고 계속 연습하십시오. 프로그래밍을 배우는 가장 좋은 방법은 실제로 코드를 작성하는 것입니다.

나는 독서가 중요한 역할을한다고 말하고 싶습니다. 귀중한 팀 개발 경험을 제공 할 수 있기 때문에 오픈 소스 프로젝트 (github 또는 다른 유사한 사이트에서 하나를 찾으십시오)를 호스팅하는 개발자 팀을 찾을 수 있습니다.


2

때로는 sourceforge와 같은 장소가 처음에는 약간 어려워요. 할 일을 찾는 정말 좋은 방법은 프로젝트의 이슈 트래커를 탐색하고 수정 소리와 같은 버그 / 문제를 찾는 것입니다.

일부 소규모 github 프로젝트에서는 훨씬 더 접근하기 쉽습니다. 코드를 맹목적으로 넘어가는 대신 효과적으로 코드를 잡으려고하는 방향과 목적이 있습니다.


1

이 책의 샘플이나 대학의 과제는 프로그래밍이 어떻게 작동하는지 이해하기위한 좋은 출발점이며 향후 프로젝트의 가능성을 보여줍니다.

실제 프로젝트 작업

그러나 실제 프로젝트 경험이 없으면 배운 것을 잊어 버리는 경향이 있습니다.

문제는 당신이 할 수있는 것을 보여줄 기회입니다

또한 요구 사항이 얼마나 복잡한 지 실제 프로젝트에서 확인할 수 있으며 문제를 해결하기가 어려워집니다. 이 문제들은 당신이 할 수있는 것을 보여줄 기회입니다. 개선해야 할 약점을 볼 수 있습니다.


-1

PHP, mySQL 또는 다른 언어를 배워야합니까?

예, 월드 와이드 웹의 언어를 고려하십시오. HTML5, CSS3 및 JavaScript

이유는 다음과 같습니다.

  1. 그들은 배우는 것이 빠르며 구현하기가 점점 더 풍부 해집니다.

  2. 그들은 더 이상 웹뿐만 아니라 운영 체제, 서버 및 데이터베이스도 작성합니다.

  3. 가장 중요하게 *

    jQuery의 작성자 인 John Resig가 Computer Science 101재정의 하는 데 사용됩니다 .

메신저를 쏘지 말고 칸 학교 아카데미 링크를 확인하십시오 .

c / c ++ / c # 디자인 패턴은 JS로 전송됩니다.

희망이 도움이됩니다.


+1-너무 잘못되어 다운 투표되었습니다. 정보가 유효합니다. 링크는 믿을만하다. 소스는 jQuery Genius John Resig이며 JavaScript로 프로그래밍 101 과정을 시작하면 작동합니다. 칸 아카데미를 확인하십시오. 교육을 발전시킬 수있는 잠재력에 찬성; 최소한. 고마워.
잭 스톤
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.