완전한 멍청한 놈에서 개발자로 논리적 점프를하고 있습니까?


12

나는 몇 년 동안 아주 가볍게 프로그래밍을 해왔고 많은 진전을 이루지 못했습니다. 그것은 확실히 나에게 관심이있는 일이지만, 나는 동기를 얻지 못했습니다. 그런 다음, 무엇이 나를 죽이고 있는지 알아 냈습니다. 내가 읽은 모든 책, 내가 본 모든 스크린 캐스트는 한 가지 중요한 것을 놓친 것 같습니다.

인쇄 문, 변수 등에서 복잡한 작업을 수행하려면 어떻게해야합니까?

예를 들어 Posterous와 같은 사이트를 보자. 모르는 사람들을 위해, 이메일을 통해 블로그 게시물을 수락하는 블로그 플랫폼입니다. 블로그 작성자에게는 블로그 게시물을 보내는 특별한 @ posterous.com 전자 메일이 있으며 자동으로 서식이 지정되고 게시됩니다.

개발자가 백엔드에서 이와 같은 기능을 수행하기 위해 도구 상자의 함수 및 명령문을 어떻게 사용합니까?

이 질문이 정말 광범위 해 보인다면 유감입니다. 나는 기본 개념에 대해 잘 알고 있다고 생각하지만 실제로 어떻게해야할지 전혀 모른다 .


그들은 전자 메일을 구문 분석하고 인코딩을 유지하고 텍스트를 데이터베이스에 삽입합니다. 그런 다음 모든 게시물을 선택하여 지정된 페이지에 표시하는 간단한 노력입니다. 자신의 프로그래밍 능력이 부족하다는 것을 설명하기 위해 더 많은 일을함으로써 향상시킬 수 있습니다.
Ramhound

지금까지 많은 놀라운 답변이 있습니다. 이제 조금 더 명확 해지고 있습니다. 모두 감사합니다!
Blair Beck 님과 함께

답변:


12

핵심은 작업을 수행 방법 (또는 수행 방법을 찾을 수 있음)을 알 수있는 개별 단계로 나누는 것입니다. 수행 방법은 경험 수준에 따라 다릅니다.

Posterous 이메일 예를 보자.

요구 사항 : @ posterous.com 이메일을 수락하고 형식을 정한 다음 웹 사이트에 게시하십시오.

작업 1) 이메일을 수락합니다.

이메일은 대부분 메일 서버에서 검색해야합니다. 특정 메일 서버에서 이메일을 검색하려면 API 호출을 조사해야합니다. 또한 이메일 본문 (아마도 다른 API 호출)에서 컨텐츠를 추출하는 방법을 알아 내야합니다.

작업 2) 이메일을 포맷하십시오.

작업 1부터 아마 어딘가에 메모리에 내용이있을 것입니다. 3 단계를 준수하도록 형식을 지정하십시오.

작업 3) 블로그에 내용을 게시하십시오.

이 email2blog 기능을 추가하는 경우 이미 블로그 게시물을 게시하는 메커니즘이있을 수 있습니다. 이 메커니즘을 사용하고 웹 사이트의 텍스트 영역에서 입력을받는 대신 2 단계의 컨텐츠로 바꾸십시오.

이제 각 작업을 수행하기 위해 print 문, if 문 및 함수를 어떻게 얻습니까?

작업 1에서 API 호출을 두 번 언급 한 방법에 주목하십시오. API 호출은 본질적으로 다른 사람이 작성한 기능이므로 해당 기능을 사용할 수 있습니다. 함수를 호출하는 방법을 알고 있으면 메일 서버에서 메일을 검색하는 데 필요한 올바른 API 호출을 조사 할 수 있습니다.

형식화에 대해 많이 이야기하지는 않았지만 문자열 조작 방법을 알고 있다면 형식화 방법을 알고 있습니다. html 페이지를 형식화하면 <b>bolded text</b>문자열 과 같은 태그를 어딘가에 추가 할 수 있습니다.

작업 3에서는 블로그를 게시하는 메커니즘이 있다고 언급했습니다. 이것이 기존 블로깅 플랫폼이라면 이것에 익숙 할 것입니다. 그러나 그렇지 않다면 HTTP Post 및 기타 웹 프레임 워크 관련 항목에 대해 알아야합니다.

이 모든 것을 읽은 후에도 여전히 내가 말하는 것에 대한 단서가 없다면 경험을 대신 할 수있는 것이 없다는 것을 확신하기를 바랍니다. 그냥 나가서 뭔가를 만드세요! 모든 개발자가 한 번 멍청한 놈 이었기 때문에 멍청한 실수를하는 것에 대해 너무 걱정하지 마십시오.


5

가장 중요한 것은하고 싶은 일을 찾아서 하는 것 입니다.

이것이 대부분의 위대한 회사가 시작된 방식입니다.

  • 구글? Brin과 Page는 웹 색인 생성에 열정적이었습니다.

  • 메타 필터? Matt Haughey는 글쓰기와 공유에 열정적이었습니다.

  • 트위터? Dorsey는 단순성에 대해 열정을 가지고 있었고 140 자보다 훨씬 간단하지 않습니다.

  • 스택 오버플로? Joel과 승무원은 답변에 열정적이었습니다.

PHP, Perl, Python 및 Ruby와 같은 언어는 모두 같은 방식으로 설계되었습니다. GNU / 리눅스도 마찬가지였습니다. 누군가 스크래치를 가지고 그 스크래치를 가려운 다음 일반 소 비용 도구를 출시했습니다.

따라서 주위를 둘러보고 가려움증의 위치를 ​​결정한 다음 가려움증을 긁는 프로그램을 작성하십시오. 어쩌면 게임을 좋아해서 게임을 만들 수도 있습니다. 어쩌면 mp3 모음의 ID3 태그에 문제가있을 수 있으며 수정해야합니다. 또는 가족 역사에 관심이 있고 웹에서 크롤링하여 사람이나 역사의 장소에 대한 참조를 찾고자 할 수 있습니다. 아니면 어쨌든 실제 세계와 상호 작용하고 싶을 수도 있습니다. 또는 FLOS 소프트웨어를 개발하고 싶을 수도 있습니다. GitHub, Gitorious 및 Sourceforge를 살펴보십시오.

열정적 인 것을 찾아서 프로그래밍을 시작하면 곧 큰 프로그램을 알게 될 것입니다. 그렇기 때문에 일종의 계획을 세우는 것이 좋습니다.)


2

천천히 그리고 점차적으로.

일반적으로 대규모 프로젝트의 경우 쓰기 코드만으로 다이빙을 시작하지 않습니다. 누군가 어딘가에 계획이 있어야합니다. 그들은 원하는 시스템의 특징을 적습니다. 그런 다음 첫 페이지 / 창 / 무엇으로 시작합니다. 그런 다음 다른 것을 추가합니다. 기능마다 기능을 천천히 추가하면서 버그 후 버그를 수정했습니다. 그것은 단지 존재하기 시작하지 않으며, 큰 그림, 전반적인 디자인이 필요합니다.

더 잘하려면 연습이 필요합니다! 작은 프로젝트부터 시작하십시오. 간단하고 관심도 있습니다. 당신이하기 전에하고있는 일을 계획 하라. "실제로 무엇 인가 를하는"것이 어렵지 않다는 것을 알게 될 것이다 .


1

원하는만큼 많은 스크린 캐스트를보고, 책을 많이 읽거나, 원하는만큼 많은 자습서를 따라갈 수 있지만 어디를 가든지 느끼지 않습니다. 당신은 당신이 만들고 싶은 것을 알아 내야합니다. 그런 다음 분류하여 작성해보십시오. 당신은 당신이 모르는 많은 것들을 보게 될 것입니다. 그러나 당신은 그들을 연구하고 갈수록 더 복잡한 작업을 배웁니다.


1

나는이 도전에 직면하게되었고, 대체로 해결책을 찾았습니다. 생산성을 높이려면 외부 소스가 필요했습니다.

당신은 다른 사람처럼 프로그래밍에 흥미가 있고 다른 사람만큼 지능적이고 빨리 배우는 것처럼 누구나 기술에 매료 될 수 있습니다. 그러나 어디서부터 시작해야하는지 알기가 어려울 수 있으며 시작 위치에 대한 아이디어가 있더라도 볼 롤링을 얻기가 어려울 수 있습니다.

당신이 좋은 셀프 스타터라면, 아마도 몇 가지 아이디어가 필요할 것입니다. 몇 가지 프로그래밍 퍼즐을 시도 하거나 정기적으로 사용하는 간단한 유틸리티를 살펴보고 "이것을 할 수 있습니까? 만약 그렇게한다면 무엇을 바꾸겠습니까?"

열린 편집자 나 빈 종이 앞에 ​​앉아“좋아요, 두뇌를 만드십시오! ” 라고 말하면 정말 힘들 것입니다 . 그러나 그것을 분해하면 어떤 종류의 일을해야하는지 생각해보십시오. 거기에서 자신을 운전하면 더 멀어 질 수 있습니다.

또한 코드를 만들 수 없다는 사실을 알게되면 마감일과 요구 사항을 모두 포함하여 할 일을 누군가에게 제공하십시오. 장비에 당신을 걷어차 게됩니다.


1

당신이 기본적인 지식을 가지고 있다는 사실은 좋습니다. 저는 전문가가 아니지만, 내가 만든 것을 팔 수 있기 때문에, 올바른 일을해야합니다. 귀하의 언어와 귀하가 개발하고있는 플랫폼에 대한 기초를 배우는 것이 좋습니다.

먼저 당신이하려는 일을 계획하고, 당신이 그것을 어떻게 할 것인지에 대한 아이디어를 얻으십시오. 물건을 더 빨리 알아내는 데 도움이되므로 물건을 특정 것으로 끓이는 것에 관한 모든 것. 그런 다음 Google에 붙어있는 경우 사용중인 언어로하려는 일이 있습니다. 스택 오버플로에 대해서도 질문하십시오 (저는 이미 70 개가 넘는 질문을했습니다 .hehe)!

개인적으로 인터넷 검색을 통해 배웠지 만 처음에는 기본 사항을 선택하지 않았지만 이미해야 할 일이 있었지만 이미 꽤 좋은 물건을 만들 때까지는 여전히 "배열"이 무엇인지 알지 못했습니다. ;)


0

데이터 조작을 시작 해야하는 인터페이스의 백엔드에서 기술을 개발할 것이라고 생각합니다. 대부분의 대규모 프로젝트는 데이터 이동, 변환 및 표시에 관한 것입니다.

여러 종류의 데이터 액세스 및 파일 조작에 익숙해지기 전까지는 더 큰 프로젝트에 대해 잘 이해하지 못했습니다.


0

머리 위로 약간 튀어 나와 무언가를 알아내는 것은 기술을 확장하는 좋은 방법이 될 수 있습니다. O'Reilly Cookbook 시리즈 중 일부를보고 싶을 수도 있습니다.

http://oreilly.com/store/series/cookbooks.html

이 같은 문제 / 솔루션 / 토론 형식의 사운드는 것, 코드 '요리법'을 찾고 정확히 수 있습니다 DO 뭔가 재미 있고 어떻게 작동하는지에 대한 몇 가지 논의를.


1
구매하기로 결정했다면 먼저 쿠폰 코드를 찾으십시오 : retailmenot.com/view/oreilly.com
DKnight

0

난 당신이 더 많은 일을 스스로에게 도전하지 않는 것 같아요.

무언가 궁금한 점이 궁금하다면 조사해보십시오! Posterous의 작동 방식을 알고 싶다면 필요한 도구 종류, 텍스트 상자에서 웹 사이트로 정보를 얻는 방법을 연구하는 것과 같은 작은 것부터 시작하십시오. 그런 다음 점차적으로 그 위에 빌드하십시오. 다음 질문은 웹 사이트 및 데이터베이스에 대한 이메일 연결을 설정하는 것일 수 있습니다.

인터넷에 필요한 최고의 도구가 있습니다.


0

프로젝트를 작업으로 나누는 것 외에도 코드 재사용을 배우는 것이 중요합니다. 동일한 작업을 수행해야하는 다른 프로젝트에서 재사용 할 수 있도록 코드를 모듈로 나눕니다.

예를 들어이 예제 프로젝트에서는 블로그 게시물을 저장하기위한 데이터베이스 작업을 수행하고있을 것입니다. 데이터베이스에 연결하고 쿼리를 수행하고 결과를 얻는 등의 데이터베이스 클래스를 작성할 수 있습니다. 그런 다음 모든 향후 프로젝트에서 동일한 클래스를 사용하고 데이터베이스를 쉽게 사용할 수 있습니다.

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