روز نوشته های یک توسعه دهنده

چطوری برنامه نویسی یاد بگیرم؟

logo 20 شهریور 1397   

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

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

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

  • اولاً اینکه درگیر کار می‌شید و میبینید چیو باید یاد بگیرید و چیزای اضافیو یاد نمیگیرید(بعدها نیاز پیدا کنید یاد میگیرید). مهم اینه که شما راه میوفتید
  • عقلانیه که پروژه هایی که قبول کردید انتظار زیادی ازتون ندارن و لزومی نداره کار خیلی حرفه‌ای تحویل بدید(البته نه به این معنا که تلاش نکنین)
  • در قبال یادگیریتون پول هم دریافت میکنید. شاید مقدار زیادی نباشه ولی شیرین‌ترینه

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

آها یه نکته رو یادم رفت بگم… اگه میخواید لایببری جدید یاد بگیرید از example ها کمک بگیرید. معمولاً لایبرری ها یسری example دارن که یه پروژه ساده باهاشون پیاده‌سازی شده. من مستقیم میرم سر تست اونا و سعی میکنم ادیتش کنم به چیزی که میخوام. هرجا هم مشکل بخورم از داکیومنتش کمک میگیرم یا سرچ میکنم.

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

چه زبان برنامه نویسی بهتره؟

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

یه توصیه: تو دنیای نرم‌افزار، با همون تکنولوژی که راه دستته و کارت رو راه می اندازه شروع کن، هر وقت به نقطه‌ای رسیدی که کارت دیگه راه نیافتاد خودت می‌فهمی وقت تغییره و باید سراغ چی بری.

 

برنامه نویسی دسکتاپ، وب و یا موبایل؟

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

از چه منبعی یاد بگیرم؟

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

برنامه نویسی کار کردم ولی یادم میره. چه کنم؟

تمرین تمرین تمرین. برنامه نویسی دقیقاً یک ورزش ذهنیه و همونطوری که ورزشکار نیاز به تمرین داره تا رو فرم بمونه، برنامه نویس هم باید از ذهنش استفاده کنه و اینطوری خودشو آماده نگه داره(چه برای یادگیری چیز جدید، چه برای استفاده از دانش قبلی)

اگرم برای کار های تکراری مجدداً سرچ می‌کنید یا از کد پروژه های قبلیتون کمک میگیرید، نگران نباشید. شما مثل حرفه‌ای ترین برنامه نویس ها عمل می‌کنید:)

بازارکار برای برنامه نویسی چطوره؟

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

چند نکته:

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