Course / دورة
Working as a developerالعمل مطوّرًا
The half of the job that is not typing
نصف العمل الذي ليس طباعة
beginner 16 lessons 4 chapters 12 hours
Before you start / قبل أن تبدأ: Git and GitHub
0 / 16 lessons completed / دروس مكتملة
What you will be able to do / ماذا ستستطيع أن تفعل
- Turn a vague request into something you can actually build تحوّل طلبًا غامضًا إلى شيء تستطيع بناءه فعلًا
- Ask for help in a way that gets you an answer تطلب المساعدة على نحو يأتيك بجواب
- Give and take a code review without either of you dreading it تعطي مراجعة كود وتتلقاها دون أن يخشاها أحدكما
- Say where you are honestly, including when you are stuck تقول أين أنت بصدق، حتى حين تكون عالقًا
1 Before any code is writtenقبل كتابة أي كود 4
-
1
What the ticket does not say / ما لا تقوله التذكرة
Almost every ticket is a solution somebody already picked, written down instead of the problem behind it. Finding the problem takes one question, and it is the difference between building the right thing and building exactly what was asked for.
كل تذكرة تقريبًا حلٌّ اختاره أحدهم أصلًا، مكتوبًا بدل المشكلة خلفه. والعثور على المشكلة يكلّف سؤالًا واحدًا، وهو الفرق بين بناء الشيء الصحيح وبناء ما طُلب بالضبط.
-
2
Asking so that somebody can answer / السؤال على نحو يستطيع أحدهم إجابته
The difference between a question that gets a fast answer and one that gets ignored is rarely politeness. It is whether the person reading it can help without first having to ask you four things back.
الفرق بين سؤال يلقى جوابًا سريعًا وسؤال يُتجاهل نادرًا ما يكون التأدب. بل هو أيستطيع قارئه المساعدة دون أن يضطر أولًا إلى سؤالك أربعة أشياء.
-
3
Saying how long, when you do not know / قول كم يستغرق، وأنت لا تعرف
Estimates are wrong. Everybody knows this and asks for them anyway, because the number is not really the point — what somebody is buying is the ability to plan around you, and there are honest ways to give them that.
التقديرات خاطئة. والجميع يعرف ذلك ويطلبها رغم ذلك، لأن الرقم ليس المقصد فعلًا — فما يشتريه أحدهم هو القدرة على التخطيط حولك، وثمة طرق صادقة لإعطائهم ذلك.
-
4
Pushing back without being difficult / الاعتراض دون أن تكون عسيرًا
Agreeing to everything is not being helpful — it is moving the problem to the week when it cannot be solved. There are a handful of sentences that raise a real concern and leave the decision where it belongs, which is not with you.
الموافقة على كل شيء ليست تعاونًا — بل نقلٌ للمشكلة إلى الأسبوع الذي لا يمكن حلّها فيه. وثمة حفنة جمل تثير قلقًا حقيقيًا وتترك القرار في موضعه، وليس موضعه عندك.
2 Code somebody else wroteكود كتبه غيرك 4
-
5
Your first week in code somebody else wrote / أسبوعك الأول في كود كتبه غيرك
Nobody reads a codebase. You arrive, you are given something small, and you follow one thread through it — and the map you build that way is more useful than any tour, because it is built out of things you actually needed.
لا أحد يقرأ مستودعًا. بل تصل، ويُعطى لك شيء صغير، فتتبع خيطًا واحدًا خلاله — والخريطة التي تبنيها هكذا أنفع من أي جولة، لأنها مبنية من أشياء احتجتها فعلًا.
-
6
The smallest change that does the job / أصغر تغيير يؤدي العمل
A large pull request is not more work delivered, it is more work created — for the reviewer who cannot hold it in their head, and for whoever has to find which part of it broke something three weeks later.
طلب السحب الكبير ليس عملًا أكثر مسلَّمًا، بل عملًا أكثر مخلوقًا — للمراجع الذي لا يسعه رأسه، ولمن عليه إيجاد أي جزء منه كسر شيئًا بعد ثلاثة أسابيع.
-
7
The description is part of the work / الوصف جزء من العمل
A pull request with no description asks the reviewer to reconstruct your reasoning from the diff. Five minutes of writing saves them twenty minutes of guessing, and it is the same five minutes that finds the thing you forgot.
طلب السحب بلا وصف يطلب من المراجع إعادة بناء استدلالك من الفرق. وخمس دقائق كتابة توفّر عليهم عشرين دقيقة تخمين، وهي الدقائق الخمس نفسها التي تجد ما نسيته.
-
8
Reviewing without making an enemy / المراجعة دون صنع عدو
A review is the one place a team routinely tells somebody their work is not right yet. How that is written decides whether it improves the code, and whether the person asks you to review the next one.
المراجعة هي الموضع الوحيد الذي يخبر فيه فريقٌ أحدَهم بانتظام أن عمله ليس صحيحًا بعد. وكيفية كتابتها تقرر أتحسّن الكود، وأيطلب منك الشخص مراجعة التالي.
3 When it goes wrongحين يسوء الأمر 4
-
9
The cheapest hour to say it is the first one / أرخص ساعة لقولها هي الأولى
Everybody breaks something eventually. What separates a small event from a large one is almost never the mistake — it is the gap between making it and saying it, and that gap is entirely within your control.
الجميع يكسر شيئًا في النهاية. وما يفصل الحدث الصغير عن الكبير لا يكاد يكون الخطأ أبدًا — بل الفجوة بين ارتكابه وقوله، وتلك الفجوة في يدك كلها.
-
10
Finding a bug in code you have never read / إيجاد علة في كود لم تقرأه قط
You will spend more of your career in unfamiliar code than in your own. The method is the same either way and it is not cleverness — it is narrowing, one halving at a time, until the place the problem lives is small enough to read.
ستقضي من حياتك المهنية في كود غريب أكثر مما تقضي في كودك. والطريقة واحدة في الحالين وليست براعة — بل تضييق، بتنصيف بعد تنصيف، حتى يصغر موضع المشكلة بما يكفي لقراءته.
-
11
Being stuck is a state, not a verdict / العلوق حالة لا حكم
Everybody gets stuck, including the people you assume never do. What separates a bad day from a bad fortnight is noticing that you are stuck rather than busy, and having decided in advance what you will do about it.
الجميع يعلق، ومنهم من تفترض أنهم لا يعلقون أبدًا. وما يفصل يومًا سيئًا عن أسبوعين سيئين هو ملاحظة أنك عالق لا مشغول، وأن تكون قد قررت سلفًا ماذا ستفعل حياله.
-
12
Disagreeing without it becoming about you / الخلاف دون أن يصير عنك
Technical disagreements are normal and useful right up to the point where they stop being about the technical thing. Keeping them there is a skill, and most of it is choosing what you are actually arguing for.
الخلافات التقنية عادية ونافعة حتى اللحظة التي تكفّ فيها عن كونها عن الشيء التقني. وإبقاؤها هناك مهارة، ومعظمها اختيار ما تحاجّ لأجله فعلًا.
4 The rest of the jobبقية العمل 4
-
13
Most of the job is writing / معظم العمل كتابة
Commit messages, pull requests, chat, documentation, the note explaining why. You will write far more prose than code, and it will be read by people who are busy, in a hurry, and often not reading in their first language.
رسائل الإيداع، وطلبات السحب، والدردشة، والتوثيق، والملاحظة التي تفسّر لماذا. ستكتب نثرًا أكثر بكثير من الكود، وسيقرؤه مشغولون مستعجلون، وكثيرًا لا يقرؤون بلغتهم الأولى.
-
14
Meetings, and what they are actually for / الاجتماعات، ولماذا هي فعلًا
A large part of the week is spent not writing code, and most of it looks like waste from the inside. Some of it is. Knowing which parts are load-bearing lets you take those seriously and stop resenting the rest.
جزء كبير من الأسبوع يُقضى في غير كتابة الكود، ومعظمه يبدو هدرًا من الداخل. وبعضه كذلك. ومعرفة أي الأجزاء حاملة تتيح لك أخذ تلك بجدية والكفّ عن الاستياء من الباقي.
-
15
What somebody actually looks at / ما ينظر إليه أحدهم فعلًا
Whoever is looking at your work has thirty of them to get through and is giving yours somewhere between twenty seconds and two minutes. Almost everything people put effort into is outside that window, and the few things inside it are cheap to fix.
من ينظر في عملك أمامه ثلاثون مثله ويعطي عملك ما بين عشرين ثانية ودقيقتين. ومعظم ما يبذل الناس فيه جهدًا خارج تلك النافذة، والقليل الذي بداخلها رخيص الإصلاح.
-
16
The interview, and the first ninety days / المقابلة، والتسعون يومًا الأولى
An interview is not an exam, and treating it as one is what makes it go badly. It is two parties working out whether this is a good idea — and you are one of them, which most people forget until after they have accepted.
المقابلة ليست امتحانًا، ومعاملتها كذلك هي ما يجعلها تسوء. بل هي طرفان يستكشفان أهذه فكرة جيدة — وأنت أحدهما، وهو ما ينساه معظم الناس حتى بعد القبول.