Notifications
Clear all

Yazılım nedir ve nereden başlamalıyım?

1 Posts
1 Users
0 Likes
319 Views
(@guvensez)
Member
Joined: 2 years ago
Posts: 418
Topic starter  

Merhaba arkadaşlar bugün sizlere yazılım nedir yazılıma nereden başlamalıyız nereden öğrenmeliyiz onlardan bahsedeceğim .

Yazılım nedir?

Yazılım kısa bir deyişle elektronik aygıtların belirli bir işi yapmasını sağlayan programların tümüne verilen bir isimdir. Yani çizim yaparken kullandığımız programlar internette gezindiğimiz programlar vb hepsi yazılım ürünleridir . Yazılımlar kendi aralarında üçe ayrılır

- Sistem yazılımları

- Uygulama yazılımları

- Programlama yazılımları

Sistem yazılımı

Bir bilgisayar sisteminin işletimiyle ilgili tüm işlevlerin yerine getirebilmesini ve donanım ile uygulama yazılımları arasındaki ilişkiyi sağlayan yazılımlardır, bunlara örnek verebilecek olursak bunlar android ios vb yazılımlardır.

Uygulama yazılımları

İşletim sistemini kurup ve donanım parçaları ile uyumlu bir şekilde çalışmasını sağladıktan sonra artık istediğimiz uygulamalari kurabiliriz işte bu kurduğumuz birçok işimizi kolaylastiran programa uygulama yazılımı denir bunlara örnek verebilecek olursak kullandığımız çizim programları internette gezmek için kullandığımız programlar vb programlardır.

Programlama yazılımları

Programlama yazılımları aslinda uygulama yazılımları kategorisine de alabiliriz çünkü programlama dilleri işletim sistemleri ve uygulamaları yapmamıza yarayan yazılımlardır günümüzde popüler olan yazılım dilleri ;

- Java

- C

- Python

- PHP

- JavaScript

Vb programlama dilleri vardır.

Yazılıma nereden başlamalıyım ?

Yazılıma başlamak için karar verdiyseniz ilk başta düşünmemiz lazım bu uzun yolda pes etmeden sorunlar karşısında yılmadan devam edebilir miyim öğrenmek istiyor muyum eğer bunlara evet diyorsanız yazılımı öğrenmek için ilk adımı atmış bulunmaktasınız. İkinci adımda ise ne yapmak istiyorsunuz karar vermeniz lazım

Unity platformunda oyun mu?, Mobil uygulama mi? Masaüstü sistemler mi ?  yoksa Web sitesi mi geliştirmek istiyorsunuz bunun kararını vermeniz gerekmektedir.

Oyun alanı

- C#

-Unity

-Flutter

Mobil uygulamaları

- Kotlin

- Java

- JavaScript

- Dart

- React Native

- Flutter

- C++

Masaüstü sistemleri

- C

- C++

- C#

-Java

Web geliştirmek

- PHP

- Js

- HTML

- CSS

-Python

Frameworkler

-Vue

-React

-Angular

-Laravel

-Spring

-Flutter

-Codeİgniter

-Asp.net

Bu örnek verdiklerim sadece birkaçı karar verdiğiniz konuya göre öğrenmeye başlayabilirsiniz.

Bu dilleri ve frameworkleri Nereden öğrenebilirim?

Udemy , btk akademi youtube’den ücretsiz bir şekilde araştırarak öğrenebilirsiniz. Ücretli olanları ise online veya kurs merkezlerinden öğrenebilirsiniz.

Yazılımda ilk adım Algoritma

Algoritma problem çözmede bir çok yol ile çözümlenebilmesine verilen addır. yazılımda ilk ve en önemli konudur ve öğrenilmeden yazılım öğrenilmesi zorlayıcı olur. Algoritma mantığı ise bir konu da yazılım yapmak istediğinizde gideceğiniz yolun adımları olarak söyleyebiliriz. bu mantığı oturttuğunuzda ise rahatlıkla yazılım yapabilir ve karmaşık tüm problemlerin içinden çıkabilirsiniz. Algoritmanın farklı çeşitleri de mevcut sırasıyla neler olduğundan bahsedelim;

-Şifreleme algoritmaları (Cryptography Algorithms)

-Arama algoritmaları (Searching Algorithms)

-Sıkıştırma algoritmaları (Compression Algorithms)

-Genetik algoritmalar (Genetic Algorithms)

-Graf boyama algoritmaları(Graph Algorithms)

-Sıralama algoritmaları (Sorting Algorithms)

Şifreleme algoritmaları (Cryptography Algorithms)

verileri yetkisiz kişilerin görmesinini engellemek amacıyla kullanılan algoritmadır. genellikle verileri aritmetik ve matematiksel yöntemlerle oluşturulur. günümüzde kriptoloji olarak adlandırılır. Des, Md5, Rsa, Aes, 3Des örnek olarak gösterilebilir.

Arama algoritmaları  (Searching Algorithms)

Belirli anahtar kelimelere dayanarak oluşturulan algoritmalardır. bu algoritmalar depolanan verilerin içinden istediğiniz bilgiye hızlı erişebilmek için kullanılır.

Sıkıştırma algoritmaları (Compression Algorithms)

Bilgisayardaki verilerin daha az yer kaplamasını sağlayan algoritma türüdü. genellikle resim video ve metin belgeleri için kullanılır.

Genetik algoritmalar (Genetic Algorithms)

Çözümleri genellikle matematiksel olmayan yöntemlerle ve bir çok farklı yöntemle çözen algoritmalardır. çözüm için bilgisayarın evrimsel sürecini taklit ederek çözer. genellikle finansal işlemler veya üretim analizi için kullanılır.

Graf boyama algoritmaları(Graph Algorithms)

Graf boyama genellikle görsel algoritmalardır çeşitli düğüm ve çizgiler kullanılara oluşturulu ve problemin daha anlaşılır olmasını ve çözümün daha kolay ulaşabilmesini sağlayan algoritmalardır.

Sıralama algoritmaları (Sorting Algorithms)

verilerin belirli kriterlerle sıralı ve anlamlı olmasını sağlayan algoritmalardır. bu algoritalar içerisinde kabarcık sıralama seçmeli sıralama ve hızlı sıralama olarak çeşitlere ayrılır.

 Çeşitler ise genellikle yapmak istediğiniz yazılım alanıyla ilgilidir. mesela arama algoritması bir sitede veya yazdığınız yazılımda arama butonun olup olmamasıyla alakalı olabilir yada kriptoloji dünyasında kullanacağınız şifreleme algoritmaları olabilir. sıkıştırma algoritmalarını bilgisayarlarımızda kullandığımız winrar gibi programları düşünerek yazılımını yapabilirsiniz.

Yazılıma başlarken seçilen ilk programlama dili ne olmalı?

En sık sorulan sorulardan biri olan bu sorumuzdaki cevap net ve kesin, siz hangi alanda ne yapmak istiyorsanız araştırıp o alandaki dili öğrenip istediğiniz projeyi yapabilirsiniz. bunu söylememdeki amaç ilk farklı dil öğrenip farklı alanda ilerleyip vakit kaybetmenizi önlemek. yazılıma yeni başlayanların dil öğrendikten sonra tekrar alan değiştirip farkli bir dil öğrenmeye başladıklarına sıkılmaya başlayıp motivasyonlarını düşmekte. bu nedenle yazılıma devam edemiyorlar. sonuç olarak ilk önce hangi alanda ilerleyeceğinizi seçmek sizin için büyük avantaj sağlayacaktır.

Web alanında ilerlemek

Eğer güzel bir web sitesi yapmak istiyorsanız bunun için yazılım dilini belirlemeniz gerekiyor. genellikle web alanı için php yazılım dili kullanılmaktadır. web yazılımda iki alan vardır biri ön uç yani tasarım yapma (front end) birde arka uç (back end) kısmı. front end’e güzel tasarımlarınız için html, css, javascript bilmeniz yeterli olacaktır. Back end içinse bir yazılım dili bilmeniz şart hatta veritabanı bilginizde olması gerekmektedir. backend için php ve ya python dilini öğrenmeniz gerekir.

Html (Hypertext Markup Language): Bir işaretleme dili olan html, web sayfalarını oluşturmak için kullanılır.

Css (Cascading Style Sheets): bir işaretleme dilidir. Web sayfalarına görsellik katmak için kullanılır, diğer bir deyişle stil şablonu’dur.

Javascript: Web sayfalarını daha dinamik ve işlevsel hale getirmek için kullanılan bir programlama dilidir.

Frameworkle ile çalışmak

Frameworkler MVC (Model, View, Controller) yapısı kullanarak kodların düzenlenebilmesi ve rahat okunabilmesi için kullanılan yapılardır. bu yapının içinde kütüphaneler ve modüller barındırılır. hangi yazılım dilinde yazmak isterseniz o dildeki frameworku kullanarak daha rahat ve hızlı çalışabilirsiniz. bazı dillerdeki frameworkler:

PHP

-Laravel

-CodeIgniter

-CakePHP

-Asp.net

JAVASCRİPT

-React

-Vue

-Angular

-Express

-Node

JAVA

-Spring (Web alanı kullanılır.)

- Jsf (Java Server Faces)

-Hibernate (Data-Focused)

-Maven (Build_Focused)

PYTHON

-Django (Web alanı kullanılır.)

-Flask

-Web2Py

-Pyramid

C#, C++

-Asp.net (Web alanı kullanılır.)

-unity

Mobil uygulamalar için frameworkler;

-Flutter

-React native

-Xamarin

-Kotlin

-Swift (ios)

Veritabanı nedir?

Bilgileri uygun şekilde güncellenmesini, kaydedilmesini ve gerektiğinde sorgulanmasını sağlayan yapıya Veritabanı (database) denir. Gerekli bilgileri veritabanında bir arada depolamasını sağlar. Sorgu dili olarak SQL kullanılır.

Veritabanının işlevleri;

-Verileri ekleyebilir, güncelleyebilir  ve silebilirsiniz,

-Verileri takip edilebilir duruma göre veri çekebilirsiniz.

Veritabanı çeşitleri;

-MySQL

-MsSQL

-Microsoft SQL Server

-PostgreSQL

-freebase: Genellikle mobil uygulamada kullanılıyor. (flutter)

Veritabanı Yönetim Sistemlerinin Sınıflandırılması

Veritabanlarında türleri bulunmaktadır bunlar;

ilişkisel veritabanı: Bu  modelde veriler tablolar halinde tutulur. satır ve sütunlardan oluşan veri tabanı türüdür.

Ağ Veritabanı: Birden çok ağaç yapısı ile bağlantı kurarak detaylı sonuç getiren veritabanı türdür.

Nesneye Yönelik Veritabanı: Nesneye dayalı diller için kullanılan veritabanı türüdür.

Hiyerarşik Veritabanı: Eski veri tabanı türlerinden biri olup veri yapılarını ağaçlarda saklamaktadır.

Masaüstü programları

Masaüstü yazılımlar, yazılım dillerinin görsel arayüz ile birleştirilerek kodlanmıştır ve işlevsel haline getirilmiş ve işletim sisteminde çalıştırılmak üzere programlanmış paket yazılımlardır. Java, c#, Python gibi yazılım dillerinden derlenerek yapılır..

Bilgisayarımıza kurduğumuz her bir program aslında masaüstü yazılımıdır. Her bilgisayarda olmazsa olmaz masaustu yazılımlar vardır. Java, flash gibi yazilimlar bilgisayarımızda yüklü olan diğer programlarla haberlesmeyi saglayan onlara görsel arayüzde destek veren sunucu taraflı yazılımlardır.

Eskiden daha cok kullanimi olan bu masaustu yazılımlar, internetin gelişmesiyle yerini web otomasyona bırakmışlardır. Günümüzde  internetin kısıtlı olduğu yerlerde veya alanlarda kullanılmak üzere yazılan bu paket programlara örnek olarak; stok takip programı, abone/ musteri takip programlari gibi programlar verilebilir. Masaüstü programların yapımda genellikle Java, C# veya C++ kullanılır.

Oyun programlama/ yazılımı

Oyun yazılımlarında çoğunlukla unity kullanılır.C# dili ile komut dosyası yazılabilen çok yönlü bir oyun motorudur. 2B ve 3B grafikleri sürükle bırak işlevselliği sunar.

Mobil uygulama üzerinden ilerlemek

İstediğiniz mobil uygulamalarınızı react native, flutter, swift veya kotlin ile yapabilirsiniz. Flutter, google'ın geliştirdiği bir framework olan flutter projelerinizin sonunda android, ios ve web çıktılarını alabilirsiniz. React native ise facebook’un geliştirdiği bir framework olup ayni flutter gibi android ,ios çıktıları olabilirsiniz. Swift ise sadece ios işletim sistemlerinde kullanılır. kotlin ise java yazılım dilini kullanarak android işletim sisteminde mobil uygulama yazabilirsiniz.

Sonuç olarak yazılım alanı geniş ve alanı seçmek sizin elinizde zaman kaybı yaşamamak için alanınızı seçmeyi unutmayın..Bir dahaki yazımızda görüşmek üzere iyi çalışmalar dilerim.


   
Quote