JavaRush /وبلاگ جاوا /Random-FA /کی هورستمن و 1500 کلمه اش در مورد چگونگی تبدیل شدن به یک ...

کی هورستمن و 1500 کلمه اش در مورد چگونگی تبدیل شدن به یک برنامه نویس جاوا بهتر

در گروه منتشر شد
این احتمال وجود دارد که قبلاً نام Cay S. Horstmann را شنیده باشید . او یک شخص نسبتاً برجسته در جهان جاوا و نویسنده کتاب های زیادی در مورد زبان محبوب ما است. از جمله آنها دوره کلاسیک "Core Java" (منتشر شده به زبان روسی در کتاب دو جلدی "Java. Professional's Library" ) و مجموعه ای با خلاصه ای کوتاه از ماهیت "Java for Inpatient" (منتشر شده به زبان روسی "Java SE" است. 8. دوره مقدماتی" و "جاوا SE 8. دوره پایه" ). او عنوان افتخار "قهرمان جاوا" را یدک می کشد. و در این لینک می توانید وب سایت مدرسه قدیمی او را با اطلاعات جالب پیدا کنید.
کی هورستمن و 1500 کلمه او در مورد چگونگی تبدیل شدن به یک برنامه نویس جاوا بهتر - 1
ترجمه‌ای از مقاله‌ای را برای منبع InformIT به شما جلب می‌کنیم که در آن کی روش‌های مختلفی را برای برنامه‌نویسان مبتدی و ادامه‌دار در مورد چگونگی بهتر شدن در حرفه‌شان بیان می‌کند. یک روز، جنیفر بورتل، مدیر تحریریه InformIT از من خواست تا در مورد چگونگی تبدیل شدن به یک برنامه نویس جاوا بهتر صحبت کنم. او پیشنهاد کرد که من، نویسنده Core Java for the Inpatient، ممکن است چیزی در مورد آن بدانم. در ابتدا فکر کردم: «هیچ چیز ساده‌تر نیست، فقط یک کتاب بخر». اما این پاسخ جواب نداد، زیرا باید آن را در 1500 کلمه قرار دهم و تا این لحظه فقط 62 مورد از آنها وجود دارد * ( البته هنگام ترجمه مقاله، ما سعی نکردیم تعداد کلمات را حفظ کنیم - تقریباً ترجمه ). اخیراً ایمیلی از یکی از دوستان برنامه‌نویس دریافت کردم که در مصاحبه‌ای از او پرسیده شد که چرا کد زیر امن نیست:
class ThreadSafeClass extends Thread
{
     private static int count = 0;

     public synchronized static void increment()
     {
         count++;
     }

     public synchronized void decrement()
     {
         count--;
     }
}
دوست من تصمیم گرفت که کد در این مثال thread safe باشد، و من با او موافق بودم و خاطرنشان کردم که یک کلمه کلیدی staticدر روش دوم وجود ندارد و پس از درج آن، دسترسی توسط قفل داخلی شی کلاس کنترل می شود. من هم گفتم که این سوال مصاحبه خوبی نیست زیرا اگر به یک شمارنده نخ نیاز دارید، بهتر است از AtomicInteger. اما بعد در نیمه های شب از خواب بیدار شدم و با تعجب گفتم: اگر این کلمه staticبه دلیلی کنار گذاشته شود چه؟ شاید برخی از مصاحبه‌کننده‌های زیرک، عمداً این مثال را به گونه‌ای طراحی کرده است که نامزدها را گمراه کند؟ بنابراین من به توسعه‌دهنده‌ای که سؤال را پرسیده بود نوشتم و گفتم احتمالاً قبلاً اشتباه می‌کردم: در یک جهان موازی به نام سؤالات مصاحبه، پاسخ این سؤال این است: «روش دوم شامل یک قفل شی است». پس از این پاسخ، آن مرد پرسید که آیا من یک کانال یوتیوب راه اندازی می کنم که در آن نحوه رسیدگی به این نوع مشکلات مصاحبه را آموزش می دهم. افسوس من این کار را نمی کنم. من علوم کامپیوتر تدریس می‌کنم و کتاب می‌نویسم، اما هدف اصلی من این نیست که «حل‌کننده‌های مسائل مصاحبه» بهتری بسازم، بلکه هدفم این است که دانش‌آموزانم را برنامه‌نویس بهتری کنم. روزی روزگاری، پیتر نورویگ ( دانشمند آمریکایی در زمینه هوش مصنوعی، مدیر تحقیقات گوگل - تقریباً ترجمه ) مقاله فوق العاده ای در وبلاگ خود نوشت. او استدلال می کرد که کتاب هایی که قول می دهند جاوا را در 24 ساعت یا 21 روز به شما آموزش دهند، به سادگی مضحک هستند. مخالفت با او سخت است: 10 سال یا شاید 10000 ساعت طول می کشد تا در هر زمینه ای متخصص شوید. و به خوبی شناخته شده است که کارشناسان اطلاعات را متفاوت از افراد تازه کار پردازش می کنند. در یک آزمایش کلاسیک به شطرنج بازان باتجربه و مبتدی صفحه شطرنجی با چیدمان مشخصی از مهره ها برای چند ثانیه نشان داده شد و سپس آن را مخفی کردند و از آنها خواستند مهره ها را همانطور که هست بچینند. مبتدیان به خوبی با این کار کنار نمی آمدند، اما کارشناسان هیچ مشکلی نداشتند. اما فقط تحت یک شرط مهم: چیدمان قطعات باید مطابق با بازی واقعی باشد . اگر قطعات به صورت تصادفی قرار می گرفتند، کارشناسان در بازسازی تخته بهتر از افراد تازه کار نبودند.
کی هورستمن و 1500 کلمه اش در مورد چگونگی تبدیل شدن به یک برنامه نویس جاوا بهتر - 2
به همین دلیل است که من به سؤال از نامه دقیقاً همانطور که پاسخ دادم. سابقه من در برنامه نویسی واقعی است، نه مصاحبه، بنابراین به طور غریزی کلمه کلیدی گم شده را اضافه کردم و نتیجه گیری "اشتباه" را انجام دادم. می‌خواهم فکر کنم بعد از اینکه توضیح دادم چه اتفاقی افتاده و چرا هرگز بدون اضافه کردن کدی مانند مثال نمی‌نویسم، همچنان استخدام می‌شوم. شاید اگر چنین پاسخی آنها را راضی نمی کرد، من خودم نمی خواستم با آنها کار کنم.
در حال حاضر، من فکر نمی کنم که مطالعه برای امتحانات گواهینامه یا مصاحبه شما را به برنامه نویس بهتری تبدیل کند. همچنین مطمئن هستم که خرید تعداد زیادی کتاب در زمینه برنامه نویسی و سپس خواندن آنها از روی جلد به جلد نیز کارساز نخواهد بود (البته من به عنوان نویسنده همین کتاب ها دوست ندارم اعتراف کنم!). در واقع، یک راه واقعا خوب برای تبدیل شدن به یک برنامه نویس بهتر، ایجاد نرم افزار تا حد امکان است . هر از گاهی در دانشگاهم یک دوره مقدماتی علوم کامپیوتر تدریس می کنم. این سخت ترین دوره ای است که تا به حال تدریس کرده ام. حتی سخت تر از دوره تحصیلات تکمیلی است. هنگامی که برای اولین بار به عنوان یک استاد جوان شروع به کار کردم، با پشتکار برای دانشجویان سخنرانی می‌کردم که در آن‌ها مسائل برنامه‌نویسی، مانند تفاوت بین حلقه‌ها forو whileحلقه‌ها را به دقت پوشش می‌دادم do. سپس به دانش آموزان چهار پروژه سه هفته ای واگذار کردم. و این موضوع از ابتدا در تمامی دانشگاه ها به این صورت تدریس می شد. پس از اولین تلاش من، مدرس دوره ترم دوم شکایت کرد که اکثر دانشجویان سابق من حتی حلقه های ساده را بعد از ترم اول برنامه نویسی خود درک نمی کردند. و چنین نتایجی نیز از ابتدا رخ داده است. مقاله "FizzBuzz یا چرا برنامه نویسان نمی توانند برنامه ریزی کنند" را به خاطر دارید ؟ وقتی یک زبان خارجی یاد می گیرید، بیشتر کارها تمرین و تمرین هستند، نه تئوری. بسیار مهم است که دانش را به ناخودآگاه "هل" کنید. نقطه عطف زمانی فرا می رسد که دیگر لازم نیست فعالانه درباره هر چرخه، یا (در مورد فرانسوی)، هر فعل بی قاعده فکر کنید. اگر این لحظه فرا رسیده باشد، پس شما آماده حرکت به سطح بعدی هستید. و هیچ چیز انقلابی در این ایده وجود ندارد.
کی هورستمن و 1500 کلمه او در مورد چگونگی تبدیل شدن به یک برنامه نویس جاوا بهتر - 3
کلید همه چیز بازخورد فوری است. برخی از روانشناسان معتقدند که ما می‌توانیم با یادگیری مبتنی بر رایانه با بازخورد فوری کارهای بیشتری انجام دهیم. به عنوان مثال، در یک آزمایش کلاسیک دیگر، خلبانان کارآموز مشتاق یک جلسه آموزشی را پشت سر گذاشتند که در آن از آنها خواسته شد بارها و بارها به صفحه ابزار نگاه کنند و حرکت هواپیما را توصیف کنند. در همان زمان، آنها بازخورد فوری دریافت کردند که نشان می داد آیا آن را به درستی انجام داده اند یا نه. آنها پس از دو ساعت آموزش از خلبانان مجرب پیشی گرفتند. البته این بدان معنا نبود که می‌توان آن‌ها را فوراً به یک پرواز واقعی فرستاد، اما دیگر نگران شماره‌های متنوع و متعدد روی صفحه ابزار نبودند. بنابراین، اگر تازه شروع به یادگیری جاوا کرده اید، انجام تمرینات تمرینی زیاد برای تمرین بهترین ایده است. تعداد زیادی وب سایت و دوره های آنلاین وجود دارد که به طور خودکار صحت کد شما را بررسی می کنند. یکی را انتخاب کنید که چالش های واقعی را به جای گوبلدگو ارائه دهد. از این گذشته، شما می خواهید ناخودآگاه شما در کدهایی که در عمل می نویسید خوب باشد. به همین دلیل است که من علاقه زیادی به نمونه های برنامه نویسی که از موقعیت های ساختگی استفاده می کنند، مانند کلاس های حیوانات با روش هایی که میو و پارس می کنند، نیستم. بعد از مدتی به اصول برنامه نویسی مسلط خواهید شد. برای رفتن به سطح بعدی، می توانید چند پروژه بنویسید. چندین سال پیش، پورتال InformIT از برنامه نویسان باتجربه سوالی پرسید: "بهترین راه برای یک برنامه نویس برای یادگیری یک زبان جدید چیست؟" اگر پاسخ‌های آنها را خلاصه کنیم، می‌توانیم به این نتیجه برسیم: «از این زبان در پروژه فعلی خود استفاده کنید». بنابراین، در مورد آنچه همیشه می خواستید پیاده سازی کنید فکر کنید - و ادامه دهید. بیست سال پیش، زمانی که جاوا هنوز خیلی جوان بود،دوستم و زمانی همکارم ، گری کورنل، با من تماس گرفت و گفت: "کی، ما قرار است کتابی در مورد جاوا بنویسیم." پاسخ من این بود که نه او و نه من واقعاً چیزی در مورد این جاوا نمی دانیم، که او پاسخ داد: "پس چی؟ ما قبلاً یک قرارداد کتاب داریم." کاری برای انجام دادن نیست. مجبور شدیم عجله کنیم چون یکی دیگر از انتشار قریب الوقوع کتاب "Teach Yourself to Be a Java Dummy در 24 ساعت" خبر داد ... فکر کنم اسمش همچین چیزی بود ( کی سری کتاب های "For Dummies" را مسخره می کند. ، کلمه "Dummy" را می توان به عنوان "Dummy" ترجمه کرد - یادداشت مترجم ). برای یادگیری یک زبان جدید، من با پروژه ها شروع کردم - نوشتن برنامه ای که یک رابط کاربری برای برنامه ریزی بازنشستگی ایجاد می کرد و سپس برنامه ای که به یک سایت آب و هوا متصل می شد و گزارش آب و هوا را نمایش می داد. پس از آن - برنامه ای که حرکت اتومبیل ها را در بزرگراه شبیه سازی می کند. در آن زمان، این برنامه ها به سادگی شگفت انگیز بودند!java.awtjava.netو رشته ها ( threads). و من باید یاد می گرفتم که چگونه این کار را واقعاً بسازم، نه فقط آنچه را که مستندات می گوید. در آن زمان اینها چیزهای کاملاً متفاوتی بود. به همین دلیل بود که Core Java [1] موفق شد: برای آدمک‌ها نبود.
کی هورستمن و 1500 کلمه اش در مورد چگونگی تبدیل شدن به یک برنامه نویس جاوا بهتر - 4
در آن زمان یادگیری جاوا بسیار دشوارتر بود. ما سایت‌هایی مانند Stack Overflow نداشتیم ( و JavaRush هم نداشتیم - یادداشت ویرایشگر ). در این مرحله، من توصیه های زیر را برای بهبود "مهارت" برنامه نویسی شما تدوین می کنم. بنابراین، وقتی روی پروژه خود کار می کنید، مطمئناً در جایی گیر خواهید کرد. در این مورد، به یک انجمن تخصصی بروید و سعی کنید پاسخ آن را بیابید. باور کنید، این یک ایده عالی است . ابتدا سوالاتی را مطرح خواهید کرد که قبلاً بارها از آنها پرسیده شده است. اما به زودی دانش به دست می آورید و سوالات شما منحصر به فرد تر می شوند. این یک راه شگفت انگیز برای یادگیری است! البته، این فقط مربوط به کپی پیست کردن یک قطعه کد و پرسیدن این نیست: "حالا با این کار چه کنم؟" شما باید به انتهای آن برسید، توضیح دهید که قبلاً چه تلاش هایی برای حل مشکل انجام داده اید قبل از اینکه گیر بیفتید. ضمناً، در بیشتر موارد، در حالی که یک سؤال را به صورت کتبی طرح می کنم، خودم پاسخ آن را پیدا می کنم و تنها کاری که باید انجام دهم این است که حتی قبل از اینکه سؤال را ارسال کنم، به خودم بگویم: "مشکل اینجا چیست، بی فکر است". . اما حتی اگر این اتفاق نیفتد... باور کنید، سوالات متفکرانه تمایل به جذب پاسخ های متفکرانه دارند. فقط به یاد داشته باشید که با پاسخ دادن به سوالات متفکرانه دیگران، لطف اجتماعی را جبران کنید. هم پرسیدن و هم پاسخ دادن به سوالات متفکرانه شما را به برنامه نویس بهتری تبدیل می کند. «خب، در مورد کتاب ها چطور؟ - تو پرسیدی. آیا واقعاً به لطف Google و Stack Overflow آنها به طور کامل و غیرقابل برگشت منسوخ شده اند ؟ هر زمان که در یک فناوری جدید حرکت می کنم، معتقدم که فردی شجاع هستم و می توانم به تنهایی بر همه مشکلات غلبه کنم. اما یک ساعت عذاب بی معنی جای خود را به یک ساعت عقل می دهد - و من یک کتاب می خرم. کتاب های فنی این روزها یک معامله خیره کننده است. اگر برای یک کتاب الکترونیکی 40 دلار بپردازم و فقط به یک سوال پاسخ سریع دریافت کنم، قبلاً پولم را پس گرفته ام. من از ناامید کردن نویسندگان دیگر متنفرم، اما هرگز کتاب فنی را از ابتدا تا انتها نخوانده‌ام. من از جایی شروع می کنم که فکر می کنم مشکل من و راه حل آن نوشته شده است و می خوانم تا بفهمم چگونه آن را حل کنم. به همین دلیل در حال حاضر سعی می کنم کتاب هایی بنویسم که بتوان از این طریق خواند. این رویکرد باعث پیدایش سریال «برای بی‌صبران» شد. و در این مرحله باید متوقف شوم - از حد ویراستاری 1500 کلمه فراتر رفتم. اجازه دهید فقط اضافه کنم که برای تبدیل شدن به یک برنامه نویس بهتر، با درک اینکه سطوح دانش زیادی وجود دارد شروع کنید.
  1. ابتدا ساختارهای زبانی اساسی را به ناخودآگاه خود بکشید، یعنی دانش آنها را با حل تعداد زیادی تمرین به حالت خودکار برسانید.

  2. در اسرع وقت روی پروژه های واقعی که به شما علاقه مند هستند کار کنید.

  3. سپس به انجمنی بپیوندید که در آن بتوانید سوال بپرسید و پاسخ دهید.

  4. پس از انجام این کار، می توانید با دانش و تجربه در مصاحبه ها صحبت کنید. و این واقعا مهم نیست که آیا شما پازل ساختگی را حل کنید.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION