مسیر برنامهنویسی یک دانشجوی پزشکی: از المپیاد تا پروژههای واقعی
بسیاری از دوستان و آشنایان میپرسند: «چطور هم پزشکی میخونی و هم برنامهنویسی میکنی؟» یا «کی وقت میذاری برای کد زدن؟» این مقاله خلاصهی تجربه ۷ سال برنامهنویسی من در کنار تحصیل پزشکی است.
شروع: المپیاد کامپیوتر (۱۳۹۷-۱۳۹۹)
دوران دبیرستان در سمپاد اصفهان بود که با برنامهنویسی جدی آشنا شدم. المپیاد کامپیوتر (ICPC style) یاددهامان:
- تفکر الگوریتمی - حل مسئله قبل از کد زدن
- ساختمان دادهها - آرایه، پشته، صف، درخت، گراف
- پیچیدگی زمانی و فضایی - بهینهسازی واقعی
- C++ - زبان اصلی المپیاد
// نمونه مسئله کلاسیک: کوتاهترین مسیر (Dijkstra)
#include <bits/stdc++.h>
using namespace std;
vector<pair<int,int>> adj[100005];
long long dist[100005];
void dijkstra(int src, int n) {
fill(dist, dist+n+1, LLONG_MAX);
dist[src] = 0;
priority_queue<pair<long long,int>, vector<pair<long long,int>>, greater<>> pq;
pq.push({0, src});
while(!pq.empty()) {
auto [d, u] = pq.top(); pq.pop();
if(d > dist[u]) continue;
for(auto [v, w] : adj[u]) {
if(dist[v] > dist[u] + w) {
dist[v] = dist[u] + w;
pq.push({dist[v], v});
}
}
}
}
نکته کلیدی: المپیاد فقط سینتکس یاد نمیدهد؛ نحوه تفکر برای حل مسئله را میسازد.
مقطع کنکور: یک سال وقفه (۱۴۰۰)
سال ۱۴۰۰ کنکور دادم و نتیجه خوبی نگرفتم. آن یک سال:
- از برنامهنویسی دور شدم (فقط تمرکز روی بیولوژی، شیمی، فیزیک)
- احساس کردم بخشی از مهارتهام در حال فرسایش است
- فهمیدم استمراری در برنامهنویسی چقدر حیاتی است
دوران دانشگاه: بازگشت با دیدگاه جدید (۱۴۰۱ تا به حال)
ورود به IUMS یعنی:
- زمان محدودتر (۶-۸ ساعت کلاس/کلینیک روزانه)
- استرس امتحانات مداوم
- نیاز به مدیریت وقت هوشمندانه
استراتژیهای من برای کدنویسی در کنار پزشکی:
| استراتژی | توضیح |
|---|---|
| ساعتهای طلایی | ۱-۲ ساعت صبح زود (قبل از کلاس) یا دیر شب |
| پروژههای کوچک | به جای پروژه بزرگ، ماژولهای کوچک و قابل اتمام |
| یادگیری در حین انجام | فقط چیزهایی یاد بگیرم که برای پروژه لازم است |
| هفتههای سبکتر | در هفتههای امتحان کم، تمرکز روی مطالعه پزشکی |
تکنولوژیهای یادگرفته شده در دانشگاه:
Frontend: React, Next.js, TypeScript, Tailwind CSS
Backend: Node.js, Express, PostgreSQL, Redis
Mobile: React Native, Expo
DevOps: Docker, GitHub Actions, Cloudflare Pages/Workers
AI/ML: Python, PyTorch, Hugging Face, LangChain
Tools: Git, VS Code, Figma, Notion
پروژههای واقعی انجام شده
۱. سامانه مدیریت بیمار (Medical Records System)
- استک: Next.js + PostgreSQL + Prisma + Tailwind
- ویژگیها: احراز هویت، پرونده الکترونیک، جستجوی پیشرفته، خروجی PDF
- چالش: رعایت HIPAA/حریم خصوصی دادههای پزشکی
۲. پیشبینی عفونت بستری با ML
- استک: Python + PyTorch + FastAPI + React
- دادهها: ۱۰ هزار رکورد بیمار ( ناشناسسازی شده)
- مدل: XGBoost + Neural Network Ensemble
- نتیجه: AUC ۰.۸۷ روی تست ست
۳. ربات تلگرام برای یادگیری پزشکی
- استک: Node.js + Telegraf + PostgreSQL
- ویژگیها: کوییز روزانه، فلشکارت، یادآوری spaced repetition
- کاربران: ۵۰۰+ دانشجو پزشکی
چالشهای واقعی و راهکارها
۱. Syndrome منقضی (Imposter Syndrome)
«من نه پزشک خوبم نه برنامهنویس خوبم»
راهکار: پذیرش اینکه تخصص در تقاطع ارزش خودش را دارد. من «پزشک برنامهنویس» هستم، نه «پزشک» یا «برنامهنویس» جداگانه.
۲. Burnout
فصلهای امتحانی + ددلاین پروژه = سوختن.
راهکار:
- قانون «صفر کد در هفته امتحان»
- پروژهها را به SPRINTهای ۲ هفتهای تقسیم کن
- «Done is better than perfect»
۳. بهروز ماندن در تکنولوژی
تکنولوژی هر ۶ ماه عوض میشود، پزشکی هر ۱۰ سال.
راهکار:
- Newsletterهای المنتخب (TLDR, ByteByteGo, AI Weekly)
- یوتوبرهای تخصصی (Fireship, Theo, Andrej Karpathy)
- GitHub Trending هفتهای یک بار چک کن
نصایح برای دانشجویان پزشکی علاقهمند به کد
- شروع کنید، کاملگرا نباشید - اولین پروژهات بد خواهد بود، همینطور باید باشد
- پزشکی اولویت اول است - پروژههای کد باید حول محوریت درسیات بچرخند
- پورتفولیو بسازید - GitHub پروفایلت رزومهی واقعیت است
- کامیونیتی پیدا کنید - Discord، Twitter، GitHub Discussions
- یاد بگذارید که «نه» بگویید - نمیتوانید همه کارها را انجام دهید
روزانه من (نمونه)
| زمان | فعالیت |
|---|---|
| ۰۶:۳۰ - ۰۷:۳۰ | بیدار شدن، صبحانه، بررسی ایمیل/GitHub |
| ۰۷:۳۰ - ۱۳:۳۰ | کلاسها / کلینیک / آمپول |
| ۱۳:۳۰ - ۱۵:۰۰ | ناهار، استراحت، پاورهای ۲۰ دقیقهای |
| ۱۵:۰۰ - ۱۷:۰۰ | مطالعه درسی / آنکی / مرور |
| ۱۷:۰۰ - ۱۹:۰۰ | کدنویسی / پروژه (فوکوس عمیق) |
| ۱۹:۰۰ - ۲۰:۳۰ | شام، تفریح، شبکههای اجتماعی |
| ۲۰:۳۰ - ۲۲:۰۰ | مطالعه کتاب / مقاله / یادگیری مهارت جدید |
| ۲۲:۳۰ | خواب |
نتیجهگیری
ترکیب پزشکی و برنامهنویسی سخت است، اما غیرممکن نیست. کلید موفقیت:
- ثبات (حتی ۳۰ دقیقه در روز)
- انتخاب پروژههای مرتبط با پزشکی (انگیزه دوچندان)
- عدم انتظار از خودتان برای بینقص بودن
اگر تو هم دانشجوی پزشکی هستی و به برنامهنویسی علاقه داری، امروز یک ریپازیتوری باز کن و اولین کامیت را بزن. آیندهات سپاسگزار تو خواهد بود. 💚
پ.ن: اگر سوالی داری یا میخوای روی پروژهای همکاری کنی، از طریق ایمیل یا گیتهاب در ارتباط باش.