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

۲۲ مطلب با موضوع «مقاله :: عمومی» ثبت شده است

از کجا شروع کنیم به جمع کردن رزومه ؟

#سوال و #جواب

سوال :
تازه شروع کردم به یادگیری و نمیدونم از کجا شروع کنم که بتونم کار بکنم و شرکت ها چی میخواند ؟

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

ان شاء الله سر فرصت پروژه های اوپن سورسی که توی حوزه های مختلف ارزش کار کردن دارند رو معرفی می‌کنم

موفق و پرکار باشید

کانال تلگرام  

۰۱ تیر ۹۹ ، ۱۹:۱۲ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

رمان ، داستان کوتاه یا شعر

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

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

کانال تلگرام

۲۸ خرداد ۹۹ ، ۰۰:۳۶ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

پرسشگران بی پاسخ

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

شیر گفت : چون با خر بحث میکنی و توقع داری بفهمه


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

۰۱ ارديبهشت ۹۸ ، ۱۴:۵۳ ۲ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

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

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

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

ادامه مطلب...
۲۹ بهمن ۹۷ ، ۱۹:۵۹ ۳ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

درآمد خارجی خرج داخلی سود یا ضرر

با سلام

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

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

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

در کل همونطور که داریم توی بحث دام به مشکل میخوریم به نظرم توی بحث نیروی خوب برای انجام پروژه‌های برنامه‌نویسی بزرگ هم به مشکل یه مقداری خوردیم و یک مقدار بیشتری خواهیم خورد اگر با همین فرمون پیش بریم.

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

۲۳ بهمن ۹۷ ، ۲۲:۵۰ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

علم دور ریز

برای نوشتن پروژه راه‌های اصولی هست مثل این که اول تمام نیاز‌های پروژه رو بدونیم و تمام نیازها و راه‌های رسیدن بهش رو بررسی کنیم معماری رو مشخص کنیم و بعد شروع به کد زدن کنیم.

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

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

ادامه مطلب...
۲۳ دی ۹۷ ، ۰۰:۲۱ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

استارتاپ یا استارت آب ؟

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

یادداشت: چرا یک ضد استارت آپ هستم؟

و اما این پست قسمتی از حرف‌های دل من رو زد و داغم رو تازه کرد و دستم رو روی کیبورد برد.

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

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

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

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

منتظر نظرات شما دوستان هم هستم با تشکر

۱۰ دی ۹۷ ، ۱۹:۰۸ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

تا توانی کدی به دست آور *** که کد نوشتن هنر نمی‌باشد

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

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

ولی برای علمی تر شدن بحث اجازه بدید چند قدم بریم عقب و از دید کلی تری به قضیه نگاه کنیم :

ادامه مطلب...
۱۷ آذر ۹۷ ، ۲۳:۱۹ ۴ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

معرفی منابع آموزشی boost.asio

با سلام خدمت دوستان عزیز

در این پست تصمیم دارم چندین منبع آموزشی برای boost.asio را برای شما معرفی کنم :

منابع رسمی boost.asio برای فراگیری

  1. Overview
  2. Using Boost.Asio
  3. Tutorial
  4. C++11 Examples
  5. Networking TS compatibility

سه کتاب موجود برای یادگیری boost.asio

  1. Boost.Asio C++ Network Programming
  2. Boost.Asio C++ Network Programming - Second Edition
  3. Boost.Asio C++ Network Programming Cookbook

دوره ویدئویی آشنایی با boost

دوستان دقت داشته باشید یاد گرفتن boost دیگه تقریبا برای همه واجبه چون کم کم داره قسمت‌های مختلفش با تغییرات کمی به اصل سی پلاس پلاس اضافه میشه و بهتره قبل از این که تمامش به سی پلاس پلاس اضافه بشه شما اون رو یاد گرفته باشید تا بعد از اضافه شدنش مشکلی با کار کردن باهاش نداشته باشید مثلا filesystem توی استاندارد 2017 به سی پلاس پلاس اضافه شد و همینطور any و optional و خیلی چیزای دیگه تا جایی که میدونم توی استاندارد 2020 قراره بخش شبکه (Network) هم اضافه بشه .

موفق و پیروز باشید.

۰۲ آذر ۹۷ ، ۱۱:۵۸ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

هزار و یک نکته در سی پلاس پلاس نکته سوم (کلمه کلیدی noreturn)

کلمه کلیدی noreturn برای مشخص کردن این نکته که تابع مقداری به صدا زننده باز نمیگرداند استفاده می‌شود. دقت کنید باز نگرداندن مقدار با برگرداندن مقدار void تفاوت دارد. این کلمه کلیدی برای توابعی که هیچ مقداری به صدا زننده فراخوانی نمی‌کنند استفاده می‌شود. ( مانند توابعی که برنامه را می‌بندند یا توابعی که حاوی حلقه بینهایت هستند یا توابعی که throw exceptions می‌کنند.

استفاده از این کلمه کلیدی به کامپایلر کمک می‌کند تا بهینه‌سازی هایی را انجام دهد و همینطور هشدارهای بهتری تولید کند.برای مثال اگر تابع f مقداری بازگشت ندهد و از کلمه کلیدی noreturn استفاده کنید کامپایلر میتواند در کد

f();

g();

به شما در مورد اجرا نشدن تابع g هشدار دهد و همینطور کامپایلر متوجه می‌شود که نباید برای فراموش کردن استفاده از کلمه کلیدی return برای بازگشت دادن مقدار هشداری بدهد.

مثال استفاده :

 

۰۹ شهریور ۹۷ ، ۱۲:۰۳ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی