حرفه برنامه نویسی فصل 1. برنامه اول

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

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

در این کتاب شما به ادبیاتی که خوانده ام، تجربه ارتباط با افرادی که در حین تحصیل، کار و راه اندازی یک استارتاپ با آنها برخورد کردم، ارجاعاتی خواهید یافت.
از معلمان دانشگاه گرفته تا سرمایه گذاران بزرگ و صاحبان شرکت های چند میلیون دلاری.
از امروز 3.5 فصل کتاب از 8 تا 10 فصل ممکن آماده است. اگر فصل های اول با واکنش مثبت مخاطبان مواجه شود، کل کتاب را منتشر خواهم کرد.

درباره خودم

من جان کارمک، نیکولای دوروف یا ریچارد متیو استالمن نیستم. من در شرکت هایی مانند Yandex، VKontakte یا Mail.ru کار نکردم.
اگرچه تجربه کار در یک شرکت بزرگ را داشتم که حتماً در مورد آن به شما خواهم گفت. اما فکر می‌کنم نکته خیلی در نام بزرگ نیست، بلکه در تاریخ مسیر توسعه‌دهنده شدن، و بیشتر، در پیروزی‌ها و شکست‌هایی است که در طول 12 سال کار من در توسعه تجاری رخ داد. البته برخی از شما تجربه بسیار بیشتری در IT دارید. اما من معتقدم که درام ها و پیروزی هایی که در طول زندگی حرفه ای فعلی من رخ داده است ارزش توصیف دارد. اتفاقات زیادی رخ داد و همه آنها متنوع بودند.

من امروز به عنوان یک توسعه دهنده چه کسی هستم
- در بیش از 70 پروژه تجاری شرکت کرد که بسیاری از آنها را از ابتدا نوشت
- در ده ها پروژه خودمان: منبع باز، استارت آپ ها
- 12 سال در IT. 17 سال پیش - اولین برنامه را نوشت
- مایکروسافت با ارزش ترین فرد 2016
- دارای گواهی حرفه ای مایکروسافت
- اسکرام مستر تایید شده
- من تسلط خوبی به C#/C++/Java/Python/JS دارم
- حقوق - 6000-9000 دلار در ماه. بسته به بار
- محل کار اصلی من امروز صرافی فریلنسری Upwork است. از طریق آن من برای شرکتی کار می کنم که با NLP/AI/ML سر و کار دارد. دارای پایگاه 1 میلیون کاربر
- 3 برنامه در AppStore و GooglePlay منتشر شد
- من در حال آماده شدن برای تأسیس شرکت فناوری اطلاعات خودم در مورد پروژه ای هستم که در حال حاضر در حال توسعه آن هستم

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

این احتمالاً تا آنجا که به موضوع کتاب مربوط می شود، مربوط به من است. بعدی داستان من است.

داستان. شروع کنید.

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

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

برخورد بعدی من با فناوری کامپیوتر در همان سن اتفاق افتاد. آخر هفته ها اغلب به پدربزرگ و مادربزرگم سر می زدم که به نوبه خود آشغال های مختلفی می فروختند و همچنین با کمال میل آن ها را با سکه می خریدند. ساعت های قدیمی، سماور، دیگ بخار، نشان ها، شمشیرهای جنگجویان قرن سیزدهم و غیره. در میان این همه چیز، شخصی برای او کامپیوتری آورد که از تلویزیون و یک ضبط صوت اجرا می شد. خوشبختانه مادربزرگ من هر دو را داشت. البته ساخت شوروی. TV Electron با هشت دکمه برای تغییر کانال. و یک ضبط صوت دو کاست Vega که حتی می تواند نوارهای صوتی را دوباره ضبط کند.
حرفه برنامه نویسی فصل 1. برنامه اول
کامپیوتر شوروی "پویسک" و تجهیزات جانبی: تلویزیون "الکترون"، ضبط صوت "وگا" و کاست صوتی با زبان بیسیک

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

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

از خاطرات کودکی، مطمئناً تمام وسایلی را که پدر و مادرم برای من خریده بودند، به خاطر می آورم که با سایر اقوام کار کرده بودم. اولین جغجغه بازی معروف "گرگ تخم می گیرد" بود. من آن را خیلی سریع تمام کردم، کارتون مورد انتظار را در پایان دیدم و چیز دیگری می خواستم. سپس تتریس بود. در آن زمان ارزش آن 1,000,000 کوپن بود. بله، در اوایل دهه 90 در اوکراین بود و یک میلیون برای موفقیت تحصیلی ام به من داده شد. این بازی پیچیده‌تر را برای پدر و مادرم سفارش دادم که به شایستگی احساس می‌کردم یک میلیونر هستم، جایی که آنها باید به درستی شکل‌هایی با اشکال مختلف را که از بالا می‌افتند مرتب کنند. در روز خرید، تتریس توسط پدر و مادرم به طور غیرقابل کنترلی از من گرفته شد، که خودشان تا دو روز نتوانستند از شر آن خلاص شوند.

حرفه برنامه نویسی فصل 1. برنامه اول
معروف "گرگ تخم مرغ و تتریس می گیرد"

سپس کنسول های بازی بودند. خانواده ما در یک خانه کوچک زندگی می کردند که عمو و خاله ام نیز در اتاق کناری زندگی می کردند. دایی من یک خلبان نظامی بود، او از نقاط داغ عبور می کرد، بنابراین با وجود فروتنی، بسیار سرسخت بود و از چیز کمی می ترسید.
عملیات نظامی درست مانند بسیاری از مردم در دهه 90، دایی من وارد تجارت شد و درآمد بسیار خوبی داشت. بنابراین یک تلویزیون وارداتی، یک VCR و سپس یک ستاپ باکس Subor (مشابه Dendy) در اتاق او ظاهر شد. با تماشای بازی های سوپر ماریو، تاپ گان، ترمیناتور و دیگر بازی ها، نفسم بند آمد. و وقتی جوی استیک را به دستانم داد، خوشحالی من حد و مرزی نداشت.

حرفه برنامه نویسی فصل 1. برنامه اول
کنسول هشت بیتی "Syubor" و افسانه ای "Super Mario"

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

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

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

حرفه برنامه نویسی فصل 1. برنامه اول
تفنگ اسباب بازی از دوران کودکی

ذکر فیلم "هکرها" خالی از لطف نیست. این فیلم درست در سال 1995 با بازی آنجلینا جولی 20 ساله منتشر شد. اینکه بگویم این فیلم تاثیر شدیدی روی من گذاشت، چیزی نگفته است. از این گذشته، تفکر کودکان همه چیز را به صورت ظاهری درک می کند.
و اینکه چگونه این افراد به طرز معروفی دستگاه های خودپرداز را تمیز می کردند، چراغ های راهنمایی را خاموش می کردند و در سراسر شهر با برق بازی می کردند - برای من این یک جادو بود. سپس این فکر به ذهنم خطور کرد که خیلی خوب است که به اندازه هکرها قادر مطلق شوم.
چند سال بعد، همه شماره های مجله هکر را خریدم و سعی کردم پنتاگون را هک کنم، اگرچه هنوز اینترنت نداشتم.

حرفه برنامه نویسی فصل 1. برنامه اول
قهرمانان من از فیلم "هکرها"

یک کشف واقعی برای من یک رایانه شخصی واقعی بود، با یک مانیتور لامپ 15 اینچی و یک واحد سیستم مبتنی بر پردازنده Intel Pentium II. البته توسط عمویش خریداری شد که تا پایان دهه نود آنقدر بالا رفته بود که می توانست بپردازد.
چنین اسباب بازی هایی اولین باری که یک بازی را برای من روشن کردند، خیلی هیجان انگیز نبود. اما یک روز، روز قیامت فرا رسید، ستارگان هم ردیف شدند و ما به دیدار عمویمان که در خانه نبود، آمدیم. من پرسیدم:
- آیا می توانم کامپیوتر را روشن کنم؟
خاله مهربون جواب داد: بله، هر کاری می خواهی با او بکن.

البته من هر کاری که می خواستم با او انجام دادم. روی دسکتاپ ویندوز 98 آیکون های مختلفی وجود داشت. WinRar، Word، FAR، Klondike، بازی ها. پس از کلیک بر روی تمام آیکون ها، توجه من روی FAR Manager متمرکز شد. به نظر می رسد یک صفحه آبی نامفهوم است، اما با لیست طولانی (فایل ها) قابل راه اندازی. با کلیک کردن روی هر کدام به نوبه خود، تأثیر اتفاقی که در حال رخ دادن بود را دریافت کردم. برخی کار کردند، برخی نه. بعد از مدتی متوجه شدم که فایل‌هایی که به “.exe” ختم می‌شوند، جالب‌ترین هستند. آنها تصاویر جالب مختلفی را راه اندازی می کنند که می توانید روی آنها نیز کلیک کنید. بنابراین احتمالاً همه فایل‌های exe موجود را روی رایانه عمویم راه‌اندازی کردم، و سپس آنها به سختی گوش‌هایم را از اسباب‌بازی فوق‌العاده جالب بیرون کشیدند و به خانه بردند.

حرفه برنامه نویسی فصل 1. برنامه اول
همون مدیر FAR

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

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

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

یاد اولین درسم افتادم بارگذاری ویندوز 98 خیلی طول کشید، سپس معلم صحبت کرد:
- بنابراین. قبل از شما یک دسکتاپ ویندوز است. این شامل آیکون های برنامه است. در پایین دکمه شروع است. یاد آوردن! همه کارها با دکمه Start شروع می شود. با دکمه سمت چپ ماوس روی آن کلیک کنید.
او ادامه داد.
- در اینجا - برنامه های نصب شده را مشاهده می کنید. ماشین حساب، دفترچه یادداشت، ورد، اکسل. همچنین می توانید با کلیک بر روی دکمه "خاموش کردن" رایانه خود را خاموش کنید. آن را امتحان کنید.
در نهایت او به بخش سخت تر آن زمان برای من رفت.
معلم گفت: «روی دسکتاپ، می‌توانید برنامه‌هایی را نیز ببینید که با دوبار کلیک کردن راه‌اندازی می‌شوند.
- دو برابر!؟ - به طور کلی این چطور است؟
- بیا تلاش کنیم. Notepad را با دوبار کلیک کردن روی آن با دکمه سمت چپ ماوس راه اندازی کنید.

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

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

با مادرم به اولین درس برنامه نویسی رسیدم. یادم نیست چرا ظاهراً او باید برای دوره های جدید مذاکره می کرد و پرداخت می کرد. بیرون بهار بود، هوا تاریک بود. کل شهر را با مینی بوس-گازل به حومه سفر کردیم، به محل بدنام رسیدیم.
پانل خروشچف، روی زمین رفت و اجازه داد داخل شویم.
آنها من را در انتهای رایانه نشاندند و برنامه ای را با صفحه کاملاً آبی و حروف زرد باز کردند.
- این توربو پاسکال است. معلم در مورد عمل خود اظهار نظر کرد.
- ببینید، اینجا من مستنداتی در مورد نحوه کار آن نوشتم. آن را بخوانید و نگاه کنید.
جلوی من یک بوم از متن زرد و کاملاً نامفهوم بود. سعی کردم برای خودم چیزی پیدا کنم، اما نتوانستم. گرامر چینی و بس.
بالاخره بعد از مدتی مدیر دوره یک کاغذ چاپی A4 به من داد. چیز عجیبی روی آن نوشته شده بود که قبلاً به مانیتور بچه های دوره برنامه نویسی نگاه کرده بودم.
- آنچه در اینجا نوشته شده را بازنویسی کنید. معلم دستور داد و رفت.
شروع کردم به نوشتن:
برنامه Summa;

نوشتم، همزمان به دنبال حروف انگلیسی روی صفحه کلید بودم. در ورد حداقل من به زبان روسی آموزش دیدم، اما اینجا باید حروف دیگر را یاد بگیرم. برنامه با یک انگشت اما با دقت تایپ شد.
شروع، پایان، var، عدد صحیح - این چیه؟ با اینکه از کلاس اول انگلیسی می خواندم و معنی بسیاری از کلمات را می دانستم، اما نمی توانستم همه آن را به هم وصل کنم. مثل یک خرس آموزش دیده روی دوچرخه، به پدال زدن ادامه دادم. بالاخره یه چیز آشنا:
writeln('شماره اول را وارد کنید');
سپس - writeln('شماره دوم را وارد کنید');
سپس - writeln('نتیجه = ',c);
حرفه برنامه نویسی فصل 1. برنامه اول
همان اولین برنامه توربو پاسکال

وای من نوشتم دستانم را از روی صفحه کلید برداشتم و منتظر ماندم تا استاد برای دستورالعمل های بیشتر ظاهر شود. بالاخره آمد، صفحه را اسکن کرد و گفت کلید F9 را فشار دهم.
مرشد گفت: "اکنون برنامه کامپایل شده و برای وجود خطا بررسی می شود."
هیچ اشتباهی وجود نداشت. بعد گفت کلیدهای Ctrl+F9 رو بزن که من هم باید برای اولین بار مرحله به مرحله توضیح بدم. کاری که باید انجام دهید این است که Ctrl را نگه دارید، سپس F9 را فشار دهید. صفحه سیاه شد و پیامی که متوجه شدم در نهایت روی آن ظاهر شد: "شماره اول را وارد کنید."
به دستور استاد 7 رو وارد کردم بعد عدد دوم. 3 را وارد می کنم و اینتر را فشار می دهم.

خط "نتیجه = 10" با سرعت رعد و برق روی صفحه ظاهر می شود. این یک سرخوشی بود و من قبلاً در زندگی ام چنین چیزی را تجربه نکرده بودم. انگار تمام کائنات جلوی من باز شد و من خودم را در یک پورتال دیدم. گرما از بدنم گذشت، لبخندی روی لبم ظاهر شد و در جایی بسیار عمیق در ناخودآگاه متوجه شدم - که این مال من است. خیلی شهودی، در سطح احساسی، پتانسیل عظیمی را در این جعبه وزوز زیر میز احساس کردم. کارهای زیادی وجود دارد که می توانید با دستان خود انجام دهید و او این کار را انجام خواهد داد!
که این نوعی جادو است. کاملاً فراتر از درک من بود که چگونه آن متن زرد و نامفهوم روی صفحه آبی به برنامه ای راحت و قابل فهم تبدیل شد. که خودش هم به حساب میاد! چیزی که من را شگفت زده کرد، خود محاسبه نبود، بلکه این واقعیت بود که هیروگلیف های نوشته شده به یک ماشین حساب تبدیل شدند. در آن زمان بین این دو رویداد فاصله وجود داشت. اما به طور شهودی احساس کردم که این قطعه سخت افزار تقریباً هر کاری را می تواند انجام دهد.

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

ادامه ...

منبع: www.habr.com

اضافه کردن نظر