Bilgisayar mühendisliği 1. sınıf yazında neler yapılabilir?

UltimateTeam

Hectopat
Katılım
16 Temmuz 2022
Mesajlar
410
Çözümler
2
Geçen sene de buna benzer konular açıyordum ama ilk sınıftan sonra bayağı bir tecrübe edindim, fakat halen ne yapmam gerektiği konusunda kafamda soru işareti var, aslında network, ML gibi alanlara bakacaktım ama alan seçimi için bayağı erken olduğu tavsiyesini aldım, o yüzden yapacak başka şeyler arıyorum. Aklımda ara ara leetcode tarzı yerlerden basit sorular çözmek var, ayrıca Java kitaplarına bakarak bilmediğim kalıpları öğrenmek istiyorum (design paterns tavsiye edilmişti), bir yandan da spring gibi yapıları öğrenmek istiyorum ama o da kapsamlı bir süreç (web servisleri, SQL, spring üçlüsünü çok görüyorum). Bildiğim OOP bilgisiyle oyun yazma fikri de aklıma geldi ama bu durumda bayağı bir seçeneğim oluyor. Sizce nasıl ilerlemeliyim, önceliğim programlamada uzmanlaşmak mı olmalı?
 
Son düzenleyen: Moderatör:
Merhaba, ben yazılım mühendisliği 2. sınıf öğrencisiyim ve 3. sınıfa geçeceğim yani normal olarak. :D

Bölümlerimizin pek farkı olmadığını düşünerek hem senin hem de okuyanlar için en faydalı olacak öneriyi vereceğimi düşünüyorum, o da sorun çözme kabiliyeti.

Eğer sorun çözme üzerine yoğunlaşırsan istediğin her alanda başarılı olabilirsin. Bunun için de tabii bir alandan başlamak gerekiyor, en popüler programlama dillerinin temel Syntax'ını biliyorsan geriye hayalindeki alanı kararlaştırmak kalıyor.

Ben Back-End alanında yoğunlaşmak istediğim için, internet üzerinden road Map'lere bakıyorum, ne öğrenmem gerekiyor vs. görmek için. Aslında biraz daha yorum yap, soru sor, soru cevap şeklinde daha faydalı olurum diye düşünüyorum.
 
İkinci sınıfta alan dersi olarak OOP, Veri Yapıları ve bir iki basit sözel ders alacaksınız muhtemelen. O yüzden yazın OOP kısmına çalışmak mantıklı bir pratik olacaktır. Biz OOP dersini C# üzerinden gördük, Java'nın da farklarını öğrendik. Bazı üniversiteler direkt Java'dan da ilerleyebiliyor ama OOP zaten genel bir kavram olduğu için ne çalışırsanız çalışın zorluk çekmezsiniz. Veri yapıları dersindeyse Stack yapıları gibi sık kullanılan bazı veri yapılarını ve bazı algoritmaları görüyorsunuz isminden de anlaşılabileceği üzere. Bu derste dil öğretilmiyor. Bizim hocamız Java bildiğimizi varsayarak yarım saatte falan hızlı bir Java tekrarı geçmişti sadece ilk hafta. Leetcode, Hackerrank gibi platformlar üzerinden algoritma çalışmanız da bu derste size çok büyük katkı sağlayacaktır.
Ek olarak diferansiyel (muhtemelen güz) ve ayrık matematik (muhtemelen bahar) almadıysanız (her üniversitede ikinci yılda mı veriliyor bilmiyorum) bunlara da biraz bakmanızı tavsiye ederim. Keza dönem içerisinde bunlara daha az kafa yormanız gerekeceğinden daha az vakit ayıracağınız için diğer alanlara yönelmeniz kolaylaşacaktır.

Özetle:
  • OOP
  • Veri Yapıları (Stack, LinkedList, BST vb.)
  • Algoritma (Hackerrank, Leetcode vb.)
  • Diferansiyel Denklemler
Ayrıca, OOP konusunda ben de ilk sene ve yazında Unity'de çalışmıştım. Bu da bana epey bir şey katmıştı. Tavsiye edeceğim bir konu olur. Unity son aldığı kararlarla özellikle Indie geliştiricilerin epey canını sıkmış olsa da şunu hatırlatmalıyım: Unity'den devam etmek zorunda değilsiniz. Fakat Unity, oyun geliştirmeye yeni başlayan ve OOP konusunu öğrenmek isteyen biri için biçilmez kaftan. Sadece bir yaz inceleyip bir iki basit proje yazıp daha sonra yüzüne bile bakmasanız dahi size çok şey katacaktır.

Eklemeyi unutmuşum:
İlk dönem biz veritabanı dersi de aldık. SQL sorguları vb. öğretiliyor genelde üniversitelerde çok basit geçiliyor. Birkaç SSMS göreceksiniz (Access vb.) veritabanı da özellikle proje geliştirirken ve iş hayatınızda bu alan özelinde çalışmasanız dahi muhatap olmanız gereken ve sık sık karşınıza çıkan bir konu olduğu için buna da göz atmanızı tavsiye ederim.

Kolay gelsin!
 
Son düzenleme:
Merhaba, ben yazılım mühendisliği 2. sınıf öğrencisiyim ve 3. sınıfa geçeceğim yani normal olarak. :D

Bölümlerimizin pek farkı olmadığını düşünerek hem senin hem de okuyanlar için en faydalı olacak öneriyi vereceğimi düşünüyorum, o da sorun çözme kabiliyeti.

Eğer sorun çözme üzerine yoğunlaşırsan istediğin her alanda başarılı olabilirsin. Bunun için de tabii bir alandan başlamak gerekiyor, en popüler programlama dillerinin temel Syntax'ını biliyorsan geriye hayalindeki alanı kararlaştırmak kalıyor.

Ben Back-End alanında yoğunlaşmak istediğim için, internet üzerinden road Map'lere bakıyorum, ne öğrenmem gerekiyor vs. görmek için. Aslında biraz daha yorum yap, soru sor, soru cevap şeklinde daha faydalı olurum diye düşünüyorum.
Teşekkürler hocam, sorun çözme kısmında bizim bölüm assignmentları çok faydalı olmuştu ama tabi özel olarak hazırlanmış şeyler olduğu için o kadar kompleks olanını bulamıyoruz, onun yerine Leetcode'da yavaş yavaş başlamayı düşündüm, Design Patterns konusunu da kariyer fuarında bir şirketin teknik görevlisinden tavsiye olarak almıştım, OOP ve Design Patterns'a baya dikkat ettiklerini söylemişti.

Back-End benim de ilgimi çekiyor, tabi bunu kesin bu alanı seçeceğimden değil, çok sık duyduğum API, SQL gibi kavramları uygulamaya geçirmek için öğrenesim var. Biraz Front-End bilgim var. Ama tabi çokça alan olunca her birine bir bakıp çıkmak gerekiyor, o sırada da github hesabını doldurmak.

İkinci sınıfta alan dersi olarak OOP, Veri Yapıları ve bir iki basit sözel ders alacaksınız muhtemelen. O yüzden yazın OOP kısmına çalışmak mantıklı bir pratik olacaktır. Biz OOP dersini C# üzerinden gördük, Java'nın da farklarını öğrendik. Bazı üniversiteler direkt Java'dan da ilerleyebiliyor ama OOP zaten genel bir kavram olduğu için ne çalışırsanız çalışın zorluk çekmezsiniz. Veri yapıları dersindeyse Stack yapıları gibi sık kullanılan bazı veri yapılarını ve bazı algoritmaları görüyorsunuz isminden de anlaşılabileceği üzere. Bu derste dil öğretilmiyor. Bizim hocamız Java bildiğimizi varsayarak yarım saatte falan hızlı bir Java tekrarı geçmişti sadece ilk hafta. Leetcode, Hackerrank gibi platformlar üzerinden algoritma çalışmanız da bu derste size çok büyük katkı sağlayacaktır.
Ek olarak diferansiyel (muhtemelen güz) ve ayrık matematik (muhtemelen bahar) almadıysanız (her üniversitede ikinci yılda mı veriliyor bilmiyorum) bunlara da biraz bakmanızı tavsiye ederim. Keza dönem içerisinde bunlara daha az kafa yormanız gerekeceğinden daha az vakit ayıracağınız için diğer alanlara yönelmeniz kolaylaşacaktır.

Özetle:
  • OOP
  • Veri Yapıları (Stack, LinkedList, BST vb.)
  • Algoritma (Hackerrank, Leetcode vb.)
  • Diferansiyel Denklemler
Ayrıca, OOP konusunda ben de ilk sene ve yazında Unity'de çalışmıştım. Bu da bana epey bir şey katmıştı. Tavsiye edeceğim bir konu olur. Unity son aldığı kararlarla özellikle Indie geliştiricilerin epey canını sıkmış olsa da şunu hatırlatmalıyım: Unity'den devam etmek zorunda değilsiniz. Fakat Unity, oyun geliştirmeye yeni başlayan ve OOP konusunu öğrenmek isteyen biri için biçilmez kaftan. Sadece bir yaz inceleyip bir iki basit proje yazıp daha sonra yüzüne bile bakmasanız dahi size çok şey katacaktır.

Kolay gelsin!
Teşekkürler, aslında OOP'yi bu dönem Java ile birlikte aldık, veri yapıları seneye ama linked-list, stack, queue gibi giriş kavramlarını da OOP dersinde gördük. İlk dönem de Python görmüştük, o yüzden bu ikisiyle devam ederim diye düşünüyorum çünkü bildiğim kadarıyla C# ile Java çok benzerler.

Unity konusu benim de ilgimi çekmişti ama benim aklımda yanlış düşünce olarak şöyle bir şey vardı, bir alana bakıp ilgimi çekmediğimi anlarsam oradaki bilgim boşa gider gibi o yüzden alan seçimi hakkında aceleye geldim ama sanırım gerek yok böyle bir şeye. Ekim ayına kadar hem Unity'de hem de Web/Mobil alanda basit işler çıkarırım hangisini seversem onunla devam ederim diye düşünüyorum.

Bu arada Unity'nin o kararını açıklayabilir misiniz, neden sıkıntı oldu?
 
Teşekkürler hocam, sorun çözme kısmında bizim bölüm assignmentları çok faydalı olmuştu ama tabi özel olarak hazırlanmış şeyler olduğu için o kadar kompleks olanını bulamıyoruz, onun yerine Leetcode'da yavaş yavaş başlamayı düşündüm, Design Patterns konusunu da kariyer fuarında bir şirketin teknik görevlisinden tavsiye olarak almıştım, OOP ve Design Patterns'a baya dikkat ettiklerini söylemişti.

Back-End benim de ilgimi çekiyor, tabi bunu kesin bu alanı seçeceğimden değil, çok sık duyduğum API, SQL gibi kavramları uygulamaya geçirmek için öğrenesim var. Biraz Front-End bilgim var. Ama tabi çokça alan olunca her birine bir bakıp çıkmak gerekiyor, o sırada da github hesabını doldurmak.
Bir de çok güzel bir öneri duymuştum onu paylaşayım, bir proje üzerinden bütün proje gereksinimlerinde ilerlemek. Tabii bunu yapmak kolay olmayabilir çünkü bir proje için 4-5 farklı alanı bilmek gerekebiliyor ve hangisini hangi sırayla yapacağını bilemeyebilirsin. Ben Udemy'den İngilizce kurs izleyerek ilerledim ve hoşuma gitti, bakmak istersen "Angela Yu" isimli kişinin kurslarına bakabilirsin, indirimdeyken ceplersin. 😄 Hazır bahsetmişken, İngilizcede okuduğunu anlayamayacak düzeyde isen İngilizcede ilerlemen de kendine yapabileceğin en büyük yatırımlardan olur.
 
Teşekkürler, aslında OOP'yi bu dönem Java ile birlikte aldık, veri yapıları seneye ama linked-list, stack, queue gibi giriş kavramlarını da OOP dersinde gördük. İlk dönem de Python görmüştük, o yüzden bu ikisiyle devam ederim diye düşünüyorum çünkü bildiğim kadarıyla C# ile Java çok benzerler.

Unity konusu benim de ilgimi çekmişti ama benim aklımda yanlış düşünce olarak şöyle bir şey vardı, bir alana bakıp ilgimi çekmediğimi anlarsam oradaki bilgim boşa gider gibi o yüzden alan seçimi hakkında aceleye geldim ama sanırım gerek yok böyle bir şeye. Ekim ayına kadar hem Unity'de hem de Web/Mobil alanda basit işler çıkarırım hangisini seversem onunla devam ederim diye düşünüyorum.

Bu arada Unity'nin o kararını açıklayabilir misiniz, neden sıkıntı oldu?
C# ve Java birbirine çok benziyor fakat birbirine üstünlük kurduğu alanlar da var tabii. Birini bilen diğeriyle çok kolay bir şekilde çalışabilir birkaç ufak araştırmayla. Bazı kısımlarda sadece syntax farkları bile var diyebilirim.

Unity konusundaysa endişenizi anlıyorum aslında ben de hissetmedim değil. Bilgi, hiçbir zaman fazlalık değildir. Öğrendiğiniz hiçbir şey boşa gitmez, elbet bir gün karşınıza çıkar fakat bir sene Unity ile ilgilenip bir daha yüzüne bakmamak vakit kaybı olacaktır, bu süreçte işinize yarayacak başka şeyler de öğrenebilirsiniz. Size tavsiyem, önce "Bu alanda ilerlemeyi düşünüyor muyum?" sorusunun cevabını verin, buna göre Unity'e bakın. Birkaç ay size vakit kaybettirmez, aksine OOP konusunu öğrenmiş olursunuz.

Özellikle yazılım sektöründe sıkça açılan bir konudur bu: Hangi alanda ilerleyeceğim? Bu konuda pek çok profesyonelle görüşme fırsatım oldu ve fikir birliği şu: "Bir alan belirleyin ve ondan devam edin".
Fakat bu demek değil ki rastgele bir alan seçip ondan devam edeceğiz, sevmesek bile hayatımızı bunun üstüne kuracağız. Aksine, ilgimizi çeken alanları biraz biraz "tecrübe edip" en bize hitap edenden devam edeceğiz. Net bir zaman vermek saçma olur fakat ben bu "tecrübe etme" sürecinde 1-2 aydan fazlasını gereksiz buluyorum.

Unity'nin kararıysa detaylarını unutmuş olmamla birlikte belli bir indirme sayısı ve kazançtan sonra oyun fiyatı fark etmeksizin 0.25$ komisyon talep etmesi. Fakat dediğim gibi bir oyun çıkartmak istemeseniz bile eğer bu alanda ilerlemeyi düşünüyorsanız Unity, öğrenmek için güzel bir ortam.
 
Bir de çok güzel bir öneri duymuştum onu paylaşayım, bir proje üzerinden bütün proje gereksinimlerinde ilerlemek. Tabii bunu yapmak kolay olmayabilir çünkü bir proje için 4-5 farklı alanı bilmek gerekebiliyor ve hangisini hangi sırayla yapacağını bilemeyebilirsin. Ben Udemy'den İngilizce kurs izleyerek ilerledim ve hoşuma gitti, bakmak istersen "Angela Yu" isimli kişinin kurslarına bakabilirsin, indirimdeyken ceplersin. 😄 Hazır bahsetmişken, İngilizcede okuduğunu anlayamayacak düzeyde isen İngilizcede ilerlemen de kendine yapabileceğin en büyük yatırımlardan olur.
Anladım, basit de olsa bir alanın tüm aşamaları hakkında bilgi sahibi olmak için sanırım.
Muhtemelen ben de bir tane backend (muhtemelen Java temelli) bir kurs bulacağım, Udemy tercih etmiyorum pek ama bolca ücretsiz içerik var zaten birinden başlarım bir sorun olmazsa.

İngilizce anlıyorum ama sokakta biri aniden teknik bir şey sorsa takılabilirim o yüzden ona da önem vereceğim. Bugün design patterns ve spring eğitimiyle başladım inşallah kolayca bitiririm, sağolun tekrardan.

C# ve Java birbirine çok benziyor fakat birbirine üstünlük kurduğu alanlar da var tabii. Birini bilen diğeriyle çok kolay bir şekilde çalışabilir birkaç ufak araştırmayla. Bazı kısımlarda sadece syntax farkları bile var diyebilirim.

Unity konusundaysa endişenizi anlıyorum aslında ben de hissetmedim değil. Bilgi, hiçbir zaman fazlalık değildir. Öğrendiğiniz hiçbir şey boşa gitmez, elbet bir gün karşınıza çıkar fakat bir sene Unity ile ilgilenip bir daha yüzüne bakmamak vakit kaybı olacaktır, bu süreçte işinize yarayacak başka şeyler de öğrenebilirsiniz. Size tavsiyem, önce "Bu alanda ilerlemeyi düşünüyor muyum?" sorusunun cevabını verin, buna göre Unity'e bakın. Birkaç ay size vakit kaybettirmez, aksine OOP konusunu öğrenmiş olursunuz.

Özellikle yazılım sektöründe sıkça açılan bir konudur bu: Hangi alanda ilerleyeceğim? Bu konuda pek çok profesyonelle görüşme fırsatım oldu ve fikir birliği şu: "Bir alan belirleyin ve ondan devam edin".
Fakat bu demek değil ki rastgele bir alan seçip ondan devam edeceğiz, sevmesek bile hayatımızı bunun üstüne kuracağız. Aksine, ilgimizi çeken alanları biraz biraz "tecrübe edip" en bize hitap edenden devam edeceğiz. Net bir zaman vermek saçma olur fakat ben bu "tecrübe etme" sürecinde 1-2 aydan fazlasını gereksiz buluyorum.

Unity'nin kararıysa detaylarını unutmuş olmamla birlikte belli bir indirme sayısı ve kazançtan sonra oyun fiyatı fark etmeksizin 0.25$ komisyon talep etmesi. Fakat dediğim gibi bir oyun çıkartmak istemeseniz bile eğer bu alanda ilerlemeyi düşünüyorsanız Unity, öğrenmek için güzel bir ortam.
Evet bu 3.5 ay birkaç alan görmek için yeterli olur diye düşünüyorum çünkü baya çok bir alan var, Unity'ye para ödeme olayı da zaten kazanacak bilgiye geldikten sonra 0.25$ çok sorun değil diye düşünüyorum.

Yalnız bu Spring tek başına biraz zor gibi duruyor yani öncesinde Web Servisleri, veritabanı hakkında az da olsa bilgiye sahip olmak lazım gibi geldi bana

Leetcode işini biraz erteledim gibi, çoğu konu Veri Yapıları / Algoritmalar ile ilgili, seneye işlerken çözmek daha mantıklı geldi.

Design Patterns üzerine çalışıp bir yandan Spring öğrenmek üzerine ayarladım yolumu tek sorun düzenli çalışmak.

Eylül ayında güncellemek istedim, Spring derslerine bir başladım halen bitiremedim; kaldı ki güya makine öğrenmesi, bilgisayar ağları gibi konulara bakacaktım ama zaman olmadı.
 
Son düzenleme:

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı