Celal Bayar Üniversitesi Bilişimde Kariyer Zirvesi(http://www.bilisimdekariyerzirvesi.com/ ) etkinliği için hazırladığım sunumdur. Sunumda teknolojinin geçmişten günümüze hızla değişiminden dikey ve yatay uzmanlıklara, Endüstri 4.0 yeniliklerinden Gartner araştırma raporlarına, çalışma tekniklerinden takip edilmesi gereken kaynaklara farklı bir çok konuda bilgiler verilmeye çalışılmıştır.
4. Turuncu Bankada Neler Oluyordu?
Programlama
C#,Java,C,C++
ObjectiveC
PL-SQL
Database
Oracle
Apache Hadoop
Memcached
Sunucular
Linux
Unix
Windows Server
Kaynak Kod
Yönetimi
TFS
ClearCase
Süreç Yönetimi
TIBCO
Oracle Workflows
Kültürel
Stratejiler
DevOps
Scrum
Bir süredir(yaklaşık iki yıldır) asıl uzmanlığım olan ve ekmek paramı kazandığım .Net teknolojileri dışındaki dünyayla da ilgilenmeye çalışıyorum. Ruby, Python ve GoLang dillerini incelemeye farklı programlama dili yaklaşımlarını kavramaya çalışıyorum. Sadece dikey de değil yatayda da gelişmeye gayret ediyorum. Bu serüven sırasında bazı etkinliklerde Ruby dilini anlatma fırsatı da buldum. Son etkinliklerin birisinde bir sonraki görselde yer alan slaytı kullanmıştım.
Fotoğrafı gösterdim. Kimse ne olduğunu bilmiyordu. Kendimi biraz yaşlanmış hissetmekle birlikte hayatımıza giren teknolojilerin nereden nereye ulaştığını fark etmeye başlamıştım. Bu aslında çocukluk bilgisayarımdı. Başında saatlerce oyun oynadığım Commodore 64. Kasetçalarından bahsettim kimse ne dediğimi anlamadı. Kafa ayarı yapardık dedim. Çıt yok. Çocukken sahip olduğum bu bilgisayarı büyüdüğümde eskiciye vermiştim. Ama onu tekrar buldum. 2016 yılında bir alışveriş sistesinden tertemiz bir tanesini satın aldım. Üstelik 20 oyun içeren bir kaseti bile vardı…
Zamanı biraz daha ileri saralım. Yaklaşık 32 yıl sonrası…
Derken geçtiğimiz hafta kendimi 23 Nisan şenliklerinde buldum. Yoğun talep nedeniyle beni de Mentor olarak bir sınıfa dahil ettiler. Meyve ve sebzelerle piyano çaldık, Super Mario oynadık Elimizde Arduino kartlar vardı. Yön, space ve click olayları için kablo bağlayabileceğimiz devreleri vardı. Onların bir uçlarını kartlara diğer uçlarını meyve ve sebzelere bağladık. Topraklama yapılan kabloyu bir elimizle tutarken diğer ellerimizle meyvelere vurduk. Google’dan açtığımız Makey Makey Piano ve Super Mario ile eğlenceli dakikalar yaşadık.
Fotoğraftaki kahraman ise bu kez C# tan dolayı Sarp adını verdiğimiz oğlumdu. 8 yaşında meyveler ile bilgisayardan müzik çalmak onun ilgisini çekmiş olsa da diğer 50 çocuk gibi kendini sonradan yine tablet başında bulmuştu.
Peki benim asıl dünyamda neler oluyordu? Günün neredeyse 8 haftanın 40 ve bazen daha fazlasını geçirdiğim bankamda neler oluyordu?
Kısaca çalıştığım bankada hangi teknolojilerin kullanıldığından biraz bahsedeyim. Nitekim kurumsal çözümlerde farklı araç ve teknolojilerin bir arada koşması söz konusu.
Pek çok finans kurumunda olduğu gibi bizim bankamızda da kurumsal projeler çok yaygın kullanılmakta. Pek çok farklı ürünü, platformu, yazılım geliştirme metodolojisini bir arada görebiliyoruz. Ağırlık teknolojilerimiz ise şu şekilde özetlenebilirler.
Programlama Tarafı:
C#, Java, C, C++, ObjectiveC, PL-SQL, Powerbuilder
Veritabanı Tarafı :
Oracle, Apache Casandra
Sunucu Sistemleri :
Linux, Unix, Windows
Kaynak Kod Yönetimi :
Team Foundation Server
Süreç Yönetimi :
TIBCO, Oracle Workflows
Kültürler, Metodolojiler:
DevOps, Scrum
Programlama/Yazılım Ustası olabilmek için gerekenler.
Baştan şunu kabul etmemiz lazım. ‘Hepimiz çırağız’
Dikey ve yatay uzmanlıklar önemli. Belli konularda uzman olmalı ama yatayda farklı alanlar hakkında da fikir sahibi olmalıyız. Örneğin .Net veya Java konusunda uzman olup, Python, Ruby, Go gibi farklı dillerde bilgi sahibi olmak, Agile metodolojilerin farkında olmak, DevOps kavramlarına aşina olmak bu gelişime örnek gösterilebilir.
Dikey ve yatay uzmanlaşmalar kişisel gelişimimiz açısından çok önemlidir. Kişisel olarak mesleki kazancımı .Net teknolojileri ile yapmaktayım. Bu nedenle .Net alanında olabildiğince bilgi birikimimi arttırmaya gayret ederim. Ancak diğer dilleri de öğrenmeye çalışıyorum. Özellikle yorumlamalı dilleri anlamaya çalışmaktayım. Betik diller bu alanda ilk dikkatimi çekenler. Ancak Javascript değil. Ruby, Python öne çıkan hobilerim arasında. Bunlara ek olarak Google’ın GO dili ile de uğraşmaktayım. Sizin de buna benzer bir T cetveliniz olabilir. Bu bir nevi DevOps gibi kültürlerle de ilişkilendirilebilir.
Gelecek
TIOBEE programlama endeksine bakmakta yarar var. Ayrıca belirli periyotlarda yayınlanan ve Marfin Fowler’ın Chief Computer Scientest olarak görev aldığı ThoughtWorks firmasının Tech Radar’ına da bakmak lazım. Bu radar Türkçe olarak da yayınlanıyor. Radar’da hangi alanlara adapte olunması gerektiği, hangi alanların ilgi çektiği gibi bilgilere yer verilmekte olup uzman görüşler de bulunuyor.
Gartner’ın mesleki alanlardaki raporları da seçim yapma noktasında önemli . 2017 raporu burada
http://www.gartner.com/smarterwithgartner/gartners-top-10-technology-trends-2017/ Listede bir numarada Uygulamalı Yapay Zeka ve İleri Seviye Makine Öğrenmesi yer alıyor.
Gartner’ın raporuna göre 2017 yılında popüler olması beklenen teknolojik trendler şöyle. İlk sırada Uygulamalı Yapay Zeka ve ileri seviye Makine Öğrenmesi yer alıyor.
Endüstri 4.0 daki alanlar gelecek teknolojileri ile ilgili olarak kariyer yolumuzu çizme noktasında büyük önem arz etmekte. Bir yön belirlerken bu hususlara dikkat etmekte yarar var.
Teknoloji alanında dikkat çeken en önemli 8 teknolojiyi bu slaytta görebilirsiniz. Arttırılmış gerçeklik, Şeylerin interneti, sanal gerçeklik, yapay zeka, 3boyutlu yazıcılar, drone’lar, robotlar ve BlockChain önümüzdeki döneme damgasını vuracak olan hatta vurmakta olan teknolojiler. Yazılımın da bu alanlarla yakın ilişkisi olduğu aşikar. Bu konulardan biri veya bir kaçını gelecek kariyer planlarına koymanızda yarar var.
Az önceki slayttaki her branş ciddi anlamda rağbet görmekte. Örneğin AI konusunda 2012-2017 arasında yatırım yapan ve AI girişimlerini satın alan şirketlerin bir kısmı burada yer alıyor.
CBInsights raporu : https://www.cbinsights.com/blog/top-acquirers-ai-startups-ma-timeline/
Önce çıkan fotoğrafta AlphaGo ‘nun Dünya Go şampiyonu ile yaptığı maçtan bir görüntü yer alıyor. Satranç’ta Kasparov’u yenen IBM’in Deep Blue’sundan sonra GO’da bir insanı yenecek yapay zekayı geliştirmek neredeyse çeyrek asırı bulmuş. Kasparov maçı 1996, Lee Sedol maçıysa 2016
https://www.theguardian.com/technology/2016/mar/15/googles-alphago-seals-4-1-victory-over-grandmaster-lee-sedol
Listenin devamı da burada. IBM, Oracle, ebay, Ford gibi pek çok devin 2012-2017 yılları arasında yapay zeka alanına ciddi yatırımlar yaptıkları görülüyor.
CBInsights raporu : https://www.cbinsights.com/blog/top-acquirers-ai-startups-ma-timeline/
Nasıl Çalışıyor Bilmek?
Teknolojilerde fanatik olmayıp aslında alt yapılarındaki kavramlara aşina olmak lazım. Bunları bilirsek, örneğin matematik kuramlar, teoremleri, araçlar arası geçiş yapmamız da kolay olacaktır.
Herhangibir dili veya kütüpaneyi kısa sürede öğrenebilme yetisine sahip olmak daha kıymetlidir.
Temel olarak bilinmesi gerekenler örneğin;
Process nedir
Thread’ler nasıl çalışır,
CPU çalışma şekli nedir,
Direct Memory Access ne anlama gelir,
Memory Allocator nedir,
Multithread çalışma ne gibi problemler doğurur,
Scheduling algoritmaları nasıl çalışır,
Memory nasıl çalışır,
OOP, Design Patterns kavramları nelerdir,
Fonksiyonel programlama nedir,
Kısacası Apple’cı veya Windows’cu olmamak, DriectX’ci veya OpenGL’ci olmamak, Oracle’ci veya NoSQL’ci olmamak, Java’cı veya Pyhton’cu olmamak lazım. Bunların altında yatan teorileri bilmek önemli.
Belli bir konunun taraftarı olmak yerine bu konuların alt yapılarında nasıl çalıştığını bilmek daha kıymetli. Bu şekilde araç bağımsız hareket edebiliriz. Örneğin makine öğrenmesi konusunda ürün bilmek önemli olsa da bu tip algoritmaların nasıl yazıldığını bilmek çok daha iyi bir yön belirleyicidir. En azından temel çalışma prensiplerini anlamakta yarar vardır.
Matematiğin Yazılım teknolojilerin büyük önemi var.
Mesela algoritma ve veri yapıları için kümeleri iyi bilmek gerekiyor.
Bilgisayar grafikleri için Trigonometri, geometri, linee cebir, karmaşık sayılara hakim olmak lazım.
Yapay zeka ve optimizasyon tekniklerinde türevler, diferansiyel denklemler çok önemli
Ağır matematik operasyonları içeren pek çok kütüphane matematik alanında uzmanlaşmış akademisyenlerce yazılır. Bizim yaptığım çoğunlukla bu yazılımış hazır kütüphaneleri kullanmaktır.
Nasıl Yetişeceğiz? Kendimizi nasıl yetiştireceğiz?
Kendimizi nasıl geliştirebiliriz? Hangi kaynakları kullanabiliriz? Kitaplar, teknoloji blogları vb. Mutlaka RSS’imizi, orada takip ettiğimiz önemli teknoloji bloglarını gösterelim. Github’ ın ve açık kaynak
projelerin öneminden bahsedelim. Medium’daki techcrunch gibi adreslere yer verelim.
Elimden geldiğince dünyada neler olup bitiyor, teknoloji nereden nereye geldi, nereye gidiyor, insanlar büyük firmalar nelerin peşinde biz kişisel olarak bu döngü içerisinde yer almak için neler yapmalıyız nasıl çalışmalıyız bilgi vermeye çalıştım. Şimdi bol bol sorun.
Sunumun bu kısmında FeedBro aracımdan takip ettiğim bazı bloglardan bahsedilir. Ayrıca aşağıdaki linklerden yararlanarak yol gösterici bilgiler verilir.
TIOBEE’nin programlama endeksi https://www.tiobe.com/tiobe-index/
Thought Works’ün teknoloji radarı https://www.thoughtworks.com/radar
Bir Web geliştiricisi olmanın yolları https://medium.freecodecamp.com/a-roadmap-to-becoming-a-web-developer-in-2017-b6ac3dddd0cf
Ve DevOps adını verdikleri kültürün içerisine dahil olan teknolojiler https://xebialabs.com/periodic-table-of-devops-tools/