گاهی اوقات آدم برای اینکه وبلاگش رو زنده نگه داره مجبور میشه از چیزهایی بنویسه که دلش نیست بنویسه اما ممکنه به درد مخاطب بخورن و وبلاگ هم خاک نخوره.
امروز میخوام سری مطالب در مورد آشنایی با برنامه نویسی رو شروع کنم. احتمالا باید خیلی صفر کیلومتر باشید که جوابهایی که من میدم، جواب سوالهاتون باشن اما اگر این نوشتهها به درد یک نفر هم بخوره راضی ام (حتی اگر اون خودم باشم).
برنامه نویسی چیه؟
برنامه نویسی یعنی نوشتن دستورات، با ترتیب و با جزئیات برای یک موجود احمق اما فرمانبردار یعنی همون کامپیوتر.
اون اوایل مثل اینکه زبانهایی مثل اسمبلی و اینا بودن که باهاشون برنامه نویسی انجام میشده، اون زبانهای اولیه، بیشتر به زبان کامپیوترها نزدیک بودن (یعنی زبان باینری یا صفر و یک). اما به مرور هرچی جلوتر اومدیم و زبانهای سطح بالاتر ظهور کردن، سینتکس (دستورات) در زبانهای برنامه نویسی بیشتر به زبان آدمیزاد (البته زبان کافرا 🙂 ) شبیه شدن.
(نکته: پس اگر کسی زبان انگلیسی بلد باشه خیلی راحتتر میتونه برنامه نویسی رو درک کنه و یاد بگیره. بیشتر در این باره صحبت میکنم)
آیا نیاز به برنامه نویسی همیشگیه؟
حداقل تا ده سال آینده که صد در صد بهش نیازه. مگر اینکه یه چیزی مثل برنامه نویسی کوانتومی و اینا بیاد گند بزنه به این رشته. اما خوشبینانه اینه که تا چند دهه برنامه نویسی رو بورس خواهد بود. اگه بخوام مقایسه کنم باید بگم مشاغلی مثل منشیگری، رانندگی، پیشخدمتی، تعلیم و … بیشتر در معرض خطر قرار دارن تا برنامه نویسی.
پس به نظرم ارزشش رو داره وقت و انرژی و پول برای یادگیریاش هزینه کنیم. هرچند اگر سیستم سخت افزاری موردنیاز رو داشته باشید بقیه اش هزینهای نداره (مخصوصا اگه انگلیسی بلد باشید که دیگه تامام).
از کجا شروع کنم؟
زبانهای برنامه نویسی نسبت به کاربردشون و پلتفرمی که روش اجرا میشن دسته بندی میشن.
مثلا، یه سری زبانها برای طراحی وب هستن و یه سری برای طراحی اپلیکیشن موبایلی (حالا اندرویدی یا آی او اس).
این دسته بندی رو ببینید.
این دسته بندی یک نکتهای داره. اگر دقت کرده باشید یک سری زبانها دو سه جا بودن مثلا جاوا. پایتون هم توی بک اند وب کاربرد داره و هم توی برنامههای ویندوز میشه ازش استفاده کرد.
به این زبانها که میشه اینور و اونور ازشون استفاده کرد، cross-platform میگن. یا چندسکویی. مثلا شعار جاوا اینه که یک بار بنویسید و همه جا اجرا کنید. یا مثلا میشه با استفاده از فریمورکهای مختلف، از یک زبان برای ساخت برنامه در پلتفرم دیگهای استفاده کرد.
به علاوه، مفهوم کلی برنامه نویسی در زبانهای مختلف تقریبا متشابه هست. یعنی مثلا شما یه الگوریتم داری:
حالا توی زبانهای مختلف برای نمایش دادن از دستورات مختلف استفاده میشه:
Console.Write
echo
مثلا توی پایتون که خیلی به زبان انگلیسی نزدیکه، برای نمایش از دستور print استفاده میشه. توی زبانهای قدیمیتر کدها و دستورات یکم بیمعنیتر (حداقل برای ما) بودن.
پس بنابراین وقتی مفهوم برنامه نویسی رو یاد بگیرید حالا چه در زبان C یا Java یا پایتون یا PHP، دیگه یاد گرفتن بعدیها یکم راحتتر میشه. چون شما مفهوم الگوریتم رو یاد گرفتید و مثلا اصول کلی برای به وجود آوردن شرط و حلقه رو میدونید و فقط دستورات مختص به این زبان مد نظر رو نمیدونید.
البته اون اوایل خوبه که آدم چیزهای مختلف رو امتحان کنه. مثلا هم یه سیخونکی به جاوا بزنی، هم به فرانت اند، هم به پایتون، اتفاقا همونطور که گفتم شروع یادگیری یک زبان برنامه نویسی جدید خیلی حال میده.
اما باید از یه جایی به بعد تصمیم رو بگیریم و بچسبیم به یه حوزه. مثلا من فعلا برای کوتاه مدت نظرم روی برنامه نویسی وب برای سمت کاربر یا فرانت انده و در طولانی مدت یادگیری سمت سرور یا بک اند. اما به هرحال میخوام توی حوزۀ وب کار کنم. بنابراین میدونم که باید روی چه مهارتهایی کار کنم و چه چیزهایی رو یاد بگیرم.
پ.ن: حس میکنم این مبحث جای صحبت زیاد داره. دانستههای من هم حفره زیاد دارن. بنابراین خوبه که ادامهاش بدم.