C/C++ C ile nasıl profesyonel olurum?

Seni şirkete anca çaycı falan olarak alırlar. Önce algoritmaymış peh...
O kadar yanlış yönlendiriyorsun ki. Algoritma deyince aklına sadece flowchart geliyorsa bilmiyorum ancak şu dediklerine dışarıda elindeki uygulamaları yazan adamlar görse güler geçerlerdi. Ya da olayı sadece proses öncelikleme falan olarak görüyorsun sanırım ancak 80 senelerinden beri 1000 sayfalık kitaplar halinde sistem analizi adında temel algoritma dersleri şu an dünyanın en iyi 30 üniversitesinde hala okutuluyor. Bunlar değişmeyen temel şeyler. Yine bu 30 üniversitenin içerisinde ilk sene derslerin sadece %25'i yazılım, diğer %75'lik kısım sistem analizi ve tasarımı dolaylı olarakta algoritma kurma üzerinedir.

Şu konuda ciddi olarak sektörüne hakim birisi olsa en az bir sefer AI okur yazarlığından ve problem çözme becerilerinden bahsederdi. Herkes bildiğini dayatma peşinde sadece anlatmak istiyorsunuz ancak bildiğiniz de kendinize yetmiyor.

Önce algoritma, ancak Türkiye'de öğretilenden değil. Problem çözme ve problemlere farklı yaklaşabilme sonra bunu koda uygulayabilme üzerine bir sektörde çalışıyorsunuz. Yazılım kısmı bu işin tüm pürüzler ortadan kalktıktan sonra yapılan basit ve şu an yapay zekaya da yaptırabildiğimiz şey. Bunun öncesi para ediyor sonrası değil. Problem çözme ve probleme farklı yaklaşmayı ve elbette bu probleme evrensel bir formül - notasyon bulduktan sonra bir de problemin içinde bulunduğu sistemi analiz eden yine 1 senelik eğitimler halinde kariyeri yüksek üniversitelerde verilen eğitimler var. Tüm bunlardan sonra kod kısmında vaktiniz kalırsa yoğunlaşıp kendinizi ispat edebilirsiniz.

Olasılık ve matematik bu işin ileri kısmı. Yine aynı hataya düşüyorsun temelini kaçırıyorsun. Olasılık ve matematik bilmeden de bir problemin çözümü bulunabilir. Dediğin kavramlar formülizasyon ve notasyon için gerekli. "Implemente etmek" diye de bir kelime yok, implante etmek, implantasyon ya da direkt yerleştirmek - bir araya getirmek diyebilirsin.

Arkadaşın baştaki sorusuna gelecek olursak günde sadece 4 saat ile değil yazılım hiçbir meslek alanında uzman olamazsın. Saatler üzerinden çalışma hesabı yapılmaz. Yorulursan bırakırsın yoksa da yorulana kadar çalışırsın.

Herkese kolay gelsin iyi kodlamalar.
 
O kadar yanlış yönlendiriyorsun ki. Algoritma deyince aklına sadece flowchart geliyorsa bilmiyorum ancak şu dediklerine dışarıda elindeki uygulamaları yazan adamlar görse güler geçerlerdi. Ya da olayı sadece proses öncelikleme falan olarak görüyorsun sanırım ancak 80 senelerinden beri 1000 sayfalık kitaplar halinde sistem analizi adında temel algoritma dersleri şu an dünyanın en iyi 30 üniversitesinde hala okutuluyor. Bunlar değişmeyen temel şeyler. Yine bu 30 üniversitenin içerisinde ilk sene derslerin sadece %25'i yazılım, diğer %75'lik kısım sistem analizi ve tasarımı dolaylı olarakta algoritma kurma üzerinedir.

Şu konuda ciddi olarak sektörüne hakim birisi olsa en az bir sefer AI okur yazarlığından ve problem çözme becerilerinden bahsederdi. Herkes bildiğini dayatma peşinde sadece anlatmak istiyorsunuz ancak bildiğiniz de kendinize yetmiyor.

Önce algoritma, ancak Türkiye'de öğretilenden değil. Problem çözme ve problemlere farklı yaklaşabilme sonra bunu koda uygulayabilme üzerine bir sektörde çalışıyorsunuz. Yazılım kısmı bu işin tüm pürüzler ortadan kalktıktan sonra yapılan basit ve şu an yapay zekaya da yaptırabildiğimiz şey. Bunun öncesi para ediyor sonrası değil. Problem çözme ve probleme farklı yaklaşmayı ve elbette bu probleme evrensel bir formül - notasyon bulduktan sonra bir de problemin içinde bulunduğu sistemi analiz eden yine 1 senelik eğitimler halinde kariyeri yüksek üniversitelerde verilen eğitimler var. Tüm bunlardan sonra kod kısmında vaktiniz kalırsa yoğunlaşıp kendinizi ispat edebilirsiniz.

Olasılık ve matematik bu işin ileri kısmı. Yine aynı hataya düşüyorsun temelini kaçırıyorsun. Olasılık ve matematik bilmeden de bir problemin çözümü bulunabilir. Dediğin kavramlar formülizasyon ve notasyon için gerekli. "Implemente etmek" diye de bir kelime yok, implante etmek, implantasyon ya da direkt yerleştirmek - bir araya getirmek diyebilirsin.

Arkadaşın baştaki sorusuna gelecek olursak günde sadece 4 saat ile değil yazılım hiçbir meslek alanında uzman olamazsın. Saatler üzerinden çalışma hesabı yapılmaz. Yorulursan bırakırsın yoksa da yorulana kadar çalışırsın.

Herkese kolay gelsin iyi kodlamalar.
implemente etmek, uygulamak = "implementation"

Sen ne anlatıyorsun kardeşim? Ne MIT ne de Harvard CS programında doğrudan algoritma dersi vermez, önce saydığım temelleri şart koşar, gereksinim olarak belirtir ki öyledir zaten konunun problem çözme anlayışının önemsizliği değil! Teoriyi pratiğe dökememek, sorun hesaplayamamak, implemente edememek, görememek. Anlatabildim mi?
 
Anlatamadın, üzgünüm. Ben Harvard ve MIT döküman veritabanına doğrudan ulaşımı olan birisi olarak onların doğrudan verdiği algoritma ve problem çözme ders notlarına ulaşabiliyorum. Yine yanlış bilgi veriyorsun.
Off işin gücün arasında seninle uğraşamam, Harvard ve diğer okulların CS programına kendin bakarsın...

mit.png
 
Son düzenleyen: Moderatör:
Şevkini kırmak istemem ama 4 yıla yapay zeka en iyi şekilde her türden kod yazabilir hale gelecek. Yazılımcıların da işi zor.
Soru: C sharp dilinden 5 tane arabanın yarıştığı oyunun kodu

Cevap : Aşağıda, C# dilinde 5 arabanın yarıştığı basit bir oyunun kod örneğini bulabilirsiniz. Bu örnek, Console uygulaması olarak çalışır ve her adımda her arabayı rastgele bir mesafe hareket ettirir. İlk arabayı bitiş çizgisine ulaşan araba olarak kabul eder ve oyunu sonlandırır.

```csharp
using System;

class Program
{
static void Main(string[] args)
{
// Arabaların başlangıç konumları
int[] positions = new int[5];

// Arabaların hızları
int[] speeds = new int[5];

// Arabaların yarışma durumu
bool[] isFinished = new bool[5];

// Arabaların başlangıç hızları
int initialSpeed = 1;

// Arabaların başlangıç konumlarına yerleştirilmesi
for (int i = 0; i < 5; i++)
{
positions = 0;
speeds = initialSpeed;
isFinished = false;
}

// Yarış başlangıcı
while (true)
{
// Arabaların adım adım hareket etmesi
for (int i = 0; i < 5; i++)
{
if (!isFinished)
{
// Arabanın rastgele bir mesafe hareket etmesi
Random random = new Random();
positions += random.Next(1, 5) * speeds;

// Araba bitiş çizgisini geçtiyse
if (positions >= 100)
{
isFinished = true;
Console.WriteLine("Araba {0} birinci oldu!", i + 1);
}
}
}

// Tüm arabaların yarışı bitirdiği kontrolü
bool allFinished = true;
for (int i = 0; i < 5; i++)
{
if (!isFinished)
{
allFinished = false;
break;
}
}

// Tüm arabalar yarışı bitirdiyse
if (allFinished)
{
Console.WriteLine("Yarış bitti!");
break;
}
}

Console.ReadLine();
}
}
```

Bu örnekte, her adımda her arabanın belirli bir hızda rastgele bir mesafe hareket ettiği bir döngü vardır. Arabaların konumları ve bitiş durumları takip edilir ve birinci olarak bitiş çizgisini geçen araba belirlenir. Tüm arabalar yarışı bitirdiğinde oyun sonlanır.

Soru : Python dilinden 5 tane arabanın yarıştığı oyunun kodu

Cevap : Aşağıda, Python dilinde 5 arabanın yarıştığı basit bir oyunun kod örneğini bulabilirsiniz. Bu örnek, terminal üzerinde çalışır ve her adımda her arabayı rastgele bir mesafe hareket ettirir. İlk arabayı bitiş çizgisine ulaşan araba olarak kabul eder ve oyunu sonlandırır.

```python
import random

# Arabaların başlangıç konumları
positions = [0] * 5

# Arabaların hızları
speeds = [1] * 5

# Arabaların yarışma durumu
is_finished = [False] * 5

# Arabaların başlangıç hızları
initial_speed = 1

# Arabaların başlangıç konumlarına yerleştirilmesi
for i in range(5):
positions = 0

# Yarış başlangıcı
while True:
# Arabaların adım adım hareket etmesi
for i in range(5):
if not is_finished:
# Arabanın rastgele bir mesafe hareket etmesi
positions += random.randint(1, 5) * speeds

# Araba bitiş çizgisini geçtiyse
if positions >= 100:
is_finished = True
print(f"Araba {i+1} birinci oldu!")

# Tüm arabaların yarışı bitirdiği kontrolü
all_finished = all(is_finished)

# Tüm arabalar yarışı bitirdiyse
if all_finished:
print("Yarış bitti!")
break
```

Bu örnekte, her adımda her arabanın belirli bir hızda rastgele bir mesafe hareket ettiği bir döngü vardır. Arabaların konumları ve bitiş durumları takip edilir ve birinci olarak bitiş çizgisini geçen araba belirlenir. Tüm arabalar yarışı bitirdiğinde oyun sonlanır.

Beğenmedim atan çok bilmişlere ithafen cevap verildi.
 
Önce algoritma öğrenmek diye saçma salak bir görüş türemiş. Ben de anlamıyorum nereden çıkıyor bunlar, temel düzeyde programlama, ayrık matematik ve olasılık bilgisi olmadan ne algoritmaları anlarsınız ne de implemente edebilirsiniz.

Hocam açıkçası benim alanım değil bu konuyla ilgilenenlerin alanıdır fakat algoritmayı misal programlama dili öğreniyorsanız paşa paşa öğreneceksiniz.
 
Herkese iyi sosyaller.C öğrenmeye başladım ve ilk başta Udemy'den bir kurs aldım. Kurs gayet iyi gidiyor temel şeyleri öğrendim diyebilirim. Şu an Udemy ve W3schools ile öğreniyorum. Ancak aklıma takılan sorular var.

1. Hangi kaynaklardan öğrenmeliyim?
2 .C ile nasıl projeler yapabilirim?
3. Günde 4 saat yeterli mi? Yeterli ise sadece tek kaynaktan mı bakmalıyım yoksa 2 3 kaynaktan mı?
Merhaba, ben de size birkaç karşı soru sorayım

-C öğrenme amacınız nedir?
-C ile ne tür projeler yapılabileceği hakkında bilginiz olmadan mı C öğrenmeye karar verdiniz?
-"Günde 4 saat ayırırsan Nvidia'dan iş teklifi alırsın, 3 saat ayırırsan Vestel'e girersin, 2 saat ayırırsan organize sanayide bir firmaya girer endüstriyel ürünler için mikrodenetleyici kodu yazarsın, 1 saat çalışırsan arduino ile ışık yakar söndürürsün" gibi bir denklem mevcut değil farkında mısınız?
 
Merhaba, ben de size birkaç karşı soru sorayım

-C öğrenme amacınız nedir?
-C ile ne tür projeler yapılabileceği hakkında bilginiz olmadan mı C öğrenmeye karar verdiniz?
-"Günde 4 saat ayırırsan Nvidia'dan iş teklifi alırsın, 3 saat ayırırsan Vestel'e girersin, 2 saat ayırırsan organize sanayide bir firmaya girer endüstriyel ürünler için mikrodenetleyici kodu yazarsın, 1 saat çalışırsan arduino ile ışık yakar söndürürsün" gibi bir denklem mevcut değil farkında mısınız?
C öğrenme amacım 42 istanbula gitmek içindir aslında.C ile ne tür projeler yapıldığını yazdığımda işletim sistemleri veya yazılım dili oluşturmak gibi şeyler yapıldığını gördüm.Bunlar beni aşacağı için öyle bir soru sordum.4 saat çalışmaktan kastığım yeterlimi amacında.Kendi seviyemi tam olarak bilmiyorum başkalarının çalışma saatini öğrenmek için.
 
Off işin gücün arasında seninle uğraşamam, Harvard ve diğer okulların CS programına kendin bakarsın...

Eki Görüntüle 1854710
O işaretlediklerine prequisition denir. Yukarıda bahsettiğin dersi alabilmek için yeter şart anlamına gelir. Bu zaten tüm yabancı üniversitelerde olan bir şey. Keza benimkinde de. Ben burada matematiksiz MIT Algoritma dersini verirsin demiyorum. Üniversitelerde olduğu gibi yazılım öğrenmeye logic öğrenerek başlarsın diyorum. Aşağıda gördüğüm gibi Introduction ve Programming Skills'den sonra matematik yeterliliği başlıyor. Ondan sonra bahsettiğin derslerin yeterliliğinden bahsedebilirsin.


Ancak önce thinking temalı en az bir ders vermen ya da beraberinde alman gerekiyor. Ben beraberinde alıyorum.

Konu yerinden şaştı. Daha önce yazdıklarım boşa gitmesin başa tekrar dönecek olursak; Önce mantık dersini almadan yazılıma başlayarak başarılı olmak en azından vizyon sahibi olmak biraz hayal. Yazılımın gatekeepingini yapıp geleni geçeni darlayarak olmuyor bu iş.
1688943546743.png
 
C OOP olmadığı için çok harika işler yapmak zor. Genelde gömülü sistemlerde kullanılıyor.
Üzerine çok şey konuşulmuş ama yine de belirtmek istedim. OOP, harika şeyler için gerekli bir paradigma değil. Diğer tüm paradigmalarda olduğu gibi bazı şeyler için kolaylık, bazı şeyler için zorluk katar. Bazı problemler nesne bakış açısı ile bazıları fonksiyonel bakış açısıyla rahat çözülür.
 

Technopat Haberler

Geri
Yukarı