개방형 소프트웨어의 프로그래머되기

작가: Morris Wright
창조 날짜: 24 4 월 2021
업데이트 날짜: 1 칠월 2024
Anonim
1 4 개방형OS의 이해 part1
동영상: 1 4 개방형OS의 이해 part1

콘텐츠

오픈 소프트웨어를 작성하고 사용하는 것은 단순한 프로그래밍 (프로그래머 세계에서 "해킹"이라고도 함)의 한 형태가 아니라 일종의 철학입니다. 코딩 할 수있는 프로그래밍 언어 만 알면되지만,이 문서는 커뮤니티에 가입하고, 친구를 사귀고, 훌륭한 프로젝트를 공동으로 작업하고, 다른 곳에서는 얻을 수없는 프로필로 존경받는 전문가가되는 방법에 대해 설명합니다. 오픈 소프트웨어의 세계에서는 엘리트, 최상위 프로그래머 만이 회사에서 할 수있는 작업을 아주 쉽게 할당 할 수 있습니다. 이것이 얼마나 많은 경험을 가져다 줄 수 있는지 생각해보십시오. 그러나 개방형 소프트웨어 프로그래머가되기로 결정한 후에는이 목표에 시간을 투자 할 의향이 있어야합니다. 이는 이미 IT 학생 인 경우에도 적용됩니다. 이 기사는 해커 나 크래커가되는 방법에 관한 것이 아닙니다.

단계로

  1. 좋은 Unix 배포판을 다운로드하십시오. GNU / Linux는 프로그래밍에 가장 많이 사용되는 프로그램 중 하나이지만 GNU Hurd, BSD, Solaris 및 (일부) Mac OS X도 일반적으로 사용됩니다.
  2. 명령 줄 사용 방법을 알아 봅니다. 명령 줄을 사용하면 Unix와 유사한 운영 체제로 더 많은 작업을 수행 할 수 있습니다.
  3. 다소 만족스러운 수준에 도달 할 때까지 인기있는 프로그래밍 언어를 배우십시오. 그렇지 않으면 오픈 소프트웨어 커뮤니티에 코드 (소프트웨어 프로젝트에서 가장 중요한 부분)를 제공 할 수 없습니다. 일부 소스는 한 번에 두 가지 언어로 시작하는 것을 제안합니다 : 하나의 시스템 언어 (C, Java 또는 유사)와 스크립팅 언어 (Python, Ruby, Perl 또는 유사).
  4. 생산성을 높이려면 NetBeans 또는 유사한 통합 개발 환경이 필요합니다.
  5. vi 또는 Emacs와 같은 고급 편집기 사용 방법을 배웁니다. 그들은 더 높은 학습 곡선을 가지고 있지만 더 많은 것을 할 수 있습니다.
  6. 버전 관리에 대해 알아 봅니다. 버전 제어는 아마도 공유 소프트웨어 개발을위한 가장 중요한 협업 도구 일 것입니다. 패치를 만들고 적용하는 방법을 이해합니다. 커뮤니티의 대부분의 개방형 소프트웨어 개발은 ​​다양한 패치의 생성, 토론 및 적용을 통해 이루어집니다.
  7. 경험을 얻기 위해 쉽게 참여할 수있는 적합한 소규모 개방형 소프트웨어 프로젝트를 찾으십시오. 요즘 대부분의 프로젝트는 SourceForge.net에서 찾을 수 있습니다. 적합한 프로젝트에는 다음이 포함되어야합니다.
    1. 알고있는 프로그래밍 언어를 사용하십시오.
    2. 최근 릴리스로 활동하십시오.
    3. 이미 3 ~ 5 명의 개발자로 구성되어 있습니다.
    4. 버전 제어를 사용합니다.
    5. 기존 코드를 너무 많이 변경하지 않고도 바로 시작할 수있는 부분이 있습니다.
    6. 코드 외에도 좋은 프로젝트에는 활발한 토론 목록, 버그 보고서, 개선 요청 가져 오기 및 구현 및 유사한 활동이 있습니다.
  8. 선택한 프로젝트의 관리자에게 문의하십시오. 개발자가 적은 소규모 프로젝트에서는 일반적으로 귀하의 도움이 즉시 수락됩니다.
  9. 프로젝트의 규칙을주의 깊게 읽고 어느 정도 따르십시오. 프로그래밍 스타일의 규칙이나 별도의 텍스트 파일에 변경 사항을 문서화해야하는 필요성은 처음에는 우스꽝스러워 보일 수 있습니다. 그러나 이러한 규칙의 목적은 공유 작업을 활성화하는 것이며 대부분의 프로젝트는이를 사용합니다.
  10. 이 프로젝트를 몇 달 동안 진행하십시오. 관리자와 다른 프로젝트 구성원의 의견을주의 깊게 들어보십시오. 프로그래밍 외에도 배워야 할 것이 많습니다. 하지만 정말 마음에 들지 않는 것이 있다면 멈추고 다른 프로젝트로 전환하십시오.
  11. 너무 오래 지하 프로젝트에 갇히지 마십시오. 해당 팀에서 성공적으로 작업 할 수 있다는 것을 알게되면 더 진지한 것을 찾을 때입니다.
  12. 진지하고 높은 수준의 오픈 소프트웨어 또는 오픈 소스 프로젝트를 찾으십시오. 대부분의 프로젝트는 GNU 또는 Apache 조직이 소유합니다.
  13. 우리는 여기서 진지하게 도약하고 있기 때문에 훨씬 덜 따뜻한 환영을 고려해야합니다. 처음으로 코드 저장소에 대한 직접 쓰기 액세스없이 실행하라는 요청을받을 가능성이 높습니다. 그러나 이전의 지하 프로젝트에서 많은 것을 배웠어야했기 때문에 생산적인 기여를 한 후 몇 달 후에는 자신이 가져야한다고 생각하는 권리를 주장 할 수 있습니다.
  14. 심각한 작업을 수행하고 해결하십시오. 때가됐다. 두려워 하지마. 작업이 처음에 생각했던 것보다 훨씬 더 어렵다는 것을 알았더라도 계속하십시오.이 단계에서는 포기하지 않는 것이 중요합니다.
  15. 가능하다면 Google의 "Summer of Code"에 지원하여이 모험에 돈을 투자하세요. 그러나 정말 좋은 프로그래머보다 훨씬 적은 자금을 지원하는 자리를 가지고 있기 때문에 신청서가 승인되지 않더라도 걱정하지 마십시오.
  16. 근처에서 열리는 적절한 회의 ( "Linux의 날"또는 이와 유사한 것)를 찾아 그곳에서 프로젝트를 발표 해보십시오 (전체 프로젝트, 프로그래밍 한 부분뿐만 아니라). 귀하가 심각한 무료 / 오픈 소스 프로젝트를 대표한다고 언급 한 후, 주최자는 종종 귀하를 컨퍼런스 비용에서 배상 할 것입니다 (그렇지 않다면 컨퍼런스는 어쨌든 부적합 할 것입니다). Linux 노트북 (있는 경우)을 가져와 데모를 실행하십시오. 프레젠테이션이나 포스터를 준비하는 데 사용할 수있는 자료에 대해 프로젝트 관리자에게 문의하십시오.
  17. 인터넷에서 근처의 설치 이벤트에 대한 공지 사항을 검색하고 먼저 사용자로 참여해보십시오 (발생하는 모든 문제와 해커가 해결 방법을 기록). 다음에 프로그램 설치를 제안하십시오.
  18. 작업을 완료하고 자동 테스트로 작업을 확인하고 프로젝트에 기여하세요. 완료되었습니다! 확실히 프로젝트에 참여한 프로그래머를 직접 만나서 결과에 따라 맥주 한 잔을 함께 올리십시오.
  19. 더 나은 이해를 위해 개방형 소프트웨어 프로젝트의 개발 이력에 대한 실제 예를보십시오 (위 참조). 각 상승 곡선은 단일 개발자의 기여도 (코드 라인)를 나타냅니다. 개발자는 나이가 들어감에 따라 덜 활동적이되는 경향이 있지만 새로운 사람들이 합류하더라도 프로젝트 속도는 종종 빨라집니다. 따라서 주머니에 유용한 기술을 가지고 도착하면 팀이 당신을 초 대해서는 안되는 이유가 없습니다.

  • 프로젝트 내의 실제 요구 사항에 대해 질문하기 전에 프로젝트 문서 및 메일 링리스트 아카이브에서 답변을 찾으십시오.
  • 항상 시작한 프로그래밍 작업을 완료하려고 노력하십시오. 구축 할 수없고 실행할 수 없으며 시스템 충돌이 발생합니까? 그곳에 되려고 모든 이유와 소스 코드가 있다면 일반적으로 시스템이 있음을 의미합니다. 특히 온라인 조사의 도움으로 원하는 것을하도록 강요 할 수 있습니다. 물론이 규칙에는 한계가 있지만 너무 쉽게 포기하지 않는 것이 참으로 중요합니다.
  • 실제 해커 커뮤니티에서 자신을 인정받은 후에 만 ​​자신을 프로그래머 (또는 해커)라고 부릅니다.
  • 처음에는 현재 아무도 매우 적극적으로 작업하지 않는 클래스, 모듈 또는 기타 단위를 선택하십시오. 같은 클래스 또는 직책에서 함께 일하려면 모든면에서 더 많은 기술과 관심이 필요합니다.
  • 일부 해커 / 프로그래머의 고용주는 근무 시간 동안 기여를 허용 할만큼 충분히 동기를 부여한 것 같습니다 (일반적으로 해당 기관은 프로그래머가 개발중인 무료 / 오픈 소스 프로그램을 사용하기 때문에). 이런 식으로 최소한 필요한 시간을 얻을 수 있다고 생각하십시오.
  • 여전히 자신에 대한 자신감이 충분하지 않다면 누락되어 처음부터 작성할 수 있다고 생각되는 코드의 일부에서 시작하십시오. 기존 코드에 대한 변경은 비판을받을 가능성이 훨씬 더 높습니다.

경고

  • 커뮤니티 프로젝트에서 해커 상태는 과거보다 현재를 더 많이 반영합니다.프로젝트 리더의 추천이나 이와 유사한 것을 원하신다면, 여전히 적극적으로 기여하고 있는지 물어보십시오.
  • 소규모 코드 최적화, 추가 주석, 코딩 스타일 개선 및 기타 유사한 "소규모"작업을 수행하지 마십시오. 이것은 심각한 기여보다 훨씬 더 많은 비판을 만날 수 있습니다. 대신 이러한 변경 사항을 단일 "정리"패치에 포함 할 수 있습니다.
  • 개방형 소프트웨어 해커를 직접 만날 계획이라면 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 년이 걸립니다.