태그 보관물: personal-projects

personal-projects

무언가를 디자인 한 후에 실제로 코드를 작성하도록 동기 부여하기 기능, 전체 응용 프로그램

그것은 나에게만 발생합니까 아니면 당신에게도 익숙합니까?

다음과 같습니다 : 무언가를 만들어야합니다. 모듈, 기능, 전체 응용 프로그램 등 당신이 전에 한 번도 해본 적이없는 것은 흥미로운 일입니다.

그래서 당신은 어떻게 할 것인지 생각하기 시작합니다. 스케치를 그립니다. 아이디어를 테스트하기 위해 프로토 타입을 작성합니다. 당신은 완전한보기를 얻기 위해 다른 조각들을 모으고 있습니다.

결국 원하는 디자인, 모든 사람에게 간단하고 명확하며 유지 관리가 쉬운 디자인으로 끝납니다. 당신은 모든 기초를 덮었 고 모든 것을 생각했습니다. 이 클래스와 해당 파일 및 데이터베이스 스키마를 갖게 될 것입니다. 여기에 이것을 구성하고 거기에 다른 것을 적용하십시오.

그러나 이제 모든 것이 확정 된 후에는 실제로 코드를 작성해야합니다. 그리고 더 이상 도전하지 않습니다 …. 거기에갔습니다! 지금 코드를 작성하는 것은 단지 “형식”이며 방금 완료 한 것을 반복하는 것처럼 보입니다.

다른 사람이 내 사양에 따라 코딩을했기 때문에 이전 직장에서 때로는 그것을 얻지 못했지만 새로운 공연에서는 전체 프로세스를 담당 하므로이 작업도 수행해야합니다 (왜냐하면 지불해야하기 때문입니다) 그것).

그러나 나는 집에서 일하고있는 애완 동물 프로젝트를 가지고 있습니다. 퇴근 후 나만 있고 아무도 그것을 지불하지 않습니다. 나는 창조적 인 일을 할 시간이이처럼 그냥 생각하지 않습니다 아래를 쓰기에 관해서 다음 때 (웹 검색 조금 할 수 있습니다에 새로운 기능을 참조 P.SE 에, SO 등).

나는 단지 다음 도전적인 것으로 이동하고 다음으로, 다음으로 이동하고 싶습니다 …

이것도 당신에게도 발생합니까? 어떻게 처리합니까?

당신은 어떻게 자신을 괴롭히는 코드를 작성하도록 설득합니까?

답변을 드리겠습니다.



답변

도전 과제가 디자인하고 구현하지 않은 경우 다른 동기 부여 요소가 필요할 수 있습니다.

그것이 애완 동물 프로젝트 (일이 아닌) 인 경우, 실제로 그것이 살아있는 것을 기대하기 때문에 그것을 디자인하는 것은 충분하지 않습니다. 자신의 애완 동물 프로젝트를 계획 할 때 목표는 무엇입니까? 사용해야 할 것이 있습니까? 그렇다면이를 구현 동기로 사용할 수 있습니다. 작동하는지 확인하십시오. 당신이 찾고 있던 기능을 제공하기 위해.

다른 사람이 사용할 수 있도록 계획하고 있습니까? 동기 부여 요소는 최종 제품의 이점을 볼 수 있습니다. 그들은 단지 디자인 모드에 있다면 유틸리티를 꺼내지 않을 것입니다. 그리고 마케팅을 계획하고 있다면, 애완 동물 프로젝트가 디자인 모드에 갇혀있는 동안 아무도 동기 부여 요인으로 지불하지 않을 것이라는 사실을 사용하십시오.

내 일을 할 때는 직장에서 할 수있는 것보다 더 반복적 인 접근 방식을 취합니다. 무언가를 생성하기 전에 모든 세부 사항에 대해 걱정하지 않습니다. 시간이 더 걸릴 수도 있지만 1) 나만을위한 것이기 때문에 (또는 아직 어떤 형태로 존재하는지 알지 못하는 사람도) 실험을하고 시간을 내야 할 유연성이 있습니다. 2) 나는 많은 사이클을 리팩토링하고 더 나은 방법을 배우는 데 소비합니다. 비 유적으로 말해서 내 자신의 소름에.

그러나 궁극적으로 무언가가 얇은 공기에서 나오는 것을 보는 진정한 만족감이 아닌가? 그것이 나를 위해하는 일입니다. 그것이 당신을위한 동기 부여가 최종 제품이 아니라면 당신을 위해 그것을하지 않으면, 나는 왜 당신이 애완 동물 프로젝트에서 일하기를 원하는지 잘 모르겠습니다. 디자인이 당신에게 과즙이되고 직장에서하는 일이라면, 이미 만족하고있는 것 같습니다.


답변

집에서 빠른 프로토 타이핑이 필요합니다.

개인 개인 프로젝트에 동일한 수준의 전문적인 엄격함을 적용하면 과도하게 엔지니어링됩니다.

개인 프로젝트에 대해 높은 표준을 설정하는 것은 완벽하게 허용되지만 프로젝트 진행에 필요한 자원 (코딩 시간, 8 시간의 일일 작업 시간)이 부족할 수 있음을 이해해야합니다.

애완 동물 프로젝트에서 가장 중요한 목표는 무엇입니까? 통찰력 중 하나의 유용성을 증명하기 위해? 이 경우 개념 증명 프로젝트가 될 때까지 프로젝트를 정리하십시오 . 그런 다음 빠른 프로토 타이핑을 사용하여 코딩 시간을 줄이면서 더 많은 것을 달성 할 수 있습니다.


답변

나는 그것이 단지 나인 것 같지만 반대의 문제가 있습니다. 코드 작성을 시작하고 실제로 관련 문제가 발생하기 전에 모든 세부 사항을 생각하는 데 어려움이 있습니다. 현실적으로, 나는 무언가를 코딩하기 시작할 때 일반적으로 머릿속에 모호한 디자인을 가지고 있습니다. 저의 큰 도전은 모든 세부 사항을 생각하고 선제 적으로 설계하는 것입니다.


답변

나는 분명히 그것에 관련 될 수 있습니다. 내가 겪지 않은 일에 도전하는 것을 좋아하지만 이미 해결 한 일을 시작하는 데 어려움을 겪고 있습니다. 내가하는 가장 큰 일은 X를 수행하고 작동시키는 목표를 가지고 앉도록 강요하는 것입니다. 일반적으로 일단 나가면 나는 처음부터 설정 한 것보다 재미있게 즐기고 더 많은 것을 얻지 만 목표를 세지 않으면 몇 시간 동안 병에 걸린 것입니다.

나는 또한 사무실에서보다 집에서 더 많은 일을한다는 점에서 당신과 함께 있습니다. 산만 해 지거나 직장에서 화상을 입 었는지, 아니면 …


답변

나는 내가 전에 그것을 겪었던 것에 대한 당신의 좌절을 확실히 이해합니다.

이것이 좋은 접근 방법이 아니라는 것을 알고 커뮤니티의 불길을 두려워하지만, 보조 프로젝트에 대한 나의 접근 방식을 당신과 공유 할 것입니다. 이 방법은 저에게 효과적이며 중장기 프로젝트에 사용하지만 작은 일에는하지 않습니다 (보통 한 번에 끝내는 동기가 있기 때문에).

전체 프로젝트를 잡아서 ‘패키지’로 나누십시오. 각 패키지는 서로 자주 상호 작용하는 부분으로 구성됩니다. 그런 다음 각 패키지를 디자인하고 코딩 할 수있는 작은 조각 (최대 몇 시간 생각)으로 나눕니다.

이상적으로 하루 동안 부업 프로젝트에 할당 할 때마다 각 작품을 완성 할 수 있지만 필요하지는 않습니다 (사람에 따라 다름).

개인적으로, 나는 그 견적에 실패하면 그냥 dissapointed하고 동기를 부여하기 때문에 각 조각에 대한 예상 기간을 설정하지 않기 때문에 권장하지 않습니다. 시간이 걸리지 만 너무 오래 걸리지 마십시오.

이제 각 작은 조각은 일반적인 개발 프로세스, 디자인, 테스트, 구현 및 기타 필요한 모든 단계를 수행합니다. 아이디어는 각 피스에 좋은 킥 스타트를 제공하지만 완전히 마무리되지는 않았습니다.

실제 코딩 지루한 두 시간 후에 더 맛있는 디자인을 할 것이라는 것을 알기 때문에 이것은 동기 부여를 유지합니다. 자신의 목표에서 벗어나지 말고, 그 무서운 작업을 계속하면 곧 끝나고 끝날 것입니다.

모든 과정을 마친 후에 패키지를보십시오. 작동 방식, 작동 방식을 확인하고 전체 패키지를 다시 검토 하십시오. 나는 변화와 조정이있을 것이라고 확신합니다. 지금 그렇게하십시오. 다른 모든 패키지에서 작업 할 때 필요한 정보를 염두에 두십시오. 메모도 많이하면 도움이됩니다.

각 패키지를 살펴보고 이전에 수행 한 다른 모든 것을 계속 기억하십시오. 작성하는 새 코드는 일주일 전에 작성한 내용과 어떻게 상호 작용합니까? 이미 작성하고 잊어 버린 물건을 찾는 것을 두려워하지 마십시오.

마지막으로, 패키지를 모두 사용할 수없는 경우 일반적으로 며칠 동안 그대로두고 휴식을 취하고 다른 것에 중점을 둡니다.

일반적으로 돌아가서 패키지 간 상호 작용을 시작하고 재미있는 테스트를 수행하려고합니다. 작성할 코드가 많지 않고 목표가 가까이 있습니다.

이것이 당신의 노력에 도움이되기를 바랍니다.


답변

필자는 원래의 가정이 전적으로 적용되지는 않았으며 실제 구현을 수행하는 동안 수집 된 경험에 따라 원래의 디자인이 다소 변경되어야한다는 것을 항상 발견했습니다.

일부 상자를 그린 후 디자인이 절대적으로 완벽하고 완벽하다고 생각하지만 실제로 시도하기 전에 일부 프로젝트 구현을위한 완벽한 후보라고 생각합니다.

배송은 기능입니다. 전체 거리를 가지 않으면 건축가 일뿐입니다.


답변

문제가 잘못된 목표에 있다고 생각합니다. 목표 “디자인 시스템”을 설정 한 것 같습니다. 그리고 당신은 그것을 잘하고 목표에 도달합니다. 따라서 한 가지 제안은 또 다른 목표 “구현 시스템”을 설정하는 것이지만 동기 부여 및 수행 방식과 관련이 있습니다.

나를 위해 일한 또 다른 방법이 있습니다. 초기 목표를 “디자인 시스템”또는 “시스템 만들기”대신 “특정 사용자에게 시스템 제공”으로 설정하십시오. 이러한 방식으로 사용자가 가치있는 것을 얻을 때까지 만족하지 않습니다. 그리고 테스트와 다른 현대적인 멋진 것들을 포함하여 처음부터 잘 수행합니다.