ده توصیه برای برنامه‌نویسان جوان

من عاشق برنامه‌نویسی و لینوکس و منبع‌باز هستم. و خب وقتی به همه این‌ها علاقه‌مند باشی و هکری بزرگ مثل «اریک ریموند» از چیزی تعریف کرده باشد، نمی‌توانی در برابرش مقاومت کنی. توی گوگل پلاس دیدم که لینکی در مورد برنامه‌نویسی را به اشتراک گذاشته و تصمیم گرفتم ترجمه‌اش کنم.

Eric-Raymon-g-plus

اصل مطلب را می‌توانید این‌جا بخوانید و این هم ترجمه‌اش:


کد نوشتن درست شبیه جادوگری است. کلمات درست را به کار ببرید و وقایعی هیجان‌انگیز رخ خواهند داد، یا اتفاقاتی هولناک به وقوع خواهند پیوست.

تبدیل شدن به یک برنامه‌نویس بزرگ کار ساده‌ای نیست، به زمان احتیاج دارد. من در این‌جا ده توصیه برای برنامه‌نویسان تازه‌کار دارم که می تواند در طی کردن این مسیر به آن‌ها کمک کند.

۱- وقت بگذارید

تبدیل شدن به یک برنامه‌نویس خوب به سال‌ها زمان نیاز دارد، پس صبر داشته باشید. هر چقدر هم که باهوش باشید، نخستین پروژه‌های شما به یقین ضعیف خواهند بود. اگر هر روز کد می‌نویسید، ظرف پنج سال برنامه‌نویس قابل قبولی می‌شوید و پس از ده سال یک برنامه‌نویس خوب خواهید بود. و در نهایت پس از بیست سال ممکن است به شهرت و بزرگی برسید!

۲- کد بنویسید، کد بنویسید

افسانه‌ای وجود دارد که می‌گوید برخی «نابغه برنامه‌نویسی» زاده می‌شوند. بله، شما به استعداد احتیاج دارید اما بیش از آن محتاج تمرین کردن هستید. هر دقیقه از وقت آزادتان را صرف کدنویسی کنید. باید سال‌ها به تنهایی و با دیگران تمرین کنید. این کار شما را پولدار نمی‌کند، اما مهارت‌های شما را افزایش می‌دهد. کدنویسی همانند نواختن موسیقی است. یک آهنگ را صدها بار بنوازید و حتما هربار چیز تازه‌ای یاد می‌گیرید.

۳- توانایی‌های‌تان را گسترش دهید

 افراد با هم متفاوتند. پس نقاط قوت خودتان را پیدا کنید. هنر شما شاید حل مساله باشد یا آموزش به دیگران. یا حتی مثلا تمرکز عمیق و طولانی روی مفاهیم دشوار. بهترین نشانه برای دانستن این‌که در زمینه‌ای مهارت ویژه دارید این است که از انجام آن لذت می‌برید. به مرور زمان در سایر جنبه‌های کدنویسی نیز پیشرفت خواهید کرد.

۴- کار کردن با دیگران را یاد بگیرید

به تنهایی همیشه معمولی خواهید بود. زمانی می‌توانید بدرخشید که با دیگران کار کنید. یاد بگیرید که به دیگران اجازه دهید نقاط ضعف شما را پوشش دهند. به دنبال تیم‌هایی بگردید که به شما احتیاج دارند و همین‌طور تیم‌هایی که می‌توانند شما را به چالش بکشند. به پروژه‌های منبع‌باز بپیوندید و فرهنگ اپن‌سورس را یاد بگیرید. از دیگران و به ویژه از اشتباهات‌شان پند بگیرید.

group-programming

۵- از دانش استفاده کنید، نه از جادو

بیشتر صنعت نرم‌افزار در گمراهی به سر می‌برد. یاد بگیرید که موضوعات جادویی را بشناسید و از آن‌ها پرهیز کنید. جوهر دانش، حل مسایل واقعی با پاسخ‌هایی فراگیر و غیرقابل مقاومت است و البته [مستلزم] سعی و خطای بسیار شدید خواهد بود. به دنبال مد نروید. اولین مساله واقعا مهم بعدی را انتخاب کنید. یک راه‌حل مینیمال قابل‌استفاده برایش خلق کنید. آن را امتحان کنید و فقط اگر به نظر آمد که کار می‌کند، نگه‌اش دارید.

۶- به غرایزتان اعتماد کنید

ما برای کار کردن با دیگران از غرایز نسبتا خوبی برخورداریم. آموزش و کار این غرایز را در ما می‌کُشند. غالب اوقات به ما می‌آموزند که ناراحتی و درد را تحمل کنیم. اما شما یاد بگیرید که به غرایزتان اعتماد کنید. اگر کاری که می‌کنید غلط به نظر می‌رسد اصلاحش کنید. حتی اگر به یک دهه زمان نیاز داشت، بنویسیدش، درکش کنید و اصلاحش کنید.

۷- با هرچه که در اختیار دارید کار کنید

با مسایل، ابزارها و افرادی که در دسترس دارید کار کنید. تمرکزتان را روی این موضوع قرار دهید که کار را درست، مینیمال و ساده انجام دهید. منتظر نباشید تا فناوری‌های فردا از راه برسند. سعی نکنید آینده را اختراع کنید. هدف کارتان این باشد که راه‌حل‌های واقعی برای مسایل واقعی ایجاد کنید. آینده خودش، خودش را اختراع خواهد کرد.

۸- از انتقادها استقبال کنید

خودتان را فراموش کنید. این که کسی از کار شما انتقاد کند دردناک است. اما نادیده گرفته شدن از آن دردناک‌تر است. از دیگران بخواهید که شما را نقد کنند. کارهای‌تان را در معرض دید و استفاده عموم بگذارید و هر زمان توانستید، آن‌ها را منبع‌باز کنید. البته گه‌گاه با مریضی برخورد خواهید کرد که واقعا تلاش می‌کند شما را آزار دهد. مساله اصلا شخصی نیست. یاد بگیرید که نسبت به آن بی‌تفاوت باشید.

criticism

۹- هزینه‌های‌تان را پایین نگه دارید

کم‌هزینه بودن مهم است. یاد بگیرید که از لینوکس و یک کامپیوتر ارزان دست دوم استفاده کنید. استفاده از خط فرمان را یاد بگیرید. به زبان‌های کوچکی مانند C بچسبید و ترجیحا به سراغ زبان‌های عظیمی مانند ++‌C نروید. یاد گرفتن یک زبان بزرگ‌تر شما را برنامه‌نویس بهتری نمی‌کند!

۱۰- کارهای‌تان را منتشر کنید

کدهای‌تان را با اسم واقعی‌تان منتشر کنید. به عنوان یک مشارکت‌کننده در پروژه‌های منبع‌باز شرکت کنید. اگر شما را نخواستند، به دنبال پروژه‌هایی بگردید که شما را بخواهند! وجهه عمومی خوبی برای خودتان بسازید. به سراغ GitHub بروید. همه این‌ها در آینده رزومه شما را خواهند ساخت.


اگر این مطلب مورد پسندتان بود، بد نیست سری هم به مجموعه «پندهای یونیکسی استاد فو» بزنید.

کوان پانزدهم، استاد فو و طراح سخت‌افزار

چند روز قبل از طریق ایمیلی که میلاد زنگنه فرستاده بود، فهمیدم که یک کوان جدید به مجموعه پندهای یونیکسی استاد فو نوشته اریک ریموند اضافه شده.

LastKoan

گرچه خود ترجمه میلاد عزیز هم بسیار خوب بود، اما برای یک دست شدن این مطلب با سایر قسمت‌هایی که قبلا نوشته بودم، متن رو دوباره ترجمه کردم. ترجمه من از این کوان جدید را می‌توانید در این آدرس پیدا کنید.

Koan-Cover

همه این کوان‌ها هم مثل همیشه از منوی بالای صفحه در دسترس هستند. خواندن مقدمه این مجموعه مطالب هم بی‌فایده نخواهد بود. البته اگر حوصله و تم گیکی بیشتری دارید پیشنهاد می‌کنم به پادکست شماره ۳۲ رادیو گیک که جادی تهیه کرده و در آن ۱۰ کوان اول (که تا آن موقع ترجمه شده بودند) را خوانده گوش کنید.

ما می‏‌توانیم به تنهایی کافی نیست

هیلاری کلینتون، ساب‏‌سون و باقی قضایا

این مطلب را ابتدا برای وبلاگ اهالی شبکه نوشتم اما بد ندیدم آن را اینجا هم عنوان کنم:

چندی پیش وبلاگ یکی از خارج‏‌نشینان، به تحلیل خبری از رجانیوز پرداخته بود. پیشنهاد می‏‌کنم قبل از ادامه این مطلب خبر را از منبع اصلی تا انتها و با دقت مطالعه کنید. در این نوشته من بدون هیچ جهت‏‌گیری سیاسی و بدون توجه به مسایلی مانند تروریسم سایبری و یا روابط ایران و آمریکا، تنها از متن خبر و تصاویر مربوط به آن چند برداشت ساده دارم که بیشتر از هرچیز به عمل هک و به‌‏ویژه این هک خاص مربوط است.

1- با توجه به این عکس، هکر محترم در واقع یک سایت مبتنی بر وردپرس (درست مانند همین وبلاگ) را هک کرده‏‌اند که به هر حال به لحاظ امنیت چندان قدرتمند نیست. در چنین سایت‏‌هایی از Honey Pot و Intrusion Detection و غیره خبری نیست. بنابراین تنها زحمت هکر استفاده از روش‏های Brute Force و حتی از دید من ابزارهای متداولی مانند Sub7even های معروف خواهد بود.

2- صرف برپا شدن این سایت بر مبنای وردپرس، این امر را نشان می‌‏دهد که این سایت به هیچ‏وجه نمی‏‌تواند سایت رسمی یک مقام مسئول آن هم در کشوری نظیر آمریکا باشد. در بهترین حالت هکر محترم وبلاگ غیررسمی هیلاری کلینتون را هک کرده که شاید حتی توسط خود خانم کلینتون هم نوشته نمی‏‌شده است.

3- به تصویری که برای Deface کردن سایت استفاده شده نگاه کنید. مملو از غلط‏‌های نگارشی و دستوری انگلیسی است. آیا هکر محترم می‏‌توانند توضیح دهند “Will Help to Advance Our” به چه معنی است؟ آیا “Available From Crime” یعنی دست از جنایت بردارید؟ من به این هکر محترم پیشنهاد می‏‌کنم حتی اگر نفس عمل هک را اخلاقی می‏‌دانند برای انتقال پیام خود با مشورت دوستان از عباراتی استفاده کنند که حداقل خود هیلاری کلینتون منظور ایشان را درک کند.

4- همان‌طور که در عنوان پست اشاره کرده‌‏ام من می‏‌توانم به تنهایی کافی نیست. من می‌‏توانم بلایی بر سر یک مرسدس بنز آخرین مدل بیاورم که دیگر تا ابد قابل استفاده نباشد. اما این به هیچ‌‏وجه مهارت من در مکانیک، اتومبیل‏‌سازی یا هیچ دانش دیگری را نشان نمی‏‌دهد. با تمام وجود از هکر محترم، همفکرانش و حتی تمام دوستان و همکاران عزیز خواهش می‏‌کنم حداقل یک بار متن مقاله ارزشمند اریک ریموند با نام چگونه یک هکر بشویم یا ترجمه به نسبت مناسب آن در سایت تکنوتاکس (بخش اول و بخش دوم)  را مطالعه کنند. من هکر شدن با چنین توصیفی را ستایش خواهم کرد.