bu tür şeyler daha çok yazılım mühendisliği, analiz-tasarım ile ilgili kaynaklarda iyi anlatılır. UML gibi bazı şeyleri öğrenmen de çok faydalı olacaktır. ancak şu aşamada sen dil öğrenmeye odaklan bence. şunu da bilmelisin ki büyük yazılım ekiplerinde herkes flowchart çizmekle yükümlü değildir. yazılım 5 temel aşamadan oluşur (tabii ki detaylandırınca daha fazla aşama çıkar).
1) problemin sorgulanması: ilk aşamadır. bu aşamada çok temel şeyler tartışılır. mesela böyle bir yazılıma gerçekten ihtiyaç var mı? neyi nasıl yapmak daha doğru olur. hedef kitle kimlerdir. yapılabilirlik, uygulanabilirlik v.s. v.s.
2) analiz & tasarım: burada artık yapılması gereken bellidir ve bunun akış diyagramları çizilir, yazılım modellenir. bu aşama bittiğinde programın yazılması aşamasına henüz geçilmemiştir ancak teorik programın tüm akışı, işleyişi modellenmiş, bitmiştir.
3) programlama: analiz aşamasında hazırlanan dökümanlar üzerinden iş paylaşımı yaparak ekip programı yazar.
4) test ve bugların temizlenmesi: hatasız program diye birşey yoktur. bu aşamada testerlar devreye girer ve her fonksiyonu detaylı bir şekilde test ederler. bulunan hatalar programcılara rapor edilir, programcılar hataları düzeltir.
5) dökümantasyon: son şeklini alan programın teknik ve son kullanıcıya yönelik dökümanları hazırlanır.
şimdi sen bir programcı olarak yalnızca 3. ve 4. bölümlerde de yer alabilirsin. yani illa analizi senin yapman bile şart değil. işin aslını sorarsan Türkiye'de küçük bir ekipte çalıştığın sürece ne yazık ki bu iş yukarıdaki 5 maddedeki gibi yürümüyor, zaman zaman 5 aşamayı da bir kişinin yaptığı bile oluyor. ancak dediğim gibi normalde bunlar farklı kişilerin görevleri ve hepsinden sorumlu olmak
zorunda değilsin.
gelelim flowchartlar, UML v.b. şeyleri neden öğrenmen gerektiğine. tamam, sen sorumlu değilsin ama önüne tasarım dökümanları konulduğunda da onları okuyabilmen lazım değil mi?
işte bu nedenle bu konuları öğrenmen lazım.
belki bazı kişiler bu görüşüme aykırı yönde fikir beyan edebilirler ancak benim görüşüme göre önce en az bir programlama diline hakim ol, sonra bu konulara girersin.