Özellikle sektörde olan arkadaşlara ve büyüklerimize sormak istediğim bir kaç sorum var. Biraz uzunca bir yazı olacak. Ayrıca bu soru sadece benim değil 6 7 kişilik arkadaş grubumuzun ortak sorunu. Sektörden insanların bunları cevaplaması bizim için çok önemli.


Ben 3. sınıf bilgisayar mühendisliği öğrencisiyim. Bu zamana kadar c# java php ile uğraştım(temel c c++ bilgim var veri yapıları ve algoritma dersinden). C#ta form uygulamaları asp.net mvc (temel seviyede, web servis soap restful kullanmadım hiç , entity framework kullandım orm olarak ve mvc yapısını anlamak amacıyla asp.net mvc çalışmıştım) , php de ise bu yaz girdiğim bir iş yerinde öğrenmek zorunda kaldım. Şuan freelance olarak ufak tefek php işleri alıp yapıyorum. Java taraflı ise temel java konularına genel bir göz gezdirdim ve androide bakmak amacı ile hazır kütüphaneler yardımıyla basit bir sms gönderme uygulaması yaptım.

Yazılımsal donanımım şu şekilde, OOP ye hakim olduğumu düşünüyorum, abstract class, interface vs vs.. Design patternleri çalışıyorum sürekli yenilerini öğrenip uygulama alanlarını araştırıyorum vs.. (abstract factory, factory, singleton, builder, adapter, chain of resp. , ) . Yani oop biliyorum diyip tek bildiği classtan ibaret olan birisi olmadığımı düşünüyorum.

Algoritma bilgim (sorting algorithms , search algorithms) ve veri yapıları (binary tree , dictinary tree , graph(yeterince iyi değilim graphlarda) , linked list) var. Hiç değilse bunları biliyorum netten baksam implementasyonlarını hatırlarım.

Fakat sorun şu ki benim kendi görüşüm hiçbir dilde ileri seviyede değilim. Tamam bir şeyler araştırıp öğrenince yapılabiliyor fakat daha önce bir çok şeyi kullanmadım. Tek yaptığım elle tutulur proje c# ağ üzerinden socketler ile veri gönderimi.. Ve freelance php işleri...

Benim hedefim java ile mobil ve python ile web tarafına yönelmek. Ayrıca yapay zeka alanında mühendislik çalışmaları yapmak. Ve makine öğrenme denildiğinde python çokça duyulduğu kullanıldığı için pythonu bu sebeple de öğrenmeye başladım.

Biliyorum çok fazla dilden dile geçiş yaptım, ama bunların hepsinin bana bir getirisi olduğunu düşünüyorum.

Şimdi benim sormak istediğim sorular şunlar :

1-) Firmalar alacağı kişilerin her şeyi bilmesini mi istiyor, yoksa benim profildeki birisini alıp bilmediklerini kullana kullana öğrenir kafasındalar mı ?

2-) Python öğrenmeye çalışıyorum, python ve django ile sektörde iş bulabilir miyim.

3-) Web taraflı java ee ile mi daha iyi yerlere gelinebilir python ile mi ?

4-) Yurt dışına çıkmayı düşünüyorum Allah nasip ederse, pythonun yabancı ülkelerde çok popüler olduğunu biliyorum. Bu açıdan python ve javayı paralel götürmeye çalışacağım. Ülkemizde python ile iş bulamazsam hiç değilse belirli bir süre java ile çalışan bir yere girerim diye düşünüyorum. Yanlış mı düşünüyorum ?

5-) -Bu sorumu web/mobil/desktop yazılımcı arkadaşlar kesinlikle yanlış anlamasın- Ben sadece web,mobil uygulama geliştirici olmak istemiyorum, "mühendis" olmak istiyorum, dediğim gibi yapay zekaya yönelmeyi düşünüyorum hocam(yapay zeka çalışmaları yapan sektörden bir insan) ile görüştüm bu konuyu yapay zekaya yönelebileceğimi söyledi kaynaklar gösterdi. Yapay zeka çalışmalarını python ile Türkiye şartlarında gerçekleştirmek mümkün mü ? Örneğin big data, data analystic , machine learning vs vs...

5-) Bütün bunlara ek olarak python ile robotik alanında da çalışmanın bir sakıncası olur mu ? Arduino,raspberry vs vs..

6-) Bana ve benim durumumdaki kişiler için verebileceğiniz tavsiyeleriniz var mı ?

Şimdiden cevaplayan ve okuyan herkese çok teşekkür ederim.

soruldu: 13 Kas '15, 12:17

devel0per's gravatar image

devel0per
50113
cevap kabul oranı: 0%

değiştirildi: 16 Kas '15, 08:18

CemIkta's gravatar image

CemIkta ♦
19.9k29125190


Öncelikle bu konular tartismaya cok acik ve her tecrubeli programcinin degisik fikir ve dusunceleriyle sekillenecebilecek detaylar iceriyor. Asagidaki yazdiklarim kisisel dusuncelerim olup Türkiye ve Avrupa'da programci olarak calistigim firma/projelerden edindigim fikir, tücrübe ve zaman icinde farkli farkli teknolojilerle calisirken yasadiklarimin bir sonucu da diyebilirim! Ayrica asagidaki konular biraz daha cok özgürlük, acik yazilim felsefesini icerir.

Öncelikle dil ve teknoloji secimlerinde cok onemli bir prensip var: Use right tool for the job (Dogru is icin dogru alet edevat kullan gibi tercume edilebilir)

Butun dunyada bilgisayar muhendisligi, yazilim muhendisligi, bilisim sistemleri vb. bolumler genel programlama, algoritma, analitik dusunebilme, sorunlara analitik ve hizli, kisa cozumler bulma mantigiyla egitimler verir. Muhendislik pratikten daha cok nasil yapilacagi hakkinda dogru ve analitik yollari bulma egiliminde olup hangi teknolojinin kullanildigi ders veren hocanin, o universitenin, o ulkenin degisik yaklasimlari ile sekillenir. Universiteniz Microsoft ile teknokloji anlasmasi yapmissa C#, hocalariniz old school C/C++ geleneginden geliyorsa C/C++ dersleri, daha modern ve uluslararasi teknolojileri takip ediyorsa Java, Python egitimleri verilir.

Bircok sebepten dolayi IT bolumlerinde okuyan ogrencilere hepsinden birazcik gosterilir, gercek proje pratikleri cok az kullanilir.

Iyi bir yazilim gelistirici olmak istiyorsaniz bir hedefe odaklanip calismaniz onerilir. Uzmanlik alaniniza gore dil ve teknolojiler secerek duzenli sistemli okuyup kod yazarak ilerlemelisiniz. Teknolojiler secerken global dusunup bolgesel calismalisiniz.

Global yazilim teknolojileri nereye gidiyor?

Oncelikle size yol acacak, ileriye donuk, uzmanlastiginizda gercekten sizi bir adim ileriye tasiyacak, topluluk destegi cok iyi olan butun dunyada aranilan(global dusun!) dil ve teknolojilere yogunlasmalisiniz. Dil secimi ile ilgili bu cevap ilginizi cekebilir!

Global dusunurken soyle bir yanilgiya dusmeyin: ulkemizde Python yerine Visual Basic ile daha cok is bulabilirim, o zaman benim icin en iyisi Visual Basic! Bu size zaman kaybettirir, kucuk firmalarda coder (yazilim gelistirici degil kodcu!) olmanizi saglar ve o firma biz Visual Basic den para kazaniyoruz en iyisi bu der herzaman!

Global dusunurken yazilim dunyasinda populerite, aranilan dil ve teknolojiler, trendlere bakmalisiniz! Ama ulkemizde Python ile is bulamiyorum! Bu Python'un sucu degil, kapali kod ve frameworklerle yazilim gelistiren firmalarin, o firmalarda calisan kolaya kacan, kendini gelistirmeyen 10 yildir ayni codebase ile calisan yazilimcilarin sucu! Bunu degistirmek icin muhendis oluyorsunuz, en iyi en dogru ve en hizli yolu secmek icin egitim aliyorsunuz! Bunu firmalara gostermelisiniz, cozum odakli olursaniz firmalara yon verirsiniz, yoksa firmalar en kotu proje ve teknolojilerle size yon verir!

Global dusunurseniz, lisans, özgürlük, framework cesitliligi, cozum coklugu, degisik bir suru is mantiklarinda kullanilan Java, Python, Ruby, NodeJs, Big Data, NoSQL, Web Services gibi teknolojilere hemen rastlarsiniz, bunlari ogrenmeniz, uzmanlasmaniz size dunyanin kapilarini acacaktir, yasadiginiz ulkede de en iyi firmalarda onemli posizyonlarda is bulabilecek yetkinligine sizi eristirecektir.

Ayrica unutmayin kotu teknoloji ve dil yoktur, kotu programci vardir! En basit teknolojilerle bazen cok komplex ve kaliteli urunler yazilabiliyor!

Java kurumsal is projelerinde(enterprise) cok agirlikli kullaniliyor, mobil ve desktop sistemlerinde(Rich Client Platform) platform bagimsiz oldugu icin tercih sebebi, ayrica bircok degisik alanlarda Java aktif topluluk, universite ve bilimsel kurumlarin destegine sahip!

Python Big Data, Data Analiz, Robotik, Yapay Zeka, Bilimsel Yazilimlarda, universite ve arastirma kurumlarinda cok kullaniliyor. Python brosurunde butun dunyada meshur olmus Python projeleri hakkinda detayli bilgiler var: PSF Python Brochure

Ruby ile kucuk buyuk bircok web/mobil projesi gelistiriliyor.

NodeJS ve Big Data ile hergun kullandigimiz internet servicelerinin backend, frontend sistemleri yaziliyor.

Soru daha cok nereye gitmek istediginiz ve bu amac icin neler ogrenmeniz gerektigi. Firmalar her teknolojiden bir parca bilen birini degil, bir, iki teknolojide uzman(sorunlari cozebilen, performans cozumleri uretebilen, yeni projeleri sifirdan yazabilecek derecede bilen), digerlerinde de fikir sahibi olan ve gerektiginde hizli ogrenebilecek kisileri ise alir.

Bu konular cok uzar gider, biraz da olsa kendinize bir yon verebilirseniz, kucuk ayaklar/kucuk adimlarin buyuk yardimi olabilir.

Python ile ilgili ilginizi cekebilecek linkler:

7 Years of YouTube Scalability Lessons in 30 Minutes

Scaling Django to 8 Billion Page Views

10 Myths of Enterprise Python

The Python brochure has very interesting informations of Python projects

Ayrica daha once benzer fikirler de yazmistim yardimi olabilir: Yazılım Mühendisliği öğrencisinden tecrübe sahibi kişilere sorular

permanent link

cevaplandı: 16 Kas '15, 08:10

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×90
×41
×7

Soruldu: 13 Kas '15, 12:17

Görüntüleme: 732 kez

Son güncelleme: 16 Kas '15, 08:18

powered by BitNami OSQA