دوست من شما برنامه نویس نخواهید شد اگر

یادگیری برنامه نویسی به مانند یادگیری هر مهارت دیگر نیاز به ذهنیتی جدید دارد. بسیاری از ما در مسیر یادگیری اشتباهاتی را انجام می دهیم. این اشتباهات مسیر را در رسیدن به هدف دشوار می کند. حتی باعث ناامیدی ما شده و آن را رها می کنیم. هیچ چیز مثل رها کردن نیمه کاره کارها ما را از اهداف دور نمی کند. تنبلی و اهمال به سراغ ما می آید و ما فکر می کنیم به اندازه کافی خوب نیستیم. اما برای یادگیری نیاز به ذهنیت درست داریم. هدف درست و ذهنیت درست یاور ما در مسیر هستند. برنامه ریزی و انضباط نیز چاشنی کار است که ما را در مسیر یاری می رساند. در ادامه به بررسی چالش ها و موانعی می پردازیم که شما را از یادگیری برنامه نویسی دور می سازد. شاید بعضی از این نکات برای شما بدیهی باشد. اما باید بدانیم بدهیت زمان هایی از چشم ما دور می ماند.پولدار شدنیکی از اشتباهات بسیار رایج در مسیر یادگیری هدف گذاری اشتباه است. هیچکسی از درآمد بالای برنامه نویسی بدش نمی آید. در عین حال با یادگیری کمی از یک زبان برنامه نویسی، دیدن ویدئو و فالو کردن یک پیج نمیتوانید انتظار داشته باشید سریع به درآمد بالا میرسید. یا استخدام شما در بازار کار به آسانی صورت می پذیرد. سودای یک شبه پولدار شدن را کنار بگذارید. شما باید تمرکز خود را از پول به کسب مهارت عمیق تغییر دهید. پول شما را دنبال می کند. من به شما اطمینان میدهم اگر عمق داشته باشید پروژه ها و درخواست های همکاری زیادی خواهید گرفت. ممکن است در مصاحبه ها رد شوید و یا با کارفرمایی به نتیجه نرسید. اما مطمئن باشید کار برای شما هست.ذهنیت حل مسئلهبه این موضوعات فکر کنید. چطور برنامه زمانی یک تور را به صورت اتوماتیک بچینیم؟ چطور می توانیم بسته های پستی را از مسیر کوتاه تر به مقصد برسانیم؟ با چه مکانیزمی جدیدترین محصولات را به مشتریان نمایش دهیم؟ چطور دستگاه قهوه ساز یا چای ساز خودکار بسازیم؟ چطور ده ها Drone یا ربات پرنده را با نظم به پرواز درآوریم؟ این ها مسئله هایی هستند از دنیای واقعی. خبری از هیچ کد یا زبان کامپیوتری نیست. این ها مسائلی است که باید حل شوند. روی کاغذ. بسیاری از این مسائل قبلا حل شده و در قالب مراحل و فرمول هایی در اختیار ما قرار دارند. ما به آنها الگوریتم می گوییم.کار برنامه نویسان این است که این مسائل را حل کنند. و یا با ترکیب الگوریتم ها بهینه ترین راه حل را بیابند. ذهنیت حل مسئله را جایگزین ذهنیت کد نویسی کنید. قلم را بردارید و افکار را بنویسید. چطور این مسئله را حل کنم. مسئله را بچه اجزای کوچکتری تقسییمیم کنم. چطور راه حل را به تعدادی مرحله قابل اجرا تبدیل کنم.ما کد می نویسیم تا مسئله ها را حل کنیم.برای تمرین مهارت حل مسئله، چالش های جدید انتخاب کنید. آنها را درک کنید و با راهکارهای الگوریتمی آن ها را حل کرده و به کد تبدیل کنید. در نهایت نیاز نیست دانشمند علوم کامپیوتر شوید. تنها کافیست مهارت حل مسئله خود را تقویت کنید. بیشتر بخوانید: آیا هر کسی میتونه برنامه نویسی یاد بگیره؟سرعت بالاعجله دیگر دشمن شماست که شما را از هدف دور می سازد. عجله یعنی برنامه ای ندارم. فقط می خواهم برسم. فقط می خواهم جلوه خوبی در جامعه داشته باشم و یا در مقابل دوستانم احساس برتری کنم. و یا این که سریع پولدار شده و خود را بازنشسته کنم. عجله تمرکز را از شما میگیرد. مهارت کدنویسی و یادگیری شما نصفه نیمه می شود. شما خسته می شوید چرا که هر روز باید بدویید. هدف گذاری و برنامه ریزی را جایگزین عجله کنید. هدف خود را SMART کنید.Specific: هدف مشخص شفاف و ملموسی داشته باشید مثلا من مقدمات زبان جاوا اسکریپت را تا انتهایی کار با DOM با تمرین یاد میگیرم.Measurable: قابل اندازه گیری باشد: مثلا ۱۰ تمرین کتاب X را تا انتهای موضوع Y حل می کنم و با جواب ها چک می کنم.Achievable: قابل دسترس است: مثلا من کتاب X را دارم و آنقدر به زبان انگلیسی مسلط هستم که بتوانم بخوانم و تمرین ها را حل کنم و یا زمان درست و کافی به آن اختصاص میدهم.Realistic: واقع گرایانه است: مثلا با توجه به درس های دانشگاه و یا کارم و تعداد ساعتی که وقت می گذارم می توانم به هدف در زمان مشخص شده برسم.Time Boxed: زمان دار است: زمان کافی (نه خیلی طولانی و نه خیلی کوتاه) برای آن میگذارم.سرعت پایینهمانند سرعت بالا سرعت کم شما را خسته می کند. چرا سرعت کمی دارید؟ مطالب بسیار زیادی را انتخاب کرده اید. و یا الویت خود را مشخص نکرده اید و یا به برنامه ریزی خود پایبند نیستید. دلایل هرچه که باشد، سرعت پایین پیشرفت شما را دل زده می کند. به جای سرعت پایین برنامه ریزی خود را بهبود دهید. زمان بندی خود را بازبینی کنید. زمان هایی مثل صبح زود یا شب ها که مزاحمت کمتر است را برای تمرین انتخاب کنید.به یاد داشته باشید اگر از صفر شروع می کنید حداقل شش ماه تا یک سال تمرین و شکست باید در فرآیند شما باشد.یادگیری گسسته برنامه نویسییادگیری گسسته یعنی من کمی از یک زبان برنامه نویسی و کمی از زبان دیگر را مطالعه می کنم و در هیچ کدام عمیق نیستم. امروز جاوا اسکریپت می خوانم. و فردا typescript را مطالعه می کنم. و یا فقط ویدئوها را نگاه می کنم. آنهم نه کامل نصف و نیمه. یادگیری شما نیاز به برنامه ریزی درست دارد. ممکن است این برنامه را خود بنویسید و یا از خواهر، برادر و یا دوست خود بخواهید. و یا آن را از مربی در بوت کمپ بگیرید. هر راهی را انتخاب کنید باید از مطالعه و تمرین پراکنده پرهیز کنید. پراکندگی مغز شما را درگیر پردازش بیش از حد می کند و با چند دقیقه کار خسته می شوید.تمرین کم و یا چالشهای ساده برنامه نویسیپست های اینستاگرامی و یا ویدئوها و یا پست های وبلاگ همه خوب هستند اما بدون تمرین فایده ای ندارند. تمرین یعنی ویرایش گر کد را باز کنید مسئله را بخوانید تحلیل کنید و آن را بنویسید. کپی و پیست نکنید. یا برای تمرین کردن فقط به سراغ چالش‌های ساده که نمونه های آن را دیده اید نروید. سعی کنید چالش های گوناگون را بررسی کنید. همچنین فقط از روی دست ویدیو ها نگاه نکنید. خود قلم و کاغذ بردارید و راه حل خود را بنویسید. سپس آن را به کد تبدیل کنید. در نهایت ببیند که آیا به راه حل نزدیک هستید یا نه.مغرور شدنبا کمی یادگیری مهارت برنامه نویسی در react یا HTML / CSS و یا پایتون شما برنامه نویس نشده اید. شما صرفا با یک زبان برنامه نویسی، کتابخانه و یا فریم ورک آشنا شده اید. حتی با یک سال و دو سال کار نیز نباید شما را مغرور کند. حتی با ۱۰ یا ۲۰ سال برنامه نویسی نیز غرور شما را از بین خواهد برد. غرور یعنی من بهترینم و همه محتاج من هستند. این یعنی یادگیری را متوقف کرده اید. و مهارت های ارتباطی لازم را ندارید. و همچنین این یعنی شما راه را گم کرده اید. شاید از تمام این موارد، غرور و خود بزرگ بینی را مهلک ترین خطا بپنداریم. بسیاری از افراد اسیر غرور می شوند. شاید یک برنامه نویس خوب شوند (نه عالی!) اما دنیا همیشه درس هایی را برای یاد دادن به مغرور ها دارد.خود کم بینیبرعکس غرور، خود کم بینی است. همیشه فکر می کنید که به اندازه کافی نمی دانید. خود را با دیگران مقایسه می کنید. نا امید می شوید و برای مصاحبه و استخدام و یا دریافت پروژه اقدامی نمی کنید. این موضوع نیز شما را به حاشیه میبرد. راه حل تمرین عمیق کردن مهارت ها است. و همچنین با افراد با تجربه که مربی خوبی هستند گفتگو کنید نه افرادی که شما را ناامید می کنند و یا امید واهی به شما میدهد. مربی خوب واقعیت ها را با شما بررسی و راهکار های عملی می دهد. این بسیار به شما کمک می کند.مهارت های نرم در مسیر برنامه نویس شدنشاید فکر کنید دانش فنی بالا شما را کاندید خوبی برای استخدام میکند. اما مهارت های نرم نقش کلیدی دارند. مهارت های مدیریت زمان، ارتباط با افراد تیم و... مهارت های مهمی هستند. تمرین این موضوعات به تنهایی شاید سخت یا غیر ممکن باشد اما حتما روی مهارت هایی چون مدیریت زمان، اولویت بندی کارها و یا مهارت های نوشتاری خود کار کنید. مطالعه در این زمینه ها شما را یاری خواهد کرد.امیدوارم این نکات شما را در مسیر حرفه ای شدن یاری رساند. تجربه و موضوعات خود را با ما به اشتراک بگذارید.برای مطالعه بیشتر وبلاگ کارادمی را نیز دنبال کنیدما در بوت کمپ برنامه نویسی کارادمی تلاش داریم تا مسیر شفافی در یادگیری برنامه نویسی برای شما فراهم سازیم.