برنامه نویس و طراح گرافیک هستم اما درآمدی ندارم :)
راهنمایی تازه کارها و معرفی زبان برنامه نویسی برای فتح قله های موفقیت
میخوای برنامه نویسی یاد بگیری و توی مرحله انتخاب زبانی؟ اگر جوابت مثبته تا آخر این مطلب با ما همراه باش
اول بزار بهت بگم که قوانین برنامه نویسی توی زبان هایی که امروزه ازش استفاده میشه تقریبا یکیه ، یعنی شما اگر بتونید پایتون رو یاد بگیرید برای زبان بعدی که مثلا سی شارپ هستش نیازه دو تا قانون جدید رو یاد بگیرید و بقی قوانین رو بلدید.
نکته بعدی اینکه ، اگر شما یه زبان رو یاد بگیرید یعنی یه زبان رو یاد گرفتید !!! (اینو خودمون هم میدونستیم) پس راه و روش اش رو هم بلدید و با اون روش ها ، هزارتا زبان دیگه رو میتونید یاد بگیرید و مشکلی از لحاظ یادگیری (مثل روز اولتون) ندارید
برنامه نویسی شکل تفکر شما رو تغییر میده (نگران نباشید منم اولش مثل شما میگفتم با یادگیری برنامه نویسی طرز تفکرم تغییر نمیکنه اما تغییر کرد !) و این هدف اصلی برنامه نویسیه ، طرز فکر . اگر شما یک زبان رو به درستی یاد بگیرید حتما به حال الانتون که میگید "کدوم زبان رو یاد بگیرم " میخندید (دقیقا شبیه به خودم)
خب میخوام بهتون یه نکته طلایی بگم : دنبال اینکه برنامه نویس بشید نباشید ! (عه پس چیکار کنیم ؟) بهترین کار اینه که برای خودتون یه پروژه تعریف کنید ( مثلا ساخت یه سایت فروشگاهی یا مثلا یه ربات تحلیل داده های طبیعی) و برید دنبال اینکه چطور میشه انجامش داد (اینترنت رو بجویید !) و تمام مهارت هایی که باید داشته باشید رو نیاز سنجی کنید و اونهایی که در مرحله اول نیاز هست رو یاد بگیرید و بقیه رو در طول انجام پروژه یاد بگیرید ( این روش یه جوری تاثیر گذاره که توی شما گرد و خاک به پا میکنه ) بعد از این پروژه برید دنبال پروژه های دیگه و از مهارت هایی که توی پروژه های قبلیتون بدست آوردید استفاده و اونها رو تقویت کنید اگر هم پروژه ای رو خواستید انجام بدید و نتونستید انجام بدید اون رو به قسمت های کوچیکتر تقسیم کنید اگر نمیشد کلیات اون رو توی لیست اهدافتون بنویسید و برید دنبال پروژه های آسون تر تا وقتی که قَدَر شدید اونها رو انجام بدید
خب بریم که داشته باشیم D: : اگر تاحالا کد نزده باشید از خودتون بپرسید که "اینهمه کد رو باید حفظ کنم؟" و جواب هم بله است هم نه . یکی از چیز هایی که همه ما داریم مغزه و هرکاری بخوایم بکنیم به اون نیاز داریم درسته ؟ حتی همین خوندن شما و نوشتن من و فکر کردن هامون هم توسط مغز انجام میشه. یکی از چیزهایی که خیلی از ما ها ازش بیخبریم قدرت مغره . اینکه مغزه ما چه قدرتی داره و ما ازش بیخبریم رو نمیخوام در موردش توضیح بدم و میرم سر اصل مطلب ، مغز شما قدرت اینو داره که همه ی قسمت های زبان های برنامه نویسی موجود رو حفظ کنه بدون کوچکترین مشکلی و حافظه هم هیچوقت تموم نشه پس قدرت اینکار رو همه ی ما (بجز افراد معدودی که بعضی مشکلات مغزی/حافظه ای دارن) داریم و از اون لحاظ مشکلی نداریم اما این رو هم در نظر داشته باشید که برنامه نویس ها خیلی به اصطلاح تنبلن (خودم هم دوست نداشتم این واژه رو به کار ببرم چون برنامه می نویسم اما برای فهم بهتر مجبورم ) یعنی اونا هم به دنبال آسون تر کردن کد نوشتنن و دنبال اینکه بخوان حرف به حرف کدها رو حفظ کنن نیستن برای همین موضوع IDE ها و کتابخانه ها (Library) ها اومدن ، با intellisense که در IDE بود ، نیازی نبود حرف به حرف کد ها رو حفظ باشید و IDE هم ویژگی های بسیاری رو دارن تا شما رو از نیاز به یک برنامه خارج از این IDE ها بی نیاز کنه ، با اومدن Library ها هم دیگه نیازی نبود خیلی از کد ها رو خودتون بزنید و با استفاده از اونها حجم کد نویسی شما بشدت پایین میاد (البته بهتره که از روش کار library ها با خبر باشید) و بجز همه اینها اگر مشکلی داشتید میتونید از انجمن های برنامه نویسی فارسی و انگلیسی مثل Stack Overflow کمک بگیرید . بجز همه اینها روز به روز ابزار های جدیدتری برای برنامه نویسا میاد تا برنامه نویسی رو راحت تر کنه پس نگران سختی کد نویسی (نه برنامه نویسی) نباشید
این نکته رو میخوام با یک مثال پیش ببرم ، یک نجار رو فرض کنید که نجاری میکنه طبیعتا ! حالا این آقای نجار که مثلا به قیچی علاقه داره میتونه برای میخ زدن به چوب از قیچی استفاده کنه ؟ یا مثلا میتونه با استفاده از قیچی چوب ببره ؟ مسلما نه حالا بریم ادامه بحثی که داشتیم ، یه برنامه نویس آیا باید همه کارهاش رو با یه ابزار (که اینجا زبان برنامه نویسیه ) به دلیل اینکه دوستش داره انجام بده ؟ جواب شما با توجه به مثال نجار باید نه باشه ، البته امکان داره یه ابزاری باشه که چند کار رو بتونه انجام بده اما این ابزار هیچوقت نمیتونه تمام کارهای موجود رو انجام بده . پس یادتون باشه که در طول کار هیچوقت تعصب روی زبان برنامه نویسی نداشته باشید و حتی اگر برنامه نویس بیست ساله یه زبانی بودید برای عوض کردن اون زبان هیچ ترس و ناراحتی ای نداشته باشید .
البته اینطور نباشه که هی از این زبان به اون زبان بپرید جوری این حس رو متعادل کنید که نه تعصبی باشید نه بی هدف
سرچ کنید ، من بعضی از برنامه نویس ها رو دیدم که سرچ کردن رو مایه ننگ میدونن ! شما قبل از اینکه بخواید برنامه نویسی کنید باید یک جستجو کننده خوبی باشید و بتونید جواب سوالات خودتون رو بگیرید بهترین ابزار برای سرچ هم Google به حساب میاد
خب اینم از چند نکته ایی که بنظرم گفتنشون خالی از لطف نبود ، حالا بریم چندتا زبان برای پروژه ای که انتخاب کردید بهتون معرفی کنم
1-پایتون
یک زبان برنامه نویسی که سعی میکنه به زبان انسان نزدیک باشه . اگر میخوایید هر چیزی که به هوش مصنوعی و فکر کردن کامپیوتر ربط داره ، استفاده از پایتون زبان پایتون بهترین انتخابه . اگر نیاز به برنامه ی دسکتاپی یا موبایلی دارید که زیاد سنگین نیست استفاده از پایتون بدلیل خوانایی بالا و راحتی کار توصیه میشه و براش لایبرری های خوبی هم اومده اما در مورد برنامه های دسکتاپی و موبایلی که سنگین هستن از پایتون استفاده نکنید . توی برنامه های تحلیلی و مهندسی پایتون نقش موثری رو ایفا میکنه . توی بک اند سرور هم (قسمتی که درخواست ها و اطلاعات سایت رو پردازش میکنه) براش لایبرری اومده و بسیار بین برنامه نویس ها داره معروف میشه
2-سی شارپ
این زبان توسط شرکت مایکروسافت ساخته شده و از ترکیب دو زبان جاوا و سی ++ بوجود اومده ، از لحاظ شی گرائی شبیه به سی ++ و از لحاظ دستوری بسیار شبیه به جاواست . اگر نیاز به برنامه ویندوز دارین اولین و بهترین زبان سی شارپ هستش. سرعت نسبتا بالای توی ویندوز براتون به ارمغان میاره . برنامه های موبایلی هم توسط لایبرری زامارین میشه براش نوشت اما توصیه من اینه در صورتی اینکار رو بکنید که مجبورید(مثلا میخوایید با یک بار کد نویسی برای هردو سیستم عامل IOS و Android خروجی بگیرید) چون از خیلی از ویژگی های جاوا و کاتلین و سوییفت محروم میشین. برای بک اند هم میتونین از لایبرری های asp.net و asp.netCore استفاده کنید که مجموعه کاملی هستن.
3-پی اچ پی
این زبان فقط میتونه برای برنامه نویسی بک اند سایت به کارتون بیاد و استفاده خاص دیگه ای نداره. اگر توی ایران باشید توی بک اند این زبان محبوبیت خاصی داره و میشه گفت انتخاب خیلی خوبی برای بک اند کاراست. لایبرری های مختلفی هم براش اومده که کار رو برای شما بسیار آسون میکنه همانند لایبرری بزرگ Laravel
4-کاتلین
اولین انتخاب برای برنامه نویسی اندروید ، خوده گوگل (صاحب اندروید) هم میگه اگر میخوایین برنامه اندروید بسازین از کاتلین استفاده کنید . زبان خوبیه و یادگیری نسبتا آسونی داره و از جاوا هم قدرت گرفته . کد های اون هم به زبان جاوا تبدیل میشن و ماشین مجازی جاوا اجرا میشن . در اون از لایبرری های جاوا هم میتونید استفاده کنین
5-سوییفت
این زبان برای برنامه نویسی IOS و MAC OS و WATCH OS ساخته شده و انتخاب اول اپلی هاست . از زبان های برنامه نویسی روز مثل سی شارپ ، پایتون و آبجکتیو - سی الهام گرفته شده و امنیت بالا و حجم کدنویسی کمتری نسبت به آبجکتیو - سی داره .
6-جاوا اسکریپت
این زبان برای طراحی سایت و تفسیر شدن توسط مرورگر (ساخت فرانت اند (فرانت اند ظاهر سایته)) ساخته شده اما بدلیل جامعه کاربری اون در حال حاظر لایبرری هایی برای برنامه نویسی بک اند و برنامه های موبایلی و دسکتاپی ساخته شده . انتخاب اول شما برای طراحی ظاهر سایت (فرانت اند) جاوا اسکریپت هست و میتونید از کتابخونه هایی مثل جی کوئی هم برای راحتی کار بهره ببرید ، اگر برنامه موبایلی سبک هم دارین میتونین از این زبان استفاده کنید . برای بک اند هم انتخاب بدی نیست .
7-الیکسیر
زبانیه که تو ایران خیلی نمیشناسنش هدف این زبان فراهم کردن گسترشپذیری و بهرهوری بیشتر در ماشین مجازی ارلنگ بوده و میتونید از لایبرری های ارلنگ هم استفاده کنید. من این زبان رو برای بک اند بهتون توصیه میکنم و برای سایت هایی که بازدید بسیار زیادی دارن بسیار مناسبه
8-سی پلاس پلاس
پدر زبان های برنامه نویسی امروزی ! این زبان نسبتا سخته اما ارتباط خیلی خوبی با سخت افزار داره و این یعنی سرعت بسیار عالی (توی چرخه ها (loop) خودش رو نمایان میکنه این زبان) البته اگر اولین زبان رو میخواید یاد بگیرید بهتره اینو یاد نگیرید چون یه مقدار بعضی جاهاش اذیت میکنه
خب کلی از حرفام مونده اما دیگه قدرتی برام نمونده از ساعت 4 و خورده ایی صبح پاش بودم تا الان که ساعت 12 و چهل دقیقه است . لپ تاپ خودم هم مشکل هارد پیدا کرده و بالا نمیاد و مجبورم با این لپ تاپی که باهاش راحت نیستم براتون مطلب بنویسم.
دوستان حرفه ای این مطلب کم کاستی زیادی داره و خودم هم متوجهش هستم اما به دلیل اینکه جامعه هدف این مطلب افرادیه که میخوان وارد کار بشن نمیخوام خیلی حرفه ای توضیح بدم.نکته ایی مونده بگید توضیح اش بدم و در صورت نیاز این پست رو ویرایش کنم
مطلبی دیگر از این انتشارات
آموزش مبتدی Git: بخش دوم
مطلبی دیگر از این انتشارات
زبان برنامه نویسی جاوا اسکریپت
مطلبی دیگر از این انتشارات
دستورات خطایابی شبکه