작가:
Morris Wright
창조 날짜:
24 4 월 2021
업데이트 날짜:
1 칠월 2024
콘텐츠
오픈 소프트웨어를 작성하고 사용하는 것은 단순한 프로그래밍 (프로그래머 세계에서 "해킹"이라고도 함)의 한 형태가 아니라 일종의 철학입니다. 코딩 할 수있는 프로그래밍 언어 만 알면되지만,이 문서는 커뮤니티에 가입하고, 친구를 사귀고, 훌륭한 프로젝트를 공동으로 작업하고, 다른 곳에서는 얻을 수없는 프로필로 존경받는 전문가가되는 방법에 대해 설명합니다. 오픈 소프트웨어의 세계에서는 엘리트, 최상위 프로그래머 만이 회사에서 할 수있는 작업을 아주 쉽게 할당 할 수 있습니다. 이것이 얼마나 많은 경험을 가져다 줄 수 있는지 생각해보십시오. 그러나 개방형 소프트웨어 프로그래머가되기로 결정한 후에는이 목표에 시간을 투자 할 의향이 있어야합니다. 이는 이미 IT 학생 인 경우에도 적용됩니다. 이 기사는 해커 나 크래커가되는 방법에 관한 것이 아닙니다.
단계로
- 좋은 Unix 배포판을 다운로드하십시오. GNU / Linux는 프로그래밍에 가장 많이 사용되는 프로그램 중 하나이지만 GNU Hurd, BSD, Solaris 및 (일부) Mac OS X도 일반적으로 사용됩니다.
- 명령 줄 사용 방법을 알아 봅니다. 명령 줄을 사용하면 Unix와 유사한 운영 체제로 더 많은 작업을 수행 할 수 있습니다.
- 다소 만족스러운 수준에 도달 할 때까지 인기있는 프로그래밍 언어를 배우십시오. 그렇지 않으면 오픈 소프트웨어 커뮤니티에 코드 (소프트웨어 프로젝트에서 가장 중요한 부분)를 제공 할 수 없습니다. 일부 소스는 한 번에 두 가지 언어로 시작하는 것을 제안합니다 : 하나의 시스템 언어 (C, Java 또는 유사)와 스크립팅 언어 (Python, Ruby, Perl 또는 유사).
- 생산성을 높이려면 NetBeans 또는 유사한 통합 개발 환경이 필요합니다.
- vi 또는 Emacs와 같은 고급 편집기 사용 방법을 배웁니다. 그들은 더 높은 학습 곡선을 가지고 있지만 더 많은 것을 할 수 있습니다.
- 버전 관리에 대해 알아 봅니다. 버전 제어는 아마도 공유 소프트웨어 개발을위한 가장 중요한 협업 도구 일 것입니다. 패치를 만들고 적용하는 방법을 이해합니다. 커뮤니티의 대부분의 개방형 소프트웨어 개발은 다양한 패치의 생성, 토론 및 적용을 통해 이루어집니다.
- 경험을 얻기 위해 쉽게 참여할 수있는 적합한 소규모 개방형 소프트웨어 프로젝트를 찾으십시오. 요즘 대부분의 프로젝트는 SourceForge.net에서 찾을 수 있습니다. 적합한 프로젝트에는 다음이 포함되어야합니다.
- 알고있는 프로그래밍 언어를 사용하십시오.
- 최근 릴리스로 활동하십시오.
- 이미 3 ~ 5 명의 개발자로 구성되어 있습니다.
- 버전 제어를 사용합니다.
- 기존 코드를 너무 많이 변경하지 않고도 바로 시작할 수있는 부분이 있습니다.
- 코드 외에도 좋은 프로젝트에는 활발한 토론 목록, 버그 보고서, 개선 요청 가져 오기 및 구현 및 유사한 활동이 있습니다.
- 선택한 프로젝트의 관리자에게 문의하십시오. 개발자가 적은 소규모 프로젝트에서는 일반적으로 귀하의 도움이 즉시 수락됩니다.
- 프로젝트의 규칙을주의 깊게 읽고 어느 정도 따르십시오. 프로그래밍 스타일의 규칙이나 별도의 텍스트 파일에 변경 사항을 문서화해야하는 필요성은 처음에는 우스꽝스러워 보일 수 있습니다. 그러나 이러한 규칙의 목적은 공유 작업을 활성화하는 것이며 대부분의 프로젝트는이를 사용합니다.
- 이 프로젝트를 몇 달 동안 진행하십시오. 관리자와 다른 프로젝트 구성원의 의견을주의 깊게 들어보십시오. 프로그래밍 외에도 배워야 할 것이 많습니다. 하지만 정말 마음에 들지 않는 것이 있다면 멈추고 다른 프로젝트로 전환하십시오.
- 너무 오래 지하 프로젝트에 갇히지 마십시오. 해당 팀에서 성공적으로 작업 할 수 있다는 것을 알게되면 더 진지한 것을 찾을 때입니다.
- 진지하고 높은 수준의 오픈 소프트웨어 또는 오픈 소스 프로젝트를 찾으십시오. 대부분의 프로젝트는 GNU 또는 Apache 조직이 소유합니다.
- 우리는 여기서 진지하게 도약하고 있기 때문에 훨씬 덜 따뜻한 환영을 고려해야합니다. 처음으로 코드 저장소에 대한 직접 쓰기 액세스없이 실행하라는 요청을받을 가능성이 높습니다. 그러나 이전의 지하 프로젝트에서 많은 것을 배웠어야했기 때문에 생산적인 기여를 한 후 몇 달 후에는 자신이 가져야한다고 생각하는 권리를 주장 할 수 있습니다.
- 심각한 작업을 수행하고 해결하십시오. 때가됐다. 두려워 하지마. 작업이 처음에 생각했던 것보다 훨씬 더 어렵다는 것을 알았더라도 계속하십시오.이 단계에서는 포기하지 않는 것이 중요합니다.
- 가능하다면 Google의 "Summer of Code"에 지원하여이 모험에 돈을 투자하세요. 그러나 정말 좋은 프로그래머보다 훨씬 적은 자금을 지원하는 자리를 가지고 있기 때문에 신청서가 승인되지 않더라도 걱정하지 마십시오.
- 근처에서 열리는 적절한 회의 ( "Linux의 날"또는 이와 유사한 것)를 찾아 그곳에서 프로젝트를 발표 해보십시오 (전체 프로젝트, 프로그래밍 한 부분뿐만 아니라). 귀하가 심각한 무료 / 오픈 소스 프로젝트를 대표한다고 언급 한 후, 주최자는 종종 귀하를 컨퍼런스 비용에서 배상 할 것입니다 (그렇지 않다면 컨퍼런스는 어쨌든 부적합 할 것입니다). Linux 노트북 (있는 경우)을 가져와 데모를 실행하십시오. 프레젠테이션이나 포스터를 준비하는 데 사용할 수있는 자료에 대해 프로젝트 관리자에게 문의하십시오.
- 인터넷에서 근처의 설치 이벤트에 대한 공지 사항을 검색하고 먼저 사용자로 참여해보십시오 (발생하는 모든 문제와 해커가 해결 방법을 기록). 다음에 프로그램 설치를 제안하십시오.
- 작업을 완료하고 자동 테스트로 작업을 확인하고 프로젝트에 기여하세요. 완료되었습니다! 확실히 프로젝트에 참여한 프로그래머를 직접 만나서 결과에 따라 맥주 한 잔을 함께 올리십시오.
- 더 나은 이해를 위해 개방형 소프트웨어 프로젝트의 개발 이력에 대한 실제 예를보십시오 (위 참조). 각 상승 곡선은 단일 개발자의 기여도 (코드 라인)를 나타냅니다. 개발자는 나이가 들어감에 따라 덜 활동적이되는 경향이 있지만 새로운 사람들이 합류하더라도 프로젝트 속도는 종종 빨라집니다. 따라서 주머니에 유용한 기술을 가지고 도착하면 팀이 당신을 초 대해서는 안되는 이유가 없습니다.
팁
- 프로젝트 내의 실제 요구 사항에 대해 질문하기 전에 프로젝트 문서 및 메일 링리스트 아카이브에서 답변을 찾으십시오.
- 항상 시작한 프로그래밍 작업을 완료하려고 노력하십시오. 구축 할 수없고 실행할 수 없으며 시스템 충돌이 발생합니까? 그곳에 되려고 모든 이유와 소스 코드가 있다면 일반적으로 시스템이 있음을 의미합니다. 잘 특히 온라인 조사의 도움으로 원하는 것을하도록 강요 할 수 있습니다. 물론이 규칙에는 한계가 있지만 너무 쉽게 포기하지 않는 것이 참으로 중요합니다.
- 실제 해커 커뮤니티에서 자신을 인정받은 후에 만 자신을 프로그래머 (또는 해커)라고 부릅니다.
- 처음에는 현재 아무도 매우 적극적으로 작업하지 않는 클래스, 모듈 또는 기타 단위를 선택하십시오. 같은 클래스 또는 직책에서 함께 일하려면 모든면에서 더 많은 기술과 관심이 필요합니다.
- 일부 해커 / 프로그래머의 고용주는 근무 시간 동안 기여를 허용 할만큼 충분히 동기를 부여한 것 같습니다 (일반적으로 해당 기관은 프로그래머가 개발중인 무료 / 오픈 소스 프로그램을 사용하기 때문에). 이런 식으로 최소한 필요한 시간을 얻을 수 있다고 생각하십시오.
- 여전히 자신에 대한 자신감이 충분하지 않다면 누락되어 처음부터 작성할 수 있다고 생각되는 코드의 일부에서 시작하십시오. 기존 코드에 대한 변경은 비판을받을 가능성이 훨씬 더 높습니다.
경고
- 커뮤니티 프로젝트에서 해커 상태는 과거보다 현재를 더 많이 반영합니다.프로젝트 리더의 추천이나 이와 유사한 것을 원하신다면, 여전히 적극적으로 기여하고 있는지 물어보십시오.
- 소규모 코드 최적화, 추가 주석, 코딩 스타일 개선 및 기타 유사한 "소규모"작업을 수행하지 마십시오. 이것은 심각한 기여보다 훨씬 더 많은 비판을 만날 수 있습니다. 대신 이러한 변경 사항을 단일 "정리"패치에 포함 할 수 있습니다.
- 개방형 소프트웨어 해커를 직접 만날 계획이라면 Windows 노트북을 집에 두십시오. Mac OS는 약간 더 관대하지만 실제로 환영받지 못합니다. 랩톱을 가져 오면 Linux 또는 "오픈 소프트웨어"로 간주되는 다른 운영 체제를 실행해야합니다.
- 이메일 클라이언트가 HTML 메시지를 지원하는 경우이 기능을 비활성화해야합니다. 상용 소프트웨어 (예 : Microsoft Word) 만 제대로 열 수있는 문서는 절대 첨부하지 마십시오. 해커들은 이것을 공격적이라고 생각합니다.
- 코드가 승인 된 오픈 소스 라이선스에 포함되지 않은 회사의 프로젝트에 자원하지 마십시오. 이러한 경우 프로젝트의 정말 중요한 부분이 소유자의 문을 닫아서 유용한 정보를 배우지 못하게 될 가능성이 있습니다.
- 프로그래밍 또는 프로그래밍 도구의 기본 사항에 대한 질문을 피하십시오. 개방형 소프트웨어 프로그래머의 시간은 소중합니다. 대신 아마추어 또는 초보 프로그래머 그룹에서 프로그래밍의 기본 사항에 대해 논의하십시오.
- 확립되고 매우 성공적인 프로젝트는 귀하의 작업을 결코 상환하지 않는 것에 대한 서면 또는 서면 정책을 가지고있을 수 있습니다 (돈 없음, 자신을 홍보 할 수있는 능력 없음, 기여 여부에 관계없이 높은 지위 없음 등-참조 : Do_not_expect_reward Wikipedia). 이에 동의 할 수 없다면 그러한 태도를 감당할 수없는보다 일반적인 프로젝트를 고수하십시오.
- 항상 자랑스러운 고독에서 보내고 싶지 않다면 자신의 프로젝트를 시작하지 마십시오. 같은 이유로, 이전 팀이 이미 잃어버린 이미 버려진 프로젝트를 되살리려는 시도를 시작하지 않는 것이 좋습니다.
- 코드를 제공하지 않은 프로젝트에 대한 비공식 회의의 경우 완전히 무시당하는 불쾌한 느낌을 받게됩니다. 걱정하지 마십시오. 일부 해커는 자신의 코드에 대한 존경심을 얻은 후에 나중에 좋은 친구가 될 수 있습니다.
- 대규모 오픈 소프트웨어 프로젝트, 특히 GNU 도메인 주변의 프로젝트는 업무를 개인 사업으로 취급하지 않습니다. 소프트웨어 관련 회사에서 일자리를 얻은 후에는 고용주에게 특정 계약서에 서명하도록 요청합니다 [1]. 회사가 서명하거나 서명하지 않을 것입니다. 이로 인해 요구 사항이 덜 엄격한 프로젝트를 선택해야 할 수 있습니다.
필수품
- 리눅스. 많은 오픈 소프트웨어 프로젝트는 Windows에서 빌드하기가 더 복잡하거나 전혀 제대로 빌드되지 않습니다. 이는 특히 휴대폰, USB 키 및 기타 장치 프로그래밍 전용 고급 프로젝트에 해당됩니다.
- 인터넷 연결이 비교적 좋은 컴퓨터. Windows에서 이중 부팅을 유지하려면 Linux 용 두 번째 하드 드라이브 또는 파티션이 좋은 솔루션이 될 수 있습니다.
- 적어도 하나의 프로그래밍 언어에 대한 기본 지식과 더 많은 것을 배우려는 강한 의도. 현재 가장 인기있는 언어는 C와 Java 인 것 같습니다.
- 상당한 시간, 적어도 일주일에 5 시간 (일반적인 하드 코어 프로그래머가 무려 14 시간을 기여 함).
- 공식적인 IT 교육은 당신의 길을 훨씬 더 쉽게 만들어 줄 것이지만 아니 필수 요구 사항이며 실제 해커 커뮤니티는 이에 대해 묻지 않습니다. 프로그래머 / 해커는 성적, 연령, 인종 또는 직위와 같은 가짜 기준이 아닌 다른 사람의 프로그래밍으로 서로를 판단합니다. 패치를 평가하는 오픈 소스 해커의 최소 60 %가 "올바른"대학 학위를 가지고 있으며 프로젝트에 말도 안되는 기여를 허용하지 않을 것입니다.
- 마지막 단계 (컨퍼런스 및 '설치 파티')에서 자신의 노트북을 활용할 수 있습니다. 그러나 집에서 작업하는 것은 좋지 않으므로 두 번째 기계를 구입할 수있는 경우에만 구입하십시오.
- 오픈 소스 소프트웨어 "해커"가되는 길은 완료하는 데 최소 2 년이 걸립니다.