خوش آمدید به رمان ۹۸ | بهترین انجمن رمان نویسی

رمان ۹۸ با هدف ترویج فرهنگ کتاب خوانی و تقویت قلم عزیزان ایجاد شده است.
هدف ما همواره ایجاد محیطی گرم و صمیمی و دوستانه بوده
برای مطالعه کامل رمان‌ها و استفاده از امکانات انجمن
به ما بپیوندید و یا وارد انجمن شوید.

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
برنامه نویسی در ۱۰ سال




چرا همه این قدر عجله دارند ؟
تو هر کتاب فروشی که بروید ، کلی کتاب می بینید که می خواهند در چند ساعت یا چند روز به شما کامپیوتر یا برنامه نویسی یاد بدهند (از ویندوز و اینترنت گرفته تا ویژوال بیسیک و جاوا و …) من جستجوی زیر را در آمازون انجام دادم:

pubdate: after 1992 and title: days and
(title: learn or title: teach yourself)
یعنی کتاب هایی که از سال ۱۹۹۲ تا الان چاپ شده و در عنوانشان کلمات days و یادگیری یا خودآموز وجود دارد. نتیجه شامل ۲۴۸ مورد بود. ۷۸ کتاب اول کتاب های مربوط به کامپیوتر بودند. عبارت days را با hours جایگزین کردم ؛ نتایج مشابه قبلی بود: ۲۵۳ مورد که ۷۷ تای اول در مورد کامپیوتر بودند. از ۲۰۰ کتاب صدر نتایج جستجو (در کل) ۹۶ درصد مربوط به کامپیوتر بود.

خلاصه این که یا مردم خیلی عجله دارند که در مورد کامپیوتر ها چیز یاد بگیرند یا هم که یادگیری کامپیوتر خیلی آسان تر از یادگیری چیزهای دیگر است. وگرنه هیچ کتابی در مورد بتهوون ، یا فیزیک کوانتوم یا حتی تربیت سگ ، در چند روز وجود ندارد.

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

پاسکال: در ۳ روز شاید بتوانید سینتکس پاسکال را یاد بگیرید (آن هم به شرطی که قبلا با یک زبان مشابه کار کرده باشید) اما زیاد نمی توانید درباره ی کاربرد زبان یاد بگیرید. یعنی اگر قبلا با بیسیک برنامه نویسی کرده باشید ، یاد می گیرید که برنامه ها را در پاسکال ولی با روش بیسیک بنویسید اما نقاط ضعف و قوت پاسکال را یاد نمی گیرید. به قول آلن پرلیس: زبانی که طرز فکر شما را درباره ی برنامه نویسی تغییر ندهد ، ارزش یادگیری ندارد. ممکن است شما بخواهید قسمتی از پاسکال (یا هر زبان دیگری) را یاد بگیرید تا بتوانید از ابزار خاصی استفاده کرده و کار مشخصی را انجام دهید؛ در این صورت دیگر برنامه نویسی یاد نمی گیرید ، بلکه یاد می گیرید چطور ان کار مشخص را انجام دهید. ۳ روز: همانطور که در بخش بعدی می بینید ، این مدت کافی نیست.

آموزش برنامه نویسی در ۱۰ سال
محققان نشان دادند که برای متخصص شدن در بسیاری از زمینه ها (از شطرنج گرفته تا آهنگ سازی ، اپراتوری تلگراف ، نقاشی ، نواختن پیانو ، شنا ، تنیس ، عصب شناسی ، …) حدود ۱۰ سال زمان لازم است. نکته ی مهم انجام کار پیوسته و با توجه است ، نه صرفا کاری را مدام تکرار کردن ، بلکه به چالش کشیدن خودتان با کارهایی که فراتر از توانایی فعلی تان است و تحلیل کارایی تان قبل و بعد از انجام ان کار و اصلاح اشتباهاتتان. و بعد تکرار کنید. و دوباره تکرار کنید. هیچ میانبری وجود ندارد: حتی موزارت که در ۴ سالگی اعجوبه ای در موسیقی بود ، ۱۳ سال طول کشید تا بتواند اولین کار حرفه ای و جهانیش را بسازد. گروه موسیقی بیتلز در سال ۱۹۶۴ با وارد شدن به صحنه ی موسیقی اکثر کارهایشان جزو کارهای محبوب (و به قولی نامبر وان) بودند ولی فراموش نکنید که اعضای گروه از سال ۱۹۵۷ در کلوب های کوچک لیورپول و هامبورگ فعالیت می کردند و اولین موفقیت بزرگشان Sgt. Peppers در سال ۱۹۶۷ عرضه شد. در یک مطالعه بر روی دانش آموزان در آکادمی برلین ، محققان اعضای برتر ، متوسط و پایین کلاس را مقایسه کرده و از آن ها پرسیدند که چقدر تمرین کرده اند:

همه (از هر سه گروه) نواختن را از حدود ۵ سالگی شروع کرده و در سال های اول هر کس به یک میزان فعالیت می کرد (حدود ۲ یا ۳ ساعت در هفته) اما در حدود ۸ سالگی تفاوت های واقعی نمایان شد. کسانی که در کلاس هایشان بهترین بودند ، بیش از بقیه تمرین می کردند: ۶ ساعت در هفته در سن ۹ سالگی ، ۸ ساعت در ۱۲ سالگی ، ۱۶ ساعت در ۱۴ سالگی و الی آخر تا سن ۲۰ که هفته ای بیش از ۳۰ ساعت کار می کردند. در سن ۲۰ سالگی افراد برتر نزدیک به ۱۰۰۰۰ ساعت از عمرشان را به تمرین گذرانده بودند. دانش اموزان رده بعدی حدود ۸۰۰۰ ساعت و دانش اموزان معمولی (معلمین موسیقی در آینده!) حدود ۴۰۰۰ ساعت.

شاید هم ۱۰۰۰۰ ساعت ان عدد جادویی باشد نه ۱۰ سال. به نظر ساموئل جانسون (۱۷۰۹-۱۷۸۴) زمان بیشتری لازم است:

برتری در هر رشته ای فقط با یک عمر کار به دست می آید و با قیمت کمتری قابل خرید نیست و اما دستورالعمل من برای موفقیت در برنامه نویسی:

به برنامه نویسی علاقه داشته باشید. اطمینان حاصل کنید که انقدر از برنامه نویسی لـ*ـذت می برید که حاضر باشید ۱۰ سال از عمرتان را صرفش کنید.

با برنامه نویسان دیگر ارتباط داشته باشید. کد برنامه های دیگر را مطالعه کنید. این خیلی مهم تر از هر کتاب یا دوره ی آموزشی است.

برنامه بنویسید. بهترین نوع آموزش ، انجام دادن است. در واقع حداکثر سطح کارایی برای افراد در هر رشته ای ، به طور خودکار با تجربه ی بیشتر حاصل نمی شود بلکه نیاز به تلاش تعمدی برای بهبود دارد. می توانید تحصیلاتتان را در دانشگاه هم ادامه بدهید. این کار باعث می شود از رشته تان درک عمیق تری به دست آورده و همچنین به کارهایی مشغول شوید که نیاز به مدرک دانشگاهی دارند. البته اگر از مدرسه و درس لـ*ـذت نمی برید ، می توانید تجربه ی مشابهی را در کار کسب کنید (البته با تلاش بیشتر) Eric Raymond در دیکشنری هکر ها می گوید: مطالعه و تحصیلات آکادمیک در رشته ی کامپیوتر یک شخص را تبدیل به یک برنامه نویس حرفه ای نمی کند ، همانطور که یک فرد فقط با مطالعه ی رنگ و قلم مو نمی تواند نقاش شود. یکی از بهترین افرادی که در عمرم استخدام کردم Jamie Zawinski ، فقط تا دبیرستان درس را ادامه داده بود؛ با این وجود این شخص نرم افزار های خیلی خوبی تولید کرده (موزیلا و xemacs) و گروه خودش را در googlegroups دارد و حتی انقدر پول دراورد که بتواند یک کلوب شبانه بخرد.

روی پروژه های تیمی کار کنید. در بعضی از پروژه ها بهترین و در بعضی دیگر بدترین برنامه نویس باشید. وقتی بهترین هستید توانایی های خودتان به عنوان یک رهبر گروه را تست کرده و به دیگر افراد الهام می دهید. وقتی هم که بدترین باشید یاد می گیرید که حرفه ای ها چه کار می کنند و همچنین چه کارهایی را دوست ندارند انجام دهند (چون این کارها را می سپارند به شما!)

روی پروژه های دیگران کار کنید. برنامه هایی که دیگران نوشتند را مطالعه کنید. سعی کنید باگ های برنامه های دیگران را رفع کنید. به این فکر کنید که چطور برنامه هایتان را طراحی کنید که کار کسانی که می خواهند ان را نگهداری کنند آسان تر شود.

کلی زبان برنامه نویسی یاد بگیرید. یک زبان که از شی گرایی و کلاس ها پشتیبانی کند (مثل جاوا یا سی پلاس پلاس) ، یک زبان تابعی (مثل لیسپ یا ML) (م: یا Haskell) ، یک زبان اعلانی (مثل پرولوگ یا قالب ها در سی پلاس پلاس) ، یک زبان که از coroutine ها پشتیبانی کند (مثل Scheme یا Icon) (م: امروزه زبان های دیگری از جمله سی شارپ هم coroutine را دارند) و یک زبان که از برنامه نویسی موازی پشتیبانی کند (مثل Sisal) (م: و Erlang) یادتان باشد که ما با کامپیوتر سر و کار داریم. بدانید که چقدر طول می کشد تا کامپیوترتان یک دستورالعمل را اجرا کند، یک کلمه را از حافظه واکشی کند (در هر دو حالت وجود و نبودش در کش) ، کلماتی متوالی را از دیسک بخواند ، یا به یک مکان از دیسک برود (seek) (م: منظور نویسنده آشنایی با معماری کامپیوتر است. آقای Stroustrup خالق سی پلاس پلاس هم روی این نکته تاکید دارند)

درگیر استاندارد سازی یک زبان شوید. حالا می تواند کمیته ی ANSI C++‎ باشد یا استاندارد شخصی تان برای کدنویسی (مثلا این که برای تورفتگی از ۲ فاصله استفاده کنید یا ۴ تا) در هر حال یاد می گیرید که بقیه چه چیزهایی را در یک زبان دوست دارند و همینطور علت این دوست داشتن را.

با در نظر گرفتن این موارد ، این سوال پیش می آید که صرفا با مطالعه ی کتاب چقدر می توانید یاد بگیرید. قبل از تولد اولین بچه ام ، تمام کتاب های چگونه… How To… را خواندم بودم و باز هم حس می کردم مبتدی ام. ۳۰ ماه بعد (پس از تولد دومین فرزندم) دیگر سراغ کتاب هایم نمی رفتم؛ به جایش به تجربه ی شخصی ام تکیه کردم که معلوم شد خیلی مفیدتر و مطمئن تر از هزاران صفحه کتاب هایی است که توسط متخصصین نوشته شده اند. آقای Fred Brooks در مقاله ی No Silver Bullets طرحی سه بخشی برای پیدا کردن بهترین طراحان نرم افزار مشخص کرد:

۱- به طور سیستماتیک و هر چه زودتر طراحان برتر را مشخص کنید

۲- یک مربی حرفه ای به آن ها اختصاص دهید تا مسئول و مراقب کار باشد

۳- فرصت هایی را فراهم بیاورید که این افراد از طریق ارتباط و برانگیختن همدیگر ، رشد کنند

آلن پرلیس می گوید: هر کسی می تواند حجاری یاد بگیرد: میکل آنژ باید یاد می گرفت چطور این کار را نکند. در مورد برنامه نویسان بزرگ هم همینطور است

باشه ، بروید و ان کتاب جاوا را بخرید؛ احتمالا به دردتان بخورد ولی زندگی تان یا تخصصتان در کل در طول ۲۴ ساعت ، روز یا حتی ماه تغییر چندانی نخواهد کرد.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
داکیومنت سازی و تحلیل نرم افزار


به شخصه همیشه فکر می کردم چه دلیلی دارد که برای یک پروژه کوچک یا حتی بزرگ بیام وقت بزارم و داکیومنت سازی کنم ؟ شاید شما هم همیشه این فکر را در ذهن خودتان دارید , البته خیلی ها هم این چنین فکر نمی کنند .

ولی اگر شما این چنین فکری را در سر دارید باید به شما بگویم که مهندسی نرم افزار را با برنامه نویسی شروع کردید و یا آکادمیک به دنبال آموزش آن نرفته اید. خیلی از موارد این ذهنیت وجود دارد که یک پروژه باید از یک پروسه کوچک شروع شود و مرحله به مرحله بزرگ شود و به قسمت های دیگر ارجاع گردد. حتی این چنین پروسه کاری تا جایی پیش می رود که برنامه نویس به سمت ایده پردازی هایی که خارج از پروژه هست هم سوق داده می شود که خوب هم هزینه و هم زمان بیشتری را طلب می کند.

ولی به نظر من یک بار هم شده شما باید از برنامه نویس بودن به سمت مهندس نرم افزار یا مدیریت پروژه هدایت شوید تا متوجه این موضوع بشوید که داکیومنت سازی چه فوایدی برای شما دارد و چه امکاناتی را برای شما فراهم می کند .

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

در ترم تحصیلی جاری بلخره این امکان ایجاد شد تا من به اجبار پروژه پایان ترمم یک تحلیل نرم افزاری از یکی از سیستم هایی که تاحالا ساختم داشته باشم البته به علت مشکلات قانونی و قراداد هایی که برای این سیستم بسته شد مجبور به ناقص سازی سیستم در تحلیل های خودم و همیطور بیان نمونه کوچیک شده از پروژه شدم که از ارزش این تحقیق کوچک کم نمی کند.

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

اما داکیومنت سازی چه امکاناتی را برای شما فراهم می کند :

  • توضیحات اولیه پروژه مطرح می گردد
  • به صورت سیسماتیک تحلیل می شود
  • مشکلات پروژه بیان می گردد
  • ارائه راه حل می گردد
  • مزایای راه حل ها بیان می شود
  • نیازمندی های سیستمی و انسانی اشاره هایی می شود
  • چشم انداز ها و بیان معموریت می گردد
  • محدوده پروژه تعریف می شود
  • موقعیت فعلی دوباره تحلیل می شود
  • به روز رسانی ها تعریف می شوند
  • شاخص های ارزیابی باز نشر می شود
  • سطوح دسترسی و پروفایل استفاده کننده
  • مشخص کردن نیازمندی های عملیاتی - کاربری و ...
  • ریسک های پروژه
خوب این همه امکان برای شما فراهم می گردد آیا ارزش زمان قرار دادن برای این مورد وجود ندارد ؟ با توضیح کوچک در این زمینه متوجه این موضوع می شویم که اصل این پروسه برای خود شرکت سازنده سیستم می باشد . هم به آن کمک می کند تا مشترک را راضی کند و هم جلوگیری می کند از دوباره کاری و مشکلاتی که بعد از تحویل پروژه به مشتری داده می شود .

هیچ وقت یک قرارداد متنی بدون تحلیلی نرم افزاری بدون مشکل نخواهد بود پس بهترین راه برای یک برنامه نویس یا مدیر پروژه تحلیل و ایجاد حالت های شماتیک می باشد.

خوب بیشتر از این صحبت کردن فایده ای ندارد فقط باید به این نکته اشاره کنم که در این تحلیل ساده من از UML و DFD و ... استفاده کرده ام . (در نسخه کوچیک شده )

لازم به ذکر هست که در تمام مقاله دیدگاه سیستمی پیاده سازی شده است فقط برای درک بهتر یکی الی دوتا از زیر سیستم ها تحلیل مدل سازی کوچک شده اند . به صورت خلاصه دیدگاه سیستمی به صورت کل به یک سیستم اشاره دارد.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
چگونه برنامه نویس شویم




آیا شما تصمیم به یادگیری یک زبان برنامه نویسی جدید دارید؟ برای شروع چه باید کرد؟ آیا کسانی که تصمیم به یادگیری یک زبان برنامه نویسی دارند ، به چه چیزهایی نیاز دارند؟ در این مقاله به چندین راه برای یادگیری سریع و بهتر برنامه نویسی اشاره می کنیم.


چند راه برای یادگیری یک زبان برنامه نویسی

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

حال به موارد مورد نظر اشاره می کنیم :

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

  1. کدهایی که برایتان آشنا هستند و طبق انتظار شما عمل میکنند.
  2. کد هایی که برایتان آشنا هستند اما برخلاف انتظارات شما عمل می کنند.
  3. و در آخر کد هایی که به طور کامل برایتان جدید هستند.
این سه نکته ی بالا هنگامی که یک قطعه برنامه را میبینید حالت هایی است که امکان دارد با آن روبرو شوید.

به عنوان مثال اگر یک تمرین را بخواهید با rust اما با پیش زمینه ی برنامه نویسی C و پایتون انجام دهید . آکولاد در لیست اول قرار میگیرد که شبیه Boolean رفتار میکند . ماکرو در rust مانند مورد دوم عمل خواهد کرد و در آخر ساختار کلی برنامه اشاره به مورد سوم دارد.

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

2- خواندن قوانین رسمی زبان برنامه نویسی

اگر شما تمام قوانین زبان برنامه نویسی را میخوانید دقت کنید که قبل از رد شدن از آن تمام قوانین را یکبار استفاده کنید این کار شما را از اطلاعات مرجع زبان برنامه نویسی مورد نظرتان بهرمند میسازد.

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

3-دراینترنت جستجو کنید

جستجو یکی از بهترین راه ها برای تبدیل خطا ها به اطلاعات است و یکی از بهترین شیوه برای یادگیری محسوب می شود. هنگامی که در کد خود با یک خطا روبرو می شوید به نظرتان عجیب و منحصر به فرد است اما با جستجو ی این خطا در اینترنت با عکس این موضوع روبرو خواهید شد.

به عنوان مثال: اگر یک خطا می گوید : :invalid argument exception"error on line 53" که یعنی از آرگومان نامعتبری استفاده کرده اید.باید برای پیدا کردن راه حل و نتایج بهتر برای آن ، این جمله را در اینترنت سرچ کنید. به یاد داشته باشید که بعد از علامت نقل قول : توضیحی از خطای شما قرار دارد . کافیست این جمله را جستجو کنید. حتی میتوانید این خطا را به عنوان یک مطلب در سایت خودتان بزارید این مطلب از نظر سئو بسیار قوی خواهد بود و همچنین شاید این مشکل سوال خیلی ها باشد . پس از خطا هایتان نترسید و به دنبال راه حل بگردید.

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

5-نوشتن برنامه های پیش پا افتاده مانند بازی
برای تمرین یک مفهوم جدید در برنامه نویسی با استفاده از یک مفهوم کلی یک برنامه ی ساده و بازی مانند بنویسید. سعی کنید هر بار کد خود را اصلاح و تمیز کنید و تمرکز خود را روی این مورد بگذارید اینگونه میبینید هر بار تعداد خطاهایتان کمتر می شود . اگر شما برنامه ی پازل را در پروژه های ROSETTA و یا EULER را دیده باشید میتوانید با الگو گیری از آن مشکلات خود را بیان کنید و جواب های آن را با کد خود مطابقت دهید.

6- استفاده از کد های آماده در برنامه نویسی
اگر چه نوشتن یک برنامه ی بازی برای اولین بار برایتان دشوار به نظر می رسد. اما با استفاده از یک کد سخت می توانید خود را در محیط واقعی تر آن برنامه ببینید. و دچار چالش های آن بشوید.یکی از بهترین راه برای یادگیری دچار شدن به همین چالش های سخت می باشد که میتوانید تجربه های عالی کسب کنید و کاربرد های جدید زبان برنامه نویسی خود را کشف کنید.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
چگونه برنامه نویس شویم (قسمت دوم)


در مطلب قبلی (چگونه برنامه نویس شویم ؟ ) اشاره ای به روش های یادگیری سریع تر برنامه نویسی داشتیم. در این مطلب به ادامه ی مطالب قبل میپردازیم و امیدواریم در روند یادگیری زبان برنامه نویسی جدید مدنظرتان تاثیر مفیدی داشته باشد.


ادامه ی موارد آموزش برنامه نویسی:


7-خواندن یک کتاب درباره ی زبان برنامه نویسی موردنظر
اگر چندین کتاب مدنظرتان دارید با توجه به پس زمینه ای که از زبان برنامه نویسی خود دارید کتاب موردنظرتان را انتخاب کنید. شما همچنین می توانید در اینترنت از کتاب های رایگان و آنلاین و به روز استفاده کنید.

این نکته را نیز به یاد داشته باشید که قبل از خرید کتاب مدنظرتان به تاریخ انتشار آن توجه کنید و کتاب هایی که نسخه های جدید از زبان برنامه نویسی شما را دارند انتخاب کنید.

اما خواندن کتاب های قدیمی نیز میتواند تا حدی به یادگیری و آشنایی با زبان برنامه نویسی به شما کمک کند ، شما می توانید با تحقیقات آنلاین در اینترنت به نسخه های جدیدتر این کتاب ها دسترسی داشته باشید.

8-تماشای سخنرانی ها و دوره های سازمان های برنامه نویسی
شما میتوانید با شرکت در دوره های آنلاین و ویدئو هایی که در دسترس مردم قرار میگیرد سطح خود را بالا ببرید. علاوه بر تماشای این سخنرانی ها و آموزش های علمی شما میتوانید به سخنرانی هایی که به دنبال کارگاه های ثبت هستنند و همچنین مذاکرات کنفرانس ها و پادکست(podcsts) ها در این باره توجه کنید.قرار گرفتن در بحث های مرتبط به زبان برنامه نویسی موردنظر خود میتواند یکی از بهترین راه حل ها برای یادگیری باشد . این روش خیلی بهتر از تماشای تلوزیون است که میتواند گامی لغزنده در روند یادگیری باشد.

9- خواندن کد های مشابه و مثال هایی از زبان برنامه نویسی
در بسیاری از کتاب ها نمونه کد ها و مثالهایی از زبان مدنظر شما میزنند که میتوانید آن ها را مطالعه کنید. همچنین اجرای نمونه کد در روزتا (rosetta) و تغییر و اجرای آنها و پیش بینی تغییراتی که در کد وارد می کنید کمک بسیار زیادی در روند یادگیری شما دارد.

10- خواندن کد های تولید شده
جستجو در GITHUB نیز تمام شکل های پروژه های مرتبط با زبان برنامه نویسی شما را داراست . این سایت بر اساس محبوب ترین پاسخ ها دسته بندی شده و شما میتوانید با مراجعه به GITHUB مشکلات خود را پیدا کنید.اگر شما در حال طراحی یک پروژه ی OPENSOURCE هستید میتوانید با تعامل با جامعه GITHUB و پست های IRC مشکلات خود را بیابید.

11- پیدا کردن بهترین ابزار
همانطور که شما در حال یاد گیری یک زبان برنامه نویسی جدید هستید از کاربران با تجربه تر درباره ی محیط های توسعه ی کدنویسی خود بپرسید و یک ویرایشگر متن خاص و یا یک IDE دارای پشتیبانی جهانی استفاده کنید . و این EDITORE را از نظر مدیریت وابستگی ، قالب بندی ، FUZZING و تست کد در اکوسیستم زبان موردنظر خود بررسی کنید.

12- حفظ شور و اشتیاق خود
شروع به کار با یک زبان برنامه نویسی جدید کار آسانی است اما کسی در آن ماهر و توانا می شود که سفری طولانی داشته و در طول این سفر بسیار آموزش و یادگیری داشته و از زبان خود و تجربیات آن زبان به دیگران کمک کرده و به آن ها آموزش می دهد و برای حفظ سرگرمی خود مطالعه ی آزاد درباره ی بر نامه نویسی داشته باشید و روحیه ی خود را از دست ندهید و با تلاش مستمر و علاقه به کار خود به موفقیت های بسیار بزرگ در این زمینه دست پیدا کنید.

این قسمت آخر این مطلب بود امیدواریم که بخشی از سوالات و نیاز های شما در این مطلب بوده باشد.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
GtMetrix چیست


سایت و افزونه ی GTMRTRIX به شما کمک می کند که از سرعت بارگذاری یا Page Speed سایت خود مطلع شوید .

سایت و افزونه ی Gtmetrix امکاناتی به شما می دهد که میتوانید با آن سرعته سایت خود را افزایش دهید . حال برای کسب اطلاعات بیشتر با ما همراه باشید.

GTMetrix در حقیقت از استانداردهایی که گوگل به عنوان معیار قرار داده استفاده میکند این آدرس صفحه بررسی PageSpeed سایت شما به کمک گوگل هست که البته ایرانی‌ها امکان دسترسی بهش رو ندارن مگه با یکم خلاقیت! همچنین گوگل یه افزونه برای این کار طراحی کرده است که همین کار رو انجام میدهد، این افزونه هم برای Chrome, Firefox قابل دسترس است.

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



بعد اینکه آدرس سایت مورد نظرتون رو در قسمت “Analyze Performance of” وارد کردین، روی دکمه “Go!” کلیک کنین تا عملیات بررسی سایت شروع شود. بعد از مدت کوتاهی برگه‌ای به شکل زیر باز میشود که نتایج بررسی انجام شده رو بهتون نشون میدهد.


نتیجه حاصل از دو بخش اصلی Summary و Breakdown تشکل شده:

اطلاعات نمایش داده شده در Summary : این قسمت نمایش آماری اطلاعات بدست اومده در بخش Breakdown رو نشون میدهد.

Page Speed Grade تو این قسمت به کمک یک درصد (85%) میزان بهینه بودن موارد موجود در بخش Breakdown را به تماشا میگذارد.

YSlow Grade در این قسمت هم مثل قسمت پیش یک درصد (83%) به شما نمایش داده شده با این تفاوت که این بار ملاک‌های موجود در بخش YSlow واقع در Breakdown مد نظر قرار گرفته. YSlow ابزار و استانداردهای یاهو برای PageSpeed هست.

Page load time زمان بارگذاری سایت رو بر حسب ثانیه نشون میدهد .

Total page size حجم برگه‌ای که اون رو مورد بررسی قرار دادین هست.

Total number of requests تعداد درخواست‌هایی که به سرور برای بارگذاری قسمت‌های گوناگون سایت ارسال میشود.



در ان بین به نکته ای اشاره میکنیم که هرچه سرعت ردو بدل اطلاعات بین سرور و مرورگر کمتر باشه سرعت به مراتب بالا می رود.


اطلاعات بدست آماده در بخش Breakdown در GTMetrix از چهار زبانه تشکیل شده که به ترتیب زیر هستد:

PageSpeed اطلاعات بدست اومده از بررسی سایت با الگوریتم های گوگل رو نشون میدهد.

YSlow اطلاعات بدست اومده از بررسی سایت با الگوریتم‌های یاهو رو نشون میدهد.

Timeline تو این بخش با استفاده از نمودار زمان بارگزاری هر بخش رو نشون میدهد. میشه اطلاعات مفیدی رو از نحوه بارگذاری سایت تو این بخش دید.

History در این بخش تاریخچه‌ای از بررسی‌هایی انجام شده بر روی آدرس وارد شده رو نمایش میده تا از افت و خیز اون در فواصل گوناگون اطلاع پیدا کنین.

در این مطلب تنها به بخشی از مزایا و مراحله page speed اشاره شد در مطلب بعدی به قسمت ها و مراحله بعدی اشاره می شود. امیدوارم مطلب برایتان مفید بوده باشد.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
انتخاب زبان برنامه نویسی
خیلی از افراد در انتخاب زبان برنامه نویسی دچار مشکل می شوند. اینکه چه زبانی را انتخاب کنید که مبتنی بر علایق شما باشد بسیار مهم است. همانطور که گفتیم شاخه برنامه نویسی به زیر شاخه های بسیاری تقسیم می شود، مانند Desktop Application و Web Application یا برنامه های موبایل و همچنین برنامه های تحت وب. هر یک از این شاخه ها نیازمند یادگیری یک یا چند زبان برنامه نویسی هستند.

1. برنامه نویسی موبایل
برنامه های موبایل مبتنی بر چندین پلاتفرم مختلف نوشته می شوند. برای مثال برای Android شما می بایست حتماً زبان برنامه نویسی جاوا را یاد بگیرید. نوشتن برنامه های Android شدیداً وابسته به زبان جاوا هستند. البته فرم ورک های دیگری نیز وجود دارند مانند Ionic یا Apache Cordova و همینطور Xamarin که بـ*ـو*سیله آن ها می توانید برنامه هایی برای Android بنویسید. اما برنامه های Android به صورت مستقیم با زبان جاوا نوشته می شوند که اصطلاحاً به آن ها برنامه های Native می گویند. برای برنامه های IOS، شما باید با Swift که رابـ ـطه مستقیمی با زبان Objective-C دارد آشنا باشد. یا برای برنامه های Windows Phone امکان نوشتن برنامه ها با زبان سی شارپ یا HTML و CSS و JavaScript وجود دارد.

2. برنامه نویسی وب
اگر قصد دارید کار برنامه نویسی وب انجام دهید ابتدا باید مشخص کنید که از چه تکنولوژی می خواهید استفاده کنید. معروف ترین ها در حوزه برنامه نویسی وب PHP و ASP.NET هستند، البته تکنولوژی های دیگری مانند JSP نیز وجود دارند، اما به انداه PHP و ASP.NET بازار کار ندارند. خیلی ها سر اینکه PHP بهتر است یا ASP.NET دائماً در حال بحث کردن هستند. اما این نکته رو بگم که شما چه ASP.NET و چه PHP رو به صورت حرفه ای یاد بگیرید، می توانید هر سایتی را طراحی کنید. در حال حاضر سایت های بزرگی وجود دارند که با PHP نوشته شدند، برای مثال Facebook کاملاً مبتنی بر PHP و MySQL می باشد یا سایت هایی مانند ITPRO و StackOverflow با ASP.NET نوشته شده اند. به نظر شخص خود من، مزیتی که یادگیری ASP.NET نسبت به PHP دارد این است که دست شما برای نوشتن برنامه های دیگر مانند Desktop Application باز خواهد بود، زیرا با یادگیری ASP.NET می بایست زبان سی شارپ را نیز فرا بگیرید. هم PHP و ASP.NET ریشه در زبان سی دارند. در کنار PHP و ASP.NET نیز باید با HTML و CSS و JavaScript نیز آشنایی داشته باشید. همچنین شما باید با بانک های اطلاعاتی نیز آشنا شوید، معمولاً برنامه نویسان PHP از بانک MySQL و برنامه نویسان ASP.NET از بانک SQL Server استفاده می کنند. البته شما در ASP.NET می توانید از بانک MySQL استفاده کنید و بالعکس.
تکنولوژی جدید دیگری نیز که معرفی شده NodeJS می باشد که کاملاً مبتنی بر JavaScript است و خیلی از برنامه نویسان، NodeJS را انتخاب خود برای برنامه نویسی وب قرار می دهند و بسیار هم محبوب است.

3. طراحی وب
خیلی از افرادی که تازه وارد دنیای برنامه نویسی وب می شوند، تفاوت طراحی وب و برنامه نویسی وب را نمی دانند. طراح وب کسی است که پوسته یا قالب یک سایت را طراحی می کند، یعنی ظاهر سایت که کاربر نهایی با آن سر و کار دارد، اما برنامه نویس وب، شخصی است که کد مربوط به یک سایت را می نویسید، کدهایی مانند ارتباط با بانک اطلاعاتی، اعتبار سنجی کاربران و ... یک طراح وب علاوه بر داشتن خلاقیت و زوق هنری باید با موارد زیر آشنایی داشته باشد:

  1. زبان HTML برای ایجاد صفحات وب
  2. زبان CSS برای استایل دهی به صفحات وب
  3. JavaScript برای نوشتن کدهای سمت کاربر
  4. jQuery که یک کتابخانه مبتنی بر javaScript است
  5. Bootstrap برای راحتی کار در ایجاد صفحات وب
  6. Photoshop برای ایجاد طرح اولیه وب سایت
مواردی که گفته شد از الزمات اولیه برای یک طراح وب سایت، در کنار این موارد آشنایی با تئوری رنگ ها، مفاهیم گرافیک نیز بسیار مهم بوده و به ایجاد طرح های جذاب کمک می کنند.

4. برنامه نویسی Desktop Application
اکثر ما با این مدل برنامه ها هر روز سر و کار داریم، برنامه هایی مثل Word یا Excel. این ها برنامه های Desktop هستند. یک برنامه نویس Desktop برای ایجاد این برنامه ها می توانند از بین Java و NET. یکی را انتخاب کند. البته تکنولوژی های دیگری نیز وجود دارند مانند C++ MFC یا C++ QT، اما برای راحتی و سرعت کار Java یا NET. توصیه می شود. هر دو زبان بازار کار خوبی دارند، اگر شما Java را انتخاب کنید، یادگیری زبان جاوا باید اولویت شما باشد. اما در صورت انتخاب NET.، می توانید بین Visual Basic و C# یکی را انتخاب کنید. پیشنهاد من به شما انتخاب C# است، زیرا بازار کار بهتری دارد و منابع و کتاب هایی که در اینترنت وجود دارند اکثراً بر اساس زبان سی شارپ ارائه شده اند. شاید بتوان مزیتی که جاوا نسبت به NET. دارد را قابلیت اجرای برنامه های جاوا بر روی پلاتفرم های مختلف مانند لینوکس، ویندوز و ... ذکر کرد. البته NET. نیز از این قابلیت پشتیبانی می کند، اما نه به صورت کامل! در کنار یادگیری زبان های برنامه نویسی، یادگیری بانک های اطلاعاتی مانند SQL Server یا Oracle را نیز جزو برنامه خود قرار دهید.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
ذهن شرطی شده برای الگوریتم ها

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


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T

*KhatKhati*

مدیر بازنشسته رمان ۹۸
کاربر رمان ۹۸
  
عضویت
16/7/20
ارسال ها
2,694
امتیاز واکنش
9,213
امتیاز
233
محل سکونت
گلنمکستان
زمان حضور
63 روز 21 ساعت 26 دقیقه
نویسنده این موضوع
برای خودمان کار کنیم یا در جایی استخدام شویم؟
خیلی ها این سوال در ذهنشان شکل میگیرد که بهتر است برای خودمان کار کنیم یا در جایی استخدام شویم؟ شک نکنید که برای شروع بهتر است در یک سازمان استخدام شوید. حتی پیشنهاد می کنیم در صورتی که تازه شروع کردید به عنوان کار آموز برای یک شرکت کار کنید تا راه و چاه کار را یاد بگیرید. بودن در کنار افراد با تجربه کمک زیادی به شما می کند. در قسمت قبلی گفتم که مطالعه در پیشرفت شما تاثیر زیادی دارد، اما مطالعه به تنهایی کافی نیست و خیلی از دانسته های شما در صورتی که کاری را به صورت عملی انجام ندهید به سرعت از ذهنتان پاک خواهد شد. باید خودتان را درگیر کار کنید تا مواردی که یاد میگیرید را بتوانید استفاده کنید. یک برنامه نویس موفق، به دلیل تجربه موفق است، نه به خاطر چیزهایی که با مطالعه فراگرفته. مطالعه و تجربه در این کار مکمل هم هستند. زمانی که در یک سازمان استخدام می شوید، تازه یاد میگیرید که چگونه از دانسته های خود در پروژه های واقعی استفاده کنید. به مرور تمام این ها تبدیل به تجربیات می شود و از شما یک برنامه نویس موفق خواهد ساخت. به مرور زمان و با کسب تجربه می توانید برای خودتان کار کنید. در این مرحله باید از خودتان یک برند بسازید. شاید نیاز باشد در ابتدای این مرحله، چند پروژه را با قیمت های خیلی پائین تر انجام دهید تا دیگران شما را بشناسند. زمانی که قصد دارید برای خودتان کار کنید، حتماً یک وب سایت شخصی داشته باشید و تخصص های خود را در آن قرار دهید. می توانید با فعالیت در سایت هایی که در زمینه فعالیت شما وجود دارند برند سازی کنید.


برنامه نویسی چیست؟

 
  • تشکر
Reactions: SAEEDEH.T و Saghár✿
shape1
shape2
shape3
shape4
shape7
shape8
بالا