اشتباه برخی برنامه نویسان

تب‌های اولیه

9 پستها / 0 جدید
آخرین ارسال
اشتباه برخی برنامه نویسان

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

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

مثلا خودم وقتی خواستم پروژه "سیستم مکانیزه داروخانه" رو انجام بدم ، هیچ اطلاعاتی در مورد پروژه مثل :

نحوه طراحی بانک اطلاعاتی
نحوه ی اتصال بانک اطلاعاتی به پروژه
نحوه ی گزارش گیری و تنظیمات آن
نحوه انجام عملیات ثبت و خرید و فروش و انبارداری داروها

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

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

موفق و سربلند باشید....

Im_Masoud.Freeman;394738 نوشت:
قرار نیست یک نفر همه چیز رو در مورد یک زبان بدونه و بعد شروع به برنامه نویسی کنه

این جمله رو باید طلا گرفت

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

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

به نظر من تو کاره برنامه نویسی ... ابزار شناسی خیلی خیلی مهم هست ...
مثلا من میخواستم برای یه شرکت یه interface اتوماسیون بسازم ... پدرم در اومد ... آخر سر هم نتونستم با توابع گرافیکی اون رو بسازم ....
ولی یکی از دوستام با چنین مساله ای برخورد کرده بود ( ایشون یه دوره Labview دیده بود ولی توش عمق پیدا نکرده بود ) ایشون زمانی که کار من بهش محول شد 2 ساعته کار رو تموم کرد .

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

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

Im_Masoud.Freeman;394738 نوشت:

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

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

مثلا برای طراحی بانک اطلاعاتی
من می تونستم از Access یا SQL Server استفاده کنم ، که دیدم برای من توی اون مقطع Access کاربرد داره ، اینکه راه حل ها رو بشناسید و بدونید کدوم راه حل بهترینه ، عالیه ، ولی اینکه راه حلها رو بشناسید و برید تمام راه حل ها رو یاد بگیرید به امید اینکه یه روز به کارتون بیاد . بعد بیاید برنامه نویسی کنید ، کار درستی نیست..

با سلام ...
با احترامی که براتون قایل هستم ولی دید من با شما متفاوت هست ...
به نظر من وقتی یه دانشجو داره تو دانشگاه درس میخونه ... و یا اینکه تازه از دانشگاه فارغ التحصیل شده باید تمام دوره های ممکن رو که وجود دارن رو بره ...
سخت افزار . نرم افزار . IT ... الان من پشیمونم چرا Solid Work که مربوط به رشته مکانیک هست رو ازش هیچ دیدی ندارم ...
البته لازم نیست در همه کلاس ها شیش دنگ هواسش رو جمع کنه ... باید رئوس مطالب رو بدونه و دوستانی در اون فیلد کاری داشته باشه

بزار یه مثال برات بزنم کمی منظورم رو بفهمی ...
من برنامه نویسی Firmware میکنم ... کارم هم خوبه ... همکار من یه آقایی هستش که اینجور که خودش میگه در 18 سالگی رفته و تایپ 10 انگشتی و word رو شروع کرده به یادگرفتن ... ( موضوع فوق العادی Low Level از نظر یه برنامه نویس )
حالا توی شرکت خیلی ها UML بلد هستن ... چون جزو کارمون هست ... ایشون به خاطر تایپ ده انگشتی ( سرعت تایپ بالا ) و ساخت گزارشات متنوع و زیبا ... برای خودش تو شرکت جایگاه ویژه ای داره ... فقط به خاطر اینکه تند تایپ میکنه و
گزارش هاش زیبا و خوب هستند . یا اینکه بعضی ها MS Project بلد هستن و پروژشون رو مستند سازی میکنن و طبق برنامه پروژشون رو جلو میبرن و ...

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

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

خوب حالا خودت حساب کن ... مشکلات کار رو ...
1- جایی که برای این یونیت در نظر گرفته بودن خیلی خیلی خیلی کوچکتر از حد نرمال بود ... خدا رو شکر من در مورد سنسورهای جریان قبلا اطلاعاتی داشتم .
2- پروسسوری که این دستگاه نیاز داشت احتیاج بود که 34 خط آنالوگ داشته باشه ... تا از ولتاژها نومنه گیری کنه ... که یه مدل بخصوص DSPIC این امکان رو داشت ... که من ازش اطلاع داشتم .
3- منبع تغذیه Main که برای این سیستم در نظر گرفته بودیم یه Power خاصی ... که از روی اون ... چنین ولتاژهایی رو میساخت ... این اطلاعات رو من تو کلاس منبع تغذیه سویچسنگ بدستش آوردم ...
4- پیاده سازی اینترفیس این دستگاه رو میشد با هزار نوع کامپایلر انجام داد ... ولی میدونستم اینترفیس اتوماسیون رو باید با Labview یا WinCC انجام بدم .
5- پروتکل انتقال اطلاعات میون اون واحد تغذیه و اینترفیس کامپیوتر میتونست هزار نوع باشه ... ولی چون قبلا کمی روی پروتکلهای انتقال اطلاعات کار کرده بودم میدونستم Modbus بهترین پروتکل برای این کار هست .
و ...

نمیدونم تونستم منظورم رو بهت برسونم یا نه ...

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

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

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

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

من وقت زیادی رو روی6 VB و Syntax های مربوط به اون گذاشتم ... پدره خودم رو هم در آوردم تک تک اکتیو ایکس هاش رو هم یاد گرفتم ... الان که C# اومده ... دیگه کار و انرژی که من گذاشتم برام هیچ سودی نداره ...
من وقت زیادی روی SQL 2000 گذاشتم و تک تکه سوراخ سمبه هاش رو یادگرفتم ... الان روشهای خیلی بهتری برای اتصال به بانک داده اومده و دسترسی و سینتکس ها خیلی راحت تر شدن ...
من وقت زیادی رو روی CHIP های AVR گذاشتم و تک تک سوراخ سمبه هاش رو یاد گرفتم الان که ARM اومده کاره من هیچ ارزشی نداره ...

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

عنکبوت سرخ;395135 نوشت:
به نظر من نمیشه هیچ نرم افزاری رو کامل یادگرفت و عمق پیدا کردن تو یه نرم افزار کار اشتباهی هست ... چون ازت انرژی زیادی میگیره ... و 4 سال دیگه اون نرم افزار بدرد نمیخوره ...
چون علم کامپیوتر داره خیلی خیلی سریع رشد میکنه ...

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