روز چهاردهم – چالش ۱۰۰ روز کد زدن

درود بر شما عزیزان،

امیدوارم اطلاع رسانی این چالش حوصله تون رو سر نبرده باشه و انگیزه ای باشه برای پیوستن شما عزیزان به دانش بسیار زیبای برنامه نویسی. 😉

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

تا درودی دیگر،‌ بدرود.

نوشته روز چهاردهم – چالش ۱۰۰ روز کد زدن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

Front end در برابر Back end! تفاوت این دو چیست؟ از کجا باید شروع کنیم؟

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

ویدیو تفاوت‌های فرانت اند و بک اند:

Fhttps://aparat.com/v/XTtIn

«اگر در دیدن ویدیو مشکل دارید ویدیو را کانال آپارات کهکشان یا وبلاگ کهکشان مشاهده کنید»

چرا برنامه نویسی به دو بخش تقسیم شده است؟

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

Front End ها افرادی هستند که در سمت کاربر برنامه نویسی میکنند اما دولوپورهای Back End در پشت صحنه هستند

اما یک طبقه‌بندی دیگر در دنیای برنامه‌نویسی موضوع Back end و Front end است. در یک برنامه (به عنوان مثال یک برنامه حسابداری آنلاین را در نظر بگیرد) از فناوری‌های و ساختارهای مختلفی استفاده می‌شود که از جمله آن‌ها می‌توان به ظاهر برنامه، APIها، زیرساخت و پایگاه داده اشاره کرد. از آنجایی که طبیعتا همه دولوپرها به تمامی این موضوعات تسلط ندارند و لازم است بتوان به نوعی ارتباط و همکاری بین این بخش ها را شکل داد، در یک طبقه‌بندی دیگر می‌توان یک برنامه کامپیوتری را به دو بخش Front و Back تقسیم کرد.

در بخش فرانت اند هسته اصلی از HTML و CSS تشکیل شده است

فرانت اند چیست؟

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

برنامه نویسان فرانت اند بدون درگیر شدن با بخش‌های زیرساختی یک نرم‌افزار تلاش دارند تجربه خوشایندی را برای کاربران رقم بزنند و از این رو با مباحث مختلفی از جمله برنامه نویسی سمت کاربر (که در بخش وب عموما شامل HTML و CSS و JS می‌شوند)، مباحث تجربه کاربری و زیبایی شناختی، رابط کاربری و …آشنا هستند. البته هر کدام از این بخش‌ها هم دانش و علم خود را می‌طلبد و گاها چندین نفر در هر کدام از این شاخه‌ها فعالیت می‌کنند تا در نهایت یک رابط کاربری خوب را شکل دهند.

بر خلاف بخش Front در بخش Back end ما شاهد تعداد بسیار گسترده‌ای از زبان ها و ابزارهای برنامه نویسی هستیم

بک اند چیست؟

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

در این بخش زبان‌ها و ساختارهای برنامه‌نویسی متعددی مورد استفاده قرار می‌گیرد که از جمله آن‌ها می‌توان به زبان‌ها و ساختارهای SQL، My SQL، پایتون، جاوا، ASP .NET اشاره کرد. در این بخش هم به دلیل گستردگی فعالیت‌ها و مهارت‌های مورد نیاز شاهد همکاری یک تیم از جمله تیم پایگاه داده و تیم برنامه نویسی Back End هستیم که همگی با یکدیگر در تلاش هستند تا زیرساخت مناسبی را برای برنامه فراهم کنند.

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

قضیه Full Stack دولوپر چیست؟

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

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

چرا همیشه از فول استک ها استفاده نکنیم؟

دنیای برنامه نویسی دنیای بسیار گسترده‌ای است و یک نفر نمی‌تواند به همه این دانش‌ها مسلط باشد. در ساخت یک برنامه کوچک و ساده که تنها نیاز به دانش مرتبط با HTML و CSS در بخش فرانت و یک پایگاه داده ساده مانند My SQL در بخش ذخیره سازی و یک برنامه سمت سرور مانند PHP دارد ممکن است یک فرد این توانایی را داشته باشد که همه این موارد را بداند و در نتیجه خودش برنامه را از صفر تا صد طراحی کند. اما در پروژه‌های بزرگ ممکن است دیگر پایگاه داده My SQLجوابگو نباشد و لازم باشد از پایگاه داده تخصصی مانند Mongo DB استفاده شود. یا حتی در پروژه‌های بزرگ گاها از چندین زبان برنامه نویسی به طور همزمان برای ارتباط با سرور استفاده می‌شود که مهارت در همه این زبان ها کار ساده‌ای نیست.

در چنین شرایطی لازم است به سراغ برنامه نویسان تخصصی برویم که صرفا روی یک حوزه خاص متمرکز شده‌اند.

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

یقینا پاسخ دقیقی به این سوال وجود ندارد و عوامل مختلفی از جمله علاقه شخصی در آن دخیل است. در دوره های برنامه نویسی مختلفی مانند دوره MCSA: Web Application هر دو بخش پوشش داده می‌شود و افراد هم به مهارت‌های مرتبط با سمت کاربر آشنا می‌شوند و هم زبان ASP .NET را برای ارتباط با سرور آموزش می‌بینند. اما عموما گرایش بیشتری نسبت به برنامه نویسی سمت فرانت وجود دارد چراکه در این بخش خروجی کار ملموس تر است و گاها برای کاربران این ویژگی جذابیت بیشتری را به همراه دارد.

نوشته Front end در برابر Back end! تفاوت این دو چیست؟ از کجا باید شروع کنیم؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

تبدیل Json به Class

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

ویژوال استودیو همیشه آدم رو شگفت زده میکنه! بیخود نیست که همیشه بهترین IDE دنیا هستش.

روش کار به این صورته:

محتوای جیسون رو کپی کنید.

وارد ویژوال استودیو بشید.

از منوی Edit به بخش Special Paste برید.

گزینه Paste Json As Classes رو بزنید تا مدل ایجاد بشه.

نوشته تبدیل Json به Class اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مقایسه NodeJS و PHP ، نبرد برتری و بقا !

قبل از اینکه به مقایسه php و  nodejs بپردازیم در مرحله اول باید بفهمیم که چرا یک همچین مقوله ای در بین جوامع برنامه نویس به وجود آمده است مخصوصا در بین برنامه نویس های backend . همه این بحث ها بر سر استفاده از php  و یا Nodejs از افزایش تقاضای کاربران برای استفاده از برنامه های گوشی های هوشمند آغاز شد.به طوری که apple store شرکت اپل دربرگیرنده ۲ میلیون برنامه و play store شرکت Google دربرگیرنده بیش از ۲٫۲ میلیون برنامه می باشند.موفقیت بسیاری از این برنامه ها، بازی ها و مسنجرها باعث شده است که برنامه نویسان backend  مجبور شوند خود را با جدیدترین تکنولوژی که بتواند درخواست های همزمان را بهتر مدیریت کند انطباق دهند.میلیون ها نفر از کاربران این برنامه ها اقدام به مبادله نوعی از این داده ها می کنند به همین دلیل پردازش این حجم وسیع از داده نیازمند یک زیرساخت قوی و مقیاس پذیر و سریع هست .

با یادگیری زبان ماشین و داده های بزرگ(Big-data) که به سرع در حال پیشرفت و توسعه هستند می توانیم خود به سرعت در این مسیر قرار دهیم و شطح خود را به سطوح بالاتر و جدیدتر ارتقاء دهیم.

پیش درآمدی بر مباحث فنی :

فرانت-اند(front-end) : تمامی نرم افزار های موبایلی و یا تحت وبی که از نزدیک در تعامل با آن ها قرار می گیرد و از ویژگی هایی که در اختیار شما قرار می دهند استفاده می کنید. مانند نرم افزار های موبایلی که بر روی گوشی های هوشمند خود نصب دارید.

بک-اند(back-end) : بخش نرم افزاری یک برنامه که شاید شما هیچ نشانه ای از آن را به ظاهر نمی بینید ولی با اجرای آن یک سری فرآیند اجرا شده و اطلاعات مورد نیاز فرانت-اند را ارسال می کند و  فرآیندهایی که شما در بخش فرانت-اند انجام می دهید مانند ذخیر یک عکس را مدیریت کرده و این کار را برای شما انجام می دهند. و می توان گفت بخشی است که ارتباط فرانت-اند با سرور را برقرار می کند و سرور نیز یک ماشین با پردازش های مختلف است که درنهایت یک ارتباط پایدار را با اینترنت و پایگاه داده برقرار می کند.

معروف ترین تکنولوژی های بک-اند(سمت سرور) :

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

  • زبان های سمت سرور مانند : PHP , RUBY , PHYTON , JAVA , .NET , NODEJS
  • پایگاه داده : MYSQL(RDBMS) , NOSQL(DYNAMIC DATABASE LIKE MONGODB)

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

در زبان های برنامه نویسی سمت سرور زبان php زودتر از NODEJS منتشر شده و مورد استفاده قرار گرفته است از طرفی پی اچ پی برای مدیریت تمامی وظایفی که در سمت سرور باید انجام شود از پورت ۸۰ استفاده می نماید و همچنین از دیتابیس MYSQL جهت انجام فرآیندهای مربوطه استفاده می شود.

جاوااسکریپت تنها چیزی است که شما به طور مستقیم در ارتباط با آن هستید و توسط مرورگر به طور مثال مدیریت می شود.بسیاری از  سیستم های مدیریت محتوا از PHP برای اجرای فرآیندها در سطح سرور استفاده می کنند ولی با ظهور نود جی اس(NODEJS) در سال ۲۰۰۹ میلادی توسط رایان دال(ryan dahl) می توان گفت نبرد بین بقا و برتری میان این دو ساختار آغاز شد.در حال حاضر هر دوی این ها نقش خود را برای اینکه برنامه نویس را متقاعد به استفاده از خود کنند تلاش می نمایند و این درحالی است که یکی مخزنی از تجربه های بسیار شگفت انگیز و تاریخچه ای چند ده ساله و دیگری چراغ خاموش با سرعت و برتری در حال عبور از آن است .

اجازه دهید هر یک از این ساختارهای برنامه نویسی سمت سرور را با توجه به پارامترهای زیر با یگدیگر مقایسه نماییم :

عملکرد بهینه سمت سرور :

انتخاب php  یا nodejs تماما بستگی به ساختار پروژه حال چه سایت و چه اپلیکیشن دارد اما اگر قرار است دیتای بزرگی را در سطح سرور جابه جا کنیم و یا نیاز به ارتباط های همزمان سریع داریم نود جی اس بهترین گزینه می باشد  و همه این موارد به دلیل ساختار رویدارمحور(event-driven) و مسدود ناپذیر(non-blocking) نود جی اس انجام می شود.

با توجه به گزارش ها در ساختار سمت سرور برنامه موبایلی سرکت linkdin این شرکت توانسته بود تعدادسرورهای خود را از ۳۰ به ۳ کاهش دهد و این درحالی است که هم اکنون ظرفیت کافی برای برای مدیریت زیرساخت و منابعی که در اختیار دارد را دارا می باشد  و همه این ها به دلیل تغییر زیرساخت از ROR به nodejs است. و پی پال نیز مشابه linkedin همچین رویه ای را طی کرد و از java به nodejs تغییر وضعیت داد. نود جی اس تقریبا دو برابر سریع تر به واسطه افراد کمتری و البته از ۳۳% کاهش کد و ۴۰% فایل های ایجادی کمتر توسعه داده شده است.

عملکرد :

استاندارد php zend runtime از ساختار interpreted compilation strategy جهت اجرای کد کمتر و بهینه شده استفاده می کند و این درحالی است که نود جی اس از تلفیقی از JIT و موتور جاوااسکریپv8 گوگل کروم استفاده می کند و این استراتژی برای زبان های پویا خود را اثبات کرده است اما اغلب زمان شروع را افزایش می دهد.

Multitasking  :

همانطور که گفتیم نود جی اس کارآمدی فوق العاده ای در مدیریت چندین درخواست همزمان را دارد و این امکان پذیر است زیرا نود جی اس از ساختارهای رویداد محور که مسدود نمی شوند و بر روی یک ترد اجرا می شوند بهره برده است اما در عوض php از ساختاری استفاده می کند که مسدود پذیر است (Blocking) و با توجه به این محدودیت پاسخ به درخواست ها بستگی به پردازش های Thread دارد. در این شرایط اگر یک عملیات سنگین همراه با چندیدن درخواست همزمان توسط کاربر درخواست شود سرور از منابع موجود برای پردازش درخواست ها (request) استفاده کرده و انجام این پردازش ها با تاخیرهایی در ارسال response مناسب برای اپلیکیشن و یا سایت کاربر همراه است.وب سرور هایی همچون Apache و Nginx راهکارهایی برای اینکه php عملکرد بهتری را در مواجهه با multi-taskingها داشته باشد در نظر گرفته اند. ولی همه اینها محدودیت هایی بیشتر از آنکه خود زبان از multi-tasking پشتیبانی کند دارند.

دسترسی به کامند لاین (command-line) :

پی اچ پی (php) : $php –i

نود جی اس (nodejs) : $node

فرآینده های سنکرون و آسنکرون (synchronous or asynchronous) :

سنکرون () : کدها خط به خط اجرا می شوند به طوری که بعد از اینکه  فرآیند یک خط انجام شد فرآیند اجرای خط بعد آغاز می شود.

آسنکرون () : همه خطوط برنامه در یک زمان اجرا می شوند.

فرآیندها در پی اچ پی با توجه به ساختار سنکرون اجرا می شوند البته API هایی هستند که امکان اجرای فرآیندها را به شکل آسنکرون در میان فرآیندهای سنکرون می دهند. تصور کنید که یک تابع در برنامه خود دارید که باید اجرا شود و خط بعد از این تابع زمان اجرا خواهد شد که اجرای تابع تمام شود و نتیجه مطلوب بدست آید. این امر باعث کاهش سرعت و کارایی و انتظار کاربر برای دریافت response مناسب می شود.

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

توجه : برنامه ممکن است در بخشی از اجرای فرآیند گیر کند اگر تعدادی از توابع نیاز داشته باشند به اینکه داده ای از یک تابع دیگر به آنها پاس داده شود. این مشکل هم در نود جی اس با وجود ویژگی Async/await که کمک می کند بلاکی که نیاز است به صورت saynchronous اجرا شود.

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

در پی اچ پی کاربر دائما بین زبان ها با ساختار های متفاوت جا به جا شده و اقدام به نوشتن برنامه مد نظر خود می کند. به طوری که ما عمدتا از بخش های متفاوتی مانند mysql برای دیتابیس  و php برای سمت سرور استفاده می نماییم و از طرفی دانستن مواردی همچون html,css و js  مزیت محسوب می شود.

این درحالی است که پلتفرم نود جی اس ساختاری مبتنی بر جاوااسکریپت دارد. پس زمانی که شما جاوااسکریپت و استانداردهای (ٍES6…) آن را بدانید در نهایت هم فرانت-اند را خواهید داشت و هم با کمی تلاش برای آشنایی با متودهای نود جی اس می توانید به بک-اند هم مسلط شده و دیگر نیازی نیست که برای اجرای پروژه های خود بین زبان ها و ساختارهای مختلف برنامه نویسی جا به جا شوید زیرا دیگر شما با دانش جاوااسکریپتی خود می توانید و فرانت-اند و هم بک-اند را کار کنید.

ماژول ها :

در پی اچ پی برای اینکه از ماژول های مختلف در پروژتان استفاده کنید می توانید از سرویس هایی همچون PEAR و COMPOSER استفاده و ماژول مدنظرتان را نصب و مدیریت نمایید.

نود جی اس نیز در اقدامی مشابه از یک پکیج منیجر با عنوان NPM پشتیبانی می کند که می توانید از طرق آن به ماژول ها دسترسی داشته باشید.

فریمورک ها :

پی اچ پی یکی از زبان های سمت سرور محبوب و پر کاربرد می باشد. که به همین دلیل فریمورک های مختلف با ویژگی های شگفت انگیزی برای آن وجود دارد مانند Laravel , Cakephp ,codeigniter و … باعث افزایش سرعت کارایی و امنیت بیشتر در پروژه ها می شوند.

نود جی اس هم مشابه پی اچ پی دربردارنده فریمورک هایی همچون Express , meteor , koa ,hapi , sails و …. می باشد

دیتابیس :

پی اچ پی از نوعی دیتابیس رابطه ای مانند Mysql , MariaDB , PostgreSQL و … استفاده می کند و این درحالی است که می توان با کمک از ابزارهایی خاص از دیتابیس NoSql استفاده کرد هرچند که عمومیت ندارد.نکته ای که باید به آن اشاره شود این است که اکثرا این نوع دیتابیس ها مورد هجوم حملات sql injection و XSS قرار می گیرند.

نود جی اس به صورت اختصاصی و مدیریت شده با دیتابیس های NoSql کار می کند مانند MongoDB , couchDB و … که هرکدام از طریق NPM در دسترس هستند و می توان به راحتی آنها را نصب و مورد استفاده قرار داد.برای این نوع دیتابیس هم حملات nosql injection وجود دارد ولی نه به اندازه دیتابیس های  رابطه ای  plghj sql injection البته امری طبیعی است در ساختار این نوع از دیتابیس ها از کدهایی استفاده شده است که در برابر اینگونه حملات مقاوم باشند.

میتونید برای مطالعه نوشته های بیشتر در حوزه جاوااسکریپت به بلاگ سایتمون مراجعه کنید.

نوشته مقایسه NodeJS و PHP ، نبرد برتری و بقا ! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

۵ عادت قدرتمند برنامه نویسان موفق

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

https://anchor.fm/codemy/episodes/ep-e4dp5a/a-ahhpr5

کست باکس | اپل پادکست | گوگل پادکست


لری وال، سازنده زبان پرل، یه جمله معروف داره. اون میگه:

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

شاید این حرف براتون عجیب باشه. ولی دلایلی که آورده جالبن.

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

صبر کمشون باعث میشه تو حین نوشتن یه برنامه، پیش دستی بکنن و امکاناتی رو به اون اضافه کنن که مطمئن هستن جزو درخواست های بعدی کارفرما خواهد بود.

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

برنامه نویسای موفق لزوما جزو بهترین و بزرگترین برنامه نویسا نیستند.

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

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

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


حرفه ای باشید

استیو مارابولی محقق آمریکایی میگه:

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

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

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

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

همیشه به یاد داشته باشید که حرفه ای گری یعنی مسئولیت پذیر بودن. امکان نداره که همیشه حق با شما باشه و کارهاتون همونجوری پیش بره که انتظارشو دارین. اما نیاز هست که همیشه اشتباهاتی که انجام دادید رو بپذیرید و به دنبال جبران و تصحیحش باشید.

یک اشتباه رو دوبار تکرار نکنید

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

اگر یک عذرخواهی با یک بهانه یا دلیل همراه شود، به این معنیه که اون شخص قراره دوباره مرتکب همین اشتباه بشه.

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

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

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

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

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

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

چجوری میتونین مطمئن شین که کدتون بدون اشتباه کار میکنه؟ جوابش اینه که تستش کنید.

حتی اگر مهلتتون تموم شده و فشار زیادی روتون هست که گوشه های کار رو بزنید و تمومش کنید، به هیچ وجه این کارو نکنید. از هر مدل تستی که بلدین استفاده کنین. تست هایی مثل Unit Testing, Integration Testing میتونه خیلی کمکتون کنه.

اعتبار شما بستگی به این داره که، کدتون چقدر درست کار می کنه و فقط تست کردنه که میتونه احتمال درستی کد روبه ۱۰۰% نزدیک کنه. مسئولیت کدتون با خودتونه، پس بهتره خط به خطش رو تست کنید.

حالا اگه کدی که نوشتین “غیر قابل تست” باشه چی؟

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

همیشه کداتونو منعطف بنویسین

فرض اصلی پروژه های نرم افزاری، اینه که به راحتی قابل تغییرن. اگه کدی که شما مینیویسین این قابلیتو نداره ینی یه جای کارو اشتباه رفتین.

پروژه های زیادی دچار این مشکل میشن. تو این پروژه ها، برنامه نویسای زیادی میان و میرن و هرکدوم به این کد غیر منعطف چیزی رو اضافه می کنند و در نهایت یه هیولایی رو بوجود میارند که نه میشه دوباره نوشتش نه میشه براحتی نگهش داشت.

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

یه اصلی هست به اسم Merciless Refactoring، یا اصلاح بی رحمانه. به این معنی که زمانی نوشتن یه کد رو به پایان برسونین که مطمئنین ازین بهتر و تمیز تر نمیشد بنویسینش. سعی کنید همیشه این اصل رو رعایت کنید.

و در نهایت همیشه در حال یادگیری باشید

اشتیاق به یادگیری رو در خودتون پرورش بدید. اگر این کار رو بکنید، هیچ وقت رشدتون متوقف نمیشه.

میخوام دوره CCIE رو بگذرونم، اما کارفرما حمایتم نمیکنه.

میخوام React native یاد بگیرم. ولی نمیتونم یه زمان خالی توی برنامه شلوغم پیدا کنم.

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

ساعات کاری هفتتون رو یه جوری تنظیم کنین، که علاوه بر تایم متعلق به کارفرماتون، یه ساعت هایی هم برای خودتون باقی بمونه که تو اون ساعت ها به آموزش و رشد خودتون بپردازین. میتونین از قاعده ۲۰-۴۰ استفاده کنید. ینی هفته کاری خودتون رو حداقل ۶۰ ساعته در نظر بگیرین که ۴۰ ساعت متعلق به کارفرما و ۲۰ ساعت هم برای خودتونه. اگر از وقتتون آگاهانه استفاده کنید ۲۰ ساعت، کار اضافه در هفته، اصلا سخت نیست. سعی کنین یادگیری و رشد جزئی از عادت و فرهنگ زندگی روزمرتون بشه.

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

همونطور که Seema Openers گفته:

خود آموزی یه راه رشد ساده و در دسترس برای همس، اما فقط کسایی این کارو می کنن که نمیخوان زندگی کوچک و بی هدفی داشته باشند.


آیا شما هم عادتی داشتین که باعث انجام بهتر کارهاتون شده باشه؟

منبع: http://bit.ly/2X1uxio

نوشته ۵ عادت قدرتمند برنامه نویسان موفق اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

صد روز کد میزنم | گزارش روز سوم و چند عدد پلی لیست برای کد زدن

سی اس اس: سلام برادر جاوااسکریپت – من برادر css و ایشون html هستند.

سلام

امروز سه تیر تابستان ۹۸ هستش و من، پارسا اخبار در روز سوم از چالش صدروزکد به سر می برم.

باید بگم که قول آموزش hexo که در مطلب قبلی داده بودم رو قراره در یکسری پست مختص به خودش منتشر کنم و اما

گزارش امروز

امروز بخش basic css رو در سایت freecodecamp.org تموم کردم و تصمیم گرفتم که از فردا با کتاب زیر تا حدودی با جاوا اسکریپت آشنا بشم.

جاوااسکریپت شیوا | کتابی آزاد و زیبا
http://eloquentjs.ir/
گطhttps://eloquentjavascript.net/

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

https://medium.com/level-up-web/youtube-background-music-for-coding-99b592a74dc8

من که خیلی از خوشم اومد. پیروز باشید…

سوم تیرماه ۹۸

پارسا اخبار

نوشته صد روز کد میزنم | گزارش روز سوم و چند عدد پلی لیست برای کد زدن اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

کلاس Utils در برنامه نویسی اندروید

کلاس Utils کلاسی هست که به ما در برنامه نویسی کمک می کنه که کارهای روتین و تکراری رو مثل در آوردن لیست فایل های یک دایرکتوری، چاپ کردن درست متغیر ها، کوئری های تکراری به سرور و … رو انجام بدیم. همچنین متد هایی که در کلاس های مختلف به کارمون میاد رو در این کلاس نگه می داریم. (این حاصل تجربه ی من از خوندن کد های پروژه های اندروید اوپن سورس معروف بوده).

امروز اتفاقی یه کتاب خونه ی Utils خیلی کامل توی گیت هاب دیدم که دوست داشتم با شما هم به اشتراک بگذارم در این لینک

مشخصات اجمالی:

Android Utilities

Library Project for utility classes that can make me(and others) more productive. AndroidUtils requires Android 4.0+.

Utility classes included

  • Utils – Set of general purpose utility methods.
  • FileUtils – Set of general purpose utility methods for file operation.
  • MediaUtils – Set of utilities to handle media resize, scaling, rotation and other relevant stuff.
  • ViewUtils – Set of utilities to handle Android Views’ related stuff.
  • ImageUtils – Set of utilities to handle image manipulation.
  • AudioUtils – Set of utilities to handle audio recording, playing and saving to disk.
  • DateUtils – Set of utilities to handle date manipulation.
  • StorageManager – Android SharedPreferences abstraction.
  • YouTubeUtils – Set of utilities to handle YouTube related stuff.

نوشته کلاس Utils در برنامه نویسی اندروید اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

دروپال CMS یا CMF ؟ مسأله این است.

همانطور که می دانید در سال ۲۰۰۰ میلادی دو تن از دانشجویان دانشگاه آنتورپ بلژیک با نام های درایس بایترت (Dries Buytaert) و هانس اسنایدر (Hans Snijder) نیاز به برقراری ارتباط با یکدیگر داشتند. از آنجایی که بستر فراهم کننده این ارتباط یعنی اینترنت به طور دائم در دسترس این دانشجویان جهت تبادل اخبار و اتصال دو دانشکده با یکدیگر وجود نداشت، آنها به ناچار تجهیزات بی سیمی را بین خوابگاه های دانشکده شان راه اندازی کرده و از طریق آن ADSL هانس را بر روی بستر جدید به اشتراک گذاشتند تا بتوانند با یکدیگر ارتباط دائم برقرار کنند.

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

سرانجام در ژانویه سال ۲۰۰۱ درایس تصمیم گرفت این سیستم را به طور رسمی معرفی کند تا سایر افراد در کشورهای مختلف نیز بتوانند از آن استفاده کرده و آن را توسعه دهند. او نام تجاری نسخه ۱٫۰ این پروژه را به دروپال (Drupal) تغییر داد.

در ژانویه ۲۰۱۸ جامعه دروپال پس از پشت سر گذاشتن هشت نسخه موفق، بیش از ۱٫۳ میلیون عضو فعال، ۳۹٫۵۰۰ ماژول و ۲۵۷۰ قالب که همگی به صورت رایگان در اختیار کاربران قرار می دهد را دارا می باشد.

با گذشت زمان عده ای دروپال را یک سیستم مدیریت محتوا (Content Management System = CMS) و عده ای دیگر آن را یک چارچوب مدیریت محتوا (Content Management Framework = CMF) می دانند.

همه ما می دانیم که CMS یک برنامه رایانه ای است که امکان انتشار، ویرایش و مدیریت، سازماندهی، حذف و همچنین نگهداری محتوا از طریق یک رابط مرکزی(Core) را فراهم می آورد.

از طرفی CMF یک چارچوب نرم افزاری متشکل از یکسری اجزا (Components) با قابلیت استفاده مجدد، جهت سفارشی سازی و مدیریت محتوای وب می باشد.

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

هدف اصلی CMF ها پیاده سازی یک محیط سفارشی سازی شده برای مدیریت محتوا است. در واقع اگر یک توسعه دهنده نباشید نمی توانید از ۱۰۰% ظرفیت موجود یک CMF استفاده کنید. می شود گفت جعبه ای است که درون آن هزاران قطعه لگو(Lego) یا همان خانه سازی دوران کودکی خودمان قرار داده شده تا بتوان با آنها بدون محدودیت، هر چیزی که در ذهن دارید را در قالب یک چارچوب مشخص، پیاده سازی کنید. اگر بخواهیم یکی از محبوب ترین آنها را نام ببریم می توانیم به Cakephp اشاره کنیم.

تا قبل از نسخه ۴٫۶ دروپال یک CMS بود که فقط می توانست محتواهای بر پایه گره(Node) را مدیریت کند. اما در نسخه ۴٫۷ دو ماژول شگفت انگیز Views و CCK روح تازه ای به ساختار این پروژه بخشیدند و این شروعی شد برای قرارگیری در دسته CMF ها. از آن نسخه به بعد دیگر می توان علاوه بر گره ها، بدون هیچ محدودیتی بر روی هر نوع داده تعریفی از سوی کاربر مدیریت کرد و خروجی مناسب گرفت.

حالا دیگر میتوان با اطمینان کامل گفت دروپال یک CMF است.

منابع:
منبع ۱ , منبع ۲

نوشته دروپال CMS یا CMF ؟ مسأله این است. اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

معرفی کتابخونه رابط کاربری Element بر پایه Vue 2

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

اما چی باعث شد که من جذب این برنامه نویس ها بشم:

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

دوم متن باز بودن: خوشبختانه چینی ها به متن باز روی خوش نشون میدن و پروژه های کوچیک و بزرگشون رو بصورت متن باز منتشر می کنند.

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

چهارم کد نویسی تمیز و قابل فهم: کد نویسی چینی ها به مراتب خیلی بهتر، ساده تر، و قابل فهم تر از سایر برنامه نویس هاست و همیشه از استاندارد های خاصی پیروی میکنند. که خب این باعث میشه مشارکت افراد دیگه توی پروژه ساده تر و بیشتر هم باشه.

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

خب دیگه کافیه بریم سراغ اصل مطلب، از اونجایی که تو ویرگول برنامه نویس وب زیاد داریم میخواستم یکی از همین پروژه های چینی ها که اسمش Element هست و بر پایه Vue 2 طراحی شده و کاملا هم متن باز هستش رو به برنامه نویس های وب معرفی کنم. المنت خودش رو اینجوری معرفی میکنه

Element, a Vue 2.0 based component library for developers, designers and product managers

یه کتابخونه رابط کاربری بر پایه Vue 2 برای توسعه دهنده ها، طراح ها و مدیر برنامه ها

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

امیدوارم مفید بوده باشه.

وب سایت المنت:

https://element.eleme.cn/#/en-US

گیتهاب المنت:

https://github.com/elemefe

نوشته معرفی کتابخونه رابط کاربری Element بر پایه Vue 2 اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

برنامه نویسی =! سینتکس نویسی

از کجا برنامه نویسی را شروع کنم؟ جایگاه سینتکس و شروع مسیر برنامه نویسی؟

به قواعد نوشتاری در هر زبان برنامه نویسی، سینتکس میگویند.

مثلا زبان Java سینتکس خاص خود را برای تعریف متغییر دارد :

int test= 25;

و زبان PHP هم همینطور :

$test= 25;

پس هر زبان برنامه نویسی قواعد و سینتکس های مخصوص به خود را دارد.

خب با این همه سینتکس در زبان های برنامه نویسی چی کار کنیم ؟

‏بجای اینکه وقت بزاری ‎سینتکس های یک زبان ‎برنامه نویسی را حفظ کنی همین وقت را بزار روی قواعد و اصول برنامه نویسی مهم اینه که بتونی معماری ها را درک کنی دیگه هر زبانی یک سری سینتکس مشخص داره!!

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

بجای حفظ کد و حفظ سینتکس های یک زبان برنامه نویسی بیشتر بر روی قواعد کار توجه نشان دهید و بدانید که درون غار و بر روی دیوار های آن کد حک نمی کنید که همه کد ها را حفظ باشید!

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

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

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

جمله پایانی :

همیشه در کودکی از بزرگسالی می ترسیدم که آیا میتوانم کار های آدم بزرگ ها را انجام بدهم یا نه ولی الان یه نگاهی که به گذشته میکنم میبینم ‌خیلی کار های آدم بزرگها را انجام دادم. به برنامه نویسی بعنوان یک هنر نگاه کنید و از گستردگی آن هیچگاه نترسید، مهم نقطه آغاز است!

نوشته برنامه نویسی =! سینتکس نویسی اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی