دروسی که در زندگی به عنوان یک برنامه نویس آموختم

ترجمه و تالیف : علیرضا داداشی
تاریخ انتشار : 21 آذر 98
خواندن در 5 دقیقه
دسته بندی ها : برنامه نویسی

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

دروسی که در زندگی به عنوان یک برنامه نویس آموختم

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

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

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

ظرافت در ساختار، نظم و بی نظمی

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

مهم نیست که چه پیش زمینه‌ای دارید: هنرهای لیبرال، STEM، تاریخ و غیره. وقتی برنامه ریزی می‌کنید، به نوعی تمام مهارت‌های گذشته شما به یکدیگر پیوند می‌خورند. 

شما یاد می‌گیرید تا از هرج و مرج و نظم‌هایی که برای ایجاد راه حل‌ها به وجود می‌آیند قدردانی کنید.

ذهن باز و تامل کردن

برنامه نویسی یک فرآیند است. در این فرآیند، تجدید نظر به شکلی دائمی وجود دارد. یکی از اولین چیزهایی که من هنگام برنامه نویسی یاد گرفتم این است که " کد شما خوب نیست. بو می‌دهد و به درد بخور نیست."

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

آن‌ها لحظه‌های پذیرش واقعی هستند. آن‌ها لحظه‌های اعتماد کردن هستند.

قابلیت فقط ابتدای کار است

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

پیاده کردن یک قابلیت کاربردی، تنها آغاز کار است.

پایداری و ثبات یک هدیه است نه یک مقصد

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

این مسئله تنها در مورد برنامه نویسی نیست. شما دست از جستجو کردن در زمینه‌های مختلف دست نمی‌کشید.

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

هنر یادگیری، هنر نحوه یادگیری

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

مسیر هر شخص متفاوت است. به همین دلیل است که برنامه نویسی یک تمرین برای کمک به شما در بدست آوردن روش درست یادگیری است.

منشاء تفکر خلاق

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

شما از مشکلات و سختی‌هایی که شما را قادر می‌سازد مسیر تفکر را طی کنید قدردانی خواهید کرد.

فرآیند حل مسئله

برنامه نویسی ذاتاً یک فرآیند حل مسئله است. گاهی اوقات راهی برای حل مشکل وجود ندارد اما این روند کار است که اهمیت دارد. شما کارهایتان را با چیزهایی که باید پیاده سازی شوند شروع می‌کنید. شما پیاده سازی می‌کنید، سپس آن را از نو می‌سازید و وقتی کارتان به اتمام رسید، آزمایشش می‌کنید.

فرآیند حل همه مشکلات شما بسیار واضح و روشن است. شما فقط باید آن را دنبال کنید.

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

هنر چگونه فکر کردن

استیو جابز گفته است که برنامه نویسی، روش فکر کردن را به شما یاد می‌دهد. این گفته کاملاً درست است. برنامه نویسی شامل پرسیدن سوال، ایجاد راه حل، تلاش، شکست و تلاشی دوباره برای رسیدن به نتیجه‌ای زیبا و منظم است. نوع روند پرسش و سوالاتی که در طی مسیر می‌پرسید، نشان دهنده روش فکر کردن شما نسبت به اشیاء، کارکردها، ذخیر سازی و سایر موارد دیگر است.

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

به نظر می‌رسد که شما یک نقاشی خلق کرده‌اید. نقاشی بازتابی از افکار شماست. برنامه‌ای که درست می‌کنید نیز این چنین است.

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

منبع

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است