Yazılım Mühendislİğİ Karİyerİnİn 5 Önemlİ Olanağı

Bu videode yazılım mühendisliği kariyerinin size getireceği 5 önemli olanağından bahsettim. Videoda hem kendi kariyerimin bana şimdiye kadar sağladığı olanaklardan, hem de internet üzerinde diğer yazılım mühendislerinin tecrübelerinden faydalandım.

Sizlerin de eklemek istediği konular varsa videonun yorum kısmından iletebilirsiniz.

✅ 1. Yüksek talep

Hemen hemen her alan teknolojiden yararlanır olduk günümüzde, bu nedenle hemen hemen her sektörde yazılım mühendislerine ihtiyaç duyuyoruz. Mühendislere olan talep arzdan daha yüksek ve genellikle yüksek maaşlı işlere yol açıyor bu durum.

➡️ Software Engineer Shortage in the World: https://ncube.com/blog/software-engineer-shortage

➡️ State of Software Engineers: https://hired.com/state-of-software-engineers

✅ 2. İstikrarlı kariyer

Bilgisayar bilimi hızla popülerlik kazandı ve mühendislik son derece saygın bir profesyonel kariyer haline geldi. Reklam, marketing, film, televizyon gibi endüstrilerin aksine, rahat bir yaşam sürmek için sektörün küçük bir diliminde olmak zorunda değiliz. Bir Silikon Vadisi şirketinde (hem büyük şirketler hem de yeni başlayanlar) üniversiteden yeni mezun olmuş bir mühendis, 70.000 ABD dolarından fazla bir başlangıç maaşı almayı bekler hale geldi.

➡️ Is CS a ‘stable’ career?: https://www.reddit.com/r/cscareerquestions/comments/3c5gkv/is_cs_a_stable_career/

✅ 3. Hayat boyu öğrenme

Teknoloji endüstrisi son derece hızlı hareket eden bir endüstri. Bugün kullanılan birçok teknoloji on yıl önce mevcut değildi. Mühendislerin, iş piyasasının talepleriyle alakalı kalmak için sürekli olarak becerilerini geliştirmeleri gerekir. Mühendislik, öğrenmeyi seven tutkulu bireyler için harika bir kariyer.

➡️ True programmers never stop learning: https://www.codingame.com/blog/true-programmers-never-stop-learning/

✅ 4. Esneklik

Bir yazılım mühendisliği işi belki de saatler, konum ve çevre açısından var olan en esnek iştir (Tabi bu esneklik ülkemizde biraz farklı algılanıyor). Fiziksel konum genellikle bir sorun olmaktan çıkar ve tamamen uzaktan çalışma uygulayan birçok teknoloji şirketi var. Giyilmesi gereken resmi kıyafet yoktur ve çalışma saatleri genellikle esnektir (Eğer çok resmi bir yerde çalışmıyorsanız).

➡️ Is it typical that software developer jobs are time-flexible, they can be late, leave early, etc., as long as they get the work done on time?: https://www.quora.com/Is-it-typical-that-software-developer-jobs-are-time-flexible-they-can-be-late-leave-early-etc-as-long-as-they-get-the-work-done-on-time

✅ 5. Staj ve tam zamanlı çalışma

Bir gün üst düzey bir teknoloji şirketinde çalışmayı hayal ediyorsanız, stajyer dönüşüm yoluyla işe alınmak bunu başarmanın en kolay yollarından biri. Staj mülakatları son derece kısadır (genellikle 2 tur). Stajlar, bir şirkette kısa bir süre (1-2 ay kadar) çalışmanıza izin verir ve şirketi , kullandığı teknolojileri ve en önemlisi mühendislik kültürünü daha iyi anlamanıza yardımcı olur. Şirketler ayrıca, işte etkili oldukları ve kültüre uydukları için yüksek performanslı stajyerlere daha yüksek getiri sağlayan iş teklifleri verme eğilimindedir daha düşük riskli gördükleri için.

➡️ Dünya genelinde stajyer maaşlarına https://www.levels.fyi/internships/ ve https://www.glassdoor.com/Salaries/software-engineer-intern-salary-SRCH_KO0,24.htm linklerinden ulaşabilirsiniz.

LeetCode Çözümlerİ – 404. Sum of Left Leaves [Facebook Mülakat Sorusu]

LeetCode içerisinde bulunan “Sum of Left Leaves”‘ sorusunun açıklaması ve çözümü. Bu soruda size verilen bir binary tree içerisindeki “left leaves” (ağacın en solunda olan ve alt node’ları olmayan) node’larının toplamı soruluyor. LeetCode’a göre bu soru daha önce Facebook mülakatlarında sorulan sorulardan biridir.

🔥 LeetCode 404. Sum of Left Leaves: https://leetcode.com/problems/sum-of-left-leaves/

➡️ Problem açıklaması: Find the sum of all left leaves in a given binary tree.

Example:

3

/ \

9 20

/ \

15 7

There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

LeetCode Çözümlerİ – 389. Find the Difference [Google Mülakat Sorusu]

LeetCode içerisinde bulunan “Find the Difference”‘ sorusunun açıklaması ve çözümü. Bu soruda harfleri karıştırılmış olan iki string’in arasındaki tek farklı karakteri bulmanız isteniyor. LeetCode’a göre bu soru daha önce Google mülakatlarında sorulmuş sorulardan biri.

🔥 LeetCode 389. Find the Difference: https://leetcode.com/problems/find-the-difference/

➡️ Problem açıklaması:

Given two strings s and t which consist of only lowercase letters.

String t is generated by random shuffling string s and then add one more letter at a random position.

Find the letter that was added in t.

Example:

Input: s = “abcd” t = “abcde”

Output: e

Explanation: ‘e’ is the letter that was added.

LeetCode Çözümlerİ – 263. Ugly Number

LeetCode içerisinde bulunan “Ugly Number” sorusunun açıklaması ve çözümü. Bu soruda bize verilen pozitif bir tamsayının asal çarpanlarında sadece 2, 3 veya 5 sayılarından birinin veya birkaçının olup olmadığı soruluyor.

🔥 LeetCode 263. Ugly Number: https://leetcode.com/problems/ugly-number/

➡️ Problem açıklaması:

Write a program to check whether a given number is an ugly number.

Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.

Example 1:

Input: 6

Output: true

Explanation: 6 = 2 × 3

Example 2:

Input: 8

Output: true

Explanation: 8 = 2 × 2 × 2

Example 3:

Input: 14

Output: false

Explanation: 14 is not ugly since it includes another prime factor 7.

Note:

💡 1 is typically treated as an ugly number.

💡 Input is within the 32-bit signed integer range: [−231, 231 − 1].

LeetCode Çözümlerİ – 338. Counting Bits

LeetCode içerisinde bulunan “Counting Bits”‘ sorusunun açıklaması ve çözümü. Bu soruda verilen bir integer dizisinin O(n) zamanında ve O(n) space complexity olacak şekilde her bir elemanın binary gösterimlerinin içerisinde bulunan 1 bit sayısı yine bir integer dizisi olarak dönmemizi istiyor.

🔥 LeetCode 338. Counting Bits: https://leetcode.com/problems/counting-bits/

➡️ Problem açıklaması: Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary representation and return them as an array.

Example 1:

Input: 2

Output: [0,1,1]

Example 2:

Input: 5

Output: [0,1,1,2,1,2]

Follow up:

⛔ It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time O(n) /possibly in a single pass?

⛔ Space complexity should be O(n).

⛔ Can you do it like a boss? Do it without using any builtin function like __builtin_popcount in c++ or in any other language.

LeetCode Çözümlerİ – 374. Guess Number Higher or Lower

LeetCode içerisinde bulunan “Guess Number Higher or Lower”‘ sorusunun açıklaması ve çözümü. Bu soruda klasik bir “tahmin” sorusunda en etkili yöntem ile tutulan sayının nasıl tahmin edilmesi gerektiği anlatılıyor.

🔥 LeetCode 374. Guess Number Higher or Lower: https://leetcode.com/problems/guess-number-higher-or-lower/

➡️ Problem açıklaması:

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I’ll tell you whether the number is higher or lower.

You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):

-1 : My number is lower

1 : My number is higher

0 : Congrats! You got it!

Example :

Input: n = 10,

pick = 6

Output: 6

➡️ Binary Search Wikipedia [EN]: https://en.wikipedia.org/wiki/Binary_search_algorithm

➡️ İkili arama algoritması Wikipedia [TR]: https://tr.wikipedia.org/wiki/%C4%B0kili_arama_algoritmas%C4%B1

➡️ Algoritma açıklaması:

İkili Arama, sıralı bir dizide, belirli değerin bulunmasına yönelik bir algoritmadır. Bu teknikteki her bir adımda, aranan değerin, dizinin orta değerine eşit olup olmadığı kontrol edilir. Eşit olmaması durumunda aranan değerin orta değer tarafından ikiye ayrılan kısımlardan hangisinde olduğu kontrol edilir, aranan değeri içeren kısım bir sonraki adımda arama yapılacak dizi olur ve bu sayede arama yapılan listedeki eleman sayısı her adımda yarıya indirilmiş olur. Bu algoritma ile N elemanlı bir dizide en fazla log2(N) karşılaştırma yaparak aranan değerin yerini bulmak mümkündür.

LeetCode Çözümlerİ – 283. Move Zeroes [Facebook Mülakat Sorusu]

LeetCode içerisinde bulunan “Move Zeroes”‘ sorusunun açıklaması ve çözümü. Bu soruda tamsayı dizisinde verilen sayılardan 0 olmayanları en başa öteleyip (sıralarını bozmadan), 0’ları dizinin en sonuna ötelemeniz isteniyor. LeetCode’a göre Facebook iş görüşmelerinde sorulmuş sorulardan biri.

🔥 LeetCode 283. Move Zeroes: https://leetcode.com/problems/move-zeroes/

➡️ Problem açıklaması:

Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements.

Example:

Input: [0,1,0,3,12]

Output: [1,3,12,0,0]

Note:

You must do this in-place without making a copy of the array. Minimize the total number of operations.