
خیلی دوست داشتم برگردم به سه سال پیش.به روزهایی که تازه وارد دانشگاه شده بودم و فکر میکردم برنامهنویسی یعنی حفظ کردن کدها.همان روزهایی که ویدیوی استاد را برای بار دهم میدیدم چون فکر میکردم یک برنامهنویس حرفهای باید همه چیز را از حفظ باشد.روزهایی که نصف شب در یوتیوب دنبال ویدیو اموزش میگشتم و با لهجههای میشنیدم:
"Welcome to my channel..."😁
و با خودم فکر میکردم این بار دیگر قرار است همه چیز را یاد بگیرم.اما عجیبترین قسمت ماجرا این بود که هر چه بیشتر ویدیو میدیدم بیشتر احساس میکردم چیزی بلد نیستم.امروز که به ان روزها نگاه میکنم میفهمم مشکل من کمبود دانش نبود.مشکل این بود که مهارتهای واقعی برنامهنویسی را نمیشناختم.
خیلی از ماها درسنین جوانی اینو تجربه کردیم که ناامید میشویم از ادامه دادن و خیلی سردرگم و گیج هستیم که ایا مسیری که دارم ادامه میدهم درست هست یا نه؟! ایا من ادم این مسیرم؟ من خودم به شخصه خیلی از دوستانم در دانشگاه میددم که از پله -100 برنامه نویسی را شروع کردن و الان در شرکت های خیلی خفن در حال کارکردن هستن !
اتفاقا همین دسته افراد ادم هایی بودن که به خودشون ومسیرشون شک داشتن و نقطه ای در زندگیشون داشتن به نام نقطه عطف :) لحظه ای در زندگیشون بود که گم کرده بودن خودشون را و از ادامه دادن میترسیدن شایدم بیشتر از درجازدن میترسیدن.انیوی اما همین افراد بعد از گذشت اون نقطه عطف زندگیشون به مرحله ای رسیدن که شاید بهتر بگویم به پله 100 که نه 10000 ام!
راستش و بخواید این افراد نه روتین ادمای موفق داشتن😅نه مدیتیشن میکردن نه غذای سالم میخوردن نه هیچی...اما مهارت هایی را داشتن که برای یک برنامه نویس موفق نیاز بود.
در ادامه مهارت های موفق تک تک این افراد را بیان میکنم:
یکی از نکاتی که من میخواهم با شما در میون بزارم اینکه شما نیازی نیست کد هارا حفظ بکنید و همچنین درواقع میتوانید شروع به نوشتن کد بکنید حتی زمانی که هنوز همه چیز را نمیدانید! درواقع بهتر است بگویم برای مبتدیان این واقعا مهم هست که از این واقعیت اگاه باشید که اشکالی ندارد همه چیز را ندانیم و همیشه بتوانیم در گوگل سرچ بکنیم وقتی هیچی را نمی دانیم .
مثلا تصور کنید شما میخواهید درمورد این سرچ بکنید که چجوری یک متن را در مرکز (crnter ) ببرید و خب به یاد ندارید که به چه شکل میشود اینکار را انجام داد! گام اول اینکه وارد گوگل میشوید و خب سرچ میکنید :css how to center anchor element (دقت کنید که باید خیلی خوب سرچ بکنید و جکلات مناسبی را بنویسید)

از مابین سایت هایی که اورده شد دنبال stack overflow بگردید این سایت جایی هست که میلیون ها کاربر چندین پست ارسال کرده اند درواقع میلیون ها میلیون سوال درمورد انواع برنامه نویسی کرده اند.
برای شروع W3Schools بد نیست، اما وقتی جلوتر رفتم فهمیدم مستندات اصلی مثل MDN خیلی بیشتر کمکم میکند.
سایت css tricks هم وجود دارد که بسیار سایت خوبی هست.
حتی ممکن به سایت developer.mozilla بربخورید که درواقع مستندات MDN هست که در ادامه اون را برسی میکنیم.

مهارت بعدی خیلی مهمی که باید یاد بگیرید در خصوص دیباگ (debug) کردن هست . ببینید ما یک دانشجو داشتیم که از رشته تجربی هم اومده بود کامپیوتر این بنی بشر جوری با سرعت مشکل کدهاش را از طریق debug میفهمید و حلشون میکرد که انگار سرعتش از فیبرنوری هم بیشتر بود😁
درواقع من همون دانشجویی بودم که وقتی میخوردم به یک مشکل کاسه غم میگرفتم و میگفتم من خیلی خنگم چرا یادم نمیمونه کدهارا ؟ چرا من اینقدر خنگم؟! اما همون دانشجو با اینکه حافظش اندازه یک ماهی 7 ثانیه ای بود اما مهارت دیباگ کردن و سرچ کردن را خیلی خوب بلد بود.
پس بدونید هیچ برنامه نویس خفنی نیست که در طول روزش هزاران بار دیباگ بکند تا بتواند متوجه بشود مشکل کدش کجاست.همین بنی بشری که ذکر خیرش را کردم جوری دیباگ میکرد و میفهمید بعد سریع داخا گوگل سرچ میکرد و خیلی خیلی سریع تر از منی که 1 هفته کامل روی اون مشکل مونده بودم در یک صدم ثانیه مشکل را میفهیمد و حلش میکرد.
یکی از اشتباهات بزرگی که در دانشگاه میکردم این بود که سوال نمیپرسیدم.فکر میکردم اگر سوال بپرسم یعنی ضعیفم و حتی همکلاسی هایم من را مسخره میکنن :)فکر میکردم همه فهمیدهاند و فقط من نفهمیدهام.بعد از مدتی متوجه شدم دقیقااااا برعکس است.قویترین دانشجوهای کلاس معمولاا بیشترین سوالها را میپرسیدند.انها از پرسیدن خجالت نمیکشیدند.در واقع به جای اینکه وانمود کنند همه چیز را میدانند سعی میکردند واقعا یاد بگیرند.

این مهارت خودم تازگیا دارم روی خودم کار میکنم سعی کنید از استادای درستون سوال کنید . درحدی به ریز ترین نکات دقت کنید وسوالات ریزی بپرسید . درس عبرتی که سال پیش گرفتم همین بود که سعی کنم بادقت کار بکنم با دقت خیلی بالا و بادقت به ریزترین نکات دقت کنم و از استادای درسمون سوال بکنم.
یادم میاد یک بار برای یک پروژه ساده HTML و CSS شاید ۶ ساعت وقت گذاشتم.اخرش فهمیدم فقط یک div را نبسته بودم:))))))))))))))))))))) ان شب واقعاا با خودم فکر کردم شاید من برای برنامهنویسی ساخته نشدهام.
اما اگر بخواهم فقط یک مهارت را انتخاب کنم که بیشترین تاثیر را روی رشد یک برنامهنویس دارد احتمالا حل مسئله را انتخاب میکنم.چون در نهایت شرکتها به شما پول نمیدهند که کد بنویسید.به شما پول میدهند که مشکلات را حل کنید.
بارها شده که ساعتها درگیر یک باگ بودهام و در اخر متوجه شدهام مشکل فقط یک خط کد بوده است.اما ان چیزی که اهمیت داشت پیدا کردن ان یک خط بود نه تعداد خطهایی که نوشته بودم.هرچه بیشتر برنامهنویسی میکنم بیشتر به این نتیجه میرسم که برنامهنویسی کمتر درباره نوشتن کد است و بیشتر درباره فکر کردن است.

یک بار از یکی از برنامهنویسهای باتجربه پرسیدند اگر قرار باشد فقط یک توصیه به برنامهنویسهای مبتدی بکنی چیه؟
زبون های برنامه نویسی که به زبان انگلیسی هست .
تمامی ویدیوهای معتبر هم به زبان انگلیسی هست .
مستندات انگلیسیاند.
Stack Overflow انگلیسی است.
اخبار تکنولوژی انگلیسیاند.
اولین باری که وارد مستندات MDN شدم تقریبا هیچی نمیفهمیدم.هر دو خط یک کلمه بود که معنیاش را نمیدانستم.اما بعد از چند ماه متوجه شدم هر چه انگلیسیم بهتر میشود سرعت برنامهنویسیام هم بیشتر میشود.انگار یک در بزرگ باز شده بود.دیگر مجبور نبودم منتظر ترجمه بمانم.