Uygulama geliştirme ve programlamada sorun yaşıyorum.

Başlatan LinuxHacisi, 08 Haziran 2014 - 17:08:49

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

LinuxHacisi

Merhaba arkadaşlar

Konuya nereden başlasam bilemedim Ubuntuyu ilk olarak 12.04 sürümünde tanıdım ve o zamanlar programcı olarak ne eğitim alıyordum nede bilgi sahibiydim linux aşkımdan dolayı windows yerine linux kullanıyordum buraya kadar herşey normal gelişiyordu ancak sonradan uygulama geliştirme ve programlamaya aşırı şekilde yönelince ubuntuda sıkıntı çekmeye başladım. :-[Uygulama geliştiren ve programlama ile uğraşan arkadaşların tavsiyelerine ihtiyacım var windows kullanmak istemiyorum bu yüzden ubuntu ile yoluma devam etmek istiyorum.

İlgilendiğim ve eğitimini aldığım diller

.net,C,php,mysql,java,autoit,ruby,perl,html,css,python

Yardımlarınız için şimdiden teşekkürler.
Linux And Windows System Specialist , Linux Hacısı, #DevOps #Linux #Windows #SysAdmin #GNU #Researcher

bugra9

Java ve c++ için netbeans, diğer diller için ise sublime text 3 ve uçbirimi kullanıyorum.

.net'i linux ortamında hiç kullanmadım. Windows için tasarlanmış olsa da mutlaka linux içinde de çalıştırma yolları vardır. Gerçi linux ortamını kullanan birisinin .net kullanmak istemesi de garip geliyor.

Nerede sıkıntı çektiğini ve nerelerde takıldığını söylersen daha kolay yardımcı olunur.
Bana göre linux ortamında uygulama geliştirmek, windows'a göre daha sıkıntısız ve kolay.

LinuxHacisi

Alıntı yapılan: bugra9 - 08 Haziran 2014 - 17:39:40
Java ve c++ için netbeans, diğer diller için ise sublime text 3 ve uçbirimi kullanıyorum.

.net'i linux ortamında hiç kullanmadım. Windows için tasarlanmış olsa da mutlaka linux içinde de çalıştırma yolları vardır. Gerçi linux ortamını kullanan birisinin .net kullanmak istemesi de garip geliyor.

Nerede sıkıntı çektiğini ve nerelerde takıldığını söylersen daha kolay yardımcı olunur.
Bana göre linux ortamında uygulama geliştirmek, windows'a göre daha sıkıntısız ve kolay.

öncelikle cevabınız için teşekkür ederim.

Çektiğim sıkıntı ise okulda eğitimin devamlı olarak windows üzerinden verilmesi oluyor. Haliyle evdeki bilgisayarım ubuntu bu yüzden derleme ve düzenleme konusunda sıkıntılar yaşadım(kütüphane eksikliği ve eksiklikleri giderememek dökümantasyon eksikliği vb).Özelikle yazarken editör sıkıntısı çok çektim canıma tak ettiği için nano ile açtım yazmaya devam ettim.Yani açıkcası yokluk çektim diyebilirim.Bunun dışında pek fazla sorun çıkmadı genel olarak lib eksiklikleri yaşadım tabi buna sorun denirmi bilmiyorum.
Linux And Windows System Specialist , Linux Hacısı, #DevOps #Linux #Windows #SysAdmin #GNU #Researcher

ekremsenturk

#3
İlgilenmek güzel bir şey, ama o kadar dili üst üste aynı anda öğrenmeye kalkışırsan, sonuç olarak işin kakası çıkar sadece. Eğitimini aldığın dil/dillere odaklanmanı öneririm. 

Autoit:  muhtemelen hiç veya doğru çalışmayacaktır, ama wine ile bir şansını dene bakalım. Autoit bir macro dili ve uygulamalarıda tamamen Windows'a özel. Basic benzeriymiş (Wikipedia da Basic grubu içinde geçiyor)

Mono: Ubuntuda hazır kurulu geliyor. Monodevelop ve ek olarak mcs kurarak C# derleyebilirsin. ek olarak vbnc kurarsan, VisualBasic.Net'te derleyebilirsin. Mono'nun son sürümü .Netframework 4.0 ile uyumluymuş. Standart olan kütüphaneleri içerirmiş. Bu da öğrenebilmek için yeterli gelir. .Netframework 2.0 de mono ile derlenen deneme uygulamaları çalışıyorlar, ama .Net 4.0 ile deneme imkânım olmadı.

Aradığın her şeyi "Yazılım Merkezi"nden adını yazarak bulabilirsin.

LinuxHacisi

Alıntı yapılan: ekremsenturk - 08 Haziran 2014 - 18:03:38
İlgilenmek güzel bir şey, ama o kadar dili üst üste aynı anda öğrenmeye kalkışırsan, sonuç olarak işin kakası çıkar sadece. Eğitimini aldığın dil/dillere odaklanmanı öneririm. 

Autoit:  muhtemelen hiç veya doğru çalışmayacaktır, ama wine ile bir şansını dene bakalım. Autoit bir macro dili ve uygulamalarıda tamamen Windows'a özel. Basic benzeriymiş (Wikipedia da Basic grubu içinde geçiyor)

Mono: Ubuntuda hazır kurulu geliyor. Monodevelop ve ek olarak mcs kurarak C# derleyebilirsin. ek olarak vbnc kurarsan, VisualBasic.Net'te derleyebilirsin. Mono sonr sürümü .Netframework 4.0 ile uyumluymuş. Standart olan kütüphaneleri içerirmiş. Bu da öğrenebilmek için yeterli gelir. .Netframework 2.0 deneme uygulamaları çalışıyorlar, ama .Net 4.0 ile deneme imkânım olmadı.

Aradığın her şeyi "Yazılım Merkezi"nden adını yazarak bulabilirsin.

yardımlarınız için öncelikle teşekkür ederim.

İşin aslı yazmış olduğum tüm dillerin autoit hariç eğitimini veriyorlar ilk başta bende olurmu öyle şey dedim ancak nedendir bilinmez.şöyle bir durum ortada haftada 1 dil gösterilip orta seviye verilmeye çalışılıyor.

http://angora.baskent.edu.tr/bilgipaketi/?dil=TR&menu=akademik&inner=katalog&birim=484&ders=220483

yukarıdaki linkde herşey ortada
Linux And Windows System Specialist , Linux Hacısı, #DevOps #Linux #Windows #SysAdmin #GNU #Researcher

91011

bence hiç uğraşma yanına bir windows 7 kur rahat rahat kullan .net ihtiyacın olduğunda ben de denedim monodevelop u onda toolbox kısmında hata çıktı toolboxta nesne bulamadım gerek yok strese girmeye derim ben  :)

netbeans php html css için de kullanıyorum ben güzel bir ide
Tanrı konuşmaz, şeytan fısıldar...

gnukarabatak

Bir yazılım geliştirici olarak olaya biraz basit bakmak istiyorum. Nano kullanarak geliştirmekten bahsetmişsin ve anladığım kadarıyla sıkıntılar yaşamışsın. Öncelikle sana bir IDE lazım. IDE (Tümleşik geliştirme ortamı) olarak CodeBlocks'c u önerebilirim, gayet kullanışlı. "Dot Net" ile geliştirme yapmak istiyorsan Monodevelop ihtiyacını görecektir. C/C++ ile geliştirme yaptığında windows da çalışan kütüphane yada başlık dosyalarının kesinlikle Linux için yazılmış alternatifini bulman google kadar yakın bir ihtimal. Benim gibi pascal/delphi yolunun yolcusu isen Lazarus fevkalede arkadaş olur. Ufak bir tiyo vereyim, gelecek Linux üzerine yazılım geliştirmede ;)
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

ekremsenturk

#7
Alıntı yapılan: MertcanGokgoz - 08 Haziran 2014 - 18:20:38

yardımlarınız için öncelikle teşekkür ederim.

İşin aslı yazmış olduğum tüm dillerin autoit hariç eğitimini veriyorlar ilk başta bende olurmu öyle şey dedim ancak nedendir bilinmez.şöyle bir durum ortada haftada 1 dil gösterilip orta seviye verilmeye çalışılıyor.

http://angora.baskent.edu.tr/bilgipaketi/?dil=TR&menu=akademik&inner=katalog&birim=484&ders=220483

yukarıdaki linkde * her şey ortada

Genel Tavsiyeler

Üniversite'de öğrenmek ile kendin bir şekilde yolunu bulup öğrenmek çok farklıdır.  İlk'inde bir yol gösteren var, ikincisinde ise Orman'da tek başınasın. Başlangıçta İDE kullanma. Gedit (Metin düzenleyici) tamamen yeterli. Nano veya Vim gibi benzer editörler yeni başlayan birisini zorlar. Ve sadece bir konuya (dil'e) odaklan.

Meselâ: Lisede 4 - 5 kız ile aynı anda çıkıyorsan, ve de onlara, bunu neden yaptığını izah etmeye çalışıyorsan, alacağın sonucun aynısı ile programlamada da karşılaşırsın. Bazı betik'ler başlangıçta kolaydır. Yeni başlayanlara daha uygundur. Çok yaygın kullanılan ve de uzun zamandan beri piyasada bulunan betikler hakkında sayısız kaynak bulunabilir. Bütün kaynaklar, yeni başlayanlar için anlaşılır olmayabilirler. Farklı seviyede kullanıcılara hitab edebilirler.

Programlamaya yeni başlayanlar için, özel, ticari bir kullanım değeri olmayan veya ticari kullanımına lisans sözleşmesi izin vermeyen betikler var. Bunlar genelde biraz daha basitleştirilmiş veya kapsamı daraltılmış ve dolayısı ile öğrenirken bıkkınlık vermeyen yazılımlar.

Bir de, yaptığın bir işi, neden yaptığını anlayamıyorsan, nasıl yapıldığını biliypr olsan dahi, sürekli hatalı yapabilirsin. Önemli olan, ne yaptığını anlayabiliyor olmandır. Anlayamadığın hiç bir şeyi tam olarak öğrenmiş sayılmazsın. Programlama bir mantık işidir, ve programlamanın mantığı, gerçek hayatta edindiğimiz mantık ile her zaman örtüşmez.

Öğrenmek istediğin bir şey, senin merakını ve de gönlünü alamıyorsa, öğrenme işlemi daha da zorlaşır.

Çok sayıda ve de yararlı ve yararsız (bakış açısına göre bazen değişir) kaynak bulabileceğin programlama ve işaretleme dilleri:

C#
Python
Java
C
C++
HTML

Programlamaya yeni başlayanlar için tasarlanmış diller :

Scratch *** (Windows/Linux/Mac/İnternet) 7 - 77 yaş grubu için ve çok dilli.
Tynker (İnternet) Küçük yaş çocuklar için.
KTurtle ** (Linux) Çocuklar için.
Basic 256 **** (Windows/Linux) Programlamaya ilk adım için öneririm.
Microsoft Small Basic ***** (Windows/NET) Hobi programcılar için ve Net'e girş için uygun.
Yabasic ****** (Windows/Linux veya Unix) Hobi programcılar için.
SdlBasic ****** (Window/Linux) Hobi programcılar için.
Alice (Windows/Linux/Belki Mac için de var) Üniversite'de başlangıç dili olarak kullanılıyormuş.
Phrogram (Windows/NET) Lise için ve ücretli.

Yıldızlı olanlar, deneyip, kişisel görüşüme göre, eğitime olan katkısını değerlendirdiklerim.

Neyi öğrenmek isteyeceğine ve de neyi gerçekten severek öğrenebileceğine kendin karar vermelisin. Tabii bunu tesbit edebilmek için, bir süre, her şeyi denemelisin. Önünde uzun bir yol var. Bol sabır ve Azim ister bu iş.



gnukarabatak

#8
Alıntı YapProgramlama bir mantık işidir, ve programlamanın mantığı, gerçek hayatta edindiğimiz mantık ile her zaman örtüşmez.
Merak ettim bu dediğinize bir örnek verirmisiniz? Bizde istifade etmiş olalım..!

Alıntı YapBaşlangıçta İDE kullanma. Gedit (Metin düzenleyici) tamamen yeterli.
IDE kullanmanın yeni başlayan birine nesi zararlı bunu da anlamadım? Aksine ide işini kolaylaştırır. Sonrasında uzmanlaşmak isterse detayları zaten elde edecektir. IDE olmadan yazılım geliştirme amiyane tabiriyle işi biraz ilkelleştirmeye ve iş yükünü artırmaya götürür. Hele yeni başlayan birini canından bezdirir. Yanlışım varsa düzeltin lütfen..
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

ekremsenturk

#9
Neden en baştan bir İDE ile başlamamamsı gerektiği kanısındayım ?

İDE'ler genellikle örnekler barındırır. Yeni başlayanlar bu örnekleri kendi yaptıkları programlar sanır ve programlamayı bir kaç seçime tıklamaya indirgerler.

İDE'ler büyük boyutlu dosyalar işlemek için uygun. Yeni başlayan birisi için bir proje başlatıp, sonra tek bir deneme işlemi için bir sürü klasör ve dosya ile karşılaşmak, kafa karıştırıcı bir durum.

Küçük uygulamalar için standart bir editör daha kullanışlı. Kod'unu yazıyorsun, kayıt ediyorsun, Terminali açıp çalıştırıyorsun veya derliyorsun. Hepsi bu kadar. Üstelik hepsi sistemde hazır kurulu ve bir şeyler aranıp, bulup, hangisinin seçileceğine, uzun tartışmalar sonra karar verip kurmak gibi bir zahmeti de yok.  Bir örnek ile deneyelim.

Gedit (Metin düzenleyici) açalım ve yazalım:
print "Merhaba"
print ("Bu gün hava çok güzel")

Dosya olarak, "selam.py" adı verek kayıt edelim.

Şimdi Uçbirimi (Terminal) açalım ve komut girelim.
python selam.py

Bu tür alıştırma işlemleri için bir İDE kullanmak tamamen gereksiz bir olay. Programlamaya yeni başlayan birininde 3 boyutlu bir oyun geliştirmeye yönelmeyeceğine göre, Bu şekilde en temelden ve ne yaptığını anlayarak ilerleyecektir.

Mantığa gelelim:

Python ile devam edelim ve Terminal'den
python
komutunu girip başlatalım. Etkileşimli Python konslu/kabuğu açılacaktır. İlk denemlerimizi yapalım.

>>> print float(3)

alacağımız sonuç : 3.0 olacak

>>> print int(3)

alacağımız sonuç : 3 olacaktır

>>> print float(0.3)

alacağımız sonuç 0.3 olacaktır

>>> print int(0.3)

alacağımız sonuç 0 olacaktır.

Basit bir örnek. Gerçek hayatta olamyan bir Mantık.



7hr33l3t73r

Alıntı yapılan: ekremsenturk - 09 Haziran 2014 - 16:58:55

Mantığa gelelim:

Python ile devam edelim ve Terminal'den
python
komutunu girip başlatalım. Etkileşimli Python konslu/kabuğu açılacaktır. İlk denemlerimizi yapalım.

>>> print float(3)

alacağımız sonuç : 3.0 olacak

>>> print int(3)

alacağımız sonuç : 3 olacaktır

>>> print float(0.3)

alacağımız sonuç 0.3 olacaktır

>>> print int(0.3)

alacağımız sonuç 0 olacaktır.

Basit bir örnek. Gerçek hayatta olamyan bir Mantık.


Tabi bir hatirlatmada bulunalim verilen ornekler python2 surumunde gecerlidir.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

gnukarabatak

Konu başlığına ve kullanıcının profiline bakarsanız zaten sıkıntı çektiği için bu başlığı açtığını görürsünüz. IDE konusunda dediğinize kesinlikle katılmıyorum ve hâlâ aynı fikirdeyim. Demişsinizki komut satırında yaz derle uggulama print etsin tamam. Peki bu windows grafik ortamına alışmış ve windows aşinası olan bu geliştirici adayı çok becerikli olsa zaten bu konu başlığını açmazdı. Tutki bir tanede başlık(header) dosyası ekleyim dese nano gibi bir editörde derlediği program başlık dosyasını bulamadığı için çalışmayacak. Yeni başlayan birisinin komut satırında derleme parametrelerini ayarlaması, kütüphane yada başlık dosyasını göstermesi, hatasız derlemeyi başaracağım diye göbeğini çatlatması durumunda bıkkınlık gelecek ve ikinci mesajda olduğu gibi "Abi en iyisi sen bir windows kur, orada bu gıcık ayar işleriyle uğraşmazsın" akılıyla linux dan tabanları yağlayıp bir daha bakmayacak. Olacak olan budur. Zaten çoğu kişi windows geleneği ve alışkanlığı barındırdığı için CodeBlocks, Kdevelop, monodevelop gibi yapılar bu ihtiyaçtan açığa çıkmıştır. Mesele işi iyi öğrenmek olsa o zaman ben Assembly öğrenmesini öneririm. Çünkü sistem düzeyine en yakın dil bu. Mesele işi kolaylaştırmak ve yeni alışan kişileri ürkütmeden bu işi sevdirmek. Nano gibi editörlerle yeni başlayan ve linux'u sevmek isteyen birine kırk dereden su getirtip canından bezdirerek bu iş olmaz. Yeni başlayan biri için IDE (Tümleşik geliştirme ortamı) en iyi başlangıç noktası olacaktır. Yazdığı iki satır kodu F9'a basıp çalıştırdığında yaptığı işin gerçeklenmesini görüp mutlu olacaktır.
Sizin dediğiniz profesyonel bir kursa gidecek bir kişiye önerilebilecek bir yoldur. En azından bir hoca kontrolünde bir düzen içinde işi temelden öğrenir. Öbür türlü kaçacak yer arar.
@ekremsenturk, görüşlerinize saygı duymakla berebarer IDE konusunda kesinlikle katılmadığımı da ifade etmek isterim..
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.

ekremsenturk

#12
Linux'ta başlık (Header) dosyaları için yol göstermek gibi bir olay yok. Her dosya türünün yeri ve yolu bellidir. Terminal'den bir C veya C++ dosyasını derlemek için yapılacak tek şey, derleyici adı ve derlenecek dosya adını girmek. Derlenmiş dosya adı derleme esnasında belirlenmek isteniyorsa, ek bir parametre ile o da mümkün. Windows'ta her uygulamanın kendi klasörleri var ve dosyaların yerleri belirsiz. Linux'ta her dosya türünün kendi klasörü var. Path önceden sistemde belirlenmiş ve hiç bir ayarlama gerektirmiyor. Konuyu açan arkadaşın çektiği sorunların kaynağıda, izlediği video'ların Windows için olduğundan ötürü. Sen de Linux kullan, kurtul Windows saçmalıklarından.

gnukarabatak

Ben zaten linux kullanıyorum :) (Eğer bana söylediyseniz). Ancak şunu unutmamak gerek windowstan geçiş yapan biri uyum konusunda bir geçiş ve alışma dönemi yaşacaktır. Kullanıcıya ani şok yaşatmak yerine yavaş yavaş alıştığı ortama yakın bir geçiş sağlanmalı. Bunun en iyi yolu da Tümleşik Geliştirme Ortamı ile başlamasıdır. Elbette Linux'e hakim olmak isteyen biri bir şekilde Konsol'u sevmeye başlamalıdır. Tabi nano, gedit, vi vs editörleride.

Bu kadar o iyi şu kötü konuşmasından sonra tavsiye isteyen kardeşime şunu söylemek isterim. Windowsta bir disketin bad söktörüne ulaşmak için yaklaşık 500 satır kod yazman gerekir. Ancak linuxte çok daha kısa bir kodla buna ulaşırsın. Ve Linuxte yazdığın kod yıllar geçsede linux windows gibi zırt pırt alt yapı değiştirmeyeceği için her zaman geçerli bir kod olacaktır. Bu yüzden gönül rahatlığıyla Ubuntu üzerinde geliştirmelerini yap. Piyasa için şayet windows sürümünü hazırlayacağın zaman kodu windows için derlemenin de bir sürü yolu var, endişe etme.

Burada fikir mülahazası yaptığımız gibi IDE yada basit editör tabanlı geliştirmeye başlayabilirsin. Bu seçim tamamen sana kalmış. Eğer kendini yeterli hissediyorsan nano gibi bir edtörle bu işe başla. Yok ben daha çok yeniyim, işim kolay olsun dersen IDE daha iyi bir seçim olabilir.

Ayrıca başlık dosyalarının dahil edilmesi konusunu ben GNU C derleyicisine göre söyledim. Acaba kim yanlış biliyor?
Linux kullanmak bir farklılık, linux'te kod yazmak ise ayrıcalıktır.