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