شما برای برنامهنویس شدن چه مسیری در پیش میگیرید؟ کتاب چاپ شده[۱]؟ کتاب الکترونیک[۲]؟ مستندات زبانی که انتخاب کردهاید؟ روش من اما، تفاوتهایی دارد. منابعی که ذکر شد همگی کاربردی هستند و هر کدام برای شرایط و سطوح مختلف برنامهنویسی مناسب هستند. وقتی من یادگرفتن زبان برنامهنویسی جدیدی رو شروع میکنم اول هدفم و ویژگیهایش را تعیین میکنم.
چرا این زبان را انتخاب کردم؟ بعدا در مورد زبانهای مختلف برنامهنویسی توضیحاتی خواهم داد و این که برای چه کاری از چه زبانی بهره ببریم اما الان فرض میکنیم که زبان را درست انتخاب کردهام؛ پس با هم ادامه میدهیم. در حال انتخاب هدف بودیم، هدف از یک زبان برنامهنویسی تولید نوعی محصول است؛ پس ما باید محصولی را به عنوان محصولی آزمایشی برای خود در نظر بگیریم. محصولی که در زمان یادگیری این زبان جدید، قسمتهای مختلف آنرا توسعه دهیم. چقدر خوب است اگر در هنگام انتخاب این محصول آزمایشی، مشکلات روزمرهی خود را در نظر بگیریم و برنامهای تولید کنیم که مشکلی از خود ما را برطرف کند، با این کار ما کاربر برنامهی خود خواهیم بود و بهتر با جزئیات کاربری مثل طراحی واسط کاربری آشنا میشویم و ارزش آنرا بیش از پیش درک میکنیم. بعد از انتخاب هدف و انجام فرآیندهای اولیه و نه پیچیدهی مهندسی نرمافزار و مشخص کردن مسیر نیل به هدف، از یک نمونه کد که با توضیحات همراه شده استفاده میکنیم. البته قبل از این باید نکتهای رو تذکر بدم که ما به عنوان یک فرد معمولی در صنعت IT باید مقداری پیشنیاز را از قبل با خود همراه داشته باشیم تا بتوانیم سریعتر، کمخطاتر و باکیفیتتر پیش برویم. مهمترین این موارد رو لیست میکنم.
آشنایی خوب با زبان انگلیسی
چه بخواهیم چه نخواهیم زبان انگلیسی زبان مسلط دنیاست و تعداد افرادی که با این زبان به عنوان زبان دوم آشنا هستند از تعداد افرادی که به صورت مادری با این زبان رشد میکنند بیشتر است. انگلیسی تا حدی در رشتهی ما نفوذ کرده که حتی برنامههای تولید شده توسط بعضی زبانهای برنامهسازی را میتوان توسط ماشین به زبان انگلیسی ترجمه کرد[۳]. با دانش انگلیسی گاهی مشکل شما با دیدن کلمهی کلیدی خاصی در هنگام برنامهنویسی مرتفع میشود و نیازی به مراجعهی شما به مراجع نخواهد بود.[۴] همهی موارد بالا را به چیزی که همه میدانیم اضافه کنید و آن این که تمام مستندات، فرومها، بلاگها و حتی کامنتهای کدهای نمونه هم به زبان انگلیسی نوشته میشوند. پس برای بهتر و راحتتر پیشرفت کردن (حتی برای راحتتر فیلم دیدن!!!) به زبان انگلیسی نیاز دارید، از همین امروز هم شروع کنید دیر نیست و فردا بیشتر از امروز با این زبان آشنا شدهاید.
شناخت برنامهنویسی
این موضوع، مورد کوچکی نیست و نمیتوان به راحتی از کنار آن گذشت. یک مهندس نرمافزار در طول حداقل یکسال با الفبای برنامهنویسی آشنا میشود و سپس برنامهسازی را به وی معرفی میکنند و در آخر مهندسی یک نرمافزار را که جمعبندی همهی این اطلاعات است فرا میگیرد. الفبای برنامهنویسی را تفکر برنامهنویسی نامگذاری میکنم. این که در نگاه شما مشکلات دنیای واقعی تناظری با مجموعهای از الگوریتمها، قطعهکدها، کامپوننتها و یا سرویسها دارد همان تفکر برنامهنویسی است. فرض میکنیم شما صرفا یک برنامهنویسید و نیازی به دانش مهندسی نرمافزار ندارید اما حتما به اطلاعاتی در مورد انواع ساختمان دادهها، الگوریتمها و مرتبههای زمانی، یا دانشی مختصر در حوزه ساختار دیتابیس و نحوهی عملکرد سیستمعامل و موتورهای دیتابیس در شرایط خاص نیاز دارید. کسی که برنامهنویسی را شروع میکند باید هدفی داشته باشد و برای کیفیت بهتر محصولش تلاش کند، این تلاش فقط در برنامهنوشتن خلاصه نمیشود و باید برای کاستیهای محصول خود کسب دانش را هم حتما در نظر بگیرید. به موارد بالا تجربهی کار با فریمورکها و بستههای نرمافزاری از قبل آماده شده را هم اضافه کنید. بستههایی که کارهای معمول در حوزهی IT را از قبل آماده کردهاند و به شما امکان میدهند به جای درگیر شدن با جزئیات در مورد چگونگی پیادهسازی ایدهی خود فکر کنید.
خب حال که پیشنیازها را داریم پس میدانیم که هر مشکلی از چه جایی نشات میگیرد و چرا پیش آمده چون ساختار یک برنامه را میشناسید و با عملکرد فریمورکها آشنایید. الان راحتتر میتوانید در اینترنت و یا منابع دیگر جستجو کنید.
داشتههای خود را بررسی کنید. وضع بدی نداریم، هدف که مهمترین جز این کار است آماده شده، زبانبرنامهنویسی را انتخاب کردهایم و دانش کلی برنامهنویسی به ما کمک کرده که هدف خود را به بخشهای کوچک و قابل دسترسی تبدیل کنیم. این دانش در ادامه به ما کمکهای بیشتری خواهد کرد.
پایان قسمت اول
پانوشت:
[۱] Hard copy
[۲] e-book
[۳] برای اثبات این ادعا میتوان از کمی دانش نظریهی زبانها استفاده کرد و به صورت علمی اثباتی ارائه داد.
[۴] اینروزها برنامهنویسی بدون یک IDE خوب که AutoComplete داشته باشد تقریبا غیر ممکن شده. حتما کسی که برنامهنویسی کرده تجربهی پیدا کردن تابع یا کلاس مورد نظر را از روی اسم، بدون شناخت یا مطالعهی قبلی داشته. این موضوع البته مشکلاتی هم ایجاد میکند که شاید در پستهای بعدی بلاگ به آن پرداختیم.
نظرات کاربران
نظر خود را بفرستید:
آدرس ایمیل شما منتشر نخواهد شد.