Yazılım ile ilgili Genel Sorular, Yazılıma Nereden Başlanabilir?

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


insanimsi

Profesör
Yasaklı
Katılım
28 Tem 2018
Mesajlar
1,049
Puanları
83
Konum
Aiur
Arkadaşlar ilk önce hepinize selamlar:)

Benim uzun bir zamandır kodlama öğrenmek gibi bir hedefim var (yaklaşık 1.5yıldır araştırıyorum) Linux un ne olup olmadığını (tam anlamıyla kullanmadım sanal makine deneyimleri ama terminale ihtiyacım olmadığını fark ettim :D)raspberry pi ve arduinonun ne olup olmadığını,bilgisayar donanımlarının amaçlarını ve tabi ki windows u hatim etmiş bulunmaktayım:D. Normal bilgisayar bilgimin mahalle bilgisayarcısı ile yarışacağını düşünüyorum :D ve ingilizcem de sanırım b1-b2 dolaylarında (test yaptırmadım :D).

Geleceğin linuxta olduğunu düşünüyorum fakat açık kaynağın tam anlamıyla silip süpüreceğini de düşünmüyorum bence az da olsa kullanılacaklar. Hedefim her işletim sistemi için kod yazabilmek (meali c# ve visual basic düşmanıyım :D) fakat kodlamalarımı muhtemelen yazın yapacağım ve unuttuğum html ve css ten başka bir deneyimim yok:D aynı zamanda bulut teknolojisinin de yakın gelecekte yükseleceğine
İnanıyorum fakat bu alanda çalışmak ister miyim bilmiyorum :D

Aklımda türlü türlü fikir var ya mekatronikçi olup robot yapacağım ya işletim sistemi projelerinde yazacağım ya driverler yazacağım ya da günlük kullanım için programlar yazacağım (oyun değil ofis programları , otomasyon programları benzeri)
Sanırım bunlardan biri hariç hepsi c++ a ve c ye çıkıyor ama benim bir temelim yok sizce ne ile başlamalıyım :)
 

insanimsi

Profesör
Yasaklı
Katılım
28 Tem 2018
Mesajlar
1,049
Puanları
83
Konum
Aiur
Hocam o entrylerin %99 unu daha foruma katılmadan okumuştum ve hepsiyle aramda bir miktar fark var entrylerde small basic yazanlar bile var ama emeğiniz için teşekkür ederim :)
 

Administraktör

Foruma iz bırakmış olma dileğiyle...
Yönetici
Mod. Adayı
Katılım
20 Tem 2017
Mesajlar
5,420
Puanları
113
Konum
Türkiye
Yazdıklarını okuyup bizden ne istediğini anlamadığım için arama linki attım. Eğer başlangıç için kaynak arıyorsan udemy üzerinden uygun fiyata Boğaziçi mezunu hocaların kaynaklarına erişebilirsin. Yok hangi dille başlayayım diye soruyorsan c alternatifi yeni diller var ancak adı üstünde yeniler. İşletim sistemi demişin açık kodlu demişin. Günümüzde linux base üzerine işletim sistemi çıkmak kod bilgisi istemiyor. Açık kaynak içinde başlangıç için python ideal denebilir. Eğer web geliştirme ile uğraşacaksanız css işinizi görmez.
 

insanimsi

Profesör
Yasaklı
Katılım
28 Tem 2018
Mesajlar
1,049
Puanları
83
Konum
Aiur
Yazdıklarını okuyup bizden ne istediğini anlamadığım için arama linki attım. Eğer başlangıç için kaynak arıyorsan udemy üzerinden uygun fiyata Boğaziçi mezunu hocaların kaynaklarına erişebilirsin. Yok hangi dille başlayayım diye soruyorsan c alternatifi yeni diller var ancak adı üstünde yeniler. İşletim sistemi demişin açık kodlu demişin. Günümüzde linux base üzerine işletim sistemi çıkmak kod bilgisi istemiyor. Açık kaynak içinde başlangıç için python ideal denebilir. Eğer web geliştirme ile uğraşacaksanız css işinizi görmez.
Hocam beni epey yanlış anlamışsınız :D
Ben geçen sene sadece hobisine web sitesi tasarımı yapıyordum ilk deneyimimdi tekrar öğrenmeye niyetim yok zaten asıl amacım bilgisayar üzerinde işler yapmak web tabanlı değil :)
Linux üzerine işletim sistemi için kod gerekmediğinin farkındayım benim asıl amacım linux uyumlu ve windows uyumlu programlar yazmak :)
Açık ve kapalı kaynak konusunda yani hala şirketlerin var olacağı fakat windowsun yavaş yavaş yıkılacağını söylemek istemiştim görüşlerimde(yani c# ve vb inde) :)
Mesaj otomatik birleştirildi:

@Samet UCA @kmurat
 
Son düzenleme:

Amenofis

Üyecik
Katılım
27 Ara 2010
Mesajlar
25
Puanları
3
Bir program herhangi bir işletim sistemi üzerinde çalışabilir. "Multiplatform" diye bir hedef belirlemek doğru değildir. Bu bizim ülkemizde sıkça yapılan bir hata. Android geliştirici, ios geliştirici vs. kategorileri bana göre saçmalıktan ibaret.

Her yazılımın bir arkaplanı (backend), bir de kullanıcının gördüğü ön yüzü (frontend) vardır. Arkaplanda genelde c/c++ kodu çalışır, nispeten daha uzman kişiler tarafından kodlanırlar ve bu kişilerin sayısı azdır. Önyüz ise genelde grafikseldir ve kendilerine "mobile developer" gibi janjanlı isimler takan amatörler tarafından oluşturulurlar. Bu kişilere "böyle böyle bir işimiz var, bilgisayarda düzgün çalışıyor ama mobil cihazlarda kasıyor" desen apışıp kalırlar çünkü ne mobil cihazların donanımı hakkında, ne de optimizasyon hakkında bir fikirleri yoktur.

Yani diyeceğim sen yazılımın ne iş yapacağına odaklan. Onu istediğin sisteme port edip çalıştıracak biri elbet bulunur. Linux/windows zaten lafını bile etmeye değmez, her türlü çalışır. Problemi verimli şekilde çözen algoritmayı kurabiliyormusun önemli olan budur.
 

kmurat

Dekan
Katılım
8 Şub 2014
Mesajlar
5,536
Puanları
113
Kuruntularından kurtul ve her şeyi dene. Kendini sınırlama. İleride neyi beğeneceğini ve ne yapmak isteyeceğini şimdiden bilemezsin. Birden çok şeyi aynı anda yapmaya da kalkışma. Kendini zorladığın zaman bıkkınlık gelir. Küçük işlerden başla, çünkü başarısızlık ta bıkkınlık yaratır. Ve hiç kimse her şeyi bilemez ve her şeyi yapamaz. Muhasebe öğrenmediysen, hiç bir zaman bir muhasebe programını yapamayacaksın. O halde başka şeyler de öğrenmelisin. Genel bilgini her konuda geniş tut.

C, Pascal, Basic. Bunları öğrenmesi kolay, çünkü bunlar Prosedürlerden ve Fonsiyonlardan oluşuyor ve o Prosedürleri ve Fonksiyonları genelde kendin oluşturuyorsun. Algoritma öğrenmek için de birebirler.

Java, C#, Visual Basic Net, gibi dillerle bir iş yapmak daha kolay, çünkü çoğu işlem zaten var ve kullanıma hazır. Programlamanın nasıl işlediğini bilmiyorsan, o zaman işlemlerin ne işe yaradığını da anlayamazsın.

Small Basic te Visual Basic Net veya C#'tan fazla farklı değil. Onların sınırlı ve basitleştirilmiş kardeşi. Python veya PHP yukarıda saydığım her iki grubun özelliklerini paylaşıyorlar. Basic (Small Basic'te buna dahil) Lise'lerde başlangıç dili olarak öğretiliyor.

Programlama öğrenmek uzun vadeli bir uğraş ve bırakıldığında kolay unutulabiliyor. Genelde ne ile başlarsan, o kategoride devam edersin. Çünkü yeniden en baştan başlamak istemezsin. Yine de her birini biraz denemeni tavsiye ederim. Ben genelde başka dillerden ilham alırım ve sonra Basic'te denerim. ( Kişisel tercihlerim : QB64, Blassic ve son günlerde CoolBasic )

Yeni başlayanlar için kolay olduğu söylenen dillerin listesi : "Scratch, Basic256, MSWLogo, Small Basic, Microsoft Small Basic, Yabasic, NetLogo, Processing, Alice 2 ve Alice 3, NaaLaa, Just BASIC" ( Burada sayılanların bir kaçının Linux sürümleri de var. )
 

ertan2002

Asistan
Katılım
9 Ara 2008
Mesajlar
288
Puanları
28
degisik önyargilarin var ve cogu bahsettigin sey de yanlis, hangisini düzeltsem bilemedim :)

ama sana genel bi tavsiyem; anladigim kadariyla yolun bir sekilde C ye cikmasa bile C tabanli bir dil kullanacaksin o yüzden temel programlamayi c ya da c++ üzerinden calis. Biraz yazilim bilgisi edin, cesitli kücük uygulamalar yap. Bir seviyeye geldikten sonra konu acip tekrar sor su alanda calismak istedigimi düsünüyorum diye..

Ben sanki senin actigin benzer bir konuda yazdim diye düsünüyorum. Yazdigin bir mesaj ilginc geldi

eğer amacınız başlamaksa python kullanın C# kullanmayın vb.net kullanmayın vb artık az kullanılıyor ve c#ile sadece windowsa uygulama yazarsıız ha ben sadece windows kullanırım linux ve mac te kim dersen (yanlız bunu dersen muhtemelen linç yersin :D) c#öğrenebilirsin ama bir c++ olamaz hiçbiri(not c++ile başlamak zor olur)

Pek bilgin yok ama insanlara böyle tavsiyeler vermen ilginc :) C# kullanmayin ne demek cidden. Kim demis c# ile sadece windows'a uygulama yazarsiniz diye. C# ile c++ i karsilastirmak zaten basli basina büyük bir yanlis. Bugün kalkip akli basinda biri cok spesifik alan olmadigi müddetce gidip de c++ ile masaüstü uygulama gelistirmez. Calistigim yer de c++ kullaniyor ama sadece donanim erisimleri icin libraryler yaziliyor, kalan tüm isleri c# ile yapiyoruz bu da bize büyük kolaylik sagliyor. Firmanin neredeyse tek dili ve bahsettigim firma bir isvicre firmasi (fransa'da da diger bir subesi var). Avrupa'da gerek c# gerek java cok büyük kullanim alanina sahip. C/C++ gibi diller daha cok donanimsal islerde kullaniliyor buralarda. O yüzden sen dedin diye ne c# biter ne c++ herkesin kullanacagi dil olur!

C++ dan baslamak zor olmaz, aksine bir cok üniversite programlamaya giris derslerini c/c++ üzerinden veriyor..

Neyse, öncelikle önyargilarini kirip bir yazilima baslayip biraz da olsa bilgi sahibi olursan, yazdiklarinin ne kadar sacma ve cahilce oldugunu görürsün.

Not: seni kirmak icin yazmadim, sadece bu sekilde yazman sinirlendirdi beni. Ama yazdigim seyler senin iyiligine olan seyler. Üniversite zamanindan hatirladigim sistem yayinciliktan cikan c/c++ kitabiyla (türkce) baslayabilirsin bu ise. Baslamasan da öyle zamanini yitirip gideceksin..
 

Administraktör

Foruma iz bırakmış olma dileğiyle...
Yönetici
Mod. Adayı
Katılım
20 Tem 2017
Mesajlar
5,420
Puanları
113
Konum
Türkiye
Arkadaşlar madem mühendisler toplandı benimde bir kaç sorum var. Pointer mevzusu nedir? Pointer gerçekten performansı etkiliyorsa Pointer kullanmayan dillere örnek verebilir misiniz? Birde yeni diller var go swift ruby R gibi günümüzde bunları öğrenmek daha mantıklı değil mi? Mesela c yerine go öğrenmek gibi...
 

ertan2002

Asistan
Katılım
9 Ara 2008
Mesajlar
288
Puanları
28
Arkadaşlar madem mühendisler toplandı benimde bir kaç sorum var. Pointer mevzusu nedir? Pointer gerçekten performansı etkiliyorsa Pointer kullanmayan dillere örnek verebilir misiniz? Birde yeni diller var go swift ruby R gibi günümüzde bunları öğrenmek daha mantıklı değil mi? Mesela c yerine go öğrenmek gibi...
Pointer dediginsey basitce degeri degil de adresi memoryde tutmaktir. C/c++ da cokca kullanilir ve bellek yönetimi isi yazilimci tarafindan yapilir. Ancak bir cok dilde pointer cok yaygin kullanilmiyor. Ornegin bilinenin aksine csharp da da pointerler mevcut ancak kisitli yetenekleri var. Tanimladigin pointer sadece value (Deger) tipinin ve dizilerin referansini tutar, ancak normalde pointerlar harici olarak reference(referans) tipini de tutarlar. C# bellek yönetimini yazilimciya genellikle birakmiyor. Arkada calistirdigi garbage collector, yazilimcinin farkli konulara odaklanmasini sagliyor. Ama elbette yine IDispoable interface ini implement eden bir sinifin instance'i (örnegi (degisken olarak düsünebilirsin)) dispose metodu ile bellekten yok edilebilir.

Günümüzde bellek alanlari cok genisledigi icin c/c++ daki gibi kati bellek yönetimlerine ihtiyac duyulmamakta ve her seyi yazilimcinin eline birakmamaktadir. Benim evimdeki bilgisayarda 32gb ram var mesela. Ilk bilgisayarimi aldigimda 64mb bellek vardi ve 128mb yaptigimda acayip büyük bir heyecan yasamistim ancak suan dandik bir program bile yüzlerce mb bellek kullanabiliyor.

Diger dilleri ögrenmen elbette mantikli ama bu diller genelde belirli bir alana hitap eden diller. Mesela R dili istatiksel alanlarda kullaniliyor (atiyorum tip üzerinde arastirma yapan sirketler R bilen eleman ariyor). Swift, Apple'in objective-c ye alternatif olarak tuttugu bir dil. Aslinda syntax olarak bakinca cok büyük bir degisim yok ama objective-c ögrenmek yerine elbette swift ögrenmek daha mantikli. Swift i bir kenara birakirsam diger dilleri kullanmak firmalar icin büyük bir risk. Atiyorum bir kapsamli bir programi ruby ile yaptin diyelim ve yapan kisi isten cikti. Sen de ruby'yi iyi bilen birini bulman lazim, peki ne kadar kolay bulabileceksin? ya bulamazsan? Bu sefer de yetistirmen gerek, yetistirdikten sonra o kisi de ayrilirsa? Isveren bunlari düsündügü icin, daha cok yaygin dillere yöneliyorlar. Tabi bazi startup firmalar ya da belirli bi alana calisan haric tutulabilir. Ancak ben bir sirket acsam, kalkip da ruby bilen birine bakmam.

Daha önce microsoft'un bir konferansina katilmstim, konusmacilarin biri X firmasindandi ve adam dedi biz isvicre'de xamarin bilen birini bulamadik o kadar aramamiza ragmen, o yüzden finlandiya'dan bulup getirttik. Suan xamarin daha yaygin olsa da (ki aslinda c# ile yazabiliyorsun) yine de eleman bulmak zor olabiliyor. O yüzden java-objective C/swift daha popüler mobil alanda.

Gelecegine yatirim yapmak istiyorsan ve risk almak istiyorsan flutter ögrenmeye bak. Ama bu demek degildir varini yogunu birak sadece flutter'a odaklan. Tavsiyem yaygin olan bir dili daha ögrenmen ve flutter'i da (dart dili kullaniliyor) gelecegine yatirim olarak gör. Mobil alanda daha cok is yapacak bir teknoloji.
 

BlackTSix

Asistan
Katılım
22 Mar 2018
Mesajlar
386
Puanları
43
Konum
İstanbul
Öncelikle size basit arayüz ve görsel çıktılar sunan. Kolay bir derleyiciye sahip olan veya derleyici ihtiyacı olmayan (/w Notepad tabiki) HTML5 öneriyorum. HTML5 biraz daha mantık ve ezbere dayalı bir dil olduğu için öğrenirken herhangi bir yetiye ihtiyaç duymazsınız. Fakat belirtmeliyim ki HTML5 tek başına çok fazla anlam ifade etmeyecektir. Dilden tam anlamıyla verim alabilmek ve interaktif içerikler üretmek için yanına JAVA ve CSS'de eklemelisin. CSS'de yine HTML5 gibi mantık ve ezbere dayalı olduğu için ekstra bir efora gerek yok fakat JAVA da işleyiş biraz değişiyor. Burası biraz daha komplike. Burada dili kavramak için algoritma bilmek gerekir. Ancak buda gözünüzü korkutmasın çok basit bir konu ve algoritma bildikten sonra dillere bakış açınız değişiyor. Ufkunuz genişliyor, üretkenliğiniz artıyor.

Eğer WEB alanında gelişmeyecekseniz dil çalışma mantığını öğrendikten sonra ilerlemek istediğiniz yolda, hedefinize yönelik dillere geçip yolunuza o şekilde devam edebilirsiniz. HTML'den edindiğiniz tecrübe bir sonraki dil öğreniminizde işinizi çok kolaylaştıracaktır.

Şuna değinmek istiyorum. Önemli olan dil değil. En azından artık öyle değil. Dillerin mantığını çözdükten sonra, doğru bir debugger kullanıp, internette sağlıklı araştırmayla istenilen dilde istenilen veriyi işleyebiliyorsunuz. Önemli olan ne yapmak istediğinize karar vermeniz. Ve üretkenlik yetisine sahip olmanız.

Örnek ile pekiştirmek gerekirse bende bir yazılımcıyım. Master'ıda sayarsak 5 yıldır Microsoft firmasındayım. Benim alanım güvenlik. İşletim sistemleri için açıkları bulmak, sistemler ve ağ için stress testleri yapmak, root kitler geliştirmek. Şirketler için güvenlik açıklarını saptamak ve edindiğim verileri raporlamak gibi.. Şimdi bunu neden söylüyorum; benim alanım belirttiğim gibi güvenlik fakat şirket içerisinde elzem durumlar olduğunda bizi desteğe çekebiliyorlar. Alanımız dışında, uzmanlık sahibi olduğumuz dilin dışında da kodlamalar yapabiliyor, destek vermek zorunda kalıyoruz.

Kodlama yığılarak biriken bir sistem. Her yazdığınız kodda yeni bir şey keşfetmiş oluyorsunuz. Durumu izah etmeye çalıştım ancak umarım toplayabilmişimdir. Bir şeyleri öğretmek konusunda pek iyi değilimdir fakat herhangi bir konuda takılırsan lütfen mesaj atmaktan çekinmee :)
Mesaj otomatik birleştirildi:

Bu arada eklemek isterim. HTML önermemde ki en büyük sebep, yaptığınız işin sonucunu anında görmeniz. Nihayetinde buda bir teşvik unsurudur. Olumlu sonuç aldıkça daha çok üstüne gidersiniz :)
 
Son düzenleme:

insanimsi

Profesör
Yasaklı
Katılım
28 Tem 2018
Mesajlar
1,049
Puanları
83
Konum
Aiur
arkadaşlar cevaplaeınız için teşekkür etmek istiyorum ilk önce :(
bu kadar cahil olduğumu bilmiyordum demekki tuşlu telefonun operası ile sitelere girine sonumuz böyle oluyormuş :D
artık bu konular hakkında daha fazla araştırma yapacağım ve yazımı nasıl geçireceğime karar verdim bir arkadaş ile ( o da kodlama bilmiyor fakat meraklı) beraber html php öğrenip okul iöpn bir sosyal medya yapmayı düşünüyoruz (forum cinsi) profesyonel diye değil sadece eğlencesine.
ve lütfen arkadaşlar eksiklerimi belirtebilirmisiniz zahmet olmaz ise :(
 

zozozo

Üyecik
Katılım
17 May 2019
Mesajlar
1
Puanları
1
Herkese merhaba, herhalde 2 yıldır bu site ve forumda geziyorum. Daha önce hiç mesaj atmamıştım ama nedense bugün insanimsi nın sorusuna cevap atasım geldi. İlk dediğin yazı için Native Appler yapmak istiyormuşsun. Bütün platformlarda çalışsın diye ortak kurulan yapılar var Xamarin gibi. Bu da Visual Studio nün içerisinde mevcut. Amacı bütün platformlarda native uygulamalar yapabilmek. C, C++ , C# temel dilleri. Burdan istediğine ulaşacağını düşünüyorum. İkinci olarak ben Elektrik-Elektronik mühendisiyim ve 10 yıldır yazılımla uğraşıyorum ve özel bir şirkette yazılım geliştirme team leadiyim. Bunu şu yüzden söyledim benim evde yaptığım Arduino ve rasp pi projelerimde var ve inan bana onlar çok daha eğlenceli geliyor. En son arabamda bluetooth özelliği yoktu onu ekledim aux girişinden bataryalı bir bluetooth alıcısıyla ve işyerinde yaptığım işlerden çok daha tatmin etti beni. Yazılım ile ilgili hertürlü sorunuza cevap verebilirim bu arada artık üye oldum foruma :)
 

Administraktör

Foruma iz bırakmış olma dileğiyle...
Yönetici
Mod. Adayı
Katılım
20 Tem 2017
Mesajlar
5,420
Puanları
113
Konum
Türkiye
@Ufuk acaba başlık düzenlenip yazılım hakkında genel sorular tarzı bir başlık mı atılsa. Konuda sorulanın ötesinde fazlaca bilgi birikimi yaşandı bence:)
 

Amenofis

Üyecik
Katılım
27 Ara 2010
Mesajlar
25
Puanları
3
Arkadaşlar madem mühendisler toplandı benimde bir kaç sorum var. Pointer mevzusu nedir? Pointer gerçekten performansı etkiliyorsa Pointer kullanmayan dillere örnek verebilir misiniz? Birde yeni diller var go swift ruby R gibi günümüzde bunları öğrenmek daha mantıklı değil mi? Mesela c yerine go öğrenmek gibi...
Pointer direkt işlemci üzerinde var olan temel bir parçacık. "Object" kavramının işlemcide karşılığı yok mesela, fonksiyonun bile yok.

C/c++ dilleri pointer mevzusu için ekstra bir efor sarfetmiyor, olduğu gibi bırakıyor. Diğer diller ise az ya da çok üzerini kapatır ki programcı kendi ayağına sıkmasın. Zaten adres üzerinde aritmetik işlem yapamadıktan sonra pointer'ın varlığı ile yokluğu arasında bir fark olmaz.

Modern dillerdeki en büyük problem library kodlarının ezici çoğunluğunun c/c++ ile yazılmış olması. Mesela Rust ile multiplatform gui çalışacağız. Peki rust ile yazılmış gui library var mı? Belki vardır ama hiçbiri c++ ile yazılmış olan Qt kadar kapsamlı değildir. Peki Qt rust ile çalışır mı? Doğal olarak çalışmaz, araya wrapper koymak lazım. E peki c++ taki her bileşenin rust'ta karşılığı var mı? Yok. Her dil c/c++ kodlarını çağırabildiğini söyler ama bir sürü de not düşerler şu şu özellikler kullanılamayabilir diye.
 

Administraktör

Foruma iz bırakmış olma dileğiyle...
Yönetici
Mod. Adayı
Katılım
20 Tem 2017
Mesajlar
5,420
Puanları
113
Konum
Türkiye
Pointer direkt işlemci üzerinde var olan temel bir parçacık. "Object" kavramının işlemcide karşılığı yok mesela, fonksiyonun bile yok.

C/c++ dilleri pointer mevzusu için ekstra bir efor sarfetmiyor, olduğu gibi bırakıyor. Diğer diller ise az ya da çok üzerini kapatır ki programcı kendi ayağına sıkmasın. Zaten adres üzerinde aritmetik işlem yapamadıktan sonra pointer'ın varlığı ile yokluğu arasında bir fark olmaz.

Modern dillerdeki en büyük problem library kodlarının ezici çoğunluğunun c/c++ ile yazılmış olması. Mesela Rust ile multiplatform gui çalışacağız. Peki rust ile yazılmış gui library var mı? Belki vardır ama hiçbiri c++ ile yazılmış olan Qt kadar kapsamlı değildir. Peki Qt rust ile çalışır mı? Doğal olarak çalışmaz, araya wrapper koymak lazım. E peki c++ taki her bileşenin rust'ta karşılığı var mı? Yok. Her dil c/c++ kodlarını çağırabildiğini söyler ama bir sürü de not düşerler şu şu özellikler kullanılamayabilir diye.
Kendi ayağına sıkmak terimini az daha açabilir misiniz?
 

kmurat

Dekan
Katılım
8 Şub 2014
Mesajlar
5,536
Puanları
113
Progralamaya başlamak isteyenlerin ilk büyük sorunu sanırım anlayabilecekleri kaynak bulamamak. Bir kaç Türkçe kaynak ekleyeyim.

Derinlemesine imcelediğim sayfalar değiller. Yüzeysel olarak göz gedirip yeterli olduğunu düşündüğüm sayfaları ekledim. Umarım yararlı olurlar.
 

Amenofis

Üyecik
Katılım
27 Ara 2010
Mesajlar
25
Puanları
3
Kendi ayağına sıkmak terimini az daha açabilir misiniz?
Çok sayıda örnek verilebilir. Hobi olarak geliştirdiğim projedeki başıma gelen bir hatadan örnek vereyim. Bir matris var ve bu matrisi piksel değerleri ile doldurup resim üreteceğim. Fonksiyon matrisin başlangıç adresini yerel bir pointer'a atıp o adresten itibaren doldurmaya başlıyor. Bitiş için özel bir koşul kullanmışım ama koşulun oluşmasında bir sıkıntı var, zamanında false'e dönmediği için pointer içideki adres artmaya devam ediyor ve matrisin dışına yazıyor. Böylece class içinde matristen sonra gelen değişkenlerin üzerine yazarak bozuyor.

Pointer ile yazdığınız bellek alanı size ait değilse işletim sistemi yetkisiz hafıza erişimi nedeniyle programı sonlandırır. Ancak bozulan alan size ait ise uygulama sonlanmaz ve hatayı bulmanız güçleşir.

Yukarıdaki örnek misal javada başınıza gelmez çünkü java dizi elemanlarına erişirken sınır dışına çıkıp çıkmadığınızı kontrol eder. Tabiki bir miktar performans kaybı ile.
 
Üst
stat counter