sayedalesawy
sayedalesawy

@sayed_alesawy

7 تغريدة 8 قراءة Mar 14, 2024
كل سنة وأنتم طيبين. فى الثريد ده هتكلم شوية اقتراحات ممكن تخليك كا طالب CS تطلع من الكلية بمحصلة علم احسن وتحسن فرصك انك تلاقى شغل اسرع ان شاء الله.
[1]
اول حاجة لازم تبقى عارف ان الكلية الى انت فيها لو كويسة ممكن تسهل الدنيا بنسبالك وتقربلك المسافات، لكن لو مش كويسة اوى او مش كويسة فى كل حاجة ان ده مش معناه انو خلاص كده. لحسن الحظ دلوقتى كل حاجة متاحة فى كل مكان، الى محتاج تعمله انك تبقى عارف انت محتاج ايه وتسعى فيه. مثلا تبقى عارف ايه اهم courses CS لازم تبقى درستها ولو فيه حاجة فيها الكلية بتاعتك مش بتدرسها، تبقى عارف انك لازم تدرسها لوحدك. انا فى رأى ال courses دى هى:
⁃Data structures and algorithms
⁃Database design (and internals)
⁃Operating systems
⁃Distributed systems
⁃Cryptography
⁃Probability and number theory
⁃Linear algebra
اغلب الكليات بتدرس الحاجات دى، لكن بمستويات مختلفة، فيه كليات مثلا بتدرس advanced databases بتتعمق اكتر فى ال database internals و فيه كليات مش بتدرس distributed systems خالص مثلا، ولكن انا رأى الشخصى ان ال list دى essential لل basic case. ممكن تحتاج حاجات زيادة لو انت مثلا مهتم ب field معين اكتر زى machine learning او computer vision وغيره. حابب اعلق اكتر على اخر كورسين لأنهم ممكن يكونوا جدلين شويه، هما طبعا مهمين جدا لاى حد مثلا حابب يكمل فى حاجة زى machine learning بس هم مهمين للناس العادين برضه لانهم بيخله طريقة تفكيرك فى المشاكل علمية اكتر، وساعات بتحتاجهم لو جيت تعمل مثلا modeling لحاجة, مثلا بتعمل traffic modeling ل system او بتحاول ت count احتمالات حدوث حاجة معينة او بتختار مثلا unique key بطريقة مش straightforward ومحتاج تحسب مثلا chance of collisions وحاجات تانية كتير بلقيها مفيدة بنسبالى جدا.
[2]
اول ما بقيت عارف انت محتاج ايه ونقاصك ايه، sky is the limit لما تيجى تدور على resources. تقريبا اى حاجة من الى قولته ليه على الاقل كتاب مشهور بيشرح ال fundamentals بتاعته وكتب كتير بتتعمق فيه. كمان فى courses كتير من دى ممكن تلقيها مسجلة من جامعات محترمة جدا بره مصر وساعات من جامعات مصرية او افراد معيدين او دكاترة. وفيه communities كتير لاغلب الحاجات زى stack exchange مثلا او غيره تقدر تسأل عليها وتتنقاش مع ناس عادى جدا. متحصرش نفسك فى slides محاضرة ولا tutorial والكلام. انا مدرك انه اى حد هيبقى مركز ينجح ويعدى والكلام ده بس تقدر تعمل الكلام ده فى نفس الوقت لو تقدر او فى وقتك الفاضى.
[3]
حاجة كمان مهمة جدا جمب تحصيل معلومات هو انك ابدأ تجرب الحاجات دى بنفسك فى projects وتحاول تخلى ال projects دى معقدة عشان تقدر تجرب حاجات اكتر وأصعب. اغلب الكليات بتخليك تعمل مشاريع، مش ديما بتكون interesting ولكن انت فى اديك تخليها مفيدة ليك. مثلا افتكر مرة كان عندنا مشروع نعمل compression scheme نضغط بيها dataset معينة. ممكن حد يروح يعمل compression algorithm سهل وبسيط مثلا huffman او اى حاجة وخلاص المشروع خلص وخدنا الامتياز وكله تمام. وممكن حد يدور على حاجة عملية اكتر ومعقدة ويحاول ي optimize فيها. فى المشروع ده قريت ال RFC بتاعة Deflate ده compression scheme فيها 2 compression layers واحدة منهم اسمها LZ77 وبعد كده canonical huffman. الى حاولت اعمله كمان انه ممكن اعمل optimizations مبنية على طبيعة الداتا الى معايا، هى كانت text بس مثلا، فا ده خلانا اقدر اعمل حاجة احسن مخصصة لل text بس، زودت layer كمان بتعمل dictionary encoding و layer فى الاخر بتعمل bit packing. كمان عملت تعديل فى LZ77 يخليه احسن شويه, بالصدفة بعد كده اكتشفت انه معروف وبيسموه LZSS. برضه حاجة مكنتش مضطر اعملها بس اقعدت شويه با optimize فى سرعة ال compression وال decompression. دى كلها حاجات زيادة بتزودها لنفسك عشان تتعلم اكتر وتجرب حاجات اكتر وبتفضل فاكر الكلام ده طول حياتك. لو حد مهتم بالمثال ده تحديدا ممكن يشوف ال docs فى ال repo دى:
github.com
ونفس الاسلوب فى مشاريع تانية كتير، ازاى اخليه مفيد اكتر، اسرع واحسن وازاى تعمله وانت بتحاول ت apply best practices محدش بيعلمها فى الكلية بس انت وانت بتدور بتلقيها وبتعرفها.
[4]
فى نقطة مهمة برضه، ناس كتير بتفكر بعقلية انا مش جاهز، انا لسه طالب، استنى اشتغل على نفسى اكتر الأول، والكلام ده. الكلام ده بيخليك متعملش حاجة خالص. انت تقدر تشتغل وانت فى الكلية، تقدر تشتغل وانت فى الكلية، تقدر تشتغل وانت فى الكلية. حاول ديما يبقى عينك على ده، بتابع فرص ال internships المتاحة وديما بتقدم وبتعمل الى عندك. فيه شركات ممكن تخليك تكمل معاها بعد ال internship، انا مثلا كملت سنة شغل وانا فى الكلية بعد ما خلصت internship وال model عندنا كتير. و كذا حد صاحبى حتى فى شركات تانية كانوا شغالين وهم فى الكلية، وناس تانية كانت بت freelance وبتحسن من ال profile بتاعها، وناس مثلا دخلت حاجات زى google summer of code وبعدها كمله open source contributions وهكذا. يا جماعة انا اعرف واحد شغال فى شركة كويسة جدا بعد ثانوية عامة، دى طبعا extreme case ولكن بتحصل.
متقعدش تأجل انك تدور بحجة انك مش جاهز. بالمناسبة انا أول مرة applied فى Instabug كنت لسه معرفش حاجة، واترفضت بس طلعت منها عارف انا محتاج ايه واتقبلت السنة الى بعدها عادى جدا. كنت بحاول اخش process فى اى حاجة بلقيها just for the experience دخلت process وانا طالب فى حاجات زى twitter, google, bloomberg وكده كانت بتبقى experiences لطيفة حتى لو ربنا مكرمش يعنى و بتعرف انت محتاج ايه ونقاصك ايه ومستواك بيتحسن.
[5]
فى ناس بت recommend ال student activities وده بيخلى الناس بتقبل على الموضوع ده بشكل غريب و فى اى حاجة، بتلاقى واحد طالب CS او هندسة شغال HR ولا PR فى student activity عشان بس يبقى جزء منه، مش بفهمهم بصراحة. ال extracurricular activities عموما مفيدة، كا knowledge ولاهم كا relationships مع الناس، بس مش معناه انك تروح تعمل اى حاجة وخلاص.
من ال student activities الى انا كنت جزء منها لسنين وكنت بحبها بصراحة هى ال competitive programming، كنت بحبها عشان هى no bullshit عكس اغلب ال activities التانية فى رأى، على الاقل فى الكلية بتاعتى يعنى. الموضوع عبارة عن شويه ناس بيعلموا بعض algorithms وبيحلوا مساءل سوا وبيسافروا مسابقات سوا وبيشجعوا بعض. اقرب أصدقاء ليا لحد دلوقتى هم الناس الى كنت با compete معاهم. دى حاجة انا ارشحها بشدة خصوصا لطلاب أولى وتانية. بتعلمك مهارات مفيدة طول حياتك وخصوصا فى ال interviews وبتخليك سريع ودقيق وعندك attention to detail عالى وبتعلمك discipline لانها محتاجة dedication كبير وبتعرفك على ناس ذكية جدا واغلب بيروح شركات كبيرة وده بيعملك network كويسة جدا. لو عملت فيها انجازات كويسة بتبقى مميزة فى ال CV بتاعك وفى شركات كبيرة بتحب النوعية دى وال interviews فيها مبنية على الاساس ده خصوصا لل juniors وال interns
[6]
اخر حاجة، ودى بحد حاجة مهمة جدا، حاول متبقاش بت victimize نفسك، ممكن يبقى ظروفك مش أحسن حاجة بس ده مش معناه ان دى خلاص حاجة لا يمكن تتغير. برضه حاول لما تيجى تعدل مساراك تبنى على إلى فات، بجد حاجة كتير بشوفها ومقتنع مليون فى الميه انها غلط، هو انك تيجى تبدأ من الأول، يعنى تحس انك عندك مشكلة فى حاجة، فتقوم تقول لا انا شكلى الاساس بتاعى ضعيف، هروح ابدأ من الصفر. اكبر غلط، صلح مشكلتك الى فى اديك وكمل لقدام. لو كل شويه هتبدأ من الأول وهتشكك فى نفسك مش هتعمل حاجة، خلى عندك ثقة وكمل وصلح مشاكلك as you go متهدش كل حاجة وتبدأ تانى كل شوية. وبالتوفيق للجميع ان شاء الله.

جاري تحميل الاقتراحات...