Programcı olmak, becerilerinizi günden güne ve yıldan yıla geliştiren kümülatif bir süreçtir ve programlama eğlenceli ve ödüllendirici olabilir (zihinsel, ruhsal ve finansal olarak). Bu kılavuz, bir programcı olmak için sihirli bir şekilde kolay bir yol vermeyi vaat etmiyor ve adımların sıralanması kutsal değil, ancak modern programlama alanlarından birinde nasıl programcı olunacağına dair genel bir taslak elde edeceksiniz.
adımlar
Adım 1. Aşağıdaki disiplinlerden birinde (veya hepsinde) bir giriş kursu alın:
- Mantık
- Ayrık Matematik
- Programlama dili (fonksiyonel ve mantıksal programlamadan sonra sıralı/prosedürelden nesne yönelimliye kadar farklı programlama paradigmalarına katılın. Yeni başlayanlar için tercih edilebilir Ruby/Python/Pascal ve biraz iyi anladıktan sonra C++/C#/Java'da daha derine inin)
UZMAN İPUCU
Gene Linetsky, MS
Startup Founder & Engineering Director Gene Linetsky is a startup founder and software engineer in the San Francisco Bay Area. He has worked in the tech industry for over 30 years and is currently the Director of Engineering at Poynt, a technology company building smart Point-of-Sale terminals for businesses.
Gene Linetsky, MS
Başlangıç Kurucusu ve Mühendislik Direktörü
Kodlama derecesi kazanmanız gerektiğini düşünmeyin.
Yazılım mühendisi ve startup kurucusu Gene Linetsky, bir programlama dilinde kurs almak yardımcı olabilir, diyor:"
Adım 2. Tablolar, görünümler/sorgular ve prosedürler gibi veritabanı kavramlarını öğrenin
Bunu yapmak için herhangi bir basit veritabanı paketini kullanabilirsiniz, örneğin:
- MS Erişimi
- DB V
- Fox Profesyonel
- paradoks
- MySQL, ücretsiz olması, yaygın olarak kullanılması ve veritabanlarına yaygın olarak SQL sorgularıyla erişilmesi nedeniyle öğrenmek için iyi bir veritabanıdır.
Adım 3. Ne tür bir programcı olmak istediğinize karar verin
Programcılar genellikle aşağıdaki kategorilerden birine girer:
- Web programcısı
-
Masaüstü uygulama programcısı
- İşletim sistemi (OS) odaklı programcı (tek bir işletim sistemine veya işletim sistemleri grubuna bağlı)
- Platformdan bağımsız programcı
- Dağıtılmış uygulamalar programcısı
- Kitaplık/platform/çerçeve/çekirdek programcı
-
sistem programcısı
- çekirdek programcısı
- Sürücü programcısı
- derleyici programcısı
- Programlama bilimcisi
Adım 4. Programlama alanınızla ilgili teknolojileri ve programlama dillerini öğrenin
Aşağıdaki bölümler, farklı programlama türleri için görevlerin dökümünü vermektedir.
Yöntem 1/6: Web Programlama
Adım 1. Web programlamanın neyi gerektirdiğini bilin
Web uygulamaları, internet mimarisi üzerinde çalışmak üzere tasarlanmış yazılım bileşenleridir. Bu, uygulamalara Firefox veya Internet Explorer gibi bir web tarayıcı yazılımı aracılığıyla erişildiği anlamına gelir. İnternet mimarisinin üzerine inşa edilmiş olmak, mutlaka internete aktif bir bağlantı gerektirmez. Bu, Web uygulamalarının aşağıdakiler gibi standart web teknolojilerinin üzerine inşa edildiği anlamına gelir:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IP protokolleri
- HTML
- XML
- Soğuk füzyon
- ASP
- JSP
- PHP
- ASP. NET
Adım 2. Genellikle nasıl göründüklerini öğrenmek için birçok farklı web sitesine göz atın
(Sağ tıklayın, ardından Kaynağı Görüntüle'ye tıklayın veya F12'ye basın.) Ziyaret edilen web sitelerinin sayısında değil, web sitesinin türünde/içeriğinde çeşitliliği arayın. Genel olarak, aşağıdaki web sitesi türlerinden en az birini ziyaret etmeniz gerekir:
- Kurumsal varlık siteleri (ticari şirketler, kar amacı gütmeyen şirketler/kuruluşlar, devlet kurumları)
- Web indeksleme motorları (arama motorları, meta arama siteleri, özel arama motorları, dizinler)
- Veri madenciliği siteleri
- Kişisel siteler
- Bilgilendirici/ansiklopedik sayfalar (wikiler, veri sayfaları, teknik özellikler ve dizinleri listeleyen kılavuzlar, bloglar ve dergiler, haber ve haber ajansları siteleri, sarı sayfalar vb.)
- Sosyal siteler (sosyal portallar, yer imi siteleri, not alma siteleri)
- Ortak çalışma siteleri (wikiler ve bloglar gibi yukarıda bahsedilen diğer kategorileri içerir)
Adım 3. En az bir beyin fırtınası tekniği/yöntemi ve bu yöntemi uygulamak için kullanılan bir yazılım öğrenin
Örneğin: beyin fırtınası diyagramları ve MS Visio.
Adım 4. Web sitesi yapılandırmasına aşina olun
Bu, kavramsal web diyagramları, site haritaları ve gezinme yapıları oluşturuyor.
Adım 5. Grafik tasarımı konusunda hızlandırılmış bir kursa katılın
En az bir grafik düzenleme/manipülasyon yazılım paketini öğrenmeye çalışın (isteğe bağlı, ancak şiddetle tavsiye edilir)
Adım 6. İnternet altyapısının temellerini öğrenin
Bu, aşağıdakiler hakkında temel bir fikir edinmeyi içerir:
- Temel Web hizmetleri protokolleri (HTTP, FTP, SMTP ve POP3 veya IMAP4)
- Web sunucusu yazılımı (tercihen üzerinde çalışacağınız platform için bir tane)
- Web tarama yazılımı.
- E-posta sunucusu ve istemci yazılımı
Adım 7. HTML ve CSS dillerini öğrenin
HTML'yi düzenlemek için "Gördüğünüz Şeydir (WYSIWYG)" yazılım paketini de almak isteyebilirsiniz.
Adım 8. XSL ve XPath gibi XML ve XML ile ilgili teknolojileri öğrenin (isteğe bağlı ancak önerilir)
Adım 9. HTML'ye aşina olana ve bu konuda rahat olana kadar basit statik web siteleri oluşturun
Adım 10. İstemci tarafında bir betik dili öğrenin
Çoğu kullanıcı JavaScript öğrenir. Bazıları VBScript öğrenir, ancak bu çoğu tarayıcıyla uyumlu değildir.
Adım 11. Öğrendiğiniz istemci tarafı betik dili hakkında bilgi edinin
Sadece o dili kullanarak potansiyelinize ulaşmaya çalışın. Bir sonraki adıma, en azından istemci tarafı komut dosyası dilinize aşina olduktan sonra geçin.
Adım 12. En az bir sunucu tarafı programlama dili öğrenin
Kendinizi tek bir sunucu yazılımıyla sınırlamayı seçerseniz, o yazılım tarafından desteklenen programlama dillerinden birini öğrenin. Değilse, her sunucu yazılımında en az bir programlama dili öğrenin.
Adım 13. Pilot proje oluşturun sunucu tarafı programlama dilini öğrenmeyi bitirdikten sonra kendiniz için.
Adım 14. Kendi web sitenizi edinin ve kendi sayfanızda çevrimiçi denemeye başlayın
Yöntem 2/6: Masaüstü Uygulama Programlama
1. Adım. Masaüstü uygulama programlamasıyla ne yaptığınızı bilin
Çoğu masaüstü programcısı iş çözümleri için kod yazar, bu nedenle işletmeler, organizasyonel ve finansal yapıları hakkında fikir edinmek büyük bir zaman tasarrufu sağlayacaktır.
Adım 2. Farklı bilgisayar donanım mimarileri hakkında bilgi edinin
Dijital devre tasarımında ve bilgisayar mimarisinde bir giriş seviyesi dersi faydalıdır; ancak bazıları bunu bir başlangıç noktası olarak ileri düzeyde görüyor, bu nedenle iki veya üç öğretici makaleyi (bu ve bu gibi) okumak yeterli olabilir. Ardından, ilk programlama dilinizi öğrendikten sonra bu adıma geri dönebilirsiniz.
Adım 3. Giriş seviyesi (çocuklar için) bir programlama dili öğrenin
Sırf sana "çocuk" denilmesinden daha yaşlısın diye böyle bir dili öğrenmekten çekinme. Bu programlama dillerine bir örnek Scratch olabilir. Bu programlama dilleri, ilk programlama dilinizi öğrenmenin acısını büyük ölçüde hafifletebilir. Ancak bu adım isteğe bağlıdır. Önceki adımdan önce de yapılabilir.
Adım 4. Prosedüre giriş yapın, nesne odaklı, ve fonksiyonel programlama paradigmaları.
Adım 5. Prosedürel programlama dillerinden birinde bir giriş kursu alın
Daha sonra seçtiğiniz dil olarak hangi dili seçerseniz seçin, bir düzeyde prosedürel programlama gerektirecektir. Ayrıca, prosedürel programlama, çoğu programcı tarafından, genel olarak programlama fikrini elde etmek için bir başlangıç noktası olarak kullanımı en kolay olarak bildirilmektedir.
Adım 6. UML veya ORM gibi en az bir gelişmiş modelleme tekniği öğrenin
Adım 7. Bazı küçük konsol veya konsol benzeri uygulamalar yazmaya başlayın
Programlama dilleri kitaplarında yaygın olarak kullanılan küçük alıştırmalardan yararlanabilirsiniz. Bunun için yazdığınız programlama dilinde program yazmak için bir araç seçin.
Adım 8. Seçtiğiniz programlama dilinde daha gelişmiş bir kursa katılın
Aşağıdaki kavramları iyi anladığınızdan ve ilerlemeden önce bunları nispeten kolaylıkla uygulayabildiğinizden emin olun:
- Bir programın kullanıcılarına bilgi girişi ve çıkışı.
- Prosedürel dillerde programların mantıksal akışı ve yürütme akışı.
- Değişkenleri bildirme, atama ve karşılaştırma.
- if..then..else ve select/switch..case gibi dallara ayrılan programlama yapıları.
- while..do, do..while/until, for..next gibi döngü yapıları.
- Prosedürleri ve işlevleri oluşturmak ve çağırmak için programlama dili sözdiziminiz.
- Veri türleri ve bunları manipüle etmek.
- Kullanıcı tanımlı veri türleri (kayıtlar/yapılar/birimler) ve kullanımları.
- Diliniz aşırı yükleme işlevlerini destekliyorsa, anlayın.
- Seçtiğiniz dilin bellek erişim yöntemleri (işaretçiler, gözetleme vb.)
- Diliniz operatörlerin aşırı yüklenmesini destekliyorsa, bunu anlayın.
- Diliniz delegeleri/işlev işaretçilerini destekliyorsa, anlayın.
Adım 9. Öğrendiğiniz ileri teknikleri uygulayın
Adım 10. Başka bir programlama paradigmasında en az bir programlama dilinde daha giriş dersi alın
Her paradigmanın bir programlama dilini öğrenmeniz önerilir ve çoğu ileri düzey programcı yapar, ancak genellikle biriyle başlarsınız, bir süre bilginizi uygulayıp pratik yaparsınız, ardından diğerini daha sonra öğrenirsiniz, zaten gerçek bir programlama diline sahip olduktan sonra. -programlamada yaşam deneyimi. Aşağıdaki dil alanlarından birini deneyin:
- Mantık programlama paradigması.
- Fonksiyonel programlama paradigması.
- Nesne yönelimli paradigma.
Adım 11. Şimdiye kadar öğrendiğiniz iki programlama dilini karşılaştırmaya çalışın
Her birinin güçlü ve zayıf yönlerini değerlendirin. Genellikle bu şu şekilde yapılır:
- İlk çalışmanızın basit örneklerini birinci programlama dilinde alın ve ikinci programlama dilini kullanarak yeniden yazın.
- Yeni bir proje oluşturun ve her iki dili kullanarak uygulamayı deneyin. Bazen, proje ve dil seçiminize bağlı olarak projeyi dillerden birinde uygulayamayabilirsiniz!
- İki dildeki benzer yapılar ve her bir dile özgü özellikler arasında bir kopya sayfası veya özet tablo karşılaştırmaları yazmak.
- Diğer dili kullanarak iki dilden birine özgü özellikleri taklit etmenin yollarını bulmaya çalışın.
Adım 12. Öğrendiğiniz dillerden birini kullanarak görsel programlama kavramlarını öğrenin
Hemen hemen tüm programlama dillerinin görsel programlamayı destekleyen sürümleri/kütüphaneleri ve diğerlerinin konsol veya konsol benzeri programlamayı destekleyen sürümleri/kütüphaneleri vardır. Bu şu şekilde gerçekleştirilebilir:
- Olay güdümlü programlamaya giriş yapın. Çoğu görsel programlama, bir düzeyde olay ve olayların işlenmesine dayanır (seçtiğiniz programlama dilini kullanarak).
- Mümkün olduğu kadar çok masaüstü yazılımı deneyin ve yazılımın ne yaptığını anlayın. Çoğu yazılım geliştirme şirketi, yazılımı test etmek için kullanabileceğiniz ürünlerinin beta test sürümlerini sunar. Kullanıcı arayüzündeki gelişmelerden haberdar olun.
- Grafik kullanıcı arayüzleriyle ilgili bazı makaleleri veya öğreticileri okuyun.
Adım 13. Tasarladığınız küçük yazılım projelerinde bilginizi uygulamaya başlayın
Programlama uzmanlığınızı günlük yaşamınızda karşılaştığınız sorunlara uygulamayı deneyin. Örneğin, dosyaları toplu olarak yeniden adlandıran, metin dosyalarını görsel olarak karşılaştıran, bir dizindeki dosyaların adlarını bellek/metin dosyasına kopyalayan programlar yazın ve bunun gibi şeyler. İlk başta basit tutun.
Adım 14. Sanal bir mezuniyet projesi oluşturun
Şimdiye kadar öğrendiğiniz görsel programlama tekniklerini uygulayarak bunu sonuna kadar tamamlayın.
Adım 15. İleri düzey kurslar alarak, ayrıntılara daha fazla dikkat ederek ve çevrimiçi kaynaklardan çerçeveniz için daha fazla ipucu ve püf noktası öğrenerek daha önce öğrendiğiniz görsel çerçeve/kütüphane/paket hakkındaki anlayışınızı genişletin
Adım 16. Programlama dilleriniz için diğer görsel öğe paketlerini/kütüphanelerini arayın ve öğrenin
Adım 17. Grafik dersi alın (grafik tasarımı değil)
Çekici kullanıcı arayüzü öğeleri yazmak isteyen programcılar için çok yararlı olacaktır.
Adım 18. Bir oyun programcısı olmayı düşünün (isteğe bağlı)
Oyun programlama, çoğu bölümünde masaüstü programlama olarak kabul edilir. Oyun programcısı olmayı planlıyorsanız, bu adımları tamamladıktan sonra oyun programlama hakkında daha fazla bilgi edinmeniz gerekecektir. Oyun programcıları için bir grafik kursu bir zorunluluktur ve önceki adımlarda tercih edilen ikinci dil bir mantık/işlevsel programlama dili (tercihen Prolog veya Lisp) olmalıdır.
Yöntem 3/6: Dağıtılmış Uygulamalar Programlama
Adım 1. Dağıtılmış uygulama programlamayı ele alın
Dağıtılmış uygulama programlama, birçok kişi tarafından öğrenilmesi en zor programlardan biri olarak kabul edilir ve bilgisayar ve iletişim teknolojilerinde çeşitli bilgiler gerektirir.
Adım 2. Telefon sistemlerine ve donanımlarına hızlı bir giriş yapın
Bu adım isteğe bağlıdır. Ancak, ağ topolojilerini anlamada çok faydalıdır.
Adım 3. Hub, anahtar ve yönlendirici gibi ağ donanım mimarileri ve aygıtları hakkında bilgi edinin
Adım 4. Ağ protokolleri ve temelleri konusunda bir kursa katılın
Dağıtılmış uygulamaları programlamaya başlamadan önce Açık Sistemler Ara Bağlantısı (OSI) modeli, Ethernet, IP, TCP, UDP ve HTTP hakkında iyi bir anlayışa sahip olmanız gerekir.
Adım 5. XML dilini öğrenin ve ona alışın
Adım 6. Bir kabuk betik dili öğrenerek başlayın
Windows tabanlı programlama için bu, Windows Komut Dosyası Ana Bilgisayarı ile çalışan herhangi bir komut dosyası olacaktır. Linux tabanlı programlama için Bash betikleri ve Perl yeterli olacaktır. JavaScript, aşağıdaki nedenlerden dolayı her iki platformda da bunun için şiddetle tavsiye edilir:
- Herhangi bir işletim sistemindeki hemen hemen her komut dosyası ana bilgisayarı tarafından desteklenir (Windows Komut Dosyası Oluşturma Ana Bilgisayarı varsayılan olarak JavaScript'i destekler, çoğu Linux dağıtımında JavaScript komut dosyası oluşturma konsolu desteği için bir paket bulunur).
- Birçok geliştirici tarafından öğrenmenin daha kolay olduğu düşünülmektedir.
- İkinci bir programlama dili seçmeniz gerektiğinde (C, C++, C#, Java ve J# hepsinde ALGOL türetilmiş sözdizimi vardır) sizi diğer programlama dillerinden çok daha fazla tanıyan bir ALGOL türevi sözdizimine sahiptir.
- JavaScript öğrenerek, bonus bir yan etki olan web sayfalarının istemci tarafında komut dosyası oluşturmaya alışırsınız!
Adım 7. İlk başta seçtiğiniz komut dosyası dilini kullanarak yalnızca prosedürel programlamayı uygulayın
Daha sonra betik dilinize ve desteklediği şeylere göre daha gelişmiş programlama teknikleri ve paradigmalar kullanabilirsiniz. Tüm betik dilleri, bir düzeyde bazı prosedürel programlama yönlerine sahiptir.
Adım 8. Makineler arasında iletişim gerçekleştiren komut dosyaları yazmak için öğrendiğiniz komut dosyası dilini kullanın
Bunu yapmak için neyin gerekli olduğunu öğrenin. Basit iletişim yeterli olacaktır.
Adım 9. Bir masaüstü betik/programlama diline aktarım yapın
Tercihen, Python gibi çok paradigmalı bir dildir. Bu ikinci dile basit bir giriş yapın. Java, çoğu programcı tarafından birçok nedenden dolayı tercih edilen dil olarak kabul edilir. Ancak C# bu alanda hızla ivme kazanıyor. Java ve C# aşağıdaki nedenlerle tercih edilir:
- Her ikisi de bileşenleri (önceden derlenmiş, belirli bir görevi gerçekleştiren ve diğer programlarda kullanılabilen kod birimleri) desteklediğinden, büyük ekiplerdeki programcıları uygulama ayrıntılarından koruyan nesne yönelimli programlama dilleridir.
- Olay odaklı programlamanın yanı sıra OO ve prosedürel programlamayı bir düzeyde desteklerler.
- Dilin üzerine inşa edildiği çerçeve doğası gereği dağıtılır (Java durumunda).
- Hem açık kaynak kodu hem de çerçeve yerleşik paketleri olarak ağ oluşturma ile ilgilenen birçok hazır paketin mevcudiyeti; bu, programcıların başkalarının çalışmalarını geliştirmesini kolaylaştırır.
Adım 10. Dilin temel özelliklerine, özellikle ağ oluşturmayı destekleyenlere daha fazla odaklanın
Çıktı alma, pencere tasarımı ve teknikleri ve kullanıcı arabirimi öğeleri gibi kullanıcı arabirimi öğelerine daha az dikkat edin.
Adım 11. Dağıtılmış uygulama tasarımı ve mimarileri hakkında bir kursa katılın
Bu, kitaplar, çevrimiçi öğreticiler veya akademik kurslar kullanılarak yapılabilir. Ancak, dağıtılmış uygulamaların mimarisini ve kavramlarını anlamak gereklidir.
Adım 12. Seçtiğiniz programlama dilini kullanarak servis verilen bileşenleri ve hizmetleri oluşturma hakkında bilgi edinin
Adım 13. Aşağıdaki teknolojilerden bir veya daha fazlasını öğrenin
Hepsine en azından bir giriş yapmanız önerilir. Çoğu dağıtılmış uygulama programcısı bir veya iki programlama dilinde durmaz, her işletim sisteminde en az bir programlama dili öğrenir. Bunun nedeni, uygulamanızın "dağıtılmasını" istiyorsanız, en azından her büyük işletim sistemi için bir sürümünü sağlamalısınız.
- Ortak Nesne İstek Aracısı Mimarisi (CORBA)
- Basit Nesne Erişim Protokolü (SOAP)
- Eşzamansız JavaScript ve XML (AJAX)
- Dağıtılmış Bileşen Nesne Modeli (DCOM)
- . NET Uzaktan İletişim
- XML Web Hizmetleri
Yöntem 4/6: Kitaplık/Platform/Çerçeve/Çekirdek Programlama
Adım 1. Çekirdek programlamanın ne olduğunu bilin
Çekirdek programcılar, yalnızca diğer programcılar tarafından kullanılmak üzere programlama uygulamalarından programlama kodu birimlerine geçiş yapan gelişmiş programcılardır.
Adım 2. Henüz yapmadıysanız, yeniden kullanılabilir bileşenler/paketler oluşturmayı destekleyen bir programlama dili öğrenin
Adım 3. UML ve ORM'de ileri düzey bir kursa katılın
Çoğu kitaplık geliştiricisi bunlardan birini veya her ikisini kullanır.
Adım 4. Yazılım mühendisliği dersi alın
Adım 5. En azından modüler, bileşen tabanlı, nesne yönelimli ve olay güdümlü programlama tekniklerini ve kavramlarını öğrenin
Ne kadar çok programlama paradigması ve dili kullanırsanız, bir kitaplık/paket programcısı olarak o kadar başarılı olursunuz.
Adım 6. Bu işletim sistemleri tarafından desteklenen farklı işletim sistemleri ve programlama çerçeveleri hakkında daha fazla bilgi edinin
Adım 7. Öğrenme çabalarınızı platformdan bağımsız çerçevelere, programlama dillerine ve teknolojilere odaklayın
Adım 8. Şimdiye kadar öğrendiğiniz programlama dillerinde ANSI varsa/ISO/IEEE/W3C standart versiyonları, standartlara hakim olun.
Mümkün olduğunda standart kod kullanmaya çalışın.
Adım 9. Basit, önceden kurulmuş kitaplıkları, özellikle açık kaynaklı olanları taklit etmeye çalışın
Bu, bir kütüphane/paket programcısı olmanın ilk aşamasında faydalıdır. Birim dönüştürme ve ara bilimsel hesaplama paketleri gibi basit paketlerle başlayın. Üniversite öğrencisiyseniz, denklemlerini ve bilimsel çekirdeğini kütüphaneler olarak uygulamaya çalışarak programlama dışı derslerinizden yararlanın.
Adım 10. Programlama alanınızdaki açık kaynaklı paketleri arayın ve deneyin
İlk önce paketin ikili dosyalarını/yürütülebilir dosyalarını indirin. Kullanmaya çalışın ve güçlü ve zayıf noktalarını bulun. Bunu yaptıktan sonra kaynağı indirin ve nasıl yapıldığını anlamaya çalışın. Bu kitaplıkları veya bunların bölümlerini yeniden oluşturmaya çalışın. İlk başta, kodu gördükten sonra ve daha sonra kodu görmeden önce bunu yapın. Daha sonraki aşamalarda, bu kitaplıkları iyileştirmeyi deneyin.
Adım 11. Bileşenleri programcılara dağıtmak ve dağıtmak için kullanılan farklı yaklaşımları öğrenin
- Genellikle, kitaplık/paket programcıları, kendilerine sunulan tüm sorunları özyinelemeli ve/veya yinelemeli olarak düşünme eğilimindedir. Her bir problemi daha küçük problemler topluluğu (bir dizi daha basit görev) veya problemin kapsamını daha küçük kapsamlara indirgeyen ve sonra bu kapsamları birbiri üzerine yığan tekrarlanan bir süreç olarak düşünmeye çalışın.
- Kitaplık/paket programcıları genelleme yapma eğilimindedir. Yani, basit bir özel problemle sunulduğunda, genellikle daha genel bir problem düşünürler ve daha küçük olanı otomatik olarak çözecek olan o genel problemi çözmeye çalışırlar.
Yöntem 5/6: Sistem Programlama
Adım 1. Sistem programlamanın neleri kapsadığını anlayın
Sistem Programcıları, belirli uygulamalarıyla değil, programlama bilimi ile ilgilenir. Kendinizi belirli bir platforma bağlamayın.
Adım 2. Masaüstü Uygulamaları Programcıları için ilk üç adımı izleyin
Adım 3. Lineer Cebire giriş dersi alın
Adım 4. Calculus'ta bir ders alın
Adım 5. Mantık ve/veya Ayrık Matematik dersi alın
Adım 6. Kendinizi farklı çıplak işletim sistemlerine tanıtın
Bu şu şekilde yapılabilir:
- İşletim sistemlerinin nasıl kurulduğu hakkında fikir edinme.
- Bir bilgisayara farklı işletim sistemlerinin nasıl kurulacağını öğrenmek (isteğe bağlı, ancak önerilir).
- Birden fazla işletim sistemi kurmak. Sistemlere herhangi bir yardım paketi kurmayın; bunun yerine işletim sistemleri tarafından sağlanan yalın işlevleri kullanın.
Adım 7. Bilgisayar donanımı mimarisi üzerine bir ders alın (veya alternatif olarak kitap okuyun)
Adım 8. Farklı bilgisayar donanım platformları hakkında bir anlayış geliştirin
Adım 9. Tercih edilen donanım platformu/işletim sisteminin montaj diline giriş niteliğinde bir aşinalık edinin
Daha sonra diğer platformların/sistemlerin montajını öğreneceksiniz.
Adım 10. Prosedürel programlama kavramlarıyla birlikte ANSI C ve C++ dillerini öğrenin
Adım 11. Seçtiğiniz platformda C/C++ standart kitaplıklarını anlayın ve uygulayın
Standart Şablon Kitaplığına (STL) ve belki Aktif Şablon Kitaplığına (ATL) özellikle dikkat edin.
Adım 12. Özel platformunuzun C lezzetini anlamak için çevrimiçi kaynakları, kitapları ve kursları araştırın
Adım 13. C ve C++ ile gelişmiş kod oluşturma alıştırması yapın
Adım 14. Daha gelişmiş Montaj öğrenin
Adım 15. İşletim sistemleri tasarımında bir kurs alın
Adım 16. Seçtiğiniz belirli platforma ilişkin belgeleri bulun ve okuyun
Unix tabanlı bir işletim sistemi seçerseniz bu daha kolay olacaktır. Daha sonra çalışacağınız sistemi çok iyi anlayın.
Adım 17. Edindiğiniz bilgileri uygulayın
İlk önce küçük sistem yardımcı programları oluşturun. Genellikle şunları yapmak yararlıdır:
- Sisteminizde zaten var olan küçük araçları yeniden oluşturmaya çalışmak.
- Diğer işletim sistemlerinde bulunan yardımcı programları sizinkine taşımaya çalışmak.
Adım 18. Dilleri en yararlı sırayla öğrenin
İlk programlama dilinin önemli olduğu tek yer burasıdır. Önce ANSI C öğrenin, C++ değil, C# değil, Java ve D değil. Sonra C++ öğrenin.
-
İlk dili yalnızca C ve C ile sınırlamak, sistem programlamanın programcının aşağıdaki kavramlara aşina olmasını gerektirmesidir:
- Kaynak kodun gerçek ve tam derlemesi.
- Düşük seviyeli nesne çıktı dosyaları.
- İkili dosyaları bağlama.
- Düşük seviyeli makine dili/montaj programlama. C dilinin, bazıları tarafından montajı öğrenmek için gizlenmiş/daha kolay olduğu söylenir. Ayrıca, istediğiniz zaman koda montaj dili kodunu eklemeyi de destekler ve yalnızca prosedüreldir (Montaj gibi).
Yöntem 6/6: Programlama Bilimi
Adım 1. Bir programlama bilimcisinin ne yaptığını bilin
Programlama bilim adamları, uygulamalar geliştirmek yerine şifreleme, programlama dilleri ve veri madenciliği algoritmaları gibi bilgi işlem teknolojileri geliştirmeye çalışan çok gelişmiş programcılardır. Bu seviyeye nadiren akademik çalışma ve özveri olmadan ulaşılır.
Adım 2. Bilgisayar bilimlerinde dört yıllık bir dereceye eşdeğer bilimsel bilgiyi biriktirin
Bu, şu şekilde yapılabilir:
- Gerçek bir akademik derece almak (genellikle olan budur).
- Böyle bir derece için derslerin ana hatlarını modern üniversitelerden birinden almak ve dersleri ya kendi kendine çalışarak ya da ayrı dersler olarak almak. Bu teorik olarak başarılabilir, ancak önerilen yol ilk yoldur.
Adım 3. Bir uzmanlık alanı belirleyin
Ne kadar spesifik olursa o kadar iyi. Bu tercihlerinize bağlıdır. Bununla birlikte, bilgisayar programlama bilimindeki bazı ana konuların bir listesi:
- Algoritma tasarımı (arama, sıralama, şifreleme, şifre çözme ve iletişimde hata tespiti bazı örneklerdir)
- Programlama dilleri/derleyici tasarımı/optimizasyon
- Yapay zeka alanları (desen tanıma, konuşma tanıma, doğal dil işleme, sinir ağları)
- robotik
- Bilimsel programlama
- Süper bilgi işlem
- Bilgisayar destekli tasarım/modelleme (CAD/CAM)
- Sanal gerçeklik
- Bilgisayar grafikleri (Bilgisayar grafikleri genellikle grafik tasarım veya grafik kullanıcı arayüzü tasarımı ile yanlış bir şekilde karıştırılır. Bilgisayar grafikleri, bilgisayar sistemlerinde grafiklerin nasıl temsil edileceğini ve değiştirileceğini inceleme alanıdır.)
Adım 4. Daha yüksek bir akademik derece almayı düşünün
Yüksek lisans veya doktora yapmak isteyebilirsiniz.