Tam bir program mı oluşturuyorsunuz?


15

Kitap okumak, video izlemek ve öğreticileri gözden geçirmek çok kolaydır. Not almak ve aslında materyali öğrenmek biraz daha zor olabilir, ancak o zaman bile, iyi bir beyne ve adil bir ilgiye sahip olan herkes yeterince kolaydır (bahsetmemek, eğlenceli).

Mesele şu ki, sizi tam bir program veya web sitesi yazmaya hazırlamıyor. Diyelim ki o gençlersiniz (sadece lise, gerçek (üniversite düzeyinde) bilgisayar bilimi veya programlama dersleri ve gerçek dünya deneyimi yok) ve Groupon ile çıkıyorsunuz. Ya da Mark Zuckerburg, dahi olduğundan emin ve çok yetenekli bir programcıydı ... ama nasıl?

Programlamaya mutlaka yeni değil, gerçek uygulamaları ve gerçek programcıları programlamaya yeni olan kişilerin bunu geliştirmeye nasıl devam etmelerini öneriyorsunuz? "Geliştirme süreci" nedir - özellikle tek programcılar için (ya da belki 2-3 genç)?

Ayrıca, web geliştirme ile ilgili olarak süreç nedir? Facebook veya Groupon gibi bir çerçeve ile yazılmış mıydı (CodeIgniter veya Zend for PHP gibi)? Yoksa kendi çerçevelerini mi geliştiriyorlar? Nasıl harika bir fikir bulacağımı sormuyorum, ama harika fikirleri etkili bir şekilde nasıl uygulayacağım? Kimsenin tavsiyesi var mı?

C ve C ++ (başta C Programlama Dili ve C ++ Programlama Dili) üzerine birkaç kitap okudum ve AP Bilgisayar Bilimi (yanı sıra Java ve OOP hakkında birkaç ek kitap okudum) aldım. Ayrıca PHP (ve CodeIgniter) ve Python üzerinde birkaç öğreticiler okudum. Ama hala lisedeyim ve teknik olarak birkaç ay daha staj yapacak kadar yaşlı değilim.


3
Reading books, watching videos, and reviewing tutorials is all very easy. Evet, onları okumak kolay, onları anlamak zor.
yannis

@Yannis Rizos Aslında onları anlıyorum ve bundan sonra cümle hakkında konuşuyorum.
Bob

@Bob materyali öğrenmek ve gerçekten anlamak oldukça farklı, ikincisi çok daha zor. "Anlayış" konusundaki kişisel tanımım, konuyu on yaşında bir çocuğun anlayamayacağı şekilde açıklayabildiğim zamandır. Çabuk, açıklamak "arayüzler" :)
Thanos Papathanasiou

1
@ThanosPapathanasiou Yazılım, donanım veya OO konsepti? :)
yannis

2
@YannisRizos, on yaşında bir çocuğa yapacağınız şeyleri açıklamanın güzelliği, üçünü de kapsayacak basitleştirilmiş bir örnek kullanmak zorunda kalacaksınız :)
Thanos Papathanasiou

Yanıtlar:


8

Programlamanın nasıl yapılacağını bilmek ile bir programın nasıl yapılandırılacağını bilmek arasında bir fark vardır (yazılım mimarisi).

Belirli bir programlama dili hakkında basit bir kitap size yalnızca bir programın mimarisini ayarlamak için kullanabileceğiniz araçları öğretecektir.

Yazılım mimarisinde size yardımcı olacak kitaplar da var. Aramanız gereken konular tasarım desenleri , yazılım soyutlaması , yazılım mimarisi / tasarımı ve daha fazlası ... ( Head First Design Patterns benim için gerçek bir göz açıcıydı.)

Daha geniş bir kaynak kümesi için bu soru ilginizi çekebilir.

Tüm bir programı düzgün bir şekilde nasıl yapılandıracağınızı öğrenmenin en iyi yolu, bunu yaparken deneyime sahip, bunu yaparken önerilere ve yeni tekniklere çok açık olmaktır.


6

(İndie) oyun geliştirme ile aynı yaygın sorun: nasıl bitirilir.

Gerekli tüm bilgilere sahip olduğunuz veya öğrenmeye istekli olduğunuz için bunu yapabileceğinizden emin olmanın dışında - ve diğer insanların bunun imkansız olmadığını kontrol ettiğini kontrol ettiniz ...

... "bitirmeyi" mümkün kılan en önemli şey hedefler koymaktır .

Hedefler ulaşmak için hedef, onlar oraya nasıl tarif değil, sadece uygulamanızın bir ilk sürümü "bitmiş" olarak kabul etmek için gereken temel gereksinimleri / özellikleri nedir tarif etmelidir. Ayrıca, zaman içinde hedefleri çok fazla belirlemeyin.

Hedeflerinizi bir yere yazın. Bunu yazmak.

Hedefleri belirledikten sonra, ona ulaşmak için sadece yollar bulmanız gerekir. Bu ünlü "yol" bu varış daha ilginç. Duvarlara ulaşma ve ne kadar yanlış olacağınızı keşfetme konusunda endişelenmeyin. Çoğu zaman, konu yeniyse, yanlış anlayacaksınız ve nedenini öğrenip doğru anlayabileceksiniz ve hedeflere yaklaşmak için başka bir kurulum gerçekleştirebileceksiniz.

Oyun tasarımında bile, oyuncunun soyut bir şekilde bile, ne yaparsa yapsın, ne yapması gerektiğini bilmesi için hedefler sağlamanız gerektiğini biliyoruz.


4

Yüzmek hakkında çok şey okumak bir yüzücü yapmaz. Tabii ki, gerekli bilgi ile bir tane hazırlar, suya atlamanız gereken bir yüzücü olmak için.

Görüyorum ki, bunu yapmayı düşündüğünden / okumasından daha çok yapan, başarılı olanlar.

Bir yüzücü olmak istiyorsanız, suya atlayın ve yüzmeyi öğrenin, eğer bir programcı olmak istiyorsanız, bir fikirle programlamaya başlayın ve programlamayı öğrenin.

Peter norvig'in bu konuyla ilgili makalesine inanıyorum: 10 yıl içinde kendinize programlama öğretin


2
İyi cevap! Bir gün programlamaya hazır olduklarını umarak programlama üzerine kitap okumaya (okumaya başlayan) iki arkadaşım var . Bunu asla hissetmeyeceksin. Sadece soğuk suya atlayın ve gerçek bir proje üzerinde çalışmaya başlayın. Çok karmaşık olduğunu düşünüyorsanız, daha küçük bir tane seçin. Tamamlanıncaya kadar üzerinde çalışın. Proje sırasında, gittiğinizde ortaya çıkan açık konulara göre kitap ve okuma arayın.
Giorgio

1

Yazılımın uygulama yönlerine çok fazla odaklanmanız gibi görünüyor , bu da tüm yazılım geliştirme sürecinin sadece bir kısmı (bkz. SDLC). Bazı yazılım yöntemlerine bakmanız ve beğendiğiniz bir yöntemi nasıl kullanacağınızı öğrenmeniz gerekebilir. Bunun dışında, vaka incelemelerini okuyun, yazılımınızda da kullanmayı düşündüğünüz her aracın artılarını ve eksilerini bulun, değerlendirin ve oradan gidin. Sorunuzu hızlıca okuduktan sonra , yazılımın Analiz ve Tasarım alanlarına odaklanmanız ve UML, ayrışma ve belki de bazı tasarım desenleri hakkında bilgi edinmeniz gerekebilir .

Bu yardımcı olur umarım..


0

Kısa cevap verin, hedeflerinizi belirleyin ve başlayın.

Bunu size öğretmek için bir kitap ya da yol yoktur, ancak deneyimden faydalanır.

Çok fazla hata yapacak ve yavaş yavaş deneyim kazanacaksınız. Eğer bir sorunla karşılaşırsanız, bir düşünün, bir çözüm bulmaya çalışın ve başarısız olursa stackoverflow'a gidin ve yardım alın. Ayrıca kod incelemelerini mümkün olduğunca erken ve mümkün olduğunca yapın.

İlk projenizi bitirdikten ve teknik sorunları iyi bir şekilde kavradıktan sonra, yazılım mühendisliğinin daha soyut ve daha yüksek kaldıraç konularını aramaya başlayın.

Yeni kazandığınız ortak sorunlar bilincinizle, ilk projeniz sürdürülemez bir karışıklık olacağından, kitapların temiz ve ayrıştırılmış kodlara sahip olma kavramlarını özetleyeceksiniz.

Kitaplar (olağan şüpheliler):


0

Bu noktada programlama hakkında okumayı bırakmanız ve programlamaya başlamanız gerekir. Bir web sitesi oluşturmak istiyorsanız, seçtiğiniz çerçeve için bir eğitimden geçin. Sadece size hitap eden birini seçin. Çerçeveyi nasıl kullanacağınızı öğrenmek için öğretici üzerinde çalışın, ardından kendi web uygulamanızı oluşturmaya başlayın.

Bir kod yazdıktan sonra, programlama teknikleri hakkındaki kitapların çok daha fazla anlamı olacaktır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.