Bu Blogda Ara

21.05.2008

Yazılım , sadece kodlardan mı oluşur ?

Yazılım , sadece kodlardan mı oluşur ? Bunun cevabını aşağıdaki makale çok güzel anlatmış.


Yazılım geliştirme sadece kodlamaktan ibaret değildir. Bir problemin çözümü olarak nitelediğimiz yazılımların ne yapacağını ve nasıl yapacağını belirlediğimiz yani problemi tanımladığımız aşama “Analiz” aşamasıdır. Yazdığınız kod ancak isteneni doğru bir biçimde yerine getiriyorsa başarılı bir yazılımdır. Bu nedenle öncelikle yazılımdan ne istendiğinin doğru bir biçimde tanımlanması gerekir.

Yazılım geliştirmede kodlamaya başlamadan önceki aşamada ilk olarak genel bir kapsam çıkartılması gerekir. Bu kapsamla birlikte yazılımın üzerinde çalışacağı donanım bileşenlerini de kapsayacak şekilde bir sistem analizi yapılır. Ardından yazılım ve donanım gereksinimleri ana hatlarıyla belirlenince yazılım için proje planı yapılır, gerekiyorsa ekip oluşturulur ve sonrasında yazılım isterleri çözümlenmeye başlar.

İlk olarak yukarıdaki paragrafın anlamını biraz daha açık hale getirelim. Bu yazı boyunca kavramların ve işleyişin daha iyi anlaşılması açısından bir örnek üzerinden gideceğim. Bir diyetisyen için randevu sistemi. Her bir kavramı ve adımı bu örnekler için uygulanışını da okuduğunuzda daha iyi anlayacağınızı umuyorum.

Kapsam dediğimiz şey, projenin neleri içerip neleri içermeyeceğinin belirlenmesidir. Müşteriler, bu öğretmenleriniz, eşiniz, dostunuz da olabilir, her zaman birçok şey söyleyeceklerdir. Müşterinin sizden isteyeceği her şey yazılım içinde olmalı mıdır? Eğer sonsuz zamanız, bütçeniz, enerjiniz ve sabrınız varsa olabilir. Ama her projenin bir başlangıç ve bir bitiş zamanı vardır. Yani zamanınız sınırlıdır. Bu arada kaynaklarınız da sınırlı. Tek başınıza belirlenen süre içinde yazabileceğiniz kod miktarı da sınırlıdır. E işi yaparken bu kadar sınır varsa, işi çerçevelerken de bazı sınırlar koymalıyız. Biz buna kapsam yönetimi diyoruz.

Randevu sistemini ele alalım. Müşteri bir diyetisyen, bir de sekreteri var. Randevuları ve hastaları takip ediyor. İlk olarak diyetisyenle görüşmeye başlamalıyız. Diyetisyenden geliştireceğimiz sistemden neler beklediğini ana hatlarıyla öğrenmeliyiz. Diyetisyen bu durumda aklına gelen gelmeyen birçok şey söylemeye başlayacaktır.

DİYETİSYEN: Hastalarım internet üzerinden randevu alabilmeli. Sekreterim ve ben de bu randevuları dilediğimiz zaman izleyebilmeliyiz. Bir hasta randevusunu erteleyebilir veya iptal edebilir. Ama bunu en geç 2 iş günü öncesinde yapmalı. Ayrıca gerektiğinde ben de randevuları iptal edebilirim. Bu durumun da hastalara sms ve email ile bildirilmesi gerekir. Her zaman aynı saatlerde çalışmayabilirim. Bazen bazı günler çalışmayabilirim. Bu nedenle takvimin esnek bir şekilde yönetilebiliyor olması gerekiyor. İki hafta sonra yeni yerimize taşınıyoruz. Orada bu sistemin çalışıyor olması benim için önemli. He bir de ek olarak tabii ki hastanın iletişim, kişisel bilgileri, tahlil vb. ve verdiğim diyetleri de sistemin takip ediyor olması lazım.

Şimdi gördünüz mü diyetisyenden gelen son faullü hareketi! Son anda “he bir de” diyerek eklediği şeyler randevu sisteminin kendisinden birkaç kat büyük bir iş. Burada yapmanız gereken diyetisyeni biraz aydınlatmaktır. Randevu sisteminin kapsamını belirleyerek ona yardımcı olalım.

SİZ: Hastanın kişisel, iletişim, tahlil ve diyet gibi bilgilerini tutacak hasta takip sistemi tamamen ayrı bir iştir. Dilerseniz onu da randevu takip sisteminin ardından planlayabiliriz. Ancak anlattıklarınızdan iki ayrı sisteme ihtiyacınız olduğu anlaşılıyor: Randevu takip sistemi ve hasta takip sistemi. Bu iki sistemin birden iki hafta içinde yetişmesi mümkün değil. Bu nedenle biriyle başlamamızı öneririm.

Kapsamı belirlemeye başladık. İlk yaptığımız en üst seviyede sistemleri isimlendirerek kapsamın adını vermek oldu. Şimdi diyetisyeni makul bir insan olarak düşünüp söylediklerinizi değerlendirdiğini ve randevu takip sistemini öncelikli olarak ilk yapmanızı istediğini varsayıyoruz. Şimdi sıra yazılım isterlerini belirlemeye geldi. Yazılım isteri dediğimiz şey, o yazılım yerine getireceği işlevlerin belirlenmesidir. Ek olarak temel iş kuralları, performans beklentileri, kısıtlar vb. şeyler de bu aşamada açıklığa kavuşturulur. Teyitler ve sorularla, olabildiğince temkinli olarak yazılım isterlerini çözümlemeye başlayalım.

Öncelikle elimizdeki bilgileri bir gözden geçirelim:
- Herkes, her yerden sistemi kullanabilecek. Bu projemizin web tabanlı olmasını gerektirecek. Hemen diyetisyene soruyoruz.

SİZ: Herkesin dilediği zaman erişebileceği bir sistem için web tabanlı bir proje geliştirmemiz gerekiyor. Bu yazılıma ek olarak bir web sunucusu ve alan adı kiralanmasını gerektirir. (Sistem çözümlemesi) Web sunucunuz ve alan adınız var mı? Yoksa bunlarla da benim mi ilgilenmemi istersiniz?

DİYETİSYEN: Alan adım ve web sunucum var. Bu konularla ilgilenen arkadaşın ismini ve iletişim bilgilerini size vereceğim. Projenin web ortamında çalışması için gerekli desteği ondan alabileceksiniz.

Evet, şimdi projemizin bir web projesi olacağını netleştirdik. Şimdi sıra işleyişe geçti.
- Her zaman aynı saatlerde çalışmayabilirim. Bazen bazı günler çalışmayabilirim. Bu nedenle takvimin esnek bir şekilde yönetilebiliyor olması gerekiyor.

SİZ: Öncelikle sistemde bir randevu takvimi oluşturarak başlamak gerecek. Bu takvimde siz ya da sekreteriniz önümüzdeki herhangi bir gün için çalışma saatlerinizi direkt olarak ilgili günü seçerek saat aralığını verip randevuları tanımlayabilmelisiniz? Doğru anlamış mıyım?

DİYETİSYEN: Evet ama her gün için teker teker randevu tanımlamayla uğraşmamalıyız. Yani genel olarak seanslar 45 dakika sürer. Sabah saat 10.00 ile akşam saat 17.00 arası normal çalışma saatlerimizdir. Öğlen 13.00 ile 14.00 arasında da yemek arası veririm. Cumartesi ve Pazar günleri normalde çalışmam. Bu standart olarak tanımlı olmalı. Ama biz gerektiğinde ek seanslar ya da günler ekleyebilmeliyiz.

Otomatik tekrarlayan randevu biraz sizi yoracak gibi görünüyor. Hemen itiraz mı etmeli, yoksa bu istek makul mü?
Burada çok kolay bir formül var. Bu istek,
- Mutlaka olmalı mı?
- Olursa iyi olur mu?
- Olmasa da olur mu?

Diyetisyenin randevu işlemlerini bir yazılım üzerinden takip etme nedenlerinden biri de işlerin kolaylaşmasını sağlamak ve sekreterinin yoğunluğuna azaltmak. Her gün için tekrar tekrar takvim girdisi oluşturulmasını beklemek bu iş için pek de doğru değil. Yani bu ister, bu proje için mutlaka olmalı. Bunu kenara koyduk.

SİZ: Sistemde siz randevuları tanımladıktan sonra müşterileriniz randevu alabilecek, erteleyebilecek ya da iptal edebilecek. Sistem erteleme ve iptal için 2 iş günü öncesine kadar müsaade edecek, sonrasında kullanıcı bu işlemleri yapamayacak. Peki, bu 2 iş gününün daha sonra 1 iş günü olması ya da 3 günce çıkması ya da belirli bir müşteriye özel olarak değiştirilmesi söz konusu olabilir mi?

İş kuralını sorguluyoruz. Parametrik mi yapalım? Sabit mi? İstisnaları var mı?

DİYETİSYEN: Çok emin değilim ama bu 2 gün değişmez gibi. Belki 3 gün olabilir ama 1 güne inmez. Özel müşterilerimiz için de şöyle bir şey olabilir: İnternet üzerinden yine işlem yapamazlar ama bizi telefonla aradıklarında sekreterim o randevuyu boşa çıkarabilir. Böylece o seansı boş geçirmek zorunda kalmayız.

Evet, randevu iptal ve ertelemeyi de çözümledik. İptal ve erteleme için maksimum gün sayısı parametrik olmalı. Hastalar bu parametrik değere bağlı olarak erteleme/iptal işi yapabilir/yapamaz olmalılar. Ancak doktor ya da sekreter diledikleri zaman randevu erteleme ya da iptali yapabilmeliler.

- Ayrıca gerektiğinde ben de randevuları iptal edebilirim. Bu durumun da hastalara SMS ve e-mail ile bildirilmesi gerekir.

Hastalar için randevularını iptal etmenin dışında bir de diyetisyen için belirli bir aralıktaki randevuları iptal etme söz konusu. Peki, bu durumda sistem nasıl çalışmalı? Yani diyelim ki sizin bugün saat 15.00 diyetisyenle randevunuz vardı. Diyetisyenin çok önemli bir işi çıktı ve bugünkü bütün randevuları iptal etti. Yarın, öbür gün, hatta bütün bir hafta için tüm seanslar dolu. Size bu alacaklı olduğunuz seans için nasıl bir çözüm önerilecek. Normalde bu iş nasıl çözümleniyordu?

SİZ: Peki randevularını iptal ettiğiniz hastalara nasıl bir çözüm getiriyorsunuz?

DİYETİSYEN: Her biri teker teker aranıyor ve hasta kabul ederse mevcut seanslardan uygun olan birine davet ediliyorlar. Eğer hasta kabul etmezse, normal seansların dışına ek seans konularak hastaya randevu veriliyor.

Bu cevabı ek seans tanımlama işlevimiz yerine getirecek zaten. Şimdi gelelim SMS ve Email ile randevu iptalini bildirmeye. Bu durumda her bir hasta, randevu sistemi üzerinden kayıt olurken cep telefonu ve email bilgilerini girmek zorunda.

SİZ: Hastalarınız kayıt olduklarında gerektiğinde email ve sms gönderebilmek için email adreslerini ve cep telefonlarını almamız gerekecek. Ayrıca tabii ki isimlerini de. Bunların haricinde hastayla ilgili randevu sisteminde olmasını istediğiniz bilgiler var mı?

DİYETİSYEN: Hastanın adı, soyadı, emaili, cep telefon numarası ve oturduğu semt bilgileri bizim için yeterli. SMS için benim çalıştığım bir kurum var. O kurumdan gerekli desteği alabilirsiniz.

Buraya kadar yazılımın hem kapsamını belirlemiş olduk hem de isterlerin büyük kısmını ana hatlarıyla şekillendirdik. Şimdi elimizdeki bilgilerle isterleri bir toparlayalım ve yazılımımızın işlevlerini sıralayalım.

1. Sistem otomatik olarak takvim oluşturacak. Pazartesi – Cuma günleri aralığında her gün için sabah saat 10.00 akşam 17.00 aralığında 45’er dakikalık seanslar tanımlayacak. Bu seanslara öğlen 13.00 – 14.00 arası dâhil değil. (Burada hemen aklımıza bir soru gelmesi lazım. Seanslar aralıksız olarak mı atanmalı, yoksa iki seans arasına boşluk konmalı mı?)
2. Sekreter ya da diyetisyen istediklerinde belirli seansları kapatabilmeli ya da yeni seans açabilmeliler.
3. Hastalar ad, soyad, semt, cep telefon, email bilgilerini girerek seçecekleri bir gün ve seansa randevu alabilirler.
4. Hastalar belirli bir süre önceden (2 iş günü) randevularını iptal edebilirler ya da erteleyebilirler. Her iki durum da ilgili seansı boşa çıkartır ve başka birinin randevu alabilmesini sağlar. Erteleme için hastanın bilgilerini girmeye gerek kalmaksızın takvimden yeni bir boş seans seçmesi yeterli olur.
5. Bir ya da birçok seans için sekreterin ya da diyetisyenin seans iptali. Bu durumda ilgili seanslara randevu almış hastalara sms ve email mesajları gider.

İşlevsel isterlerimizi ana hatlarıyla belirledik. Şimdi bir kez daha diyetisyenimizle görüşme yapalım. Sonrasında sekreterimize de birkaç sorumuz olur. Ardından yazılımımızın tasarımına geçebiliriz.

Diyetisyenimize randevular arasında boşluk olup olmayacağını sorduk. Sekreterle konuşarak şimdiye kadar bu işlerin nasıl yapıldığını dinledik. Analizimizde eksik var mı doğrulamasını yaptık. Hatta birkaç da hastayla görüştük. Mevcut durumda şikayetçi oldukları şeyleri öğrendik, ardından bu işi internet üzerinden yapıyor olsalar sistemden neler beklerlerdi öğrendik. Sonrasında da işlevsel analizimizi güncelleyip, ne tür kullanıcı ekranları olacağı ve ne tip raporlar alınabileceğini de belirten bir belge hazırlayarak diyetisyenle analiz aşamasındaki son görüşmemizi yapıyoruz.

DİYETİSYEN VE SEKRETER İŞLEVLERİ:
1. Sistem yöneticisi girişi: Diyetisyen ya da sekreterin kullanıcı adı ve parolasıyla girerek, onlara özel işlemleri gerçekleştirmesini sağlayacak giriş ekranı.
2. Sistem yöneticisi parola değiştirme: Sisteme bir diyetisyen ve bir sekreter olmak üzere iki kullanıcı tanımlanacaktır. Bu kullanıcılar diledikleri zaman parolalarını değiştirebilirler.
3. Sisteme çalışma günlerinin tanıtılması: Diyetisyen ya da sekreter sistem yöneticisi ekranından kendilerine gösterilen günleri (Pazartesi, Salı, Çarşamba, Perşembe, Cuma, cumartesi, Pazar) işaretleyerek çalışma günlerini belirlerler.
4. Sisteme çalışma saatlerinin tanıtılması: Diyetisyen ya da sekreter sistem yöneticisi ekranından seçtikleri bir çalışma günü için sabah ve öğlen çalışma saat aralığını girerler. (Öğlen yemeği saatleri dışarıda kalacak şekilde.)
5. Ek seans oluşturma: Diyetisyen ya da sekreter sistem yöneticisi ekranından seçtikleri bir tarih için, o günde olmayan ek bir seansı başlangıç saatini vererek tanımlarlar.
6. Seans iptali: Diyetisyen ya da sekreter sistem yöneticisi ekranından seçtikleri bir gün için belirli seansları, bir günün tamamını, ya birden fazla günü iptal edebilirler. Bu durumda sistem iptal edilmiş seanslara kayıtlı hastalara email ve sms gönderir.
7. Seans izleme/sorgulama: Sekreter ya da doktor belirli bir tarihteki seansların randevu durumunu izleyebilirler.
8. Sistemin otomatik olarak seans oluşturması: Kullanıcı ya da sistem yöneticileri belirli bir gün için seansları listelemek istediklerinde, eğer o gün için daha önceden seanslar oluşturulmamış ise, öncelikle ilgili günün çalışma günü olup olmadğına bakılır. İlgili gün çalışma günüyse, haftanın o günü için belirlenmiş çalışma saatlerine bakılırak, 45 dakika seans 15 dakika iki seans arası olacak şekilde seanslar tanımlanır. (Sistem bu işlevi arka planda otomatik olarak yapacaktır.)

HASTA İŞLEVLERİ:
1. Randevu alma: Hasta seçtiği bir gün için kendisine listelenen boş seanslardan dilediği birine ad, soyad, semt, cep telefonu ve email bilgilerini girerek kayıt olur.
2. Randevu iptali: Hasta randevu takibi için cep telefonu numarasını girerek almış olduğu randevuyu görüntüler. Eğer süresi içindeyse randevu iptal seçeneğini görebilecektir. Bu seçeneği tıklayarak iptal nedenini girer ve randevu iptal işlemi gerçekleşir.
3. Randevu erteleme: Hasta randevu takibi için cep telefonu numarasını girerek almış olduğu randevuyu görüntüler. Eğer süresi içindeyse randevu ertele seçeneğini görebilecektir. Bu seçeneği tıklayarak erteleme nedenini girer ve yeni randevu seansını seçerek erteleme işlemini gerçekleştirir.

SİSTEM YÖNETİM EKRANLARI:
1. Diyetisyen/sekreter sistem yönetim paneli giriş ekranı.
2. Diyetisyen/sekreter parola güncelleme ekranı.
3. Sistem yönetim menüsü.
4. Çalışma günleri tanıtma ekranı.
5. Çalışma saatleri tanıtma ekranı.
6. Ek seans giriş ekranı.
7. Seans kapatma ekranı.
8. Seans iptal ekranı.
9. Seans izleme/sorgulama ekranı.

HASTA EKRANLARI:
1. Randevu sorgulama ekranı.
2. Randevu alma ekranı.
3. Randevu iptal ekranı.
4. Randevu erteleme ekranı.

Yukarıdaki listelerle diyetisyene gidip, çözümlemeniz için teyit almanız analiz aşamasındaki son adım. Bundan sonraki aşamada tasarıma geçeceğiz. Sizin de fark ettiğiniz gibi bu basit örnek bile analizin ne kadar ciddi bir iş olduğunu açıkça göstermektedir.

Aslında ben bu örnekte diyetisyeni pek konuşturmadım. Daha neler neler çıkardı o diyetisyenden…

SON SÖZ : ANALİZ,ANALİZ,ANALİZ.......... (benden)

2.05.2008

XML-DTD-XSD arası dönüşüm (convert)

DTD to XML Schema ,XML Document to XML Schema,XML Document to DTD

In an effort to help our Allora customers to deal with conversions between XMLSchemas and DTDS, as well generating XML Schemas and DTDs from XML documents, we developed some XML Utilities that you can use free of charge from this web page.

kaynak: http://www.hitsw.com/xml_utilites/

20.02.2008

İstanbul Üniversitesi Mühendislik Fakültesi Logosu




BİLİNÇLİ STAJ YAPMAK ...

ÖZET: bilinç-staj-yapmak/

Bireyin herhangi bir şeyi bilinçli olarak yapması, yaptığı şeyin anlamını ve önemini kavrayarak kendi isteği ve iradesi ile faaliyette bulunması anlamına gelir. Bu yüzden bilinçli bir şekilde staj yapmak için öncelikle “staj” kavramının anlam ve önemini kavramak gerekiyor.

Bir çok öğrenci stajı, okul idarelerinin yaz tatillerini sabote etmek için uydurduğu bir icat olarak düşünür. Stajın yaz tatillerinizi sabote eden bir olay veya çalışma yaşamına hazırlanmak için iyi bir fırsat olarak değerlendirilmesi tamamen sizin bakış açınıza bağlıdır. Eğer bakış açınız çalışma yaşamına hazırlık yönünde ise stajdan çok şey kazanırsınız, yok bir angarya olarak görürseniz stajın size hiç bir faydası olmaz… Bana göre stajdan kazanabileceğiniz çok şey var :

1. Gerçek uygulamaları görmek :

Okulda öğrenilen bilgilerin çoğunluğu teoriktir. Amaç öğrencilerin, uygulamaların altında yatan temelleri ve düşünce biçimini algılamasını sağlamaktır. Bu nedenle de bu bilgilerin çoğu doğrudan doğruya uygulanamaz. Fen bilimlerinden sosyal bilimlere gidildikçe teori ile uygulama arasındaki fark da giderek artar.

Derslerde yapılan uygulamaların bir çoğu da öğrenmeyi kolaylaştırmak için basite indirgenmiştir. Kuşkusuz basite indirgenmiş uygulama yapmak, hiç uygulama yapmamaktan daha iyidir. Bu uygulamaları başarı ile yapan öğrenci de okulda öğrendiklerini kolayca iş yaşamında uygulayabileceğini düşünür. Oysa gerçek iş yaşamındaki uygulamalar okulda yaptırılanlardan hem daha farklıdır, hem de daha karmaşıktır.

Diğer yandan bilim ve teknolojideki gelişmelerin uygulamaya yansıması, ders programlarına yansımasından daha hızlıdır. Bu yüzden ders kitapları ve ders içerikleri, genellikle uygulamanın gerisinde kalır. Bu da okulda öğrenilenler ile uygulama arasında farklılıkların nedenlerinden biridir.
Okulda öğretilenler hep “olması gereken”ler üzerine kuruludur. Ancak “olan” lar genelde olması gerekenlerden farklıdır. Okulda öğretilenler “mekanik”tir, yani bir şeyi belirli bir şekilde yaparsanız, belirli bir sonucu alırsınız. Oysa iş yaşamında bu bilgileri uygulama esnasında mutlaka “insan” faktörü devreye girer, bunun sonucunda mekanik ilişkiler işlemez ve beklediğiniz sonuçları alamazsınız.

Okulda öğretilenler ile gerçek iş yaşamının işleyişi arasındaki farklılıklar için daha bir çok neden ileri sürülebilir. Önemli olan okulda öğrenilenler ile uygulama arasında farklılıklar olduğunu algılayarak gerçek uygulamanın nasıl işlediği hakkında bilgi sahibi olmaktır. Üniversitelerin staj programlarında genellikle amacın okulda öğrenilenlerin iş yaşamında uygulanması olduğu ileri sürülür. Ancak yukarıda belirtilen nedenlerle bu amacın gerçekleştirilmesi olanağı yoktur. Bunun yerine amaç “okulda öğrenilen bilgilerin uygulamada nasıl işlediğini görmek” olarak alınırsa daha doğru bir yaklaşım olur.

Öğrencilerin gerçek uygulamaları görmesinin en büyük yararı, çalışmaya başladıktan sonra iş yaşamına göstereceği uyumun daha kısa sürede gerçekleşmesidir. Literatürde “gerçek şoku” olarak adlandırılan, kişinin beklentileri ile karşılaştıkları arasındaki farkın yüksek olmasından kaynaklanan uyumsuzluk sorunları da böylece en az düzeyde kalmış olur.

2. Çalışma koşullarını görmek :

Derslerde yapılan uygulamalar, genellikle sınıf veya laboratuvar ortamlarında yapılır. Bu uygulamalar sırasındaki konumunuz “öğrenci” dir ve temel sorumluluğunuz uygulama konusu olan dersi “öğrenmek”tir. Bu uygulamalar sırasında size yol gösteren ise öğretim üyesidir ve eğer uygulamalarda başarısız olursanız en fazla o dersten kalır, bir sonraki sene geçersiniz. Uygulamalar sırasında bazı hatalar yapmanız doğal karşılanır, çünkü o işi ilk defa yapıyorsunuz ve sonuç olarak öğrencisiniz… Üstelik uygulamalar “sanal” olarak tasarlandığı için uygulamada yaptığınız hataların kimseye zararı da olmaz.

Bir de çalışma ortamındaki koşullara bakalım. Konumunuz artık “çalışan” olmuştur. Temel sorumluluğunuz ise çalıştığınız pozisyon ile ilgili işleri “yapmak”tır. Bazı kurumsallaşmış firmalarda işe yeni başlayanların firmaya ve pozisyona uyum sağlamaları için yapılandırılmış oryantasyon programları varsa da (ne yazık ki ülkemizde kurumsallaşma düzeyinin çok az olmasından ötürü) bir çok firmada bu tür programlara rastlanmaz. Dolayısı ile size işinizi yaparken yol gösterecek olan bir “öğretim üyesi”ni yanınızda bulamazsınız. Onun yerine genellikle bilgilerini paylaşmayan bir “yönetici” ile karşılaşırsınız ve bu yöneticiye öğretim üyesinde olduğu kadar kolayca yaklaşamazsınız. Bu durumda işinizle ilgili bilgileri bölümünüzdeki diğer deneyimli kişilerden almaya çalışırsınız, ama onlar da ileride kendilerine rakip olabileceğiniz düşüncesi ile bu konuda pek istekli davranmazlar.

Uygulamalı derslerde yaptığınız hatalar normal karşılanırsa da, iş yaşamında yaptığınız hatalar pek normal karşılanmaz. Yaptığınız hatanın büyüklüğüne göre bir karşılığını görürsünüz. Küçük hatalarda sözlü olarak uyarılırsınız. Çok büyük hatalarda ise işinize son verilmesi bile mümkündür. Üstelik artık yaptığınız uygulamalar artık sanal değildir. Dolayısıyla yaptığınız hatalar sonucunda en azından bir kişi veya kurum olumsuz olarak etkilenir ve zarar görür.

Öğrencilik konumu ile çalışan konumu ve her iki konumun çalışma koşulları arasındaki farklar, yukarıda belirtilenlerle sınırlı değildir. Daha bu konuda pek çok fark ileri sürülebilir. Örneğin ;

* Öğrencilikte sadece ders olduğu günler okula gidersiniz ve arada boşluklar vardır. Çalışma yaşamında ise işiniz olsun olmasın belirtilen mesai saatlerinde işyerinde olma zorunluluğunuz olduğu gibi genellikle bu süreleri de aşan bir şekilde çalışırsınız.

* Devam zorunluluğuna uyduğunuz sürece canınız istemediğinde (veya işiniz çıktığında) bazı derslere girmeyebilirsiniz. Çalışma yaşamında devam zorunluluğu % 100’dür ve önemli işiniz olsa bile yöneticinizden izin almak zorundasınız. Ayrıca derse geç kalma ile işe geç kalma arasında da önemli farklar vardır.

* Okulda öğrencilerin uymak zorunda bazı kurallar vardır. Ancak öğrenciler çok, bu kuralları uygulatacak olanların sayısı ise azdır. Üstelik tüm öğrencileri sürekli gözönünde tutmak imkansızdır. Öğrenci psikolojisi de zaten kurallara aykırı hareket edenleri okul yönetimine şikayet etmenin, yani ispiyonculuğun çok kötü olduğu şeklindedir. Bu yüzden bir çok kural ihlali yönetime ulaşmaz. Ulaşanlar da öğrencinin genç ve deneyimsiz olduğu gözönünde bulundurularak, ciddi yaptırımların uygulanması yerine öğrencinin geleceği ile oynamamak adına genellikle sözlü uyarılarla geçiştirilir. Buna karşılık işyeri kurallarının (çoğu zaman yazılı olmamasına rağmen) yaptırımları çok ciddidir ve acıması yoktur. Yaptığınız tüm faaliyetler yöneticilerin ve çalışma arkadaşlarının gözetimi altındadır. Üstelik bu kez “öğrenci psikolojisi”nin yerini “çalışan psikolojisi” almıştır ve bu psikolojide bazen gelecekte kendisine rakip olabileceği düşüncesi ile, bazen de üstlerine yaranmak amacı ile “ispiyonculuk” yapılmasına daha sık rastlanır. Sonuçta çalışma yaşamında “Her koyun kendi bacağından asılmaktadır.”

* Öğrencilerin çalıştıkları alanların durumu, (dersaneler, amfiler, kütüphaneler, laboratuvarlar vb.) ve okulun sosyal olanakları, genelde bir çok işyerinden daha iyidir. (kuşkusuz bu, okuldan okula ve işyerinden işyerine büyük farklılıklar gösterir.) Hatta denilebilirki çoğu vakıf üniversitesinin koşulları, yabancı şirketler bir tarafa bırakılacak olursa, bir kaç büyük firma dışında çok daha iyi durumdadır. Oysa gerçek çalışma koşulları, (hele bir de arazide çalışılması gerekiyorsa) okuldakilerden daha zordur. Örneğin tıp fakültelerinde öğrencilere sunulan bir çok olanak, devlet ve SSK hastanelerinde daha azdır.
Bu gibi örnekleri çoğaltmak mümkün… Ancak sanırım “çalışma koşullarını öğrenmek” ile neyi kasdettiğim daha açık hale geldi. Bu koşulları ancak staj sırasında gözlemleyebilir ve öğrenebilirsiniz. Üstelik konumunuz hala öğrenci olduğundan, yapacağınız hatalar hoşgörülür ve işle ilgili bilgilere daha kolay ulaşabilirsiniz. En azından çalışanlar sizi kendilerine rakip olarak görüp, bilgilerini paylaşmaktan kaçınmaz. Bütün bunların sonucunda kendinizi iş yaşamına çok daha iyi hazırlayabilirsiniz.

3. Mesleki gelişim için gerekli yetkinlikleri öğrenmek :

Her meslekte gelişmek için gerekli olan bir takım yetkinlikler vardır. Bu yetkinliklerin bir çoğu, kurumsallaşmış firmalarda görev tanımları, işe alma, terfi, performans değerlendirme, ücretlendirme gibi süreçlerde kullanılır. Okulda öğrendikleriniz, bu yetkinliklerin daha çok bilgi boyutuna ilişkindir. Bu bilgiyi beceri ve tutumlarınızla birlikte gözlemlenebilir davranışlara, yani yetkinliklere dönüştürmek durumundasınız. Ayrıca bir çok pozisyonda, mesleki bilginin yanında, okulda temel bilgisi öğretilmeyen bir çok yetkinliğin sizde bulunması istenir. Hele yönetici konumlarına gelindikçe mesleki bilginin yerini giderek bu tür yönetici yetkinlikleri alır.

Bilinçli staj yapmanın en önemli yararlarından biri de, iş yaşamında ne gibi yetkinliklerin gerekli ve geçerli olduğunu öğrenmektir. Bunun için staj yaptığınız iş yerinin ;

Görev tanımlarını ve bu görevleri yapacaklarda aranılan nitelikleri (konunuzla ilgili olanlarını),
İşe alım süreçlerini, işe alımda ne gibi özelliklerin arandığını,
Terfi için nelere dikkat edildiğini ve ne gibi özellikler arandığını,
Performans değerlendirmesinin nasıl yapıldığını, performans değerlendirmesinde hangi kriterlerin yer aldığını ve bu kriterlerin açıklamalarını,
Ücretlendirmenin hangi kriterlere göre yapıldığını,
öğrenmenizde büyük yarar vardır. Buradan edineceğiniz bilgiler sonucunda iş yaşamında ne gibi yetkinliklerin gerektiği konusunda fikir sahibi olabilirsiniz. Ayrıca, staj yaptığınız birimin yöneticileri ve çalışanlarına, mesleği iyi bir şekilde yapabilmek için ne gibi özelliklerin gerektiği konusundaki görüşlerini sorup, bunları diğer bilgiler ile bütünleştirebilirsiniz.

Mesleki gelişim için gerekli yetkinlikleri öğrenmenin de bir çok yararı var. Öncelikle iş dünyasının sizden ne gibi özellikler istediğini öğrenerek kendinizi bu konularda geliştirebilirsiniz. Bu yetkinliklere ait bir çok bilginin, okuldaki dersler ile verilmediğini biliyoruz. O zaman iş size düşmektedir. Bu amaçla gerekli yetkinliklerden hangilerine sahip olduğunuzu, hangilerinde ise yetersiz olduğunuzu değerlendirip, eksik olanları geliştirme yoluna gitmelisiniz. İkinci olarak bu yetkinlikleri geliştirirseniz, mezuniyetten sonra iyi bir firmada iş bulma şansınız artar. Üstelik işe başladıktan sonra da çalışma yaşamına kısa sürede adapte olup başarılı sonuçlar alabilirsiniz.

4. Mesleki çevre edinmek :

Staj ile birlikte mesleki alanda ilk iş çevrenizi de yapmaya başlayacaksınız. Bir çok firmada yöneticiler stajyerlere daha pozitif bakar ve o işyerinde çalışmaya başlamış olsanız bir çalışan olarak kuramayacağınız diyalogu bir stajyer olarak daha rahat kurarsınız. Benzer durum staj yaptığınız birimdeki diğer çalışanlar için de geçerlidir.

Diğer yandan stajyerler, bir çok firma için personel adayı kaynağıdır. Çalışmasından memnun kalınan bir stajyer, deneme süresi gerektirmez, çünkü çalışması bilinmektedir. Ayrıca firma kültürünü bildiği için uyum sağlaması da daha kısa sürer. Bu yüzden firmalar yeni mezun elemana ihtiyaç duyduklarında, staj döneminde çalışmasından memnun kaldıkları stajyerleri tercih ederler. Diyelim ki mezun oldunuz ve staj yaptığınız işyerinde yeni mezun elemana ihityaç duyulmuyor. Yine de o işyerindeki kişilerin sizi başka firmalara yönlendirmesi, en azından başvurduğunuz firmalar için referans olmaları, ancak iyi bir staj dönemi geçirmişseniz, yani çalışmanızdan memnun kalınmışsa mümkündür.

Görüldüğü üzere stajınızı bilinçli bir şekilde yapmanızın çalışma yaşamına hazırlanmanızda size çok büyük yararları olabilir. Bunun için öncelikle sizin bu konunun önemine inanmanız gerekir. Ancak ondan sonra kendinizi bilinçli bir staj yapmaya yönlendirebilirsiniz. Eğer bu konunun önemine inanmışsanız son bir kaç öneride daha bulunmak istiyorum :

* Staja başlamadan önce, o stajdan neler beklediğinizi kendinize sorun. Beklentilerinizi listeleyin. Staj süresince nelerin uygulamasını görmeyi hedeflediğinizi, neleri öğrenmeyi istediğinizi bir yere yazarak planlayın. Bu çerçevede yukarıda belirttiğim konuları da çalışma planınıza dahil edin.

* Mümkün olduğu kadar kurumsallaşmış firmalarda staj yapmaya çalışın. Çünkü bu firmalarda staj programları daha ciddiye alınmaktadır. Böylece stajınızda size daha çok vakit ayrılır. Ayrıca kurumsallaşmış firmalar, yapı olarak büyük firmalar olduğundan, okulda öğrendiğiniz bir çok konunun uygulamalarını görebilirsiniz. Küçük firmalarda bu tür uygulamaları gözlemlemek şansı daha azdır.

* Genel olarak staj yaptığınız firmaya bir “yük” olduğunuzu unutmayın. Çünkü eğitim pahalı bir iştir. Size zaman ayrılması gerekir ve bu da çalışanların normal işlerini bir yana bırakarak size zaman ayırmaları ile gerçekleşir. Bu da firma açısından bir maliyet demektir. Bu algılamanın iki sonucu vardır : Birincisi firmanın çalışanlarının tüm zamanlarını size ayırmalarını beklemeyin… İkincisi, firmanın çalışanlarının rutin olarak yaptıkları işleri üstlenerek firmaya katkıda bulunun ve bu maliyeti karşılayın… Göreceksiniz ki firma çalışanları size daha fazla vakit ayıracaklardır.

* Araştırıcı olun… Yukarıda belirttiğim gibi, ne kadar iyi programlanmış olursa olsun, çalışanlar size ne kadar fazla vakit ayırırlarsa ayırsınlar, yine de firmanın size aktarabileceği bilgiler sınırlıdır. Okulda öğretim üyeleri size birşey öğretmek için çaba gösterir, işyerlerinde ise çalışanların böyle bir kaygısı yoktur. İster öğrenirsiniz, ister öğrenmezsiniz, onlar için bir şey farketmez. ( Tatil dönüşlerinde “stajda iken nasıl kaytardıklarını” heyecanla diğer arkadaşlarına anlatan öğrenciler için özellikle belirteyim ki stajdan kaytarmak bir “marifet” değildir.) Bu yüzden siz araştırp sormadıkça, kimse size fazladan bir şey öğretmek için çaba göstermez. Kuşkusuz çalışanların size fazladan bir şey vermesi için de sizin de fazladan bir şeyler yapmanız gerekir. Çalışanların rutin işleri gibi…

* Firma çalışanlarınca size yapmanız için verilen her işi yapın ( Bu bir çalışanın işini yapmak olsa bile…) Bu işler size çok basit ve angarya gibi gelebilir. Kendi kendinize “Ben üniversitede bunca sene bu sıradan işleri yapmak için mi okudum?” şeklinde hayıflanmayın. Bu tür işlerin size bir çok yararı var : Öncelikle işin mutfağını görmüş olursunuz. Yaptığınız iş vasıfsız birinin yaptığı bir iş olsa bile, eğer ileride sizinle bu işleri yapan kişiler çalışacaksa, onların çalışma koşullarını, çalışma şeklini bildiğiniz için daha isabetli kararlar verirsiniz. İkinci olarak, çalışma yaşamının başlarında bu tür işleri bizzat kendiniz yapacaksınız, şimdiden alışmakta yarar var. Üçüncüsü işinizle ilgili olmasa bile yaptığınız bu tür işler ile firmaya katkı sağlamış ve yaptığınız stajın firmaya maliyetini bir ölçüde karşılamış olursunuz. Son olarak çalışkanlığınızla göz doldurur, mezun olduktan sonra gerek o firmada, gerekse o firmanın tavsiyesi ile başka firmalarda iş bulma olasılığınız artırmış olursunuz.

* İşyeri kurallarına uyun ve sanki o firmanın bir çalışanı imiş gibi davranın. Bunun için öncelikle işyeri kurallarını öğrenin. Giyiminiz, işyerine geliş gidiş saatleriniz, işyeri içerisindeki davranışlarınız, bu kurallara uygun olsun. Yukarıda belirttiğimiz faydalar, burada da geçerlidir.

* Son olarak eğer staj yapacaksanız, bilinçli bir şekilde yapın. Stajınızı bu şekilde yapmayacaksanız, tanıdık bir işyeri ayarlayın, size staj belgesini bir şekilde düzenlerler. Hiç olmazsa tatilinizi yarıda kesip, boşu boşuna zamanınızı harcamamış olursunuz. Sonradan çalışma yaşamına başladığınızda “keşke stajımı bilinçli şekilde yapsaydım.” demek yok ama… Benden söylemesi…


kaynak: http://www.mcozden.com/joomla1/index.php?option=com_content&task=view&id=163&Itemid=33

9.01.2008

BDV-499246-BDV

1.01.2008

Yapay sinir ağları metodolojisi ile ekonomik bazı verilerin tahminlenmesi

Aşağıdaki çalışmalar bir çok istatistiksel ve ekonometrik yönteme göre ekonometri alanında yeni bir yöntem olan Yapay Sinir Ağları (Artificial Neural Networks) teknolojisinin öngörü modellemesi tekniği olarak Türkiye ekonomisine ait bazı makroekonomik değişkenlere (Toptan Eşya Fiyat Endeksi -TEFE- ,IMKB100,Döviz Kuru) uygulanmasını kapsamaktadır.

  1. Yıldız Ö. , "Döviz Kuru Tahmininde Yapay Sinir Ağlarının Kullanımı",Temmuz 2006
    Özet : Türkçe , Abstract :İngilizce ilgili bağlantılardan ulaşılabilir.
  2. Yurtsever C. , "Yapay sinir ağları ile tahmin modellemesi :İMKB100 Endeksi Tahmini" , 2006
    Özet : Türkçe , Abstract :İngilizce ilgili bağlantılardan ulaşılabilir.
  3. YURTOGLU H. , “YSA Metodolojisi ile Öngörü Modellemesi: Bazı Makroekonomik Degiskenler çin Türkiye Örnegi”, 2005
    Özet : Türkçe ilgili bağlantılardan ulaşılabilir.

16.12.2007

Bilgisayar Mühendisine

Bilgisayar Mühendisi Arkadaş, İnşallah iyi bir donanımcı veya iyi
bir yazılımcı veya iyi bir networkçü veya iyi bir sistem yöneticisi olacaksın.

Yalnız şu mühim meseleleri sakın aklından çıkarma;
Bu kainatın öyle bir donanımcısı vardır ki, bütün mevcudâtı ve
içinde yer yüzünü create etmiş, güneşi bir power source, ayı bir system clock yapmış. O power source'dur ki kesintiye uğramaz ve o system clocktur ki şaşmaz ve şaşırmaz, o donanımcının ilminin ve sanatının nihayetsizliğini gösterir.
Bu zât aynı zamanda öyle yüce bir programcıdır ki, şu muazzam dünya üzerinde çalışacak şekilde koca hayat programını yazmış, yüzbinlerce yıldan fazladır, error verdirmeden, crash ettirmeden çalıştırıyor.

Eğer onun ne kadar iyi bir programcı olduğunu da anlamak istersen, önce kendine bak. Gözünle göremediğin küçücük bir hücrene bütün kodunu save etmiş ve yine o küçücük hücrende execute ettiriyor. Madem ki DNA'nın bir program olduğu apaçıktır, ve bir program programcısız olamaz demek ki, senin programcılığın ancak o büyük zâtın programcılığına ancak bir ayna hükmündedir.

Yine senin bütün hücrelerinden oluşturduğu network'ün içinde hadsiz protokollerle o hücreleri konuşturduğu gibi, madem ki senin de diğer insanlarla türlü dillerde ve protokollerde konuşabilmen için gerekli donanımı yanına vermiştir, öylece de gördürüyor, konuşturuyor ve dinletiyor. Ve madem ki sen etrafındaki bütün cisimlerden haber alasın diye ışık, ses gibi türlü mediayı hazırlamış kullandırıyor, ve sen bunları keşfeder, kullanır fakat upgrade edemezsin, o halde öyle büyük bir network uzmanı zât vardır ki senin her türlü ihtiyacını bilir, ona göre teçhizatını verir. Senin networkçülüğün ancak onun, sonsuz ilminden sana verdiği bir küçük parça ve bir büyük nimettir.

Arkadaş, aldanma! Şu güzel dünya hayatı programı bir limited trial version'dur, görüyorsun ki elde ettiğin malı mülkü hiç bir surette save edemiyorsun. Öyle ise, bu kâinat yazılımını yazanı tanı. Hem hiç mümkün müdür ki bir programcı bu kadar güzel bir program yapsın ve yaptığı programda about kesimi koyup kendini tanıttırmasın. Öyle ise bu kainatın en büyük donanımcısı, programcısı, networkçüsü ve sistem yöneticisi olan zâtın her yere işlediği about kesimlerini gör, öğren, full versiyonunu kazanmak için çalış.

Unutma ki hiç bir hareketin atlanmadan çok dikkatli loglar tutuluyor. Bu loglar her şeye gücü yeten o sistem yöneticisi tarafından open edilip check edilecektir.

Aman ha dikkat!...

7.12.2007

Makale aramak ( Google Akademik )




Google Scholar





Akademik araştırma yapmak istiyorum ve google içinde boğuluyorum diyenlere google akademik hizmeti ilaç gibi gelecektir.
http://scholar.google.com.tr/