Rehber Yazılıma başlangıç

Merhaba Sosyal,

Her hafta sosyalin yazılım kısmında "yazılıma başlamak" adlı konular gelir hobi olarak, altında bazen tartışmalar döner bazen de fikir ayrılıkları, bugün en temel şekilde hiçbir şey bilmeyen birinin nasıl yazılıma başlayabileceğini anlatacağım. Teker teker öğretmeyeceğim, sadece temel yapı taşlarından bahsedeceğim.

İngilizce zorunluluğu

İngilizce bilmeyen biri yazılıma başlayabilir, ancak çok üzgünüm profesyonel anlamda ilerleyemez. Yazılımın dili ingilizcedir, İngilizce öğrenmek, en azından B1 seviyeye getirmek zorundasınız arkadaşlar, öğrenim aşamasında değilsiniz evet ama bir iş hayatı istiyorsanız İngilizce sizi oldukça öne geçirecek çok önemli bir unsur. Hem artık 2022 yılındayız ek bir yabancı dil öğrenmeyen gence acırım.

Yazılım nedir? (Wikipedia)

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır. (Vikipedi)

Yazılım, temelde bilgisayara nasıl çalışacağını söyleyen komutlar ve veriler bütünüdür.

Algoritma - akış şemaları

Öncelikle yazılım en temel, en küçük yapı taşı olan "algoritma nedir?" sorusu ile başlayacağız, hemen hemen, hatta tüm yazılım dillerinin temel mantığında algoritma dediğimiz mantıksal düşünce sistemi yer alır. Algoritma, belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarladığınız yola denir, en basit bir örnekle başlamak gerekirse;
Bir çocuğun okula giderken yaptıkları: "uyanmak, yataktan kalkmak, elleri yüzü yıkamak, kahvaltı etmek, hazırlanmak, çıkmak, otobüse binmek, okula varmak." bu örnekte kodumuz uyanma ile başlıyor, okula varmakla bitiyor.

800px-LampFlowchart_tr.svg.png

A. Akış şeması denilen yöntemle algoritmik bir işlemin tanımı.

Kısacası yazacağımız her kodun mantığında algoritma vardır, burada öğrenmeniz gereken ilk program, bakın yazılım demiyorum program flowchart adlı program. Akış şemaları ile çok basit bir şekilde algoritmanın temellerine alışmanızı sağlıyor. Programı internetin her yerinde bulabilirsiniz, lisans sıkıntısı yok.

A. FlowChart programının tüm dersi.

"Neden akış şemalarıyla başlamalıyım?"

Diye bir soru sorabilirsiniz. Yazılım dair hiçbir şey bilmeyen birinin algoritma nedir, yazılımda nasıl bir mantıkta yer alır bilmeden başlamasını asla mantıklı bulmuyorum. O yüzden temelin sağlam atılmasını, daha sonra ise o temel ile seçeceği dile tutunmasını tercih ederim.

Flowchart ve algoritma çalışmaları sonrasında ne yapmalıyım?

Bu kısma dediklerimi harfiyen yapıp geldiyseniz artık işin eğlenceli kısımlarına geçiyoruz, aşama şeklinde sunacağım.

1. "ben neden yazılım yapmak istiyorum?": Hobi olarak mı, ileride ciddi bir işiniz olması için mi, ne için yazılım yapmak istediğinizi bilmek sizin bu yolda en kesin adımlarla yürümenize olanak sağlar.
2. "hangi dili veya alanı seçerek başlamalıyım?": Neden yazılım yapmak istediğinizi bulduktan sonra bu sefer hangi alanda çalışmak istiyorsanız onu araştırmakla başlamalısınız, örneklere geçiyorum.

Sektörlerine göre yazılım dilleri önerim

A. Front-End (web site tasarımı): Front-End yazılım web sitenin makyajı, size görünüşüdür. Başlangıç için, yazılıma atılmak adına en güçlü ve en kolay seçeneklerden biridir. "ben web çalışmak istemiyorum ama." deseniz bile yine de HTML ve CSS ile başlamak çok uygundur, çünkü ölümüne basit. HTML ve CSS temelinde bir yazılım dili değiller. Web sayfalarını oluşturmak için kullanılan standart metin işaretleme dilidir.

Web yazılımda kendinizi geliştirmek adına HTML ve CSS'den sonra ağır efendiler olan back - end kısmına geçebilirsiniz, back - end alanı da sitenin hücreleri ve organları olarak düşünebilirsiniz, Technopat Sosyal'e kaydolurken tıkladığınız butonların yaptığı her şey, şifrenizin doğru girip girilmediği gibi kontrol işlemlerinin olduğu bir savaş alanıdır. Bu kısımda PHP gibi bir mihenk taşı, Python, JavaScript'de girer.

Web alanında ilerleyecekseniz seçmeniz gereken bir husus daha var. "ben front - end yazılımcı mı olacağım, back - end mi, yoksa ikisini birden yapan Full stack developer mı olacağım?" Full stack dev. Dediğimiz kişiler hem front - end hem de back - end bilen insanlardır.

B. Python, evet Python : "kardeşim açıyorsun Udemy'i, alıyorsun bir tane Python dersi, yazılıma başlıyorsun hemen." dilidir Python, has öz bir yazılım dilidir kendisi. Bu öyle bir dil ki, gelecekte en çok kullanılacak dil olmasını geçtim, kendisi bin tane bıçağı olan bir İsviçre çakısı gibi, Python her alanda var. Web, makine öğrenimi, oyun yazılımı, veri bilimi, robotik uygulamalar, otomasyon uygulamaları, güvenlik yazılımı. Basit bir Syntax'a (programlamada kullanılan dilin kurallarını) sahiptir, yeni öğrenenler için oldukça önerilir ve çoğu müfredat da bu dil vardır.

Öğrenmesi kolay, bol bol pratik gerektiren bir dil. Ancak dallarının çok olmasından dolayı mutlaka ne yapacağınızı seçerek başlamanız gerek. Temeli öğrendikten sonra Python ile yapılabilecek şeyler anlık bir tokat gibi yüzünüze çarpabilir ve "ne yapacağım lan ben?" diyebilirsiniz.

"Sakın bu yazılım diliyle başlama kardeşim, o hareketi yanlış kodluyorsun."

Böyle bir şey yok, benim önerim dışında farklı bir dil ile de başlayabilirsiniz, istediğiniz dille başlayabilirsiniz her dil çok sevimlidir. Android Studio hariç, hiç haz etmem RAM'leri dilim turşu gibi yutar insafsız... (şaka tabii, harika bir alandır mobil geliştirme.)

Sadece benim önerilerim başlangıç adına bol kaynakları olan diller.

Ben yazılımı öğrendim, şimdi ne yapacağım?

Evet, bu başlığı okuyan sabırsız arkadaşım.

" sen yazılımı tam anlamıyla öğrenmedin, sadece başladın, çünkü bunun sınırı olmayacak. "

Yazılım öğrenirken çok önemli bir an vardır, temelin üstüne çıkan bilginizle bir yazılımcı olup olmayacağınızın kesinleştiği bir an. Udemy'den aldığın dersi geçip, kendin çeşitli platformlardan örneklere bakarak yazmaya, üretmeye başladığın bir an vardır. Daha doğrusu izlediğin eğitim videosunu durdurup "abi bir dakika ya, ben bunu daha farklı yaparım." dediğin bir an. İşte o zaman içinde ki alevin yanmaya başladığı andır. Bu aşamada başlarda aldığınız kararlar da değişebilir, çünkü yeni kütüphaneler keşfedeceksiniz, farklı alanları da araştırmaya başlayacaksınız.

Neredeyse tüm dillerin kütüphane dediğimiz modlama seçenekleri mevcut, zaman zaman aldıkları güncellemeler de cabası. Uzun soluklu bir dili asla tam anlamıyla öğrenemezsiniz, kimse de öğrenmenizi beklemez.

Nasıl antrenman yapmalıyım?

Arkadaşlar yazılım dili öğrenmenin temel yapı taşlarından biri bol bol pratik yapmaktır. 1 hafta köle gibi ders videoları izleyin, aynı anda uygulama yapın, 1 hafta dokunmazsanız onu unutursunuz çok ciddiyim.

Her zaman kafanızdan saçma sapan bile olsa proje uydurun, örneğin ıf else işlemini öğrendiğiniz de hemen bir hesap makinesi yapın, işçi maaşı hesaplayın, not ortalaması hesaplayın. Yani hiç durmayın, ne kadar saçma olursa olsun proje yaratın.

Ben Python'u öğrendiğim ilk zamanlar "çekirdek AI" diye bir yapay zeka projesine başlamıştım, ama ne yapay zekayla ne de makine öğrenimini hakkında hiçbir şey bilmiyordum, maksat kendimi heveslendirmekti, ıf ve else ile kendi yazdığım cümleleri ekrana verdiğimde o gelen "oha olum." hissiyatı, ne kadar çocukça zamanlar olsaydı da beni geliştiren yegane şeylerdi.

Yeni sosyal medyalarınız hayırlı olsun

Aşağıda sayacağım siteler ile haşır neşir olmak zorundasınız, bilmek ve kullanmak zorundasınız. Hepsi çok önemli, bir geliştirici için olmazsa olmaz yerler.

1. LinkedIn: İş insanlarının sosyal medyası ve müthiş bir portfolio alanıdır. Buraya gelişme süreçlerinizi yükleyebilir, kendi fikirlerin yazabilir ve sektörden müthiş insanlarla tanışıp konuşabilirsiniz. Bir işe gireceğiniz zaman linkedln gibi bir platform bazen CV'den daha önemli olabiliyor, inanın bana birçok şirkette bulundum insan kaynaklarında dönen muhabbeti bilmek istemezsiniz...

2. GitHub: Bu siteyi bir yazılımcı kendi kanı gibi bilmek zorunda. Z-O-R-U-N-D-A, GitHub, git adlı bir sürüm kontrol sistemini (vcs) barındıran bulut tabanlı bir hizmettir. Geliştiricilerin, ilerlemelerini ayrıntılı olarak takip ederken ortak projelerde iş birliği yapmasına ve değişiklikler yapmasına olanak tanır. 25 milyondan fazla yazılımcı barındırır, gelişme sürecinizi kaydedebileceğiniz harika bir platformdur.

Burada çalıştığınız alanda farklı insanların açık kaynak kodlu (herkesin kullanımına ve değiştirilmesine açık kod.) Projelerine erişebilir, yeni fikirler edinebilirsiniz. Yazılım bir şehir olsaydı başkenti GitHub olurdu...

3. stack overflow: Yiğidin harman olduğu yer, tüm çareleriniz tükendiğinde, kodunuzun neden çalışmadığını anladığınızda ortalığın senior geliştirici (yazılım konusunda kendini aşmış kişilere denir) kaynadığı, sadece sorun çözmek üzerine binlerce, hatta milyonlarca yazılımcının bulunduğu bir yer. Elbette hata yapacaksınız, bulamadığınız zaman bu siteye bir konu açıp dünyanın farklı yerlerinden insanların sizin sorununuza nasıl yardım ettiklerini göreceksiniz.

Bu üç mecra ile başlamanız yeterli, bunlara farklı alternatifler de var ancak en popülerleri bunlar diyebilirim.

Dediğin her şeyi yaptım, artık nasıl bir yol izlemeliyim?

Rehberimizin sonuna geliyoruz, tüm anlattığım şeyleri eksiksiz yapan birisi tamamen hazırlıklı olmak üzere yazılım dünyasına adım atacak kadar kuvvetli biri olmuştur. Peki artık ne yapmalısınız?

A. okul okumalı mısınız?: Kimsenin "yazılımda okul mu olur, okuma." demesin aldanmayın. Evet yazılımda okul olmaz, doğru. Ancak okul asla kötü bir yer değildir. Güzel bir okulun bilgisayar mühendisliği, yazılım mühendisliği, makine mühendisliği bölümleri sizin ufkunuzu genişletecek, iş çevrenizin büyümesini sağlayacak ve size diploma getirecektir. Okul okumak kötü bir şey değildir arkadaşlar, meslek lisesinde okumak hiç kötü bir şey değildir. Ancak üniversite zorunlu da değildir. Neye göre değildir?

Büyük şirketlerde çalışma hedefiniz varsa yeni nesil şirketlerde zamanla azalsa da o diplomaya ihtiyacınız var arkadaşlar. Ancak kendi kendinize yetebileceğiniz bir sektörde uzmanlaştığınızda freelancer olarak da çalışıp hiçbir şirkete bağlı olmadan da çalışabilirsiniz.

B. freelancer mevzusu: okul okusanız da okumasanız da freelance bir yazılımcı için önemli bir meydandır. İnternetten çeşitli insanların açtığı "bana web site yapar mısınız?" gibi işlerin döndüğü yerdir, kimsenin altında çalışmazsınız, ofisiniz kaldığınız yerdir.

Freelance İş Bulma Siteleri.

Rehberin sonu ve tavsiyeler

Yazılımdan korkmayın arkadaşlar, üretken olun, üretmeyen bir millet yok olmaya mahkumdur. Dünyanın her zaman bir yazılımcıya ihtiyacı var, ülkeniz ne durumda olursa olsun ülkenizin de ihtiyacı var. Öğrenmekten, üretmekten çekinmeyin.

Kim bilir, belki bir gün oynadığınız oyunları siz yaparsınız, gezdiğiniz sitelerin yaratıcısı siz olursunuz. 🙂 bol bol yazın, bol bol pratik yapın.

Buraya kadar okuyan herkese teşekkür ederim, bu bilgiler yılların bana vermiş olduğu tecrübe ve eğitmenlik yıllarımın bana verdiği bilgi ile hazırladığım bir başlangıç rehberiydi, yararlı olduysam ne mutlu.
 
Son düzenleme:
Bayağı emek vermişsin eline emeğine sağlık. Sırf bu yüzden eleştirilerimi kendime saklayacağım ama sanada bir tavsiyede bulunacağım. Kulaktan duyma bilgilerden kurtul ve işin içine gir. Başkalarına tavsiye vereceksen öğrenmeye önce kendinden başla. Belki yazılıma giriş yapar ve temel işleyişi öğrenirsin ve bu yazdaki yanlış terim ya da ifade etmeleri kendin bulur zamanla düzeltirsin. Tekrardan eline sağlık:)
İşin hali hazırda yıllardır içindeyim, eleştirini düzgün bir şekilde yaptığın sürece hiçbir sorun yok her uzun yazılan yazıya eleştiri yapmayalım diye bir şey mi olur?

Kaldı ki yukarıda ki çoğu bilginin hiçbir kötü yanı bulunmamakla beraber kulaktan doğma bilgilerle de alakası yok, hatta hiçbiri kişisel bir yoruma dayanmıyor nesi yanlış olabilir? Kendi fikrimi kattığım tek nokta İngilizce öğrenilmesi. Algoritma konusundan bahsedeceksen o konuda ne söylersen söyle kesinlikle algoritma öğrenilerek başlanılması gerek.

Üstelik, yazılım sektörü edebiyat değil, futbol değil, daha bir çok örnek verebilirim ama sektörün içinde olmayan veya daha basite indirgemem gerekirse hiçbir şekilde yazılım bilmeyen birisi nasıl bu denli tavsiyeler verebilir dostum? Ne saçmalıyorsunuz anlamış değilim sizinkine benzer bir yorum daha yazılmış. 🤣



Halbuki bayağı faydalı bir yorumun vardı tavsiye içeriyordu üstelik alıntı da içermiyordu sorumsuz moderatörlerden birisi silmiş olmalı.

Android Studio'nun yanına bir de Docker aç o zaman partiyi izle 😁
Dostum moderatörler teker teker yorumunu siliyor, haberin olsun. Bir iletişime geç istersen.
 
Son düzenleme:
Merhaba Sosyal,

Her hafta sosyalin yazılım kısmında "yazılıma başlamak" adlı konular gelir hobi olarak, altında bazen tartışmalar döner bazen de fikir ayrılıkları, bugün en temel şekilde hiçbir şey bilmeyen birinin nasıl yazılıma başlayabileceğini anlatacağım. Teker teker öğretmeyeceğim, sadece temel yapı taşlarından bahsedeceğim.

İngilizce zorunluluğu

İngilizce bilmeyen biri yazılıma başlayabilir, ancak çok üzgünüm profesyonel anlamda ilerleyemez. Yazılımın dili ingilizcedir, İngilizce öğrenmek, en azından B1 seviyeye getirmek zorundasınız arkadaşlar, öğrenim aşamasında değilsiniz evet ama bir iş hayatı istiyorsanız İngilizce sizi oldukça öne geçirecek çok önemli bir unsur. Hem artık 2022 yılındayız ek bir yabancı dil öğrenmeyen gence acırım.

Yazılım nedir? (Wikipedia)

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır. (Vikipedi)

Yazılım, temelde bilgisayara nasıl çalışacağını söyleyen komutlar ve veriler bütünüdür.

Algoritma - akış şemaları

Öncelikle yazılım en temel, en küçük yapı taşı olan "algoritma nedir?" sorusu ile başlayacağız, hemen hemen, hatta tüm yazılım dillerinin temel mantığında algoritma dediğimiz mantıksal düşünce sistemi yer alır. Algoritma, belli bir problemi çözmek veya belirli bir amaca ulaşmak için tasarladığınız yola denir, en basit bir örnekle başlamak gerekirse;
Bir çocuğun okula giderken yaptıkları: "uyanmak, yataktan kalkmak, elleri yüzü yıkamak, kahvaltı etmek, hazırlanmak, çıkmak, otobüse binmek, okula varmak." bu örnekte kodumuz uyanma ile başlıyor, okula varmakla bitiyor.

Eki Görüntüle 1516376

A. Akış şeması denilen yöntemle algoritmik bir işlemin tanımı.

Kısacası yazacağımız her kodun mantığında algoritma vardır, burada öğrenmeniz gereken ilk program, bakın yazılım demiyorum program flowchart adlı program. Akış şemaları ile çok basit bir şekilde algoritmanın temellerine alışmanızı sağlıyor. Programı internetin her yerinde bulabilirsiniz, lisans sıkıntısı yok.

A. FlowChart programının tüm dersi.

"Neden akış şemalarıyla başlamalıyım?"

Diye bir soru sorabilirsiniz. Yazılım dair hiçbir şey bilmeyen birinin algoritma nedir, yazılımda nasıl bir mantıkta yer alır bilmeden başlamasını asla mantıklı bulmuyorum. O yüzden temelin sağlam atılmasını, daha sonra ise o temel ile seçeceği dile tutunmasını tercih ederim.

Flowchart ve algoritma çalışmaları sonrasında ne yapmalıyım?

Bu kısma dediklerimi harfiyen yapıp geldiyseniz artık işin eğlenceli kısımlarına geçiyoruz, aşama şeklinde sunacağım.

1. "ben neden yazılım yapmak istiyorum?": Hobi olarak mı, ileride ciddi bir işiniz olması için mi, ne için yazılım yapmak istediğinizi bilmek sizin bu yolda en kesin adımlarla yürümenize olanak sağlar.
2. "hangi dili veya alanı seçerek başlamalıyım?": Neden yazılım yapmak istediğinizi bulduktan sonra bu sefer hangi alanda çalışmak istiyorsanız onu araştırmakla başlamalısınız, örneklere geçiyorum.

Sektörlerine göre yazılım dilleri önerim

A. Front-End (web site tasarımı): Front-End yazılım web sitenin makyajı, size görünüşüdür. Başlangıç için, yazılıma atılmak adına en güçlü ve en kolay seçeneklerden biridir. "ben web çalışmak istemiyorum ama." deseniz bile yine de HTML ve CSS ile başlamak çok uygundur, çünkü ölümüne basit. HTML ve CSS temelinde bir yazılım dili değiller. Web sayfalarını oluşturmak için kullanılan standart metin işaretleme dilidir.

Web yazılımda kendinizi geliştirmek adına HTML ve CSS'den sonra ağır efendiler olan back - end kısmına geçebilirsiniz, back - end alanı da sitenin hücreleri ve organları olarak düşünebilirsiniz, Technopat Sosyal'e kaydolurken tıkladığınız butonların yaptığı her şey, şifrenizin doğru girip girilmediği gibi kontrol işlemlerinin olduğu bir savaş alanıdır. Bu kısımda PHP gibi bir mihenk taşı, Python, JavaScript'de girer.

Web alanında ilerleyecekseniz seçmeniz gereken bir husus daha var. "ben front - end yazılımcı mı olacağım, back - end mi, yoksa ikisini birden yapan Full stack developer mı olacağım?" Full stack dev. Dediğimiz kişiler hem front - end hem de back - end bilen insanlardır.

B. Python, evet Python : "kardeşim açıyorsun Udemy'i, alıyorsun bir tane Python dersi, yazılıma başlıyorsun hemen." dilidir Python, has öz bir yazılım dilidir kendisi. Bu öyle bir dil ki, gelecekte en çok kullanılacak dil olmasını geçtim, kendisi bin tane bıçağı olan bir İsviçre çakısı gibi, Python her alanda var. Web, makine öğrenimi, oyun yazılımı, veri bilimi, robotik uygulamalar, otomasyon uygulamaları, güvenlik yazılımı. Basit bir Syntax'a (programlamada kullanılan dilin kurallarını) sahiptir, yeni öğrenenler için oldukça önerilir ve çoğu müfredat da bu dil vardır.

Öğrenmesi kolay, bol bol pratik gerektiren bir dil. Ancak dallarının çok olmasından dolayı mutlaka ne yapacağınızı seçerek başlamanız gerek. Temeli öğrendikten sonra Python ile yapılabilecek şeyler anlık bir tokat gibi yüzünüze çarpabilir ve "ne yapacağım lan ben?" diyebilirsiniz.

"Sakın bu yazılım diliyle başlama kardeşim, o hareketi yanlış kodluyorsun."

Böyle bir şey yok, benim önerim dışında farklı bir dil ile de başlayabilirsiniz, istediğiniz dille başlayabilirsiniz her dil çok sevimlidir. Android Studio hariç, hiç haz etmem RAM'leri dilim turşu gibi yutar insafsız... (şaka tabii, harika bir alandır mobil geliştirme.)

Sadece benim önerilerim başlangıç adına bol kaynakları olan diller.

Ben yazılımı öğrendim, şimdi ne yapacağım?

Evet, bu başlığı okuyan sabırsız arkadaşım.

" sen yazılımı tam anlamıyla öğrenmedin, sadece başladın, çünkü bunun sınırı olmayacak. "

Yazılım öğrenirken çok önemli bir an vardır, temelin üstüne çıkan bilginizle bir yazılımcı olup olmayacağınızın kesinleştiği bir an. Udemy'den aldığın dersi geçip, kendin çeşitli platformlardan örneklere bakarak yazmaya, üretmeye başladığın bir an vardır. Daha doğrusu izlediğin eğitim videosunu durdurup "abi bir dakika ya, ben bunu daha farklı yaparım." dediğin bir an. İşte o zaman içinde ki alevin yanmaya başladığı andır. Bu aşamada başlarda aldığınız kararlar da değişebilir, çünkü yeni kütüphaneler keşfedeceksiniz, farklı alanları da araştırmaya başlayacaksınız.

Neredeyse tüm dillerin kütüphane dediğimiz modlama seçenekleri mevcut, zaman zaman aldıkları güncellemeler de cabası. Uzun soluklu bir dili asla tam anlamıyla öğrenemezsiniz, kimse de öğrenmenizi beklemez.

Nasıl antrenman yapmalıyım?

Arkadaşlar yazılım dili öğrenmenin temel yapı taşlarından biri bol bol pratik yapmaktır. 1 hafta köle gibi ders videoları izleyin, aynı anda uygulama yapın, 1 hafta dokunmazsanız onu unutursunuz çok ciddiyim.

Her zaman kafanızdan saçma sapan bile olsa proje uydurun, örneğin ıf else işlemini öğrendiğiniz de hemen bir hesap makinesi yapın, işçi maaşı hesaplayın, not ortalaması hesaplayın. Yani hiç durmayın, ne kadar saçma olursa olsun proje yaratın.

Ben Python'u öğrendiğim ilk zamanlar "çekirdek AI" diye bir yapay zeka projesine başlamıştım, ama ne yapay zekayla ne de makine öğrenimini hakkında hiçbir şey bilmiyordum, maksat kendimi heveslendirmekti, ıf ve else ile kendi yazdığım cümleleri ekrana verdiğimde o gelen "oha olum." hissiyatı, ne kadar çocukça zamanlar olsaydı da beni geliştiren yegane şeylerdi.

Yeni sosyal medyalarınız hayırlı olsun

Aşağıda sayacağım siteler ile haşır neşir olmak zorundasınız, bilmek ve kullanmak zorundasınız. Hepsi çok önemli, bir geliştirici için olmazsa olmaz yerler.

1. LinkedIn: İş insanlarının sosyal medyası ve müthiş bir portfolio alanıdır. Buraya gelişme süreçlerinizi yükleyebilir, kendi fikirlerin yazabilir ve sektörden müthiş insanlarla tanışıp konuşabilirsiniz. Bir işe gireceğiniz zaman linkedln gibi bir platform bazen CV'den daha önemli olabiliyor, inanın bana birçok şirkette bulundum insan kaynaklarında dönen muhabbeti bilmek istemezsiniz...

2. GitHub: Bu siteyi bir yazılımcı kendi kanı gibi bilmek zorunda. Z-O-R-U-N-D-A, GitHub, git adlı bir sürüm kontrol sistemini (vcs) barındıran bulut tabanlı bir hizmettir. Geliştiricilerin, ilerlemelerini ayrıntılı olarak takip ederken ortak projelerde iş birliği yapmasına ve değişiklikler yapmasına olanak tanır. 25 milyondan fazla yazılımcı barındırır, gelişme sürecinizi kaydedebileceğiniz harika bir platformdur.

Burada çalıştığınız alanda farklı insanların açık kaynak kodlu (herkesin kullanımına ve değiştirilmesine açık kod.) Projelerine erişebilir, yeni fikirler edinebilirsiniz. Yazılım bir şehir olsaydı başkenti GitHub olurdu...

3. stack overflow: Yiğidin harman olduğu yer, tüm çareleriniz tükendiğinde, kodunuzun neden çalışmadığını anladığınızda ortalığın senior geliştirici (yazılım konusunda kendini aşmış kişilere denir) kaynadığı, sadece sorun çözmek üzerine binlerce, hatta milyonlarca yazılımcının bulunduğu bir yer. Elbette hata yapacaksınız, bulamadığınız zaman bu siteye bir konu açıp dünyanın farklı yerlerinden insanların sizin sorununuza nasıl yardım ettiklerini göreceksiniz.

Bu üç mecra ile başlamanız yeterli, bunlara farklı alternatifler de var ancak en popülerleri bunlar diyebilirim.

Dediğin her şeyi yaptım, artık nasıl bir yol izlemeliyim?

Rehberimizin sonuna geliyoruz, tüm anlattığım şeyleri eksiksiz yapan birisi tamamen hazırlıklı olmak üzere yazılım dünyasına adım atacak kadar kuvvetli biri olmuştur. Peki artık ne yapmalısınız?

A. okul okumalı mısınız?: Kimsenin "yazılımda okul mu olur, okuma." demesin aldanmayın. Evet yazılımda okul olmaz, doğru. Ancak okul asla kötü bir yer değildir. Güzel bir okulun bilgisayar mühendisliği, yazılım mühendisliği, makine mühendisliği bölümleri sizin ufkunuzu genişletecek, iş çevrenizin büyümesini sağlayacak ve size diploma getirecektir. Okul okumak kötü bir şey değildir arkadaşlar, meslek lisesinde okumak hiç kötü bir şey değildir. Ancak üniversite zorunlu da değildir. Neye göre değildir?

Büyük şirketlerde çalışma hedefiniz varsa yeni nesil şirketlerde zamanla azalsa da o diplomaya ihtiyacınız var arkadaşlar. Ancak kendi kendinize yetebileceğiniz bir sektörde uzmanlaştığınızda freelancer olarak da çalışıp hiçbir şirkete bağlı olmadan da çalışabilirsiniz.

B. freelancer mevzusu: okul okusanız da okumasanız da freelance bir yazılımcı için önemli bir meydandır. İnternetten çeşitli insanların açtığı "bana web site yapar mısınız?" gibi işlerin döndüğü yerdir, kimsenin altında çalışmazsınız, ofisiniz kaldığınız yerdir.

Freelance İş Bulma Siteleri.

Rehberin sonu ve tavsiyeler

Yazılımdan korkmayın arkadaşlar, üretken olun, üretmeyen bir millet yok olmaya mahkumdur. Dünyanın her zaman bir yazılımcıya ihtiyacı var, ülkeniz ne durumda olursa olsun ülkenizin de ihtiyacı var. Öğrenmekten, üretmekten çekinmeyin.

Kim bilir, belki bir gün oynadığınız oyunları siz yaparsınız, gezdiğiniz sitelerin yaratıcısı siz olursunuz. 🙂 bol bol yazın, bol bol pratik yapın.

Buraya kadar okuyan herkese teşekkür ederim, bu bilgiler yılların bana vermiş olduğu tecrübe ve eğitmenlik yıllarımın bana verdiği bilgi ile hazırladığım bir başlangıç rehberiydi, yararlı olduysam ne mutlu.
Devamı gelir mi?
 
Devamı gelir mi?
Bu foruma daha rehberle ilgili bir içerik gireceğimi sanmıyorum dostum. 😂

Burnumdan getirdiler, Algoritma ile başlamanın, İngilizce öğrenmek adına şeyler söyledim, yazım kuralı basit olan dillerden başlanmasını önerdim, yine de saçma sapan yorumlar geldi, sanırım birileri daha iyi yöntemler biliyor ama bunu halka açıklamak istemiyorlar.
 
Benim anlamadığım tasarım öğrenmeden web geliştirme yapılabilir mi? Ya da web geliştirme yaparken elimize bulunan tasarımı nasıl koda dökeceğiz. Yani sitelerdeki çoğu şekilli butonlar veya açılır kapanır şeyler resim mi yoksa yazılımla mı yapılıyor?
 
Benim anlamadığım tasarım öğrenmeden web geliştirme yapılabilir mi? Ya da web geliştirme yaparken elimize bulunan tasarımı nasıl koda dökeceğiz. Yani sitelerdeki çoğu şekilli butonlar veya açılır kapanır şeyler resim mi yoksa yazılımla mı yapılıyor?

Front-End geliştirmenin kendisi zaten "tasarım" olayından oluşuyor. İşleyiş adına hiçbir kod bulunmaz sayfanın ön yüzünde, sadece CSS, JavaScript veya belirli kütüphanelerin çağırma elemanları bulunur. Ve tabii SEO (arama motoru optimizasyonu) bulunur. Geri kalan her şey tasarımdan ibarettir.

Zaten tam anlamıyla Front-End geliştiricisi isen Photoshop programlarına hakim olmalısın.

Butonlara gelirsek açılır kapanır olması veya efekt kısmını CSS ile hallediyorsun, ancak butonun özel bir tasarımı varsa onu da belirli kodlarla butonuna oturtabiliyorsun.

örnek.

CSS:
.button {
 background-color: #4CAF50; /* Green */
 border: none;
 color: white;
 padding: 15px 32px;
 text-align: center;
 text-decoration: none;
 display: inline-block;
 font-size: 16px;
}

Burada HTML içerisinde oluşturulan bir Button'ın CSS içinde ki temel ayarları, arka plan rengi, kenar çizgisinin olup olmayacağı, rengi, yazının konumu gibi basit şeyler buradan ayarlanıyor.
 
Konuyu dağıtmadan, çoğu insanın da bu soruyu kendisi için merak ettiğini düşünerek şunu sormak istiyorum: Bilgisayarla alakasız bir bölümden mezun oldum (lisans + yüksek lisans). Bir sene oturup backend developer olmak için udemy, kurslar vs. kendimi geliştirsem, bu bir senenin sonunda şirketlere başvurduğum zaman "Senin mezuniyetin farklı, becerilerin bizi ilgilendirmiyor, bize diploma lazım." derler mi? Mesela, yurt dışı bir firma için remote çalışmak hoş olurdu.
 
Konuyu dağıtmadan, çoğu insanın da bu soruyu kendisi için merak ettiğini düşünerek şunu sormak istiyorum: Bilgisayarla alakasız bir bölümden mezun oldum (lisans + yüksek lisans). Bir sene oturup backend developer olmak için Udemy, kurslar vs. kendimi geliştirsem, bu bir senenin sonunda şirketlere başvurduğum zaman "senin mezuniyetin farklı, becerilerin bizi ilgilendirmiyor, bize diploma lazım." derler mi? Mesela, yurt dışı bir firma için remote çalışmak hoş olurdu.

Hocam rehberde de bahsettim bundan.

Portfolio'n ne kadar geniş olursa, yaptığın siteler, panellerin, bildiğin dil ve kütüphane sayın ne kadar olursa o kadar avantajlısın. Bu başvurduğun şirkete göre değişir, ancak yazılım ile alakalı iş başvurularında önce ne bildiğin, sonra hangi okulu okuduğun veya okuyup okumadığın sorulur.

Açıkçası zengin bir bilgi birikimin varsa okulu dert etmene gerek yok, ancak ben yine de okul okunması taraftarıyım kaliteli bir okul bir yazılımcıya çok şey katabilir. Fakat sen halihazırda lisans ve yüksek lisans mezunu olduğun için şuan bence gelişimine odaklanman daha iyi olur.

Endişen için örnek vermem gerekirse aynı liseden mezun olduğum bir dostum psikoloji bitirmesine rağmen şu an Full stack developer olarak bir şirkette çalışıyor.
 
Benim anlamadığım tasarım öğrenmeden web geliştirme yapılabilir mi? Ya da web geliştirme yaparken elimize bulunan tasarımı nasıl koda dökeceğiz. Yani sitelerdeki çoğu şekilli butonlar veya açılır kapanır şeyler resim mi yoksa yazılımla mı yapılıyor?
Bu konuda yardımcı birçok kütüphane bulunmakta. Çinli abilerin yaptığı antD kütüphanesine bakabilirsin.
Kod:
<Button> </Button>
yazıyorsun, o sana kütüphanedeki CSS'i de içinde hazır olan güzel görünümlü bir buton ekliyor. Gibi gibi.

Frontend sadece tasarımın yanı sıra backendden veri çekme işini de yapar. Tasarımı yapan UI Developer'dır. Frontendci tasarımı koda döker ve backendden veri çeker.
 

Geri
Yukarı