گفتم قبل از هرچیز، بگم چی شد که اومدم سراغ کامپیوتر.
بخوایم خیلی برگردیم عقب، با یه نفر روبرو میشیم که بجای کامپیوتر، بیشتر دنبال جک و جونورا و کارای فنّیه، حالا چی شد که آخر سر از کامپیوتر سر در آوردم، یکم طولانیه.
از وقتی که کوچیک بودم و یادم میاد، دور و برم پر بود از مرغ و اردک و گاو و گوسفند و اینجور چیزا. چونکه خونه مون حاشیه شهر بود، نگهداری این حیوونا معموله. مرغ و اردک برای خودمون بود و گاو و گوسفند هم برای بابابزرگم.
علاوه بر اینا، یه مادر عاشق گل و گیاه رو هم به این شرایط اضافه کنین. دیگه قشنگ تو دل طبیعت بودم :) حتی یه اردک داشتم به اسم طلایی که یه جوری یتیم بود(مادرش یه مرغ بود که بعد از به دنیا اومدنش، زیاد محل بهش نمیذاشت.) و با داداشم بزرگش کردیم و تو حیات، دائماً دنبالمون بود.
تنها چیزی که یکم با این وضع تناقض داشت، کار و علایق پدرم بود. خودش که کارمند بود، ولی از لوله کشی تا نجاری و کارای برقی و الکترونیکی و مکانیکی تو خونه رو خودش انجام میداد که ترکشهاش به من هم گرفت و من هم یه دستی تو این کارا پیدا کردم. مثلا یه دوره دنبال معرق رفتم. با آرمیچر ماشین میساختم و تعمیرات دوچرخهام رو خودم انجام میدادم.
تا ۸-۹ سالگیم تو خونه خبری از موبایل و کامپیوتر و اینترنت و اینا نبود و نهایت فناوری در دسترسم، دستگاه بازی رایانک بود(یه کیبورد بود که به تلویزیون وصل میشد و عین سگا، کارتریج میخورد. ).
تو ۹ سالگیم، پدرم برای یه سری از کاراش رفت و کامپیوتر خرید که از جانبش به من هم بازی کردن باهاش رسید. البته اگه شانس میاوردم و بازی به خوبی نصب و اجرا میشد. هر از گاهی هم با کارت اینترنت و مودم دیالآپ میرفتیم اینترنت که مشکل قطع شدن تلفن و هزینه نسبتاً بالا رو داشت و از دید من یه چیز تجملاتی محسوب میشد. وقتهایی که پدرم برای تمیز کردن کیس، بازش میکرد و اون همه مدار پیچیدهی مادربودر رو میدیدم، یه جوری ازش میترسیدم و اصلا فکرش رو هم نمیکردم که بخوام یه روزی سمت این چیز عجیب و غریب برم.
همین منوال گذشت تا دبیرستان که بلاخره خانواده مجوز دادن که من برای خودم گوشی بخرم. اولین گوشیم یه گوشی دکمهای GLX بود. اولش درست و حسابی نمیدونستم چه امکاناتی داره، ولی کمکم دیدم که اینترنت و قابلیت نصب کردن برنامه جاوا هم داره. خلاصه با همین گوشی سر و کله میزدم که فهمیدم یه جور مارکتهایی هم براشون هست که اسم دوتاشون که یادمه «wapkid» و «jarbull» بود. برای خودم دنیایی داشتم. برنامه و بازیهای جاوا معمولاً فقط چند صد کیلوبایت حجمشون بود و برای من که میدید برنامههای ویندوز چندده و چندصد مگ حجمشونه، واقعاً جالب بود.
چند ماهی از خرید این گوشی نگذشته بود که تلویزیون تبلیغ گوشی لمسی GLX رو کرد و عین آوار رو سرم خراب شد که چرا الآن که تازه من گوشی خریدم باید این گوشی بیاد؟! . تو تبلیغش میگفت که وایفای داره و اندرویده که من نمیدونستم چیه و فقط لمسی بودنش حالیم میشد. (اون موقع گوشی لمسی داشتن، داشت مد میشد و منم عقلم به چشمم بود :} )
میرسیم به سال انتخاب رشته دبیرستان. تو این سال طبق اون سابقهای که داشتم، تصمیم گرفتم که برم تجربی بخونم که یه پزشکی، دامپزشکی، جانورشناسی، چیزی بشم. اصلا حتی به فکر کامپیوتر و ریاضی خوندن هم نبودم. چونکه هم بقیه میگفتن که کامپیوتر ریاضی و زبان خوبی میخواد، هم اینکه از دید من خیلی پیچیده بود.(اینو بگم که درسم بد نبود، خیلی هم خوب نبود. ولی با ریاضی و زبان زیاد حال نمیکردم و بیشتر علاقم به درسهایی مثل علوم و تاریخ بود.)
خلاصه یه دو سالی از گوشی قبلی گذشت تا بلاخره با کار تو تابستون تونستم پول گوشی لمسی رو جمع کنم. تو این دو سال هم کارم این شده بود که برم تو سایتها و مغازهها برای گوشی و اطلاعات مربوط بهش بگردم و بفهمم که هر بخش چیکار میکنه و چی به چیه.
بعد از خریدن اولین گوشی اندرویدیم، یه چیز جدید رو تجربه کردم. تقریباً هر کاری که با کامپیوتر میکردم رو میتونستم تو این هم انجام بدم و برای هر کاری برنامه براش بود. حجم برنامههاش هم چند مگ بود و تو ظاهر هم برام نسبت به کامپیوتر، اون پیچیدگیها رو نداشت. هم کوچیکتر و سبکتر بود، هم یه تیکه بود و مثل کامپیوتر از چندتا تیکه درست نشده بود.
بعد از اون مطالعهها، الآن میدونستم که توی گوشی چی به چیه و میخواستم حداکثر استفاده از دستگاه رو داشته باشم. میرفتم تو سایتها و مارکتها میگشتم برای برنامهها و یه آرشیو داشتم که برای هر کاری یه برنامه داشتم. شده بودم بانک نرمافزار فامیل و دور و بریام.
همین وضع ادامه داشت تا اینکه رسیدم به یه سری کارها و برنامهها که دسترسی روت میخواستن. یه چیزایی درباره روت خونده بودم، ولی همه متفق القول بودن که ممکنه روت کردن به گوشی صدمه بزنه. آخر سر با تشویقهای رفیق شفیقم «امیرعلی» دلم رو زدم به دریا و گوشی رو روت کردم و با موفقت انجام شد.
دیگه 3G اومده بود و میتونستم راحتتر چیزای سنگین رو دانلود کنم. یه بار سر نصب کردن یه رام غیررسمی، بلوتوث گوشی از کار افتاد که آخر سر مجبور شدم گوشی رو بفرستم نمایندگی که یک ماهی طول کشید. ولی من بعد از این توبه نکردم و یه کاستوم ریکاوری رو گوشی ریختم و از کل سیستمعاملش بکاپ گرفتم. این گوشی نگون بخت خیلی بیشتر از حدتوانش برام کار کرد و تا وقتی که هنوز لمسش کار میکرد، داشتم هر روز روش برنامه با دسترسی روت جدید امتحان میکردم و سیستمش رو خراب میکردم و دوباره بکاپ رو برمیگردوندم.
تو همین دوران، چونکه با بچههای محل دمخور نبودم، چندتا از هم محلهایها لطف میکردن و سر به سرم میذاشتن که آخر سر با گفتگو حلش کردیم و وقتی دیدن که کلاً تو عوالم خودم به سر میبرن، دیگه بیخیالم شدن.
میرسیم به کنکور کذایی. تو این سال، گوشی اندرویدی رو ازم گرفتن و یه چیزی دادن دستم که حتی جاوا هم نبود. بچههای کلاس که از سابقهام با خبر بودن، گفتن که تو با این گوشی هم همون جانی رو میدی که با اون یکی میکردی. حرفشون نه غلط بود و نه درست. من با این گوشی و اینترنت G وصل میشدم اینترنت و آهنگ دانلود میکردم. روی این وضعیت، عدم پشتیبانی از فارسی تو جستجوش رو هم بهش اضافه کنین.
خلاصه نتایج کنکور اومد و سر من بی کلاه موند(حقیقتش هم بدون خوندن چیزی رفته بودم سر جلسه. ). برای کنکور دوباره، باید میموندم تا سال بعد. همین حال، کمکم حس عکاسی و هنریم داشت گل میکرد و اینور و اونور، از صبح تا شب دنبال سوژه عکاسی حیاتوحش و مناظر بودم.
با موافقت والدین، بلاخره پای اینترنتADSL هم به خونه ما باز شد و دسترسی به منابع و اطلاعات راحتتر.
دنبال یه راهی بودم که پول در بیارم برای خریدن دوربین. یه بار که داشتم تو «بازار» الکی میگشتم، دیدم که یه برنامه درباره نکات و ترفند اندروید و گوشی و اینجورچیزها، بیشتر از ۱۰۰ میلیون تومن فروخته. رفتم دانلودش کردم و دیدم خیلی از مطالبش کپی از اینترنته و بعضی مطالب نصفه است و بعضیها هم که گفته به عکس مراجعه شود، عکس نداره.
دیدم وقتی این برنامه مزخرف تونسته اینقدر بفروشه، من که اطلاعاتش رو دارم چرا بهترش رو نسارم؟ . دست به کار شدم و یکم گشتم و یه برنامه به اسم «joapp» پیدا کردم که میشد بدون کدنویسی، برای اندروید و ios برنامههای کتابی درست کرد.
دو سالی سر این برنامه وقت گذاشتم و آخر سر دیدم که یه سری مطالب و بخشها رو خودم دقیقاً نفهمیدم، چه برسه به اینکه بخوام برای بقیه توضیح بدم و در نتیجه، بیخیال انتشارش شدم و به قول پدرم: لااقل اطلاعات خودت بالا رفت. البته برای نوشتن این برنامه، مجبور شدم به کلی از سایتهای خارجی سر بزنم که بعداً همین خیلی بهم کمک کرد.
میرسیم به تابستون کنکور دوم. تا این سال، یه تلاشهایی کرده بودم که برنامه نویسی یاد بگیرم، ولی به نتیحه نرسیده بود، چونکه اصلاً نمیدونستم باید از کجا شروع کرد و چی به چیه. اومدم برم کلاس اندروید، ولی چونکه تعداد به حدنصاب نرسید، چندتا کلاس رو ترکیب کردن و اومدن ++C یاد دادن که لااقل چیزای پایهی برنامهنویسی رو یاد بگیریم. این کلاس تا سر شئگرایی گفت و تمام.
نتایج کنکور دومم هم اومد و باز هم با افتخار هیچی. نزدیک بود کارم به اعزام به سربازی بکشه که خانواده رضایت داد که برم دانشگاه غیردولتی. خلاصه منم رفتم کاردانی نرمافزار ثبتنام کردم با این خیال که حالا میخوان چیا یاد بدن. بعد از چند ماه دیدم که چی فکر میکردیم، چی شد!
با تمام مزخرف بازیهایی که داشت، باز یه چیزایی اینجا یاد دادن مثل بیسیک و شبکه و اسمبلی و برنامهای وب و اینجور چیزا، در حد آشنایی.
تو اواخر سال اول دانشگاه، بیخیال کار کردن روی اون برنامم شدم و رفتم که واقعاً کدنوسی یاد بگیرم. دیگه هرچی دستم میرسید رو امتحان میکردم. از «Basic4Android» بگیر تا کانال تلگرام زدن و پیج اینستاگرام و انیمیشن و بازی سازی. ولی هیچ کدوم به مذاقم خوش نیومد.
یه بار که با یکی از همکلاسیها به اسم «محمدجواد» که حرف میزدم، از این شاخه به اون شاخه رفتن من گفت و یکم حرف زدیم. دیدم راست میگه. ولی آخه چی رو ادامه میدادم؟
یه مدتی فاز هک و نفوذ و امنیت گرفتم و واقعاً بدجوری گرفتم. دیدم این خیلی حال میده. رفتم چندتا دوره آموزشی گرفتم و چندماه باهاشون سر و کله زدم. هرچی تو آموزشها میگفتم، من بلا نسبت گاو، فقط نگاه میکردم و حالیم نبود دارن چی میگن. هر چند، بعداً فهمیدم که خودشون هم زیاد نمیدونستن دارن چیکار میکنن :| .
دیدم این فایده نداره، باید پایهام رو قوی کنم. همین موقعها بود که کاردانی تموم شد و کنکور کارشناسی دادم و یه دولتی داخل استان قبول شدم. ولی تا برم و جا بیفتم و خوابگاه بدن(فاصلهاش یکم دور بود) و اینا، ترم اول تقریباً بدون هیچ خبری گذشت. البته ترم مسخرهای بود. بعضی درسهایی که تو کاردانی داشتیم مثل اسمبلی و #C رو اینجا هم داشتیم.
ترم دوم خیلی بهتر شد و فقط سه روز در هفته کلاس داشتم و بقیهاش رو به سیستم خونه دسترسی داشتم. تابستون همین سال، بلاخره بخش شئگرایی ++C رو خودم خوندم و تموم کردم و اصول اولین زبانم رو تقریباً کامل یادگرفتم.
بعدش اومدم یه لایه برم پایینتر و رفتم سراغ میکروکنترلر و با کمک شبیهساز و گشتن تو اینترنت، بعد از سه هفته، به زبان C ، یدونه برنامهی ساعت با میکروکنترلر نوشتم(الگوریتمش که بداهه بود و زمان شماریش خیلی دقیق نبود، ولی در کل فهمیدم چی به چیه. ).
بعدش اومدم یه قدم دیگه برم پایین که یهو غول اسمبلی رو جلوم دیدم. دیدم راهی نیست. از کتاب "قورباغهات را قورت بده" الهام گرفتم و یه آموزش و کتاب از اینترنت برای اسمبلی ۸۰۸۶ دانلود کردم و رفتم سراغش. یه ۳ ماهی طول کشید که آموزش رو تموم کنم. بعد از تموم کردن آموزش، دیگه از اسمبلی بدم نمیومد(میگن که آدم از هر چیزی که نمیدوندش میترسه، همینه. ).
آخرای این دوره اسمبلیم بود که داشتم تو اینستاگرام میگشتم و دیدم که خارجیا یه چیزی میذارن که مثلا یک ماه با برنامهنویسی و اینجور کارا. منم گفتم که یه چیز خوب ازشون یاد بگیریم و برای خودم یه دوره ۱۰۰ روزه در نظر گرفتم و خواستم که هر روز چیز جدید یاد بگیرم و آخر روز، یه خلاصه از چیزایی که اون روز یاد گرفتم بذارم یا اینکه چرا نشده اون روز چیزی یاد بگیرم. در کل دوره خوبی بود. تو این مدت یه سری به اسمبلی و پایتون و لینوکس و php و html و css و javascript و sql زدم. البته نه در حد حرفهای، ولی تا حد آشنایی با کلیات و نوشتار و اینجور چیزها. دست نویسندههای سایت tutorialspoint.com هم درد نکنه.
این دوره ۱۰۰ روزهام تو ترم ۳ کارشناسی بود و این ترم درس برنامهنویسی تحت وب داشتیم که دیگه کنار این چیزایی که داشتم یاد میگرفتم، نور علی نور بود :) .
رسیدیم به ترم چهار دانشگاه که خورد به کرونا. منم فرصت طلب، نشستم چندتا دوره در مورد امنیت دیدم. الآن دیگه کمکم داشتم میفهمیدم که دارن چی میگن و چی به چیه. یه درخت یادگیری فرضی هم داشت تو ذهنم رشد میکرد که برای یادگیری فلان چیز، اول باید بیسال چیز رو یاد گرفت و از اینجور چیزا.
وضعیت دانشگاهها که مشخص شد، استادا قشنگ به قصد تلافی اون دوره تعطیلی وارد میدان شدن و یه پروژههایی دادن که خدا نصیب گرگ بیابون نکنه. سر بدترینشون، به لطف هم گروهیهای بیخیالم مجبور شدم ۶ هفته، بعضی اوقات تا ۱۸ ساعت در روز کد بزنم. ولی هر چی که بود، گذشت.
یه مدیر گروه هم داشتیم که دمش گرم، برای پروژه یه بورد «رزبریپای» بهم داد که براش برنامه بنویسیم. اولش فکر میکردم که عجب بوردیه و چه پیچیدگیهایی داره، ولی بعد دیدم که خیلی راحت لینوکس میخوره و با پایتون پروژه رو جمع کردم و دادم رفت.
خلاصه، الآن که دارم اینو مینویسم، دانشگاه تقریباً تموم شده و یه سری خورده کاریاش مونده. تو این مدتهایی هم که بیکارم، همش دارم دوره میبینم که همون پایهای که قبلاً گفته بودم رو محکم کنم. مثلاً دوره lpic و ceh و flask و شبکه و اینجور چیزا. خلاصه هرچی دستم برسه، از خجالتش در میام :} .
یه چیز هم داداشم همین الآن یادآوریم کرد که اضافه کنم، این بود که تو تمام این مدت به شکل عجیبی در کنارم بود. یعنی من وایساده بودم اون کی از پای سیستم پا میشه که من برم بشینم پای برنامه نویسیم. اون هم وایستاده بود که من کی پا میشم که بره بشینه پای بازی کردنش :) . ولی خلاصه یه جوری زمان روز رو با هم تقسیم کردیم و به شکل تقریباً مسالمت آمیزی داریم با هم کنار میایم :) .
الآن دیگه از اون فاز هکری و امنیت کاری و اینا به اون شکل در اومدم و به قول یکی از اساتید:(هکر به معنی نفوذگر نیست و به نفوذگر میگن کرَکر. هکر کسیه که چیزها رو خوب بشناسه و با همون چیزهایی که بقیه دارن، کارهایی جدیدی بکنه. ). فعلاً من دنبال یادگیری چیزای مختلف کامپیوترم تا یه دید کلی به هر بخشی داشته باشم و بعداً هر جا که لازم دیدم، راحتتر اون حوزه رو ادامه بدم و ارتباطش با بقیه بخشها رو بهتر بفهمم.
چند ماه دیگه هم باید برم سربازی و برای حالتهای مختلفش(کجا بیفتم و چی پیش بیاد) چندتا برنامه ریزی دارم. مثلاً خوندن مستندات برنامهها یا راه انداخت یه استارتاپ و ... برم ببینم چی پیش میاد.
این رو هم بگم که تا اینجا که یه چیزایی از برنامهنویسی و امنیت یاد گرفتم، یکی از چیزایی که یاد گرفتم این بود که امنیت ۱۰۰ درصدی نیست و معمولاً ممکنه که یه جایی، یه مشکلی مخفی شده باشه و حتی اسکریپتهای همین سایت ممکنه یه جاییش مشکل داشته باشه. برای همین مواقعه که میگیم: پشتیبان گیری از اطلاعاتتون رو فراموش نکنین :) .
کدنویس تازه کار مهیاد