Ana içeriğe git
Konu: Programlama Dilleri Hakkın'da Tartışma (409 Kez okunmuş)

Programlama Dilleri Hakkın'da Tartışma

Merhaba Sayın Üstadlar ;

Geçenlerde Üniversitede Yaşadığım bir olayı kısaca özet geçip sizlere danışmak istediğim bir konu var , Üstünde tartışılıp güzel fikirler üretilecek Konu olabilir diye düşünüyorum. ;)

Geçenler'de proje ödevimi teslim ettikten sonra hocayla bir diyaloğumuz oldu , Bana " merak ettiğin şeyler var mı ? " Diye bir soru yöneltti "Uğraşmak İstediğin" Bende kendisini normalde yazılım yazıyoruz mikrodenetleyicilere fakat bir cihaz actığımızda coğu zaman yabancı şeylerle karşılaşıyoruz Ben onları öğrenmek istiyorum diye cevap verdim ve ekledim FPGA gibi sistemler üstündede calışmak istediğimi dile getirdim az cok bildiğim PBP yazılım dilini bildiğimi söyledim Oda bana Sen Assembly ve C++ üstüne yoğunlaş dedi ve işin köküne inerek 8051 ile uygulamalar geliştirebilirsin dedi assembly de  Bende ona Hocam iyi hoş ta Assembly ile lisede uğraştık iğne oyası gibi didik didik yazmak gerekiyor dedim evet öyle ama savunma sanayisinde kulanılıyor dedi.  


Şimdi Tartışacağımız Konu Şu Üstadlar;
böyle soruları işin erbabı kişilere yönelttiğim'de bana ;
1-Bir dilde profesyonel olursan diğer dillere gerek kalmaz.
2-yaptığın işe bağlı
3-mikrodenetleyici  daha hızlı calıştıracak olan yazılımı sec (Assembly en hızlı calıştıracak olan Dil)

Diğer sorunum ise artık projelerimi profesyonellik katmak istiyorum ve Biraz Ticarete atılmaya hazırlanıyorum Onun icinde Arayüz programı yapabilmem lazım.
Aynı Zamanda Android arayüz programları yapabilmem lazım.
PC işletim sisteminde yazmak icin ; VB.net ve C# düşünüyorum.
Android icin'de : MIT APP INVERTOR

Şimdi ben artık zap zup Yazılım Dili değiştirmekten cidden cok sıkıldım ve Baktım ki Orta seviyeye bile böyle gelinemiyor Onun için Tek bir yazılım Dili öğrenmek istiyorum (Arayüz programı icin ayrı)  Ne yapmamı önerirsiniz veya neler yapılabilir ? Cidden Assembly öğrenmek iyi mi Veya C++ Öğrenmek

PBP dilini sevmemin tek nedeni komutları mantıklı ve C dillerinde olan parantezidir bilmem nesidir burada yok sade bir program oluyor fakat PBP herşeye yetmiyor gibi bunun yerine Proton Basic ide inceledim PBP göre biraz daha iyi  Son zamanlarda DELPHİ ye de baktım Fakat Delphi ne bileyim bana garip geldi PBP andırsada öyle değil.
BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #1
"1-Bir dilde profesyonel olursan diğer dillere gerek kalmaz.
2-yaptığın işe bağlı
3-mikrodenetleyici  daha hızlı calıştıracak olan yazılımı sec (Assembly en hızlı calıştıracak olan Dil)""

Tek bir şeyle bu gemi gitmez. ama elektronik alanında derim ki C öğren. çogu şeyde karşılıgı var. ama bildiğin ve kullandığın şey sana en yararlı malzemedir. bildiklerinle bişeyler yap.. mükemmeli arama. mükemmeli yapmak için öncelikle elindeki malzemelerden kazanç elde et. yanı şimdi yaptığın ucuz versiyonu olsun. sonrakide kaliteli. çinin sistemi gibi düşün. ucuzu var pahalısı var. benim yaptığımı neden almazlar deme. ne yapabiliyorsan vap ve sat.

Ben yıllarca yaptığım ürünün hep kalitelisini yapmaya çalıştım. dolayısıyla maliyetler arttı. ama hiç gerek yokmuş. En ucuz malzemeden kaliteli sağlam ürünler yapılabiliyor. ardunio yerine pic daha ucuz ve şuan piyasadaki herşeyi çalıştırabilecek kabiliyette.. eskiden pic pahalıydı. ama artık ucuz. nezaman ardunio ucuzlar ozaman o sistemi kullanırım.
Kısacası çok şey öğrencem diye uğraşma.. yapacağın ürün için kullanacağın sistemi öğren. böylelikle işin kolaylaşır.


Tanrı Türk'ü korusun

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #2
Dil 2. planda; algoritma oluşturamıyorsan, hepsi çöp olur.

Ben lisede pbp gördüm. Ama daha sonrasında hoşuma gitmedi.

Üniversitede C#, c, asm, Sql öğrendim, birazda fpga.

Yazılım dilleri arasında geçiş yapmak kolaydır. Ama istenen hız mı, görsellik mi, her ortamda çalışsın mı? Buna göre hangi dili kullanacağınız değişebilir.

Fpga için iyi elektronik bilmeniz lazım. Lojik sistemleri yalayıp yutmanız lazım. Çok özelleşmiş ve hızlı bir yapı istemiyorsa, zaten Mcu lar bu işler için yeterlidir.

Yani hepsinin kafası ayrı.

.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #3
Öncelikle Güzel Yanıtlar'ınız İçin Teşekkür ederim.

Mekatronik okuduğum için daha çok otomasyon yani makinelere program yazacağım baktığımda herhangi bir dil ile işimi görüyorum Bende C ye biraz daha yakın olmak icin MikroC yi seçtim ARM mimarisinede kod yazabiliyoruz bu yazılım diliyle yani geniş bir yelpazesi var.

Ayrıca diğer diller yani Arayüz programları gibi programların dilinede adepte olunabiliyor pek bir benziyorlar çünkü.

FPGA ya gelirsek evet cok merak etmiştim fakat analog değilde benim kafa daha çok dijitale basıyor  Hiç olmazsa görmek bir kaç proje (examples gibi) yapmak.

Diğer yandan ASSEMBLY 'de calışmalarımı dönem arası başlatıp paralel bir şekilde 2 dildede gitmeye calışacağım.
BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #4
O kadar yazdım bir hata oldu tüm yazdıklarım gitti.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #5
@Mr_YAMYAM
Üstad Ellerin dert görmesin :))

Sen bir daha yaz istiyorsan önemli bilgiler icerdiğinden eminim :)
BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #6
Yazarım tabii.
Ama dün  bir sayfa dolusu yazıp ta gönderirken hata olunca gızdım :D
Gelelim mevzuuya..
Merhaba Sayın Üstadlar ;

Geçenlerde Üniversitede Yaşadığım bir olayı kısaca özet geçip sizlere danışmak istediğim bir konu var ,

Şimdi Tartışacağımız Konu Şu Üstadlar;
böyle soruları işin erbabı kişilere yönelttiğim'de bana ;
1-Bir dilde profesyonel olursan diğer dillere gerek kalmaz.
2-yaptığın işe bağlı
3-mikrodenetleyici  daha hızlı calıştıracak olan yazılımı sec (Assembly en hızlı calıştıracak olan Dil)

Şimdi ben artık zap zup Yazılım Dili değiştirmekten cidden cok sıkıldım ve Baktım ki Orta seviyeye bile böyle gelinemiyor Onun için Tek bir yazılım Dili öğrenmek istiyorum (Arayüz programı icin ayrı)  Ne yapmamı önerirsiniz veya neler yapılabilir ? Cidden Assembly öğrenmek iyi mi Veya C++ Öğrenmek

Tartışma mevzuularının açıklamaları.
1: Bir dilde profesyonel olmak kavramı anlamsızdır. Bir dili tam anlamıyla öğrenmek denilmesi gereklidir. Ancak tek dilde uzman olunsa da, karşına başka bir dilde yazılım çıkınca çuvallayacaksın.
Çaresi, yazılım tekniğini tam anlamıyla kavrayabilmek ve öncelikli olarak donanım bilgileri öğrenebilmektir.
Donanım bilgileri ise elektronik bilgisi ile olmaktadır. Temeli kapı devreleridir.
2 Yapılan işe göre yazılım katagorize edilemez. Ben 3D CAD biliyorum diyerek bir yere varılamaz. Yazılım bilmek ile uygulama programlarını kullanabilmek farklıdır. C++ de birkaç komut bilip te ben C++ biliyorum demek te olmaz.
Anlatılmak istenen mevzuu, yazılımcı mı donanımcı mı olmak ise, bunu yapacağın işe göre bağlanılması da yanlıştır. Çünkü hem yazılım, hem de donanım birbirlerini tamamlayan unsurlardır. Üstelik gün ve gün hem yazılımlar, hem de donanımlar gitgide gelişmektedir.
3 Mikrodenetleyici en iyi assembler ile çalışmaz. Esasen assembly bir yazılım bile değildir. Bir donanımın anladığı tek dil bulunur, o da makina dilidir.
Esasen mevzuuya mikrodenetleyici dersek başlarda çuvallamış oluruz. Bir CPU, bir GPU ya da bir işleç te birçok karmaşık komutlar dizileri ile çalıştırılmaktadır. Örneğin bir SATA bağdaştırıcısı da bir mikrodenetleyicidir, bir SCSI denetleyicisi de.
Bu bahsedilenler aslında birer entegredir. Yani donanımın birer parçası ve iş yapan unsurları (İŞLEÇ) tirler.
Her bir iş parçası belli komutları anlama ve işleme özelliğine sahiptir. Yazılımcılar bu komutları bilmek zorundadırlar.


Resimde gösterildiği üzere donanımın tek anladığı dil olan makina dili ve üst seviye dillere olan bağlantıları anlatılmıştır. Makina dilini bizler asla yazıp uygulayamayız. Çünkü bir sürü 1 ler ve sıfırlar yazmak ve sıralamak zorundayız. Ama birçok birler ve sıfırlar yerine assembly ile komutları sadeleştirebiliyoruz.
Assemblerden sonra ise üst seviye dilleri görmekteyiz.
Fotran, C (Basic), pascal, cobol gibi diller de üst seviye dillere örnektir.
Anlaşılması için ÖRNEK:
Klavyede A tuşuna basalım. Bu ne ifade eder?
Çoğumuz bu soruya ''A harfi yazar'' diye yanıt verecektir.
Ama yazılım ve donanım mantığını tam anlamıyla öğrenmiş kişiler, derler ki, ''ARADAKİ YORUMLAYICIN NEDİR?''
A harfinin ASCII kodu 41 idi. Bu değer yıllar öncesinden aklımda kalmış. Demekki bizler klavyede A harfine tıkladığımızda klavye içerisindeki CIA (Complex Interface Adapter) A tuşunun ASCII kodunu direk yorumlayıcıya gönderirler. I/O portlar da arada vardır unutmayınız.
Peki bu 41 komutu bize ne ifade eder? Hiçbirşey :D
Çünkü 16 lık sistemdeki bu değer tek başına hiçbir anlam taşımaz. Ama yorumlayıcı bu değeri yorumlayarak,
PRINT ''*'' SCREEN komutu veriyorsa bu şu demektir.
Tırnak içerisindeki girdiyi yani A harfini print screen, yani ekrana bas.
Bu yorum sonucunda bizler klavyedeki A tuşuna bastığımızda ekranda A harfini görürüz.
Üle iyi de başka ne olabilir ki diyebilirsiniz :D
Bir başka yorumlayıcı bu komutu farklı yorumlayarak çok farklı işlevi yerine getirebilir. NASIL MI?
Baara çııra bir oyun oynuyoruz. A harfine basınca ne olabilir?
Bir örnek, ATEŞ EDEBİLİRİZ.
Ateş etmek oyundaki yorumlama stili ile 41 komutu verildiğinde 1 değerini belli koordinatlar doğrultusunda hareket ettir demektir. Bu hareket unsuru ekran boyunca öntanımlıdır. Ama ekran sınırlarına ulaşmadan önce başka bir data ile karşılaşırsa ne olur?
O data target olarak belirlenmiş ise hedef vuruldu al sana 10 puan denilebilir.
Bu basit örnek sadece bir A harfi üzerinedir. Günümüzde ne tür komutlar olduğunu ve her işleçin hangi komutlardan anladığını bilebilmek ve bu komutlar doğrultusunda bir yorumlayıcı yazmak ESAS YAZILIMCILIKTIR.


Resimde assembly ve makina dili geçişi görülmektedir.
Konu çok uzun ve detaylı olduğu için bu günlük bu kadar yazabildim. Ne yazık ki ben de Fi tarihinden kalma bilgilerimle açıklamaya çalışmaktayım.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #7
@Mr_YAMYAM Ben Mekatronik'çi olduğum için donanım ve yazılımı bilip bunları cok iyi harmanlamam gerekiyor
Liseden beri o program senin bu program benim birşeyleri az çok kavradık dediğiniz doğru 2 komut bilmek ile yazılımcı olunmuyor , bende hepsinde bir adepteliğim olduğundan artık tek bir dilde durmak istiyorum şuanda cok detaylı programlar yazamasamda bir program bloğunu görünce orda ne yapılmak istenildiğini anlıyorum lisede dijital elektronik dersi üstüne daha fazla yoğunlaştık zaten analog üstünede eğitim vermediler pek hatta hiç yoktu diyebilirdim en iyi anladığım şey kontrol sistemleriydi PLC olsun Kumanda ve güç devreleri idi ben okul haricindede zaten yine bu forum olsun diğer yerlerde kendimi devamlı geliştirme sürecindeydim ve haladaha öyle üniversitede bu calışmanın farkını cok iyi gördüm

Asıl konuya dönersek donanımı kuruyorum ama programlamam lazım basit programları yazabiliyorum neredeyse coğu dilde fakat gel şöyle karman corman birşey yapalım diyinc beyinde bir eror mesajı veriliyor onun için Bir dilde tüm istediklerimi yaptırmak istiyorum bunun için'de Mikro C yi seçtim secmemin nedeni size komik gelebilir belki ama elimde 2 kitabı var birisi basit diğeri orta seviye hazır elimde varken buna yoğunlaşayım dedim şuandada güzel gidiyor adepte oldum sayılır.

Assembly dili ise kod yazması eğlenceli bence yani oyun oynamak sorun cözümleri helede o sorunları cözünce alınan o keyif bence cok eğlenceli fakat Bir iş yaparkende ASM kullanmak ne bileyim zamandan kayıp gibi geliyor bana Üniverstiedeki hoca "şuan'da savunma sanayisinde Assembly kullanılıyor " dedi. Sende o dilin üstüne yoğunlaş dedi. Hobi olarak uğraşayım :D ama ciddi yapacağım bir işte hata cıkınca kuduruyorum ozaman Assembly bana keyifli değil azap gibi gelir.
BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #8
Assembly öğrenmek istiyorsan tek bir şartı vardır.
Öncelikle boole cebrini yalayıp yutman lazımdır.
Var mı bu konuda birikimin de bakayım.
Al sana bir soru.
Bir bir daha kaç eder.
İkili sistemde yazıp, 10 luk ve 16 lık sistemde bana söyle bakiim.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #9
1+1=1 Dir.

decimal sistemde ise karşılığı 0001 dir. = 1 dşr
Hexadecimal'de ise karşılığı $01dir yani acarsak = 0000 0001 dir

desimal icin toplarsam 0001+0001 = 0010 dir . buda= 2
hexadecimal icin toplarsam 0000 0001 + 0000 0001 = 0000 0010 dir.  buda $02

Bildiğimn kadarı ile

BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #10
1+1=1 Dir.

decimal sistemde ise karşılığı 0001 dir. = 1 dşr
Hexadecimal'de ise karşılığı $01dir yani acarsak = 0000 0001 dir

desimal icin toplarsam 0001+0001 = 0010 dir . buda= 2
hexadecimal icin toplarsam 0000 0001 + 0000 0001 = 0000 0010 dir.  buda $02

Bildiğimn kadarı ile


Bu ne len >:(
Kim öğretti sana bunları.
İyice karıştırmışsın. $02 de ne ki loo :D
Git ecik dolaş galatayı biraz tanı :D

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #11
$ İşaretini yazmamın sebebi Proton basic dilinde Hexadecimal  değerinin başına konmasından ötürüdür.

Diğer yazdıklarımda ne gibi bir yanlışlık var anlamadım üstad ?
sorduğun sorunun cevabının karşılığını söyleyip
birde diğer sayı sistemlerinde toplanırsa ne gibi sonuclar cıkacağını yazdım ?
BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #12
Cevap basit idi ama sen dolandırmışsın.
11 =3 eder.
Hem onluk sistemde hem de onaltılık sistemde.
Onaltılık sistemde belirtilmesi için başına 0 (sıfır) koyman yeterli olurdu.
01
02
03....
0A
0B
0C
0D
0E
0F....
FF gibi

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #13
Üstad Ne bileyim bize hep öğretilen "kolaya kaçmayın işin temelini öğrenin " oldu onun için ama eşittir ifadesi koyup sade halinide yazmıştım oysaki
BU DİYARLARA MERAK SALMIŞ , TAHSİLİNE DEVAM EDEN BİR GENÇ.

Ynt: Programlama Dilleri Hakkın'da Tartışma

Yanıt #14
Tamam doğru da henüz dillere geçmedik ki.
Sadece boole cebri ile becelleşiyoruz.
Aslında benim sana kandırmaca ile sormuş olduğum sorunun tuzağına düşmüşsün :D
1, 1 daha demiştim. Yani yanyana iki tane bir. İkilik sitemde.
Sen bir artı bir olarak hesapladığın için tuzağıma düştün :D