من تجربهی زیادی ندارم، تازه تو محیط کار سه ساله شدم. تو این سه سال با چیزهای مختلفی کار کردم، که اکثرشون رو هم دوست داشتم. چون برنامهنویسی رو دوست دارم مدتی درگیر طراحی سرویسهای تحت وب بودم، از طرفی چون مهندسی برق خوندم و اصلا مسئولیت اصلیم همینه، تو کارهای صنعتی هم از برنامهنویسی بهره بردم، مثل برنامهنویسی برای PLC، طراحی رابط کاربری با استفاده از HMI، پروگرم کردن برد آردوینو برای کارهای مختلف مثل جمعآوری اطلاعات از ماشینآلات صنعتی، سر و کله زدن با رسپبریپای به عنوان دیتا لاگر تو یه شبکه صنعتی (Modbus) و قس علی هذا. دوست دارم تو فرصت مناسب از هرکدوم ازین کارها تو وبلاگم بنویسم، ولی الان میخوام برم تو نقش بابابزرگِ مهربون و بالا منبر روضهی نصیحت رو براتون چاق کنم 😀
به بهونهی روز برنامهنویس میخوام از نکاتی بگم که سعی میکنم تو طراحیهام رعایت کنم، در واقع میخوام اونا رو با شما درمیون بذارم، تا اگه شما هم نظری دارید بگید و بتونم از تجربیات شما هم استفاده کنم.
اول، ابزار مناسب رو انتخاب کنیم.
باور کنیم اگه برای انجام هر کاری از ابزار مناسب همون کار استفاده کنیم، هم به خودمون لطف کردیم و هم به اونی که داریم کار رو براش انجام میدیم!
یه مَثَل بود که میگفت پیچگوشتی همهی مسائلِ جهان رو به شکل یه پیچ میبینه! سعی کنیم اینطوری نباشیم! صرف اینکه تا الان مثلا فقط با PHP کار میکردیم، دلیل نمیشه که برای یه سنسور با رابط صنعتی هم بخواهیم با PHP برنامه بنویسیم! میخوای یه بلاگ راه بندازی؟ از وردپرس استفاده کن، چرا چون ASP کار هستی میخوای که حتما خودت از صفر یه CMS جدید طراحی کنی؟
سعی کنیم برای کارهامون تا حد امکان از ابزار مناسب استفاده کنیم، درضمن از تجربیات دیگران هم استفادهی کافی و وافی ببریم، نیازی نیست که چرخ رو دوباره اختراع کنیم.
دوم، یادگیری هزینه نیست، سرمایهگذاریه! و این هم یه شعار نیست! 😀
صرف زمان برای یادگیری موارد مورد نیاز، مراحل بعدی توسعه رو سرعت میبخشه. شاید اول کار یه تاخیری بندازه، اما چون باعث میشه با ابزار مناسب کارمون آشنا بشیم، به احتمال خیلی زیاد مراحل بعدی کارمون رو لذتبخشتر، بهتر و سریعتر میکنه. تصویر زیر به صورت کامل چیزی رو که دوست دارم بگم رو بیان میکنه.
سوم، پویا و خلاق باشیم، اما پدرِ استانداردها رو هم در نیاریم!
دنیای تکنولوژی و برنامهنویسی، دنیای پویا و در حال رشدیه. اگه دوست نداریم که تو این دنیا خیلی زود به یه پیرمرد یا پیرزن تبدیل بشیم، باید زمان مناسبی رو برای مطالعه و یادگیری تو برنامهی کاریمون بگنجونیم.
تو طراحیهامون خلاقیت داشته باشیم، لازم نیست حتما دربند و زندانیِ سنتها باشیم. رها باشیم، اما حواسمون باشه که این رهایی منجر به بیبرنامگی، بیانضباطی، شلختگی و پشت پا زدن به همهی استاندارها نشه!
چهارم، تعمیر و نگهداری (همون Maintenance فرنگیها) شوخی نیست!
همیشه این امکان وجود داره که پس از گذشت مدت زمان زیادی از نوشتن کدهامون، یا انجام دادن یه پروژه، مشکلی تو اون پروژه پیش باید که مجبور بشیم دوباره کدها یا طراحیهامون رو مرور کنیم. پس یه جوری کارهامون رو انجام بدیم و ابزارهامون رو انتخاب کنیم که اگه یه سال دیگه مشکلی پیش اومد و برگشتیم سر همون فایلها و طراحیها، کلا گیج و ویج نچرخیم! نگهداشت شتریه که بلاخره یه روزی در خونهی هر طراحی میشینه! (کلمهی مناسبی به عنوان معادل واژهی Maintenance پیدا نکردم، برای همین از همون معادل سنتی تعمیر و نگهداری استفاده کردم.)
پنجم، اطلاعات طلاست! اما نه اطلاعاتِ غیرقابل استفاده!
اطلاعات رو به طوری دستهبندی و ذخیرهسازی کنیم که قابل استفاده باشه. گیگ گیگ اطلاعات که طوری دستهبندی و ذخیرهسازی شده که به کارمون نمیاد، چیزی که بهمون نمیده هیچ! جلوی دست و پامون رو هم میگیره و کلی هزینه بایت نگهداری و پردازش اطلاعات معمولی از بین اونها هم سربارمون میکنه. اطلاعات با ارزشه، به شرطی که به صورت درست و درجای درست ذخیرهش کنیم.
آخر، روز برنامهنویس و برنامهنویسی!
من یه برقخوندهی علاقمند به برنامهنویسی هستم و برنامهنویسها رو دوست دارم 😉
موفق باشید.
قربان شما،
آمیرزا
پینوشت: توصیه میکنم که به سایت روز برنامهنویس هم سر بزنید. تو این سایت درمورد روز برنامهنویس نوشته:
روز ۲۵۶ام هر سال (معادل عدد ۱۰۰در مبنای شانزده) به عنوان روز برنامه نویس نام گرفته است. عدد ۲۵۶بالاترین عدد دودویی در بین ۳۶۵ روز سال است که ارزش ویژه ای بین برنامه نویسان دارد.
برای اولین بار در سال ۲۰۰۲، کارمندان یک شرکت کامپیوتری در روسیه بودند که امضاهایی را جهت به رسمیت شناختن روزی با عنوان روز برنامهنویس جمعآوری کردند. در سال ۲۰۰۹ رئیس جمهور وقت روسیه، این روز را به عنوان روز برنامهنویس نامگذاری کرد و پس از آن کشورهای دیگر از جمله بریتانیا و ایالات متحده آمریکا این روز را به عنوان روز برنامهنویس پاس میدارند.
ممکن است ما عضو تیم یا شرکتی باشیم که به توسعه نرمافزار می پردازد، یک آزادکار و یا یک دانشجو باشیم، اینروز متعلق به همه ماست. ما به کمک هم ۱۰ آذرماه -یعنی ۲۵۶امین روز سال شمسی- را به عنوان روز برنامه نویس جشن میگیریم و آن را در تقویم ملی کشورمان ثبت میکنیم.
سلام آمیرزا سلامتی؟
من یک ماهی میشه که براساس راهنمایی صورت گرفته برای یادگیری جاوا اسکریپت
از مقاله How to Learn JavaScript Properly دارم دو کتاب زیر:
JavaScript: The Definitive Guide
Professional JavaScript for Web Developers 3rd Edition
رو مطالعه میکنم .. و تا الانش که بد نبوده..
سوالی که برام مطرح هست اینه که خودت برای یادگیری جاوا اسکریپت از چه منابعی کمک جستی 🙂
خوشحال میشم اگر راهنمایی در این زمینه داری باهام به اشتراک بزاری.
سلام مهدی جان،
من قبلا یه نوشته تو وبلاگم گذاشته بودم که توش دو تا کتاب رو برای یادگیری پایه و اساس جاوااسکریپت معرفی کرده بودم، اگه دوست داری از لینک زیر میتونی مطالعهش کنی:
معرفی چند کتاب خوب برای یادگیری جاوااسکریپت
حقیقتش من از منبع ثابتی برای یادگیری جاوااسکریپت استفاده نمیکنم. بسته به نیازم جستجو میکنم و منابع مورد نیازم رو پیدا میکنم. فیلمهای آموزشی رو هم معمولا دانلود میکنم و میبینم.
در هر صورت، سایتهای زیر معمولا خیلی به من کمک میکنن:
Scotch | Developers bringing fire to the people.
SitePoint
Tutorialspoint
CodeAcademy | Learn to Code
روز برنامهنویس از نوع ایرونی را تبریک میگم به آمیرزا :دی
قربان تو علی جان 😀
سلام سلام
روز برنامه نویس میلادی رو اینقدر خزش کردن امسال که رمقی برای نوع جلالیش نیست !!!! 🙂
در مورد یادگیری هزینه نیست، سرمایهگذاریه! فکر کنم اون تبلیغات هزینه نیست بلکه سرمایه گذاریه بود 🙂 (شوخی)
به نکات ظریف و خوبی اشاره کردی و خودم با اون تیکهی اختراع دوباره چرخ یه خورده فقط یخوردهها مخالفم؛ چرخی رو که خودم نتونم چرخ ترش (توسعهاش بدم) کنم بدردی نمیخوره ! و در این مواقع اختراع یه چرخ بهتر خیلی بهتر تره اینطور نیست ؟!
بازم از این تجربیات گران بهات به اشتراک بزار
درمورد اختراع چرخِ بهتر درست میگی فرهاد جان، گاهی نیازه که تغییری ایجاد کرد.
اما در خیلی از موارد به نظر من بهترین گزینه اینه که از تجربیات باارزش دیگران استفاده کنیم، اونها رو بهبود ببخشیم و نتیجه رو با دیگران به اشتراک بذاریم. 😀
جالب بود…
بسیار نوشته هاتو دوست داشتم.خیییییییییییلی خسته نباشید.برای یادگیری ری اکت باید جاوا اسکریپت بلد باشیم؟منبعی نیست که بتونیم ازش استفاده کنیم و از اول ری اکت رو یادبگیریم؟
ممنون از لطفت …
ReactJS بر پایهی جاوااسکریپت نوشته شده، قاعدتا برای کار باهاش باید رابطهی خوبی با جاوااسکریپت داشته باشی.
سایت egghead دورههای خوبی برای آموزش React داره، بعضی از دورههاش مجانی نیست، ولی دورههای مجانی خوبی هم توش پیدا میشه.
https://egghead.io
قبلا هم تو نوشتهی زیر چندتا منبع خوب برای یادگیری React معرفی کردم:
چطور تو React.js شاخ بشیم و شاخِ Flux رو بشکنیم؟
سلام آقای امیرزا
منم خودم هنرستان و کاردانی رو برق خوندم ولی از وقتی برنامه نویسی یاد گرفتم و بیشتر درگیر کامپیوتر شدم مردد شدم همین برق رو ادامه بدم یا باسه کارشناسی یا ارشد، کامپیوتر رو انتخاب کنم و ادامه بدم. نظر شما چیه؟
الان دیگه فکر میکنم علاقم رو به مدار و الکترونیک و ماشین و… از دست دادم(دیگه داره به تنفر تبدیل میشه) و در عوضش خیلی به مسائل مربوط به رشته کامپیوتر علاقه دارم. خیلی از دروسش رو هم از روی علاقه شروع کردم دارم می خونم .
الان هم بیشتر وقتم رو صرف برنامه نویسی میکنم.
ولی ازون طرف ظاهرا بازار کار برق یذره بهتره و شنیدم کسی که برنامه نویسیش و زبانش خوب باشه .میتونه تو برق موفق بشه. درسته؟ تو شهرستان ما که فکر میکنم فقط کار برق کشی ساختمون و سیم پیچی و ..اینا باشه. با تسلط فقط به میکرو و plc بنظرتون میشه کار خوبی پیداکرد؟
بنظر شما بهتره با اینکه دیگه علاقه ندارم بازم همین برق رو ادامه بدم و یا تغییر رشته بدم به کامپیوتر؟
میثم جان، اول بگم که مرغ همسایه غازه! این هم شوخی نیست، یه واقعیته!
اون چیزی که معمولا ما از برنامهنویسی دوست داریم، مثل چیزیه که بقیه از نجوم میبینن، یعنی نجوم آماتوری! اون چیزی که تو نجوم بیشتر مردم رو قلقلک میده نجوم آماتوریه، نه خودِ خودِ نجوم. برنامهنویسی هم همین طوریه. اون چیزی که ازش میبینی، با اون چیزی که تو کار باهاش طرف میشی الزاما یکی نیست! برنامهنویسی برای تفریح خیلی خوب و مهیجه، مخصوصا اگه هکر-طور بهش بپردازی. اما تو کار ممکنه اون چیزی که ازش انتظار داری نباشه.
اون چیزی هم که از کار انتظار داری بیشتر به محیط کار و جایی که داری کار میکنی برمیگرده تا اینکه چه رشتهای خوندی.
تو تصمیمگیریهات این چیزا رو در نظر داشته باش.
ولی این رو هم به یاد داشته باش که یه جملهی معروف میگه: “اگه جات رو دوست نداری عوضش کن، شما که درخت نیستید!”
همیشه موفق باشی.
بله. همون طور که گفتید از این که باسه خودم برنامه بنویسم لذت میبرم. ولی فکر نکنم باسه کسه دیگه ای دوست داشته باشم برنامه بنویسم.
برنماه نویسی در رشته برق چجوریه ؟ اگه باسه کارشناسی دانشگاه شهر دیگه ای بزنم بنظرتون با صرفا یاد داشتن plc و micro شانس این که کار پیدا کنم هست. یعنی برنامه نویسیم خیلی قویه و قبلا با اینا تو دانشگاه کار کردم و باسم اسونه ولی سابقه کار جایی ندارم.
و میشه فقط تخصصی در این زمینه کار کرد؟
ببخشید اگه اشکال نداره بپرسم شما الان شغل اصلیتون مرتبط با برق هستش و برنامه نویسی رو فقط به صورت تفننی و باسه نرم افزار های خودتون انجام میدین یا شغل اصلیتون برنامه نویسی هستش؟
استفاده از برنامهنویسی توی رشتهی برق خیلی به جایی که کار میکنی بستگی داره، اگه درگیر اتوماسیون صنعتی باشی، قاعدتا برنامهنویسی PLC و امثالهم به کارت میاد. اگه درگیر تحقیق و توسعه و طراحی باشی برنامهنویسی با C و Matlab و این چیزا به کارت میاد و الی آخر …
من خودم به شخصه به عنوان یه مهندس برق مشغول به کار شدم چون تو یه کارخونه کار میکنم اول از همه درگیر برنامه نویسی برای PLC بودم، اما بعدش برنامهنویسی رو هم با حمایت مدیرم ادامه دادم در راستای سادهسازی بعضی از کارهایی که تو شرکت انجام میدادم.
البته قبل از انتخاب رشته چون فقط vb6 دیده بودم فکر میکردم رشته کامپیوتر رشته مزخرف و خسته کننده ایه و باسه همین برق انتخاب کردم. ولی از وقتی برنامه نویسی وب و برنامه نویسی اندروید و … یاد گرفتم نظرم کاملا عوض شد.
بیشتر هم علاقه دارم یاد بگیرم چجوری یک کامپایلر، زبان برنامه نویسی، پایگاه داده و یا سیستم عامل طراحی کنم و وارد جزئیاتش بشم تا اینکه بخوام وارد جزئیات طراحی یک انتن یا مدار تقویت کننده یا ترانزیستور بشم.
به نظر من هر دو تاش جالبن .. چه طراحی سیستم عامل، چه طراحی آنتن 😀