طی چند روز گذشته ، می خواستم متن کوچکی درباره تجربه منبع باز خود تاکنون بنویسم. 15 مارس پانزدهمین سالگرد روزی بود که من برای اولین بار یک قطعه کد را با مخاطبان نامحدود به اشتراک گذاشتم. فکر کردم ممکن است زمان خوبی برای تأمل در کارهایی باشد که انجام داده ام ، چیزهایی که یاد گرفته ام ، کارهایی که اکنون متفاوت انجام خواهم داد و کارهایی که قصد دارم در آینده انجام دهم.
اگر من را بشناسید ، می دانید که من معمولاً با تهیه مقالات جامع درمورد موضوعاتی که به آنها اهمیت می دهم یا فقط مواردی که من علاقه مند هستم ، مبارزه نکنید. با این حال ، در اینجا ، من در تلاش برای یافتن کلمات برای داستانی هستم که می خواستم بگویم ، حتی اگر از FOSS هیجان زده هستم ، به شدت درگیر چندین پروژه بزرگ منبع باز هستم و به جامعه FOSS بسیار اهمیت می دهم.
با کمی تأمل بیشتر ، فهمیدم که دیدگاه من در مورد نرم افزارهای منبع باز ، جوامع FOSS و هدایت چنین پروژه هایی طی چند سال گذشته به شدت تغییر کرده است و من با کشیدن یک تصویر واضح از گذشته یا آینده احتمالی دست و پنجه نرم می کنم.
FOSS به عنوان یک تجربه یادگیری؟
در تمام سال 2004 ، انگیزه اصلی من این بود که درباره سبک برنامه نویسی خود نظر بدهم ، امیدوارم بتوانم مهارت های خود را بر اساس آن بازخورد بهبود دهم. من بحث های زیادی را با افرادی دیده ام که تازه وارد مهندسی نرم افزار شده اند ، جایی که به آنها گفته می شود که باید فقط یک حساب GitHub باز کنند و تمام کارهای رمزگذاری اولیه خود را در آنجا به اشتراک بگذارند تا افراد تصادفی بتوانند نگاهی بیندازند و بازخورد خود را ارائه دهند. من حتی چند بار این پیشنهاد را به خودم دادم.
و بنابراین ، اولین تلاش من یک پروژه واقعی FOSS نبود ، زیرا در آن زمان مجوز نداشتم. هنوز ، من منبع را منتشر کردم ، بنابراین مطمئناً این نرم افزار Open Source بود. من آن را با چند نفر غریبه در QuakeNet به اشتراک گذاشتم ، با پیامی که جمله ای شبیه این را می گفت: "به این VBScript عالی که من انجام داده ام نگاه کنید! بازخوردی دارید؟ ".
با توجه به عقاید ، من احتمالاً خوش شانس شدم که مردم بلافاصله شروع به خندیدن به من نکردند ، اتفاقی که می تواند در اینترنت خیلی سریع بیفتد ، زیرا کاملاً انگیزه آور خواهد بود. و گرچه هیچ خنده ای نگرفتم ، و همچنین هیچ بازخورد سازنده ای دریافت نکردم ، تنها چیزی که دریافت کردم این بود که "اوه ، عالی است".
سریع به امروز: من در یک منبع باز استخدام شده ام شرکت و بسیاری از کارهای FOSS را در اوقات فراغت من انجام دهید. سعی می کنم اگر می توانم نتیجه کار مفید خود و همچنین پروژه های جانبی را به صورت آشکار در دسترس قرار دهم. می توان گفت که من "تجربه منبع آزاد" زیادی کسب کرده ام.
با نگاهی به جنبه "یادگیری با انجام FOSS" ، به یاد نمی آورم که هرگز فقط بازخورد واقعی درباره هر کار خود داشته باشم چون تصمیم گرفتم منبع را منتشر کنم. در حالی که طی چند سال اخیر چیزهای زیادی آموخته ام ، اما این کار را با دریافت بازخورد از افراد خاصی انجام دادم که صریحاً از آنها خواستم کد من را مرور کنند ، من هرگز بازخورد پروژه های منبع باز را از افرادی که فقط با این کار متوقف شده اند دریافت نکرده ام. و تصمیم گرفتم درباره کد من نظر بدهم .
این روزها ، وقتی مردم از من در مورد بهترین راه برای گرفتن بازخورد درباره کد خود می پرسند ، من دیگر با "انداختن آن روی GitHub" پاسخ نمی دهم. درعوض ، احساس می کنم به آنها پیشنهاد می کنم با افرادی همکاری کنند که شخصاً می دانند توصیه بسیار بهتر است. کار با افراد از قبل آشنا قسمتهای ترسناک به اشتراک گذاری پروژه های شما را از بین می برد و می توانید افرادی را که به آنها اعتماد دارید انتخاب کنید و می خواهید از آنها بازخورد بگیرید.
همکاری با دیگران؟
مردم خیلی وقت ها پروژه های خصوصی خود را می گردانند وارد FOSS شوید با این امید که افراد دیگر سرانجام آنها را کشف کنند ، کد را مفید یا جالب بدانند و مشارکت کنند. این ایده جذاب است: پروژه های منبع باز با یک پایگاه مشارکت کننده سالم می توانند به بیش از آنچه هر کس می توانست برساند ، دست یابد ، هم از نظر قدرت مهندسی خالص ، و هم از طریق ارائه ایده ها و مسیرهای جدید.
بیشتر پروژه های من در GitHub دارای صفر ستاره ، تماشاگر صفر و دنبال کننده صفر هستند. من این نکته را برجسته می کنم تا این نکته را یادآوری کنم که اگر کد خود را به عموم مردم هدایت می کنید ، احتمالاً هیچ کس اهمیتی نمی دهد . در بیشتر پروژه های موجود ، هیچ کس هرگز به آن فکر نخواهد کرد "اوه باحال ، این کد همان کاری را می کند که من می خواهم ، بیایید از آن استفاده کنیم" ، یا "اوه ، من تعجب می کنم که آنها چگونه XYZ را پیاده سازی کرده اند ، بیایید بررسی کنیم ، شاید بتوانم یاد بگیرم از کار آنها "، یا حتی شروع به مشارکت می کنند. در حقیقت ، پروژه های زیادی وجود دارد و قابلیت کشف برای یک مخزن واحد بسیار کم است. گرچه همیشه این امکان وجود دارد که فردی به طور تصادفی پروژه شما را کشف کند ، اما برای پروژه متوسط شما بسیار بعید است.
همکاری با دیگران سرگرم کننده است و یک روش عالی برای ارتقا مهارت های شماست. نه تنها بررسی کد (هم دریافت نظر از دیگران و هم مرور کد دیگران) مهارت های رمزگذاری شما را تقویت می کند ، همکاری همچنین مهارت های ارتباطی و مدیریت پروژه را به طور قابل توجهی بهبود می بخشد. من فکر می کنم شما واقعاً باید با دیگران همکاری کنید ، اما برای رسیدن به این هدف نیازی به کار روی پروژه های FOSS نیست. در عوض ، می توانید از برخی دوستان بپرسید که آیا می خواهند با هم روی یک پروژه کار کنند. ممکن است چنین کاری آسان تر باشد ، زیرا افراد دیگری را که می خواهید با آنها کار کنید می شناسید.
اشتراک دانش و اطلاعات؟
یکی دیگر از دلایل مورد علاقه مردم برای ارسال کد خود به مردم ، فکر اشتراک دانش و اطلاعات با جهان.
به نظر من ، نرم افزارهایی وجود دارند که کاملاً باید در فضای باز تهیه شوند و کدهای آنها باید برای خواندن ، اشتراک گذاری و اصلاح برای همه در دسترس باشد. من در مورد برنامه هایی مانند مرورگر وب شما فکر می کنم ، که فقط یک دروازه به وب باز است و به شما امکان می دهد تمام اطلاعات مورد نظر خود را بازیابی کنید. یا برنامه شبکه اجتماعی شما ، موضوعی کاملاً شخصی که با بسیاری از اطلاعات حساس سروکار دارد. من همچنین معتقدم که نرم افزار تهیه شده توسط یا برای سازمانهای عمومی و دولتها باید تحت مجوزهای FOSS منتشر شود زیرا این موارد از طریق مردم تأمین می شوند ، برای عموم تولید می شوند و می توانند تأثیر قابل توجهی بر مردم داشته باشند.
با این حال ، احتمالاً چیزی نیست که اکثر مردم روی آن کار می کنند. چندین پروژه یادگیری وب سایت های شخصی ، ابزارهای کوچکی است که مردم برای افزایش بهره وری خود استفاده می کنند یا یک بازی کوچک. این پروژه ها گرچه جالب و جالب هستند ، اما احتمالاً به کسی غیر از سازندگان آنها خدمت نمی کنند و من شخصاً فکر نمی کنم آنها از توسعه در فضای باز سود ببرند.
"اما انتشار کد شما هیچ ضرری ندارد!" [19659005] با تمام آنچه گفته شد ، هنوز هم می توان ادعا کرد که این نکات واقعاً اهمیتی ندارند و به هر حال باید در فضای باز کار کرد زیرا انجام این کار هیچ ضرری ندارد. با این کار ، من باید مخالف باشم.
وقتی اولین پروژه خود را وارد اینترنت وحشی کردم ، احساس شادی تحت الشعاع اضطراب قرار گرفت. بیایید بپذیریم که ، وقتی تازه وارد برنامه نویسی شدید ، به خود اعتماد به نفس صفر دارید ، فکر می کنید که دیگران بسیار برتر هستند و می ترسید که دیگران به کد شما بخندند زیرا "اشتباهات احمقانه مبتدی" را انجام داده اید . جهنم ترسناک است.
کار و یادگیری در فضای باز نکات مثبت زیادی دارد ، اما جنبه های منفی هم دارد. همکاری با افرادی که نمی شناسید کار سختی است. بسیار آسان است که کسی را سوerstand تفاهم کرده و در نهایت بر سر یک سو mis تفاهم جنگ کنید. این مسائل ارتباطی تمام وقت حتی با افراد باتجربه اتفاق می افتد و آنها همیشه در نهایت وقت و انرژی زیادی را می خورند.
وقتی کار شما علنی باشد ، دیر یا زود می دوید در شرایطی که افراد دیگر شروع به استفاده از پروژه شما می کنند. این می تواند یک تجربه غنی سازی باشد ، اما این احساس نیز وجود دارد که دیگران به پروژه و کار شما اعتماد می کنند. مهم نیست که چقدر شرح پروژه خود را واضح بنویسید ، و چند یادداشت اضافه کنید در مورد اینکه این فقط پروژه شخصی شما است و اینکه شما قصد ندارید در مواردی که روی شما تأثیر نمی گذارد کار کنید ، افراد گزارش اشکالات و درخواست ویژگی ها را در برخی موارد شروع می کنند نقطه. در حالی که اکثر مردم دوستانه هستند ، بعضی از آدمها از اینکه شما بلافاصله به موضوع مهم که آنها گزارش داده اند پرداخته اید ، از شما عصبانی خواهند شد و این افراد ممکن است گاهی اوقات کاملاً سو ab استفاده کنند. متأسفانه هیچ راهی وجود ندارد.
ارائه پروژه های خود در آنجا می تواند پاداش آور و سرگرم کننده باشد. همچنین این احتمال وجود دارد که هیچ کس هرگز کار شما را کشف نکند ، اما این احتمال وجود دارد که روزی در موقعیتی قرار بگیرید که مردم از شما یا پروژه های شما انتظار داشته باشند و کنار آمدن با این انتظارات بسیار بسیار ناخوشایند است.
در پایان
احساس می كنم كه نكته ام را از طریق نوشتن این مطلب از دست داده ام. احتمالاً به این دلیل است که دارم.
همانطور که در ابتدا اشاره کردم ، در ابتدا قصد داشتم خلاصه ای شاد و خوب از ماجراجویی منبع باز را که تاکنون داشتم بنویسم. با جمع آوری ایده ها و تهیه پیش نویس یادداشت ها در مورد مطالب این پست ، متوجه شدم که نمی توانم این کار را انجام دهم. من بسیاری از جنبه های تاریک پروژه های منبع آزاد و آزاد را دیده ام که فقط می توانم پیش بروم و آنها را نادیده بگیرم.
این کمی به نظر می رسد که می خواهم مردم را از کار FOSS بترسانم ، اما این مطلقا مورد. من کار بر روی نرم افزارهای منبع آزاد را متوقف نخواهم کرد و هرگز شخصی را که واقعاً احساس می کند پروژه اش باید عمومی باشد از انجام این کار منصرف نمی کنم. اما یک بار دیگر ، این باعث شد که من بفهمم به خصوص برای افرادی که تازه وارد دنیای مهندسی نرم افزار ما می شوند ، کار در فضای باز می تواند آسیب زیادی وارد کند ، شاید منجر به ترک آنها شود و دیگر برنگردند.
کار در فضای باز می تواند باشد سرگرم کننده ، می تواند پاداش آور باشد ، و می تواند یک تجربه یادگیری عالی باشد. اما همچنین می تواند بسیار ناامید کننده ، طلبکارانه و سو ab استفاده کننده باشد. و این بیانیه عالی برای پایان دادن به این مجموعه رامبلینگ است.