مسیر برنامه‌نویسی یک دانشجوی پزشکی: از المپیاد تا پروژه‌های واقعی

لپ‌تاپ باز با کد روی میز در کنار کتاب‌های پزشکی

بسیاری از دوستان و آشنایان می‌پرسند: «چطور هم پزشکی می‌خونی و هم برنامه‌نویسی می‌کنی؟» یا «کی وقت می‌ذاری برای کد زدن؟» این مقاله خلاصه‌ی تجربه ۷ سال برنامه‌نویسی من در کنار تحصیل پزشکی است.

شروع: المپیاد کامپیوتر (۱۳۹۷-۱۳۹۹)

دوران دبیرستان در سمپاد اصفهان بود که با برنامه‌نویسی جدی آشنا شدم. المپیاد کامپیوتر (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 هفته‌ای یک بار چک کن

نصایح برای دانشجویان پزشکی علاقه‌مند به کد

  1. شروع کنید، کامل‌گرا نباشید - اولین پروژه‌ات بد خواهد بود، همینطور باید باشد
  2. پزشکی اولویت اول است - پروژه‌های کد باید حول محوریت درسی‌ات بچرخند
  3. پورتفولیو بسازید - GitHub پروفایل‌ت رزومه‌ی واقعی‌ت است
  4. کامیونیتی پیدا کنید - Discord، Twitter، GitHub Discussions
  5. یاد بگذارید که «نه» بگویید - نمیتوانید همه کارها را انجام دهید

روزانه من (نمونه)

زمان فعالیت
۰۶:۳۰ - ۰۷:۳۰ بیدار شدن، صبحانه، بررسی ایمیل/GitHub
۰۷:۳۰ - ۱۳:۳۰ کلاس‌ها / کلینیک / آمپول
۱۳:۳۰ - ۱۵:۰۰ ناهار، استراحت، پاورهای ۲۰ دقیقه‌ای
۱۵:۰۰ - ۱۷:۰۰ مطالعه درسی / آنکی / مرور
۱۷:۰۰ - ۱۹:۰۰ کدنویسی / پروژه (فوکوس عمیق)
۱۹:۰۰ - ۲۰:۳۰ شام، تفریح، شبکه‌های اجتماعی
۲۰:۳۰ - ۲۲:۰۰ مطالعه کتاب / مقاله / یادگیری مهارت جدید
۲۲:۳۰ خواب

نتیجه‌گیری

ترکیب پزشکی و برنامه‌نویسی سخت است، اما غیرممکن نیست. کلید موفقیت:

  • ثبات (حتی ۳۰ دقیقه در روز)
  • انتخاب پروژه‌های مرتبط با پزشکی (انگیزه دوچندان)
  • عدم انتظار از خودتان برای بی‌نقص بودن

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


پ.ن: اگر سوالی داری یا می‌خوای روی پروژه‌ای همکاری کنی، از طریق ایمیل یا گیتهاب در ارتباط باش.