나의 "교육"역 추적 [닫힘]


13

얼마 전에 저는 프로그래밍을 시작하기로 결정했습니다. 나는 정말로 언어 (Perl)로 뛰어 들어갔습니다. 내가 후회하는 것은 내가 뛰어 들었다는 것입니다.

나는 기본을 배우지 못했습니다 (기본이라고 부를 경우).

나는 컴퓨터 과학에 대해 배우지 못했습니다.

이 문제는 저의 진정한 잠재력에서 저를 방해하고 있다고 믿습니다. 어디에서 "다시 시작"해야합니까? 읽어야 할 책, 기사 등이 있습니까? 숙련 된 프로그래머가 알아야 할 주제가 있습니까? 당신의 조언은 무엇입니까?


귀하의 질문에 명확하지 않습니다. 프로그래밍을 시작하기로 결정했을 때, 새로운 직업을 얻거나 직장에서 또는 재미를 위해 일부 관리 작업을 수행하는 것이 되었습니까? 이런 식으로 시작한 것을 후회하는 이유와 그 문제가 당신을 뒤로 미는 데 도움이되도록 당신이 어디에서 왔는지 이해해야합니까? 나는 가정을 좋아하지 않습니다.

@ JamesDrinkard : 그것은 단지 배우기위한 것입니다! 나는 생계를 위해 이것을하지 않습니다.
동적

당신의 배경은 무엇입니까? 과학에 대해 아는 것이 있습니까? 수학? 공학? 목공? :-) 어떤 종류의 프로그래밍에 관심이 있습니까? 이러한 세부 사항이 없으면 유용한 답변을 제공하기가 어렵습니다. 또한 뛰어 내리는 것을 후회하지 마십시오. 훌륭합니다!
Guy Sirton

@GuySirton : 저는 중학생입니다. 나는 정말로 프로그래밍 할 이유가 없다.
동적

답변:


21

나는 이것을 할 것이다 :

경로 A : 반 전형적인 방법

  1. Java, C # 또는 Python과 같이보다 정규화 된 구문으로 언어를 학습하십시오. Perl은 매우 유용한 도구이지만 작업 수행 방식 측면에서 매우 자유 롭습니다. 내가 나열된 다른 언어는 훨씬 적습니다.

  2. 해당 언어로 된 데이터 구조에 관한 책을 얻으십시오.

  3. 해당 언어로 된 알고리즘에 관한 책을 얻으십시오.

  4. 코드가 완전하고 효과적인 Java / C # / Python 버전이 무엇인지 확인하십시오.

Path B : Joel Spolsky의 깨달음의 길 (또는 죽음, 선택하십시오)

  1. "코드"책 받기

  2. K & R의 "C 프로그래밍 언어"얻기

  3. 컴퓨터 프로그래밍의 구조와 해석

방법이 진행되는 한, 방법 1은보다 정규화 된 방식으로 프로그래밍을 가르쳐 줄 것입니다. 컴퓨터 과학 개념은 어느 정도까지 복잡성 이론 (아직 복잡성 이론은 아님)을 이해하고 다른 사람들과 프로젝트를 진행하고 더 큰 응용 프로그램을 만드는 데 더 적합한 언어를 제공합니다.

방법 2는 더 하드 코어 적이며, 기본 사항을 설명하는 "코드", K & R은 기계 수준의 재료를 소개하고 SICP는 높은 수준의 개념을 소개하는 기본 접근 방식에 훨씬 가깝습니다. 훨씬 어렵지만 집중적 인 경로입니다.

어느 경우이든 시간을 내십시오. 로마는 하루에 지어진 것이 아니며 프로그래밍 기술도 아닙니다. Peter Norvig의 10 년 동안의 프로그래밍은 사람들이 지적하는 일반적인 에세이입니다.

추가:

가능한 무료 자료 : 아래 나열된 Python the Hard Way 는 컴퓨터 과학자처럼 생각하는 방법 이 합리적입니다.

알고리즘에는 여러 가지 리소스가 있으며 솔직히 문제없이 3 단계와 4 단계를 전환 할 수 있습니다. 여기서 수학이 실제로 나타나기 시작하므로이 단계에 도달 할 때 도움을 요청하는 것을 두려워하지 마십시오. 이것은 합리적인 무료 가이드 인 것 같습니다 .

Pythonista와 같은 코드 는 꽤 견고 해 보이지만 실제로는 말하기 당 Code Complete와 동등한 응집력이 없습니다 . 가장 중요한 것은 기본 사항이 확실 해지면 코드를 읽을 수있게 만드는 데 집중하는 것입니다. 모든 코드 구문이 올바른 것과 같은 방식으로 "필요"하지는 않지만 작은 프로그램을 넘어서거나 오랜 기간 동안 무언가를 수행하면 훨씬 쉽게 살 수 있습니다.

필자가 파이썬에 주로 집중했다는 것을 알 수 있습니다. 잘 작성된 무료 자료를 찾는 것이 세 가지 중 가장 쉽기 때문입니다. Oracle의 Java 자습서는 훌륭하지만 초보자에게는 적합하지 않습니다. C #도 비슷한 상황에 있지만 문서화 부족으로 고통받지 않습니다.

또한 첫 번째 CS 농담 / 펀 : 당신은 역 추적이 아닌 교육을 "리팩터링"하고 싶어합니다.


감사합니다! 무료 온라인 서적을 읽으시겠습니까? 그 외에는 놀라운 답변입니다!
동적

5
+ 1 컴퓨터 프로그래밍 (SICP)의 구조와 해석에 대해서는 온라인에서 찾을 수 있습니다 : mitpress.mit.edu/sicp
NWS

Perl을 알고 있다면, 파이썬은 익숙해 지는데 많은 어려움을 줍니까?
동적

1
Perl 이후 대부분의 언어는 약간의 전환이 될 것입니다. 파이썬은 펄에있는 것처럼 1 가지를하는 50 가지 방법이 아니라 1 가지를하는 1 가지 방법이 있기 때문에 상당히 쉽다. 파이썬의 가장 큰 요령은 사용할 언어의 버전을 결정하는 것입니다 : 2.7 또는 3.x. 나는 당신이 선택한 튜토리얼이 무엇이든 사용하고 거기에서 갈 것입니다. 일단 더 나아지면 프로젝트가 진행되면서 다른 것에 적응할 수 있습니다.
세계 엔지니어

1
@kevincline : 실제로, 파이썬 연습을 한 후에, 나는 많은 문제를 겪고 있습니다. Perl에서 매우 간단한 일부 IMHO는 Python에서 어렵습니다.
동적


1

글쎄, 나는 하드웨어 측면에 대한 지식이 있고 프로그래밍에 관심이있는 것과 같은 이유로 시작했습니다. 나는 새로운 것을 배우고 싶습니다.

DOS 배치 파일로 시작한 다음 QuickBasic, Visual Basic, VBA, MASM으로 시작하여 데이터베이스 작업을위한 Access를 사용하여 첫 번째 작업을 시작했습니다. 저에게는 이것이 가장 좋은 길이었습니다. 단순하게 시작한 다음 거기서 시작했습니다.

프로그래밍에 대해 가장 좋아하는 것을 결정하고 해당 경로, 스크립팅, 웹 개발, Windows 프로그래밍 등으로 이동하십시오. 모르는 경우 일부 언어를 사용하여 원하는 것을 확인하십시오. 그래도 시간이 필요합니다. Java 또는 C ++, IMHO와 같은 언어를 실제로 사용하려면 약 5 년이 걸립니다.

웹 개발을 배우는 데 도움이되는 언어 인 JavaScript는 확실히 PHP가 대중적이며 Python이지만 IMHO입니다. HTML / CSS를 알고 배우는 것으로 가정합니다. 2001 년 이래로 자바 스크립트를 사용해 왔지만 자바 스크립트를 과소 평가했다. 나는 그것에 대해서도 의견을 바꿨다.

트렌드를 결정하려고 할 때 http://www.indeed.com으로 이동 하여 페이지 왼쪽 상단의 트렌드 링크를 클릭하십시오. 그런 다음 PHP 및 Python과 같은 키워드를 입력하고 인터넷에서 실제 작업 위치에 어떤 키워드를 내려 놓고 있는지 확인합니다.

이것은 경력 관점에서 볼 때 고객 (고용주)에게 가장 가치가있는 것을 기반으로합니다. 학습의 관점에서만이 아닙니다.


웹 개발에 도움이되는 언어를 배우고 싶지만 여전히 더 많은 것을 할 수 있다면 어떻게 하시겠습니까?
동적

-1

가장 기본적인 형태의 알고리즘에 대해 배우고 잠시 동안 언어를 잊어 버리십시오. 벡터, 단어 등을 정렬합니다. Freepascal은 이러한 것들로 시작하기에 좋은 언어입니다. Perl을 좋아하지만 모든 단축키와 멋진 것들로 프로그램의 고유 알고리즘을 무시하는 경우가 많습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.