Gönderen Konu: Programlamaya nereden başlasam?  (Okunma sayısı 59682 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Programlamaya nereden başlasam?
« : 19 Aralık 2013, 11:50:42 »
Merhaba arkadaşlar,

Zannediyorum Amstrad'da bir program yazmayalı 25 sene kadar olmuş. Amacım o senelerde yapmak isteyipte yapamadıklarımı yapmak: Basit bir oyun programlamak, bir demo çıkarmak.  Ancak şu an nereden başlamam gerektiğini bilmiyorum. Sizce basic'i baştan hatim ederek mi başlamalıyım?
Sevdalıyam ben sana, CPC128...

Çevrimdışı wizofwor

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 391
Ynt: Programlamaya nereden başlasam?
« Yanıtla #1 : 19 Aralık 2013, 13:58:29 »
Bu saatten sonra orijinal cihaz üzerinde kasmanın bir faydası yok. Cross development araçlarına yönelmen daha mantıklı olur.

Daha önce de benzer soruları olan arkadaşlara söylediğim gibi işe öncelikle sağlam bir geliştirme ortamı oluşturarak başlamalısın. Bunun için iki ayrı yaklaşım var. Daha esnek ama yorucu olan yaklaşım text editörü, grafik editörü, derleyici ve emulatör'den oluşan bir paket hazırlamak ve makrolarla bu araçları birbirine bağlamak. Pratik yöntem ise IDE kullanmak. Bu durumda her şeyin bir arada ve hazır olarak sunulması avantaj. Ama IDE'nin sunduğu araçlar yetersizse değiştirme şansın yok.
Amstrad'dan anlamıyorum ama google'da bulduğum ide'nin linki aşağıda
http://pushnpop.net/articles-76.html

Amacın oyun ve demo hazırlamaksa BASIC'le işin olmaması lazım. Basit demo efektleriyle ve oyun için gerekli rutinleri hazırlayarak başlayabilirsin. Ekranı temizleyerek, metin basarak vb. ufak ufak başlayabilirsin. Mesela ben prallax scrolling rutini ile uğraşıyorum. İnşallah bu hafta bir sonuca ulaştıracağım.
Gosub ile gidilen yerden goto ile dönen adam

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #2 : 19 Aralık 2013, 14:29:58 »
Tamam bir bakayım hemen. Cross development dediğimiz mesela Windows üzerinde geliştirip bunu Amstrad formatına aktarmak zannediyorum değil mi? Görüldüğü üzere programlama işine oldukça uzağım, bakalım umarım ufak tefekde olsa bir şeyler çıkartabilirim. Ha bu arada IDE'nin açılımı nedir acaba?
Sevdalıyam ben sana, CPC128...

Çevrimdışı ozayturay

  • Retroman
  • ***
  • İleti: 76
  • Commodore Forever
Ynt: Programlamaya nereden başlasam?
« Yanıtla #3 : 19 Aralık 2013, 17:16:03 »
Integrated Development Enviroment (Birleştirilmiş Geliştirme Ortamı)

Yani tüm araçların uyum içinde çalışarak program geliştirmene olanak sağlayan paket.
http://www.retrodergi.com - http://www.e-turay.com

* Commodore 64C, 1541-II
* Amiga 500, Cortex Floppy Emu

* XBox (TSOP Flash, XBMC)
* Wii (SoftMod, USB Loader GX)
* PS3 Slim (Rogero Cobra, webMAN + mmCM)
* PS2 (FHDB, OPS2L)
* PS1 (ModChip)
* XBox360 (JTAG, Aurora)

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #4 : 19 Aralık 2013, 22:47:22 »
Integrated Development Enviroment (Birleştirilmiş Geliştirme Ortamı)

Yani tüm araçların uyum içinde çalışarak program geliştirmene olanak sağlayan paket.

Teşekkürler. İnternet üzerinde arama yapmıştım ama hep konuyla alakasız sonuçlara ulaşmıştım.
Sevdalıyam ben sana, CPC128...

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2817
  • Advanced User Simulator
    • ae unutmadan
Ynt: Programlamaya nereden başlasam?
« Yanıtla #5 : 19 Aralık 2013, 23:14:21 »
Malesef bu işin kolay bir yöntemi yok Koray. Eğer bilmiyorsan, öncelikle bir programlama dili öğrenmen gerekiyor. Bunun ille de amstrad üzerinde olması gerekmez. Genellikle başlangıç dili olarak C önerilir. Bunu mecidiyeköydeki "C sistem programcıları derneği"nden ucuz yollu 6 aylık kursta öğrenebilirsin. Gerçekten de böyle bir expres başlangıca ihtiyacın var. Elbette internette yüzlerce rehber, kılavuz vs mevcut, ama bu işleri hızlandırmak için her sorunu anında cevaplayacak bir hocaya ihtiyacın var. Anında derken, o anda, soru kafanda oluştuğu anda yanıtı gelmeli. "Bir foruma sorayım, cevap gelsin bekleyeyim" sistemiyle öğrenme hızın benimkine benzer, C'yi öğrenmem 10 yıl sürdü, ki bunun altında bi 10 yıl da basic var :D

C'den birşeyler öğrendikten sonra basit bir işlemciden başlayıp, işlemciler nasıl çalışır öğrenmen gerek. Neyse ki çok şanslıyız, genellikle bu işlerin öğretildiği işlemci z80'dir, çok kolay öğrenilir, binlerce kaynak var. Sonra bir assembler seçip, onun desteklediği şekilde onu kullanmayı ve z80 asm öğrenmen gerek. Bu arada bir taraftan fransızca Amstrad forumlarını derinlemesine tarayıp amstrad grafik işlemlerinden sorumlu ASIC (ki bunun birkaç farklı versionu var amstradda) işlemciyi, bunun işlevleri ve zamanlamalarını öğrenmen gerekiyor. Ses için ayrı dert var, AYxxxx serisini öğrenmen gerekiyor. Tabii bu sırada algoritma ve bolca matematik de çalışmak lazım. Trigonometri, lineer cebir ve/ya da sihirbazlık da işe yarıyor.

Yani bugün başlamış olsan, amstrad'a bir demo yazmak için en az 3 yılın var, eğer basic ile dandik oyunlar yapmak dışında sprite'lı müzikli bir oyun yapman için en az 6 ay veriyorum.

Yani bak yol yakınken dön, biz burda birşeye başlar gibi yapıp hiçbişey yapmayanlara gıcık oluyoruz ona göre. Eğer başlayacaksan da tam destek, muhtemelen sen uğraşırken edindiğin deneyimleri aktardığında biz de senin kadar öğreneceğiz. Ama başlamayacaksan hiç uzatmayalım muhabbeti :)


Eğer kafaya koydum diyorsan bir toolchain'e ihtiyacın olacak:

https://github.com/cpcitor/cpc-dev-tool-chain

Amstrad'a özgü bir ide bulmak imkansız gibi. Olsa da tatmin etmeyecektir.

Ben zx spectrum toolchain olarak, "Context" ve "programmers editor" programlarını, pasmo derleyicisini, zx paint çizim programını, sevenup çeviriciyi, specemu emülatörünü, ve kendi yazdığım debuggerleri kullanıyorum.

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #6 : 19 Aralık 2013, 23:42:35 »


Yani bak yol yakınken dön, biz burda birşeye başlar gibi yapıp hiçbişey yapmayanlara gıcık oluyoruz ona göre. Eğer başlayacaksan da tam destek, muhtemelen sen uğraşırken edindiğin deneyimleri aktardığında biz de senin kadar öğreneceğiz. Ama başlamayacaksan hiç uzatmayalım muhabbeti :)



Hahaha, gece gece sesli güldürdün beni:) Öncelikle çok teşekkürler zira sanki beynimden geçen soruları okumuş gibi nokta atış yapmışsın. Kafamda başka soru kalmadı(en sondaki soru dışında:). Bir yanda bu sene pörtleyen yılların retro birikimi ve hırsı var, bir yandada "lan oolum bu kadar şeye gerçekten zaman ayırabilecek misin?" sorunsalı. İlk iş bir C kursuna bakayım, şu dernekten Ankara'da varsa ne ala.

Direkt orjinal cihaz üzerinden programlama yapmamamızın sebebi nedir? Olay çok daha zahmetli mi bu şekilde?
Sevdalıyam ben sana, CPC128...

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2817
  • Advanced User Simulator
    • ae unutmadan
Ynt: Programlamaya nereden başlasam?
« Yanıtla #7 : 19 Aralık 2013, 23:53:12 »
Direkt orjinal cihaz üzerinden programlama yapmamamızın sebebi nedir? Olay çok daha zahmetli mi bu şekilde?

Zahmetli elbette. Ama bence daha önemlisi tehlikeli. Yanlış birşey yaptığında kendini resetleyen bir makinede pek verimli olamıyor insan :D

En güzeli ve güvenlisi PC üzerinde geliştirme yapmak. Artık emülatörler neredeyse 100% uyumlulukta çalışıyorlar. Zx Spectrum emülatörleri makinenin ısındığında gerçekleşen zamanlama değişikliklerini bile destekler hale geldi (early/late timings). Bazı emülatörlerin içinde assembler da bulunuyor. Böylece güvenli bir ortamda geliştirme yapabilirsin.

Tabii hala cihaz üzerinde programlama yapılabilir, bu durumda da sana bir SD kart okuyucu vs. tarzı bir arabirim öneririm.

Çevrimdışı nightlord

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 389
    • Night Network
Ynt: Programlamaya nereden başlasam?
« Yanıtla #8 : 20 Aralık 2013, 03:08:14 »
Selam Koray, ingilizce seviyen nedir? Yabanci kaynak okuyabilecek kadar varsa, daha fazla bağlantı önerebiliriz. Türkçe olarak kaynaklar çok daha kısıtlı ama sıfır değil.

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #9 : 20 Aralık 2013, 09:44:58 »
Tabii hala cihaz üzerinde programlama yapılabilir, bu durumda da sana bir SD kart okuyucu vs. tarzı bir arabirim öneririm.

Cihaz üzerinde çalışacağımdan değil ama genede merak ettim, cihaz üzerinde çalışırsak programlamayı nasıl yapıyoruz? Yani hangi dili kullanarak?

Selam Koray, ingilizce seviyen nedir? Yabanci kaynak okuyabilecek kadar varsa, daha fazla bağlantı önerebiliriz. Türkçe olarak kaynaklar çok daha kısıtlı ama sıfır değil.

Selam, İngilizce iyi, Fransızca'da iyi. Önerilere açığım :)

Bir soru daha:  C#'de işimi görürmü? Bir arkadaş buldumda yararlanabileceğim.

Sevdalıyam ben sana, CPC128...

Çevrimdışı wizofwor

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 391
Ynt: Programlamaya nereden başlasam?
« Yanıtla #10 : 20 Aralık 2013, 12:10:32 »
Cihaz üzerinde çalışacağımdan değil ama genede merak ettim, cihaz üzerinde çalışırsak programlamayı nasıl yapıyoruz? Yani hangi dili kullanarak?

Bir an için 80'lerde olduğumuzu düşünürsek, cihaz üzerinde programlama için 3 yöntem vardı.
  • Basic ile yazıp yorumlayıcı üzerinden çalıştırmak.
  • Kağıt kalemle bir deftere not aldığın programı monitör kullanarak hafızaya yazmak.
  • Assembler ili yazıp derlemek.

İlk yöntem başlangıç için faydalıdır. Başlangıçta bilgisayar kavramını öğrenmek, sonraları hıza ihtiyacı olmayan programlar yazmak (telefon rehberi mesela) için kullanılırdı. Bazı kaynaklarda ise hiç bulaşmayın insanı tembelliğe alıştırıyor denirdi.

İkinci yöntem makine dilini yeni öğrenenler için tavsiye edilir. Label, opcode vs. kullanmadığın için hangi hafızada ne işler dönüyor çok iyi hakim olmanı sağlar. Ama çok zaman harcarsın. Eğer bu gün yeni bir bilgisayar yapmış olsaydık, ilk yapmamız gereken şey bu dili kullanarak bir assembler yazmak olurdu.

Üçüncü yöntem ise makine diline tam anlamıyla hakim olduktan sonra varılacak yerdir. Dezavantajı hangi hafıza adresine ne yazdığına çok dikkat etmek gerekir. Yoksa benim gibi bu program niye çalışmıyor diye aranıp durursun.


Bir soru daha:  C#'de işimi görürmü? Bir arkadaş buldumda yararlanabileceğim.

Sana iki tavsiyem olacak. Birincisi pratik olarak işine yarayacak bir dil seçmen. Yoksa çabuk sıkılırsın. Örneğin ben zamanında PHP öğrenmiştim bu sayede wordpress kodlarını kafama göre değiştirebiliyorum. Mesela Excel'le çok işin oluyorsa vBasic öğrenebilirsin. C#'ı kullanabileceğin bir yer varsa C# öğren.

İkincisi ise nesne yönelimli bir dile yönelmeni tavsiye etmem. Bunun iki sebebi var. Birincisi çok fazla teorik bilgi edinmen gerekiyor. (Nesneler, sınıflar, parametreler, kalıtım, public private olayları vs. vs.) İkincisi de nesne yönelimli diller hedef aldığın platforma uygun diller değiller. O zamanlar şimdi konvansiyonel dediğimiz tarzdaki yaklaşım daha popülerdi. Öyle ki konvansiyonel diller diye bir tanım yoktu zaten her şey bu mantıktaydı. Sana C'yi önerebilirim. Hem tüm dillerin babası sayılan bir konumda olması, hem alt seviye (makine diline yakın) olması hem de konvansiyonel tarzda bir dil olması sebebiyle tavsiye ederim. C# compiler, C kodlarını da derliyordur büyük ihtimalle. Eğer öyleyse C# kullanan arkadaşınla aynı geliştirme araçlarını kullanabilirsin.

Ama işin pratik boyutu çok önemli. C#'la pratikte işine yarayacak şeyler yapacaksan C#'a yönel. Fazladan öğrenmiş olduğun kavramlar daha sonra bir şekilde işine yarayacaktır.
Gosub ile gidilen yerden goto ile dönen adam

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #11 : 20 Aralık 2013, 15:03:08 »
Ama işin pratik boyutu çok önemli. C#'la pratikte işine yarayacak şeyler yapacaksan C#'a yönel. Fazladan öğrenmiş olduğun kavramlar daha sonra bir şekilde işine yarayacaktır.

Hmm çok mantıklı, bu konuda bir düşüneyim bakayım, ona göre seçim yapayım. Şimdi aklıma geldi esasında, mesela inkscape için extension yazmak istemiştim bir zamanlar. Bu konuda mesela şöyle bir link buldum, biraz konuyu dağıtacağım ama:

http://www.hoboes.com/Mimsy/hacks/write-inkscape-extension-create-multiple-duplicates/

Extension yazmakta kullanılan dil nedir acaba burada bir göz atar mısınız?
Sevdalıyam ben sana, CPC128...

Çevrimdışı ozayturay

  • Retroman
  • ***
  • İleti: 76
  • Commodore Forever
Ynt: Programlamaya nereden başlasam?
« Yanıtla #12 : 21 Aralık 2013, 00:11:08 »
Verdiğin linkteki konfigürasyon dosyası XML ile yazılmış. HTML'nin daha gelişmişi diyebiliriz.

Script ise Python ile yazılmış. Muhtemelen InkScape içinde Python yorumlayıcısı mevcut veya InkScape'de Python ile yazılmış olabilir.
http://www.retrodergi.com - http://www.e-turay.com

* Commodore 64C, 1541-II
* Amiga 500, Cortex Floppy Emu

* XBox (TSOP Flash, XBMC)
* Wii (SoftMod, USB Loader GX)
* PS3 Slim (Rogero Cobra, webMAN + mmCM)
* PS2 (FHDB, OPS2L)
* PS1 (ModChip)
* XBox360 (JTAG, Aurora)

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2817
  • Advanced User Simulator
    • ae unutmadan
Ynt: Programlamaya nereden başlasam?
« Yanıtla #13 : 21 Aralık 2013, 06:13:46 »
Verdiğin linkteki konfigürasyon dosyası XML ile yazılmış. HTML'nin daha gelişmişi diyebiliriz.

Script ise Python ile yazılmış.

Python süper bir dil, işine yarayacaksa hatim etmek her konuda faydalı. Son nesil programlama dillerinin en iyisi kanımca. Hem sebebini anlamadığım şekilde basit, hem de hızlı. Biraz görsel bir yazımı var. Metinlerin hizalanması şeklinde dallanıyor. Hem de immediate modu falan var, yani komutları anında işletebiliyor, tıpkı amstrad basic gibi. Bence burdan başlanabilir.

http://docs.python.org/2/tutorial/

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #14 : 21 Aralık 2013, 09:58:26 »


Python süper bir dil, işine yarayacaksa hatim etmek her konuda faydalı.

http://docs.python.org/2/tutorial/

Tamam bakayım hemen. Bu dili öğrenmek için başka bir temele ihtiyaç yok değil mi? Yani sıfırdan bununla başlayabilir miyim?
Sevdalıyam ben sana, CPC128...