programlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
programlama etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Ekim 2015 Çarşamba

Yazılım Stajı Vestel ve Veriyaz

     Merhaba arkadaşlar bu yazımda sizlere daha önceden de söylediğim gibi yazılım stajları hakkında bilgi vereceğim. Kurumsal mı olmalı? Yazılım evimi? Küçük bir sirketmi?
     Arkadaşlar öncelikle şunun kararını vermeniz gerekiyor. Ben bu stajı ne amaçla yapacağım? Staj günümü doldurmak için mi? Yoksa gelecek günlerim adına tecrübe edinebilmek bir şeyler öğrenebilmek için mi? Tabi ki şimdi gelecek kariyeriniz derken? İkinci sınıftaki arkadaşlar için hatta üçüncü sınıftaki arkadaşlar için de bunun kararını vermek birazcık zor durum oluyor. Bunun için size önerim tanıdığınız birilerinin fikirlerini dinler ve tecrübelerinden yararlanabilirsiniz. Bu hocanız olabilir, üst sınıftaki arkadaşlarınız olabilir akrabanız vs olabilir.
     Her şeyden önce hangi işi yaparken daha çok keyif alıyorsunuz? kod yazarken mi? Tasarım yaparken mi? Algoritmalarla uğraşırken mi? Veritabanı ile mi? Mobil mi? Aynı zamanda yazılımın diğer alanı İş zekası kısımlarını ve SAP kısmını da incelemeniz öneririm.
    Bunları inceledikten sonra sizden daha tecrübeli olan tanıdıklarınızın da fikirlerini ama son karar yine sizin olsun. Kararınızı verdikten sonra bu kez staj yeri seçimi nasıl olmalı nerelerde olmalı istanbul da yaşayan arkadaşlar için durum biraz daha kolay bu konuda diğer şehirler de yaşayan arkadaşların fazla seçimleri olmuyor. Kurumsal yerlerde küçük firmalara nazaran stajyer arkadaşlar ile daha az ilgileniyor bu benim görüşüm tabi ki.
    Ben stajımın birini Vestel Dijital de yapmıştım. Vestel özellikle stajyer öğrenciler için fazlaca disipline sahip bir şirkettir. Giyim kurallarına uymanız ve ilk gün belirtilen yerde olmanız gerekiyor diğer türlü kapıda fazlaca beklemeniz gerekebilir. Size ilk günden itibaren bir kaç eğitim veriyorlar iş güvenliği eğitiminden başlayarak bulunduğunuz birimin tüm süreçleri inceleyebileceğiniz eğitimler oluyor. Son olarak birim müdürünüzün size verdiği görevi yapıyorsunuz ilk zamanlar biraz canınız sıkılabilir is istemekten çekinmemelisiniz. Ben ve stajyer arkadaşlarım Vestel dijital da seri ve paralel port haberleşmesini üzerine ve daha sonra fatih projesi için hazırlanan tabletlerin işletim sitemi testlerini yaptık. Vestel de staj yapmaktan ise Part-time olarak çalışmanızı öneririm. Part-time çalışan arkadaşlarımızın ile daha fazla ilgileniliyor ve iş atamaları daha ciddi oluyordu.
     Bir diğer stajımı da Veriyaz yazılım şirketinde yaptım. Burası kurumsal olmayan kendi içerisinde projeler geliştiren bir yazılım şirketiydi. Yeri İzmir AOSB yeni parsellerde bulunmaktadır. Ulaşım olarak sabahları kendi servisi mevcuttur mavisehir izban metrodan almaktadır. Tabi ki bu söylediklerim 2013-2014 tarihleri arasında geçerliydi. Veriyaz da ise C# Winform uygulama geliştirdik. Şirket sahibi Erkan bey gayet mantıklı ve iyi biridir. Gelişmeye açık ve sizden de yeni teknolojileri takip etmenizi bekler. Yazılım departmanı 5 ile 10 kisi arasındaydı. Tasarım ve sistem kısımında da çalışan arkadaşlarımız vardı. Projemizi TFS kullanarak geliştiriyorduk projede C#, LinqtoSql aynı zamanda WCF servislerini kullanıyorduk. Tabi ki bunları stajımdan sonra çalışmaya başladığımda projeye dahil olduğum zaman yaptım ondan önce linqtosql ve winformda birkaç küçük proje çalışmaları yaptırmıştım.
    Evet şuanda okulunun 3 ve 4. sınıfında olan arkadaşlarımıza ilk tavsiye edeceğim ilk şey imkanları var ise part-time olarak bir projede yer almalarıdır. İkincisi ise Stajlarınız da sizlere görevler verilmez ise kendi kendinize proje düşünüp başlamanızdır. http://www.codeproject.com/
    Biz yazılımcılar için olmazsa olmazı "parmak klavyeye deyecek" kuralıdır unutmayalım!
 

19 Şubat 2015 Perşembe

Yazılım Sektörüne Yeni Başlayanların Dikkat Etmesi Gereken Noktalar!

     Arkadaşlar uzun zaman olmuştu bir şeyler karalamayı başlığımızın 5. maddesini karalamanın vakti gelmiş. Arkadaşımın isteği üzerine 5ten başlıyoruz. Bunlar benim kısa zamanda gördüğüm ve dikkate aldığım noktalar işinize yarayacağını umuyorum. Yazılım sektörüne yeni başlayanlar için bir şeyler karalayacağımızı söylemiştik bunların başında daha yeni sektöre giren öğrenci arkadaşlarımız için gelsin.
     Arkadaşlar şuanda daha yolun çok başındasınız biliyorum öğrencilik hayatı çok güzel bunu en güzel şekilde yaşayan öğrencilerden biri olmuşumdur.
     Fakat öğrencilikte bir yerekadar olmalı bilgisayar müh. veya yazılım okuyan arkadaşlarıma en azından son iki yıllarında proje bazlı olarak çalışmalarını öneriyorum. Son iki yılda yazılımın hangi tarafında yer alcağınızı kestirmeniz gerçekten de zor olabilir ama bir yerlerden başlamak yola girmek gerekir.Bu yolda yürüyecek seniz ve bu yoldan hayatınızı geçindirmeyi düşünüyorsanız sevdiğim birinin bana dediği gibi "Parmak klavyeye deyecek." evet doğru söz. Hocalarımız anlatmıyor diye üzülmeyin internette yeterince kaynak mevcut kendinize güvenin yeter.
     Son iki yılınızda yaptığınız projeleriniz sizin gelecek yıllarda neler yapabileceğinizi ve bu yolda daha hızlı adımlarla yürüyebilmenizi sağlayacaktır. Evet birde staj olayları var arkadaşlar stajlarınızı kendiniz isteyerek yapmanız her şeyden daha önemlidir. Kurumsal olmuş veya olmamış(tabi ki bazı şirketleri ayrı bir kenarda tutuyoruz) çok ta önemli değil önemli olan sizin neler yapacağınızdır. Staj sırasında soru sormaktan görev almaktan hiç mi hiç çekinmeyin.( soru konusunda ben tam olarak bunu yapamamıştım) Sorun araştırmalar yapıp kafanıza takılan her şeyi sorun kimse size sormadan bir şeyler anlatmaz hatta ki sorduğunuz zaman dahi karşınıza bildiklerini paylaşmayan insanlar çıkacaktır. Aldırmayın böyle insanlar her yerde var siz sadece işinize konsantre olun ve yapmanız gerekenleri yapın.Göreceksiniz bir yerden sonra işler yoluna girecektir bir kaç ay sabret ve çalış. Ama öyle bir iki ay ile pes etmek yok!
     Öğrencilik hayatımda iyi ki yapmışım dediğim olayların başında erasmus var yapabiliyorsanız bence yapın sizlere çok önemli deneyimler kazandıracaktır.(Teknik açıdan çok fazla bir şey beklemeyin)
    Eveet şimdi geldik erkek arkadaşlar için dananın kuyruğunun koptuğu noktaya. Arkadaşlar askerlik bildiğimiz üzere sıkıntılı bir mevzudur sizlere tavsiyem ya kararlı ve planlı bir şekilde erteletin yada mezun olduğunuz zaman hemen askerlik işini aradan çıkarın. Unutmayın eğer ki planlı bir şekilde ertelemezseniz bu her zaman önünüzde ki bir engel olacaktır.
     Simdi de son olarak sektörde işe yeni başlayan arkadaşlara bir kaç önerimiz olacak. Arkadaşlar açıkçası hangi üniversiteden hangi puanla mezun olduğunuzun sektörde pek bi önemi yok. Adamlar iş yapan eleman arıyorlar. Proje bazlı çalışan takıma uyum sağlayabilen verilen projeleri zamanında bitirebilen ve daha önemlisi kendini geliştirebilen kişileri tercih ediyorlar.Benim size önerim öncelikle yeni işe başlıyorsanız eğer PM(project manager/proje yöneticiniz) sizin çok fazla bir şey bilmediğinizin veya ne kadar bildiğinizin farkında olacaktır, fakat sizden yinede kendinizi geliştirmeniz için ve proje için güzel şeyler isteyebilir. Burada yapmanız gereken araştırmak ve sizin üstünüzde yer alan arkadaşlarınıza veya PM danışmak olacaktır. Dediğim gibi unutmayın  SORU SORMAKTA çekinmek yok! Eğer ki işe yeni başlayan arkadaşlarınızda varsa onlarla birlikte aktif bir çalışma yürütün.
     Kendinizi belli bir konuda uzmanlaştırır iken aynı zamanda başka konular da da hobiler edinin her zaman makaleler ve kitaplar okuyun aynı zamanda blogları ve güzel sayfalarıda takip ediniz. Özellikle internetteki WEBINERleri kaçırmadan izleyin. Bunlar sizleri daha profesyonel adımlarla ilerlemeniz de yardımcı olacaktır.
https://www.khanacademy.org/contribute
https://www.udemy.com/
https://www.acikakademi.com/portal/default.aspx
https://muratbaseren.wordpress.com/tag/murat-baseren/
http://www.buraksenyurt.com/
    Unutmayın ki bir işe inanmak yarısı başlamakta diğer yarısıdır. Evet bize de bir şey kalmıyor bundan sonra :) Umarım keyif almışsınızdır hoşçakalın :)
                                                                                                                             Şahin YARAL
 

18 Şubat 2015 Çarşamba

SQL Nedir? T-SQL Nedir?

     SQL, Ingilizcesi Structured Query Language olan, Türkçe olarak Yapılandırılmış Sorgu Dili anlamına gelen veritabanları üzerinde sorgulama yapmamızı sağlayan standartlaşmış bir sorgu dilidir. IBM tarafından 1975 yılında geliştirilmiştir. Veritabanı ile kullanıcı arasındaki bağlantıyı sağlar. Sql kullanarak bizler hazırladığımız sorgular ile veri tabınında ki verilerimiz üzerinde istediğimiz işlemleri yapabiliriz. Standartlaşmış bir sorgu dili olduğu için bütün gelişmiş veritabanı uygulamalarında kullanılmaktadır.
     T-SQLTransact SQL adi verilen Sqlin microsoft tarafından geliştirilen Microsoft SQL Server üzerinde kullanılan bir sql sürümüdür diyebiliriz. Sql server üzerine eklentiler ve bazı fonksiyonlar eklenerek daha performanslı hale getirilmesi sağlanmıştır.
     Üç farklı ifade tipi bulunmaktadır.

  • Veri Tanımlama Dili (Data Definition Language)
  • Veri Kontrol Dili (Data Control Language)

  • Veri İşleme Dili (Data Manipulation Language)    

  •      Veri Tanımlama Dili (Data Definition Language)(DDL)
         Veri tabanında nesneler üzerinde işlemlerimizi yapmamızı sağlayan ifadelerdir. Veritabanı,tablo gibi nesneler oluşturma güncelleme silme işlemlerini yapmamızı sağlar.Üç adet veri tanımlama ifadesi bulunmaktadır.

    1. CREATE-Nesne oluşturma
    2. ALTER-Nesne üzerinde düzenleme
    3. DROP-Var olan bir nesneyi silme
    Örneklerimizi bir sonraki adımda ayrıntılı olarak paylaşacağım konumuza devam edelim :)

         Veri Kontrol Dili (Data Control Language)(DCL)
         Bir veritabanı kullanıcısı veya rolü ile ilgili izinlerin düzenlenmesini sağlar. Üç adet veri ifadesi  bulunmaktadır.   
    1. GRANT :     Kullanıcımıza veritabanına erişimi veya t-sql komutlarını çalıştırabilme yetkisini verir.
    2. DENY :        Kullanıcı veya rolü herhangi bir eylemi yapmasını engellemek için kullanılır.
    3. REVOKE :  Daha önceden Grant veya Deny ile verilen yetki veya engellerimizi kaldırmamızı sağlar. 


         Veri İşleme Dili (Data Manipulation Language) (DML)
         Veritabanı içerisindeki veriler ile işlem yapmamızı sağlayan komutlar. Verilerin gösterilmesi eklenmesini düzenlenmesini ve silinmesini sağlar. Dört adet veri işleme ifadesi bulunmaktadır.

    1. SELECT  :Veri seçme 
    2. INSERT   :Veri ekleme
    3. UPDATE :Veri düzenleme
    4. DELETE :Veri silme

    Bir sonraki yazımızda anlattığımız ifadelerin ve sıkça kullanılan komutların örneklerini(sıralama gruplama join...) inceleyeceğiz. İyi çalışmalar diliyorum :)

    SOLID Prensipleri (SOLID Principles)

    OOP(Object Oriented Programming) Gerçek anlamda Nesne yönelimli programlama yapabilmek için SOLİD prensiplerine uygun olarak projemizi geliştirmemiz gerekmektedir.  Eğer bu prensiplere uygun olarak projemizi geliştiriyorsak gerçek manada nesne yönelimli programlama yapıyoruz diyebiliriz. Esnemezlik Kırılganlık ve Sabitlik sorunlarının çözümü için ortaya çıkmıştır.
    Esnemezlik: Kullanilan tasarımın geliştirilememesi ve eklemelerin yapılamıyor olmasi
    Kırılganlık: Projemizin bir modülünde yaptığımız değişiklik diğer modüllerde hatalara yol acması
    Sabitlik: Yazılan modülün farklı yerlerde tekrardan kullanılamamasıdır.

    1.S   - Single Responsibility Principle
    2.O  -Open/Closed Principle
    3.L   -Liskov’s Subsitution Principle
    4.I    -Interface Segregation Principle
    5.D   -Dependency Inversion Principle

    Şimdi her bir prensibin ne anlama geldiğini açıklayalım.
    1.       Single Responsibility Principle
    Her modülün(method,nesne..) tek bir görevi ve tek bir sorumluluğu olma zorunluluğudur. Yani her bir nesne proje içerisinde bir görev almalıdır. Sadece o görev değişikliği sırasında nesnemizi değiştirmeliyiz eğer başka bir nedenden dolayıda bir değişiklik yapıyorsak bizim birinci kuralımıza uymayan bir kullanım söz konusudur diyebiliriz.

    2.       Open/Closed Principle
    Projemizde kullandiğimiz modüllerimizin değişime kapalı fakat gelişime açık olmalıdır. Örneğin projemizin ikinci bir sürümünü yapıyoruz ve bizden bir modülde ek bir kaç özellik daha eklememizi istediler. İşte bu durumda biz modülümüzün sadece belli bir kısmına dokunur ve onu geliştirebildiysek O/C prensibine uygun davranmiş oluruz. Fakat biz bu eklemeyi modülde çoğu yerde değişiklik yaparak yapıyorsak projemiz O/C prensibine uygun değildir diyebiliriz.

    3.       Liskov’s Subsitution Principle
    Solid prensiplerinin içerisinde daha karmaşık olarak gorunen iki prensipten biridir. Amacımız turettiğimiz nesnelerimizin tum alt sınıf örnekleri aynı davranisi göstermesidir.Diğer bir deyişle türüyen sınıfın nesneleri temel sınıfın nesneleri ile yer değiştirebiliyor olmasıdır.

    4.       Interface Segregation Principle
    Solid prensipleri içerisinde karmaşık olarak görülen diğer prensiptir.
    Gokhan hocamizin dediği gibi: “ ilgili bağımlı nesnelerin örneklenmesi görevi ayrık bir bileşene(Component) veya Framework’e verilir. Bu sayede bağımlı nesnelerin üretilip controller’a  enjekte edilmesi sağlanır.” Yani benzer özellikleri olan sınıfları bir interface altında topladıktan sonra bu sınıflardan bazılarını kesin olarak kullanmıyorsak bu yanlış kullanım şeklidir. Kesin olarak kullanmıyorsak biz bunlarıda kesin olan en küçük parcacıklara ayrıştırmalıyız.

    5.        Dependency Inversion Principle
    Somut sınıflarımıza olan bağımlılıklarımızı soyut sınıflar kullanarak aradaki bağı kırmamızdır. Diğer bir deyişle yüksek seviyeli sınıflar düşük seviyeli sınıflara direkt olarak bağımlı olmamalıdır. Bağımlılığı kırmak için arada soyut sınıflara bağlamamız gerekir.

    Kaynaklar:  
                                                                                                                  
                                                                                          Şahin YARAL





    9 Şubat 2015 Pazartesi

    TFS(Team Foundation Server) Nedir?



    Team Foundation Server, daha çok kurumsal projeler için tasarlanmış, projede çalışan takım arkadaşlarının iletişimi ve işin işleyişini izleme açısından aynı zamanda her bir personelin yönetimi, çalışmasını performansını görebilmemizi sağlayan Microsoft ürünüdür.
    Asıl amacı işbirliğini saplamak ve ürün gelişimini kolaylaştırmaktır. Tfs ile birlikte ortak serverda tutulan projeye tüm proje çalışanları erişebilir ve projenin kendisine ait olan kısmını geliştirip tekrardan server a yükleyip diğer personellerinde bu gelişmeden yararlanmasını sağlayabilir. Bu sayede projemizi her zaman düzenli ve güncel olarak tutabiliriz. Herhangi bir patlama sonucunda istediğimiz versiyonumuza geri dönüş yapabiliriz.
     ‘Get Latest Version’ dediğimiz de server üzerindeki projenin o anki versiyonunu kendi bilgisayarımıza almış oluyoruz.
    Kendi dosyamızda çalıştığımız zaman ‘Check Out’ olarak istediğimiz değişiklikleri yapabiliriz. Daha sonradan yaptığımız bu değişiklikleri de ‘Check In’ diyerek server a yükleme yaparız böylece diğer takım arkadaşlarımızda bizim değişikliklerimizi almış olacaktır.
    ‘Check Out’ olan dosyaya sadece o an kullanan arkadaş erişim sağlayabilir yani diğer bir deyişle dosyamız onda kilitli kalmış olur.
    ‘Merge’ işlemi tfs de en dikkat edilmesi gereken unsurlardan biridir. Genel olarak tfs bunu kendisi yapmaktadır fakat bazı durumlarda bize ihtiyacı vardır. Projenin bir dosyasını ‘Check Out’ yaptığımız zaman eğer yeni bir şey eklemek istersek bu sağlıklı bir ‘Merge’ açısından sıkıntılı durumdur. Bu durumda biz dosyamıza ekleme yapmadan ‘Check In’ dememiz gerekmektedir. Yani bu durumu diğer takım arkadaşlarımıza kendimiz söylemeliyiz.
    Özellikleri:
    ·         Versiyon Kontrolü
    ·         Proje yönetimi
    ·         İş zekası ve raporlama
    .    Web erişimi

              Ayrıca tfs proje üzerinde yaptığımız tüm değişiklikleri kayıt altına alınmaktadır. Hangi personel hangi dosyada çalışmış, ne zaman çalışmış, ne kadar değişik yapmış, ne kadar süre harcamış gibi bilgiler de vermektedir.

    Team Foundation Server Üç Katmandan Oluşur
    ·         İstemci katmanı
    ·         Uygulama katmanı
    ·         Veri katmanı


    • İstemci katmanı: 
             Web servislerini kullanarak kullanıcıdan gelen isteklere cevap veren katmandır. Team Explorer, Microsoft Office uzantıları,3. Parti araçlar bu katmanda yer alır. 
    • Uygulama katmanı: 
             Veri katmanı ile istemci katmanı arasındaki bağlantıyı sağlayan katmandır. İstemci katmanının erişimi için ASP.NET Web Servislerini sunar. 
             Team Foundation Data Services
            Team Foundation Integration Services 

    • Veri katmanı:    
           Veri katmanı istemcilerin direk erişime sahip olmadıkları katmandır bu katmana erişim için web servisler kullanılır. Veri katmanı SQL Server üzerine inşa edilmiştir.
            Work Item Tracikng,Version Conrol,Team Foundation Build,Reporting Warehouse ile ilgili tüm özellikler bu katmanda tutulmaktadır .
                                                                                                  Şahin Yaral

    18 Ekim 2010 Pazartesi

    dosya organizasyonu))

    #include
    #include

    using namespace std;
    int main()
    {
        ifstream dosyaoku;
        dosyaoku.open("input.txt");
        ofstream dosyayaz;
        dosyayaz.open("output.txt");
      
        string harfnotu;
        float   harfnotuort=0;
        int    vize=0;
        int    odev=0;
        int    final=0;
        int no,i;
        string numarasi;
        string isim,soyisim;
        cout<<"no\t"<<"isim\t"<<"soyisim\t   "<<"  okulno "<<"   vize  "<<"  odev "<<"   final "<<"   ort "<<"  harfnotu"<
        cout<<"*****************************************************************************\n";
        for(i=0;i<9;i++){
        dosyaoku >>no>>isim>>soyisim>>numarasi>>vize>>odev>>final;
      
        harfnotuort=(vize*3/10)+(odev*3/10)+(final*4/10);
        if(0<50)     harfnotu="FF";
        if(49<60)    harfnotu="DD";
        if(59<70)    harfnotu="DC";
        if(69<75)    harfnotu="CC";
        if(74<80)    harfnotu="CB";
        if(79<85)    harfnotu="BB";
        if(84<90)    harfnotu="BA";
        if(89<95)    harfnotu="AA";
        cout<<<'\t'<<<'\t'<<<'\t'<<<'\t'<<<'\t'<<<'\t'<<<'\t'<<<'\t'<<
        dosyayaz<<<' '<<<'\t'<<<'\t'<<<<<<<'\t'<<
        //cin>>no>>isim>>soyisim;}
                                  }
        cout<<"\n";
        system("pause");
        return 0;
    }