Hakkında Künye

Teknik Gelişim Rehberi

Teknik Gelişim Rehberi

Bilgisayar Bilimi’nde sağlam bir temele sahip olmak; başarılı bir yazılım programcısı olmak için çok önemlidir. Bu rehber, üniversite öğrencilerinin teknik becerilerini akademik olarak ya da akademik olmayan bir şekilde nasıl bir yol izleyerek geliştirebileceklerini aktarmak için oluşturulmuştur. Bu rehberi hangi kursu almanız gerektiğine karar vermekte kullanabilirsiniz ama aldığınız bu kursların mezun olmanız için gerekli olan en önemli şey olduğuna emin olun. Bu rehberde verilmiş olan çevrimiçi kaynaklar üniversitenizdeki kurslarla değiştirmeniz amacıyla verilmemiştir. Ama elbette, bu kurslar öğrenmelerinize yardımcı kaynak olabilir ya da bir konuya giriş niteliği taşıyabilir.

Bu rehberi kullanırken:

•Lütfen bu rehberi istediğiniz gibi kullanın.

•Bu kursların dışında öğrenmek ya da yapmak istediğiniz başka şeyler de olabilir. Üstüne gidin!

•Bu rehberdeki tüm maddeleri incelemek size Google’da bir iş garanti etmez.

•Bu rehber gelişebilir ya da değişebilir. Güncellemeler için tekrar kontrol edin.

Akademik Öğrenme için Öneriler

Computer Science Dersine Giriş

Kodlamaya temel bir giriş sunan Introduction to Computer Science kursunu alın.

Çevrimiçi kaynaklar: Udacity - intro to CS course, Coursera - Computer Science 101

En azından bir nesne yönelimli programlama dilinde kodla: C++, Java, ya da Python

Başlangıç seviyesi çevrimiçi kursları:* Coursera - Learn to Program: The Fundamentals, MIT Intro to Programming in Java, Google's Python Class, Coursera - Introduction to Python, Python Open Source E-Book

Orta seviyedeki çevrimiçi kurslar: Udacity's Design of Computer Programs, Coursera - Learn to Program: Crafting Quality Code, Coursera - Programming Languages, Brown University - Introduction to Programming Languages

•Diğer Programlama Dillerini Öğren

Repertuarına; JavaScript, CSS & HTML; Ruby; PHP; C; Perl; shell script; Lisp ve Scheme’ı ekle. Çevrimiçi Kaynaklar: w3school.com - HTML Tutorial, Codecademy, Udacity - Mobile Web Development, Udacity - HTML5 Game Development

•Kodlarını Test Et

Notlar: Bugları nasıl bulacağını öğren, testler oluştur ve yazılımını bozmaya çalış. Çevrimiçi kaynaklar: Udacity - Software Testing Methods, Udacity - Software Debugging

•Mantıksal Akıl Yürütme ve Ayrık Matematik Bilgisi Geliştir Çevrimiçi kaynaklar: MIT Mathematics for Computer Science, Coursera - Introduction to Logic, Coursera - Linear and Discrete Optimization, Coursera - Probabilistic Graphical Models, Coursera - Game Theory

•Güçlü bir Algoritma ve Veri Yapısı Anlayışı Geliştir. Notlar: Önemli data tipleri (stack, queues, and bags) , algoritma sınıflandırma (quicksort, mergesort, heapsort) veri yapıları (binary search trees, red-black trees, hash tables) and Big-O hakkında bilgi edin. Çevrimiçi kaynaklar: MIT Introduction to Algorithms, Coursera Introduction to Algorithms Part 1 & Part 2, List of Algorithms, List of Data Structures, Book: The Algorithm Design Manual

•İşletim Sistemleri Hakkında Sağlam Bilgi Sahibi Olun Çevrimiçi kaynaklar: UC Berkeley Computer Science 162

•Kullanıcı Deneyim Tasarımı (UX Design)’ı öğren Çevrimiçi kaynaklar: Udacity - UX Design for Mobile Developers

•Yapay Zekayı Öğren Çevrimiçi kaynaklar: Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning

•Derleyici İnşa Etmeyi Öğren Çevrimiçi kaynak: Coursera - Compilers

•Kriptografiyi Öğren Çevrimiçi kaynaklar: Coursera - Cryptography, Udacity - Applied Cryptography

•Paralel Programlamayı Öğren Çevrimiçi kaynak: Coursera - Heterogeneous Parallel Programming

•Sınıfın Dışında Bir Projede Çalış Notlar: Bir website yarat ve devamlılığını sağla, kendi sunucunu oluştur, ya da robot inşa et. Çevrimiçi kaynaklar: : Apache List of Projects, Google Summer of Code, Google Developer Group

•Büyük Bir Sistemin Küçük Bir Parçasında Çalış (codebase) , Var Olan Kodu Oku ve Anla, Dokümanların İzini Sür ve Hatalarını ayıkla.

Not: Github diğer insanların kodlarını okumada ve bir projeye katkıda bulunmak için çok iyi bir yoldur. Çevrimiçi kaynaklar: GitHub, Kiln

•Diğer Programcılarla Bir Projede Çalış

Not: Bu bir takım içinde iyi bir şekilde çalışma yeteneğini kazanmana ve başkalarından bir şeyler öğrenmene yardımcı olur.

•Kodlama Becerilerini ve Algoritmik Becerilerini Alıştırmalar Yaparak Güçlendir Algoritmik becerilerini, kodlama yarışmalarına katılarak deneyebilirsin.

Çevrimiçi kaynaklar: CodeJam, ACM ICPC

•Öğretim Asistanı Ol.

Diğer öğrencilere öğretmeye yardımcı olmak söz konusu derse hakim olmanı sağlar.

•Yazılım Mühendisliğinde Staj Deneyimi

Staj dönemi başlamadan daha önce staj başvurunuzu yaptığınızdan emin olun. Amerika’da staj dönemi yazın Mayıs-Ekim arasındadır. Başvurular genelde birkaç ay önceden kabul edilir.

Kaynak

https://www.google.com/about/careers/students adresinden Türkçe'ye çevrilmiştir.

Alican Yıldırım-Türkü Karacan
- 8 -