PDA

View Full Version : سوال: برای یاد گیری زبان برنامه نویسی حتما باید الگوریتم و فلوچارت را یاد گرفت؟



سینا اکبری
دوشنبه 17 فروردین 1394, 18:19 عصر
سلام.
من نزدیک به یکسال و نیم است که دارم رو زمینه برنامه نویسی کار میکنم، رشتم الکترونیک هست ولی به دلیل علاقه به برنامه نویسی و نیاز داشتن به آن به سمت این حرفه روی آوردم.
از یکسال و نیم پیش پکیج های مالتی مدیا، کتاب ها و...زیادی خریداری کردم و زبان های برنامه نویسی زیادی رو کار کردم ولی در تمامشون وقتی فهمیدم متغیر چیه، آرایه چیه، حلقه چیه و... سپس به سراغ نوشتن ساده ترین برنامه ( طبق آن چیزی که فیلم ها و یا کتاب ها گفته بودن) میرفتم دیگه گیج میشدم (میشم) و هیچ چیزی نمیفهمم و تازگی ها فهمیدم که برنامه نویسی یک چیز جداس و زبان برنامه نویسی چیز دیگر.
حالا من میخوام برنامه نویسی یاد بگیرم، تورو خدا راهنماییم کنید واقعا دارم دیوانه میشم. باید الگوریتم رو یاد گرفت تا برنامه نویسی رو یاد بگیرم؟(یه نگاهی به کتاب هایی انداختم خیلی سخته).
کلا یه راهنمایی برای کسی که میخواد برنامه نویس شه و هیچی بلد نیست کنید.

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

amirtork
دوشنبه 17 فروردین 1394, 20:15 عصر
سلام، برنامه نویسی، اون چیزی که من فهمیدم و بهش باور دارم، نگاه کردن به پدیده ها به عنوان یک ماشین هست و در قدم بعدی، استفاده از زبان های برنامه نوسی به عنوان ابزاری برای پیاده سازی اون دیدگاه هست.
یادگیری الگوریتم هم، در ابتدای کار، بیشتر آشنایی با همون دیدگاه ماشین هست پس یادگیریش واجب هست! اما در مورد فلوچارت، فلوچارت بیشنر در مواقعی استفاده میشه که قصد present کردن الگوریتم و یا ایجاد درک بهتری در مورد الگوریتم خودتون رو دارید.
اما با این حال یادگیری فلوچارت بعد از یادگیری مقدمات الگوریتم و نمایش الگوریتم های ساده توسط فلوچارت، باعث میشه مفاهیم الگوریتم بیشتر تثبیت بشه.
لازم نیست از همون ابتدای امر، شروع به یادگیری الگوریتم های پیچیده کنید، یا کلا کد نویسی رو کنار بزارید و فقط برید سراغ یاد گیری الگوریتم، پیشنهاد میکنم، از یک کتاب الگوریتم شروع کنید، بعد یادگرفتن بخش های مقدماتی، مدتی رو در دنیای کد نویسی سر کنید، بعد از اینکه تعداد زیادی از کد های مختلف رو دیدید و خودتون هم کد های مختلفی رو پیاده سازی کردید، دوباره به سراغ الگوریتم بیاید، این دفعه مطمئن باشید هم یادگیری الگوریتم های پیشرفته و سخت تر برای شما خیلی راحت تر خواهد بود و هم میزان لذتی که از یادگیری اونها میبرید بیشتر خواهد بود، به صلاح دید خودتون میتونید یادگیری الگوریتیم رو به تعداد بخش های مختلفی تقسیم کنید تا حوصلتون سر نره، این تجربه ی شخصی من بود، و ممکنه کاملا درست نباشه، و حتی در نظر برخی از دوستان کاملا غلط باشه، ولی شخص من با این روش جواب به نسبت قابل قبولی رو گرفتم.
برای شروع هم سعی کنید کارهای روزمره رو، قدم به قدم در ذهنتون و یا روی کاغذ مرور کنید، کارها رو طوری تقسیم کنید، انگار دارید برای یک ماشین فرضی(نه اینکه مثلا شروع کنید بگید پای چپ رو بزار بعد پای راست، نه خیلی از پایه) تقسیم بندی میکنید.
مثلا برای رفتن به اتاق خواب در طبقه ی دوم، وقتی موقعیت شما جلوی درب ورودی خانه هاست، تا به این تقسیم بندی به نظر من کفایت میکنه:
1- شروع
2- وارد خانه شو
3- راه پله رو پیدا کن
4- از راه پله تا طبقه ی دوم برو بالا
5- ورودی اتاق خواب رو پیدا کن.
6- تا جلوی ورودی اتاق راه برو
7- در اتاق رو باز کن
8- وارد شو
9- پایان
به این صورت، اگر مدتی این کار رو انجام بدید، موقعی که در موقعیت نوشتن یک برنامه قرار میگیرید، به صورت ناخواسته، برنامه رو به بخش های قابل فهم تر تقسیم میکنید و هر بخش رو به راحتی و بدون سردرگم شدن پیاده سازی میکنید، اما این تمرین اولیه، هرچند به نظر مسخره میاد، اما به نظر من بسیار موثر هست.

موفق باشید

chikar
دوشنبه 17 فروردین 1394, 21:53 عصر
سلام
اول بگم من هم مثل خود شما در حال یاد گرفتن هستم و تجربه آن چنانی ندارم و فقط می خوام تجربیات کوچیکم رو برای کمک به شما در اختیارتون بگذارم، شاید یک درصد به درد تون خورد!
یادمه چند سال پیش تو دانشگاه می گفتن، اگه فلوچارت بلد نباشی اصلا برنامه نویس نمی شی!
حالا بعد از گذشت چند سال و تست کردن چند زبان برنامه نویسی، باید بگم که اصلا این طوری نیست و هر کسی سبک و روشی برای یادگرفتن داره، پس اول ببینید چطوری بهتر یاد می گیرید.
نکته بعد این هست که به نظر من شما نباید سعی کنید در ابتدا همه نکات یک مطلب رو یاد بگیرید، مثلا مبحث کلاس در C++‎‎‎‎‎‎‎‎ رو مثال می زنم، شما اگه بخواید همون اول کار، همه چیز رو راجع به کلاس ها یاد بگیرید گیج می شید، در حد آشنایی با کلاس جلو برید بعد مثلا کلاس هایی که از قبل نوشته شده مثل کلاس های کیوت رو ازشون استفاده کنید، در همین حین نکاتی که تو کلاس های آماده کیوت می بینید رو بررسی کنید مثلا چرا توی فلان کلاس کیوت یه تابع مجازی تعریف کرده، اصلا به چه کار میاد؟

مساله بعد احساس نیاز هست، اگه شما پروژه ای رو دست بگیرید یا مساله ای رو خودتون بخواهید حل کنید، اول فکر می کنید راه حل ها رو پیدا می کنید ، اونجاست که نیاز ها رو شناسایی می کنید، مثلا فرض کنید تو یه برنامه شما به یه متغیر نیاز پیدا می کنید که تو همه فایل های برنامه C++‎‎‎‎‎‎‎‎ تون قابل استفاده باشه، پس می گردید تو اینترنت که این نیازتون رو بر آورده کنید و با مبحث جدیدی مثل متغیرهای سراسری آشنا می شید، اونجاست که دیگه کاربرد متغیر سراسری براتون جا می افته.

مساله بعد به نظر من تفاوت بین برنامه نویسی و قواعد(syntax) یک زبان هست، اگه بخواهید ابتدا صرفا با برنامه نویسی شروع کنید، شاید کمی گیج بشید، مثلا برای یک مرتب سازی ساده، بیشتر از 50 نوع الگوریتم داریم (لینک ویکی پدیا (http://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85_% D9%85%D8%B1%D8%AA%D8%A8%E2%80%8C%D8%B3%D8%A7%D8%B2 %DB%8C))، و اگه شما فقط بخواید این الگوریتم ها رو یاد بگیرید و روشون کار کنید، ببینید چه زمانی رو باید صرف کنید، پس بهتره که اول قواعد یک زبان برنامه نویسی رو خوب یاد بگیرید(به همون روش های بالا)، بعد خودتون می بینید که با فکر کردن و تجربیاتی که بدست آوردید مثلا یک روش مرتب سازی جدید هم ابداع کردید
به نظرم فقط اینکه شما بیاید فلان جزوه یا کتاب یا فیلم رو یادبگیرید کافی نباشه، باید یادبگیرید که مطالب رو کسی بهتون یاد نده و خودتون اون ها رو با احساس نیازی که برای حل مساله هاتون پیدا می کنید حل کنید

یه نکته دیگه هم اینکه ، صبر و حوصله داشته باشید،دائما راجع به مباحثی که می خواید یاد بگیرید فکر کنید، تو ذهنتون تجسمشون کنید، در ضمن محدود به منابع فارسی نشید، منابع لاتین هم مطالعه کنید، اگه لاتین هم نمی دونید صرفا کد های مورد نیازتون رو تو سایت های لاتین جستجو کنید، نمی شه بیاید چهار تا کتاب بخونید و بشید برنامه نویس، هیچ کتابی کامل نیست، هر نویسنده ای سبک خودش رو برای آموزش و برنامه نویسی داره،باید تلاش کنید، تو فروم های برنامه نویسی بیاید، مشکلاتی که برای بقیه هست، ممکن سوال آینده شما باشه، و به نظرم باید گام به گام و با زمان پیش برید

نکته آخر هم، اینکه زیاد به مثال های کتاب ها توجه نکنید به نظرم بسیاری از این مثال ها بعضا طولانی، پیچیده و نامناسب برای شخصیه که می خوادیه مطلب رو یاد بگیره و نه تنها باعث نمی شه که شما یه مطلب خاص رو یاد بگیرید، بلکه کاملا از اون مطلب و برنامه نویسی نا امیدتون می کنه و خیلی جاها شما باید مقدار زیادی فکر کنید که مثال نویسنده رو بفهمید ولی اگه یه مثال خیلی ساده برای شما راجع به اون مطلب C++‎‎‎‎‎‎‎‎ زده می شد خیلی راحت تر و عمیق تر اون مطلب رو یاد می گرفتید

موفق باشید

ehsan_faal
دوشنبه 17 فروردین 1394, 22:20 عصر
سلام.بنده هم تقریبا مثله شمام.رشتم مخابراته. ولی برنامه نویسیو خیلی دوست دارم.با اکثر زبونهای رایج هم در حد 5-6 ماه کار کردم.در مورد سوال شما باید بگم که من همیشه یا حداقل بیشتر مواقع روشی که یه مسئله رو دستی حل میکنم رو تبدیل به کد میکنم و با یکم تیون کردن به جواب میرسم.
یعنی منظورم اینه که نیاز من رو در همین حد جواب میده.

سینا اکبری
سه شنبه 18 فروردین 1394, 15:48 عصر
از پاسخ و راهنمایی همه دوستان ممنونم.
اگر میشه منابع آموزشی الگوریتم چند تا معرفی کنید که ساده باشه.


ممنون

سینا اکبری
سه شنبه 18 فروردین 1394, 15:48 عصر
از بقیه دوستان هم میخوام که روش ها و راهنمایی های خودشون رو قرار بدن که نه تنها من بلکه خیلی های دیگر هم استفاده کنند از تجربیاتشون

rahnema1
چهارشنبه 19 فروردین 1394, 07:52 صبح
سلام
پیشنهاد من اینه که حتما برنامه نویسی با squeak را تجربه کنید. این یک زبان برنامه نویسی کاملا ویژوال هست که جهت نوشتن برنامه نیازی به نوشتن کد نیست بلکه تکه های برنامه مثل پازل کنار هم قرار می گیرند. ضمن اینکه محیط جذابی داره و صرفا یه سری کد نویسی خشک نیست. برای کودکان و بزرگسالان و مبتدیان و سایر علاقه مندان مناسبه
با استفاده ازش می تونید با نوشتن برنامه و الگوریتم و فلوچارت حتی ساختن بازی آشنا بشید!
این هم لینکش
http://www.squeak.org
کاش یه تالار در همین سایت برای این زبان تشکیل می شد

سینا اکبری
چهارشنبه 19 فروردین 1394, 15:12 عصر
سلام.
ممنون ولی لینکش کار نمیکنه.
این زبان به نظر خوب میاد اما به هیچ وجه نمیتونه قدرت و کارایی زبان های برنامه نویسی دیگه رو داشته باشه

BORHAN TEC
چهارشنبه 19 فروردین 1394, 21:55 عصر
با سلام،
من همه پست های این تاپیک رو نخوندم. میخواستم بگم که یکسری ویدئو توسط گروه هیلتن منتشر شده که به توضیح الگوریم و فلوچارت میپردازه:
http://www.pfr.blogfa.com/
موفق باشید...

rahnema1
چهارشنبه 19 فروردین 1394, 23:15 عصر
سلام.
ممنون ولی لینکش کار نمیکنه.
این زبان به نظر خوب میاد اما به هیچ وجه نمیتونه قدرت و کارایی زبان های برنامه نویسی دیگه رو داشته باشه

لینک را اصلاح کردم
مهمترین کارایی squeak توی آموزش هست که فکر نکنم زبانهای دیگه چنین کارائی داشته باشند