Tam çaylaktan geliştiriciye mantıksal atlama mı yapıyorsunuz?


12

Birkaç yıldır çok hafif programlıyorum ve fazla ilerleme kaydedemiyorum. Bu kesinlikle beni ilgilendiren bir şey, ama henüz motive olmadım. Sonra sanırım beni neyin öldürdüğünü anladım. Okuduğum tüm kitaplar, izlediğim tüm ekran görüntüleri önemli bir şeyi kaçırmış gibi görünüyor:

Basılı ifadelerden, değişkenlerden vb. Daha karmaşık şeyler yapmaya nasıl gidebilirim?

Örneğin, Posterous gibi bir siteyi ele alalım. Bilmeyenler için, blog yayınlarını e-posta yoluyla kabul eden bir blog platformu. Blogun yazarı, blog gönderileri gönderdikleri özel bir @ posterous.com e-postasına sahiptir ve otomatik olarak biçimlendirilir ve gönderilir.

Bir geliştirici, araç ucundaki işlevlerini ve deyimlerini arka uçta böyle bir şey gerçekleştirmek için nasıl kullanır?

Bu soru gerçekten geniş görünüyorsa özür dilerim, sadece beni sinirlendiriyor. Temel kavramları iyi kavramışım gibi hissediyorum, ama aslında nasıl bir şey yapacağımı bilmiyorum .


E-postayı ayrıştırırlar ve kodlamayı korurlar ve metni bir veritabanına eklerler. Sonra tüm mesajları seçmek ve belirli bir sayfada görüntülemek için basit bir çaba. Kendi programlama yeteneğinizin eksikliğini açıklamak için bunu daha fazlasını yaparak geliştirebilirsiniz.
Ramhound

Şimdiye kadar çok şaşırtıcı cevaplar çocuklar. Artık her şey biraz daha netleşiyor. Herkese teşekkürler!
Blair Beckwith

Yanıtlar:


12

Anahtar, görevi nasıl yapacağınızı bildiğiniz (veya nasıl yapılacağını bulabileceğiniz) ayrı adımlara ayırmaktır. Nasıl yapacağınızı bildiğiniz şey, deneyim seviyenize bağlıdır.

Posterous e-posta örneğinizi ele alalım:

Gereksinimler: @ posterous.com e-postalarını kabul edin, biçimlendirin ve web sitesinde yayınlayın.

Görev 1) E-postayı kabul edin.

E-postaların büyük olasılıkla bir posta sunucusundan alınması gerekir. Belirli posta sunucunuzdan e-postaları almak için API çağrılarını araştırmanız gerekir. Ayrıca, içeriği e-postanın gövdesinden nasıl çıkaracağınızı da anlamanız gerekir (muhtemelen başka bir API çağrısı).

Görev 2) E-postayı biçimlendirin.

Görev 1'den, muhtemelen içeriğin hafızanın bir yerinde oturuyor olması. Bunu, 3. adımla uyumlu olacak şekilde biçimlendirin ...

Görev 3) İçeriği blog'a gönderin.

Bu email2blog özelliğini ekliyorsanız, muhtemelen blog gönderileri yayınlamak için bir mekanizmanız var demektir. Bu mekanizmayı kullanın ve web sitenizdeki bir metin alanından girdiyi kabul etmek yerine, 2. adımınızdaki içerikle değiştirin.

Şimdi, görevlerin her birini yerine getirmek için ifadeler ve işlevler varsa print ifadelerinden nasıl alabiliriz.

Görev 1'de API çağrılarından iki kez bahsettiğime dikkat edin? API çağrıları temelde bir başkasının yazdığı işlevlerdir, böylece işlevlerini kullanabilirsiniz. İşlevleri nasıl çağıracağınızı biliyorsanız, posta sunucusundan posta almak için ihtiyacınız olan doğru API çağrısını araştırabilirsiniz.

Biçimlendirme hakkında çok fazla tartışmadım ama String manipülasyonunu nasıl yapacağınızı biliyorsanız, nasıl biçimlendireceğinizi biliyorsunuz. Bir html sayfasını biçimlendirmek <b>bolded text</b>, dizenizdeki gibi bir yere etiket ekleme alıştırmasıdır .

Görev 3'te, blog yayınlamak için bir çeşit mekanizmanın bulunduğundan bahsettim. Bu mevcut bir blog platformu ise, bunu yeterince biliyor olacaksınız. Ancak değilse, HTTP Post ve web çerçevesiyle ilgili diğer şeyler hakkında bilgi edinmeniz gerekir.

Tüm bunları okuduktan sonra hala bahsettiğim şey hakkında bir fikriniz yoksa, umarım sizi deneyimin yerini tutamayacağına ikna etmişimdir. O zaman dışarı çık ve bir şeyler inşa et! Noob hataları yapma konusunda fazla endişelenmeyin, çünkü her geliştirici bir zamanlar noob'du.


5

Önemli olan Yapmak istediğiniz şeyler bulmak ve bunu yaparken .

Büyük şirketlerin çoğu böyle başladı.

  • Google? Brin ve Page web'i dizine ekleme konusunda tutkulu.

  • Metafilter? Matt Haughey yazma ve paylaşma konusunda tutkuluydu.

  • Twitter? Dorsey sadelik konusunda tutkuluydu ve 140 karakterden daha basit olamazsınız.

  • Stackoverflow? Joel ve mürettebat cevaplar konusunda tutkulu idi.

PHP, Perl, Python ve Ruby gibi diller aynı şekilde tasarlanmıştı. GNU / Linux da öyle. Birisi bir çizik yaptı ve bu çizik kaşınmaya başladı ve daha sonra genel tüketim için araçlarını serbest bıraktı.

Bu yüzden etrafa bir göz atın ve kaşıntınızın nerede olduğuna karar verin ve ardından kaşıntıyı çizmek için bir program yazmaya başlayın. Belki oyun oynamayı seviyorsunuz, bu yüzden bazı oyunlar yazabilirsiniz. Belki mp3 koleksiyonunuzdaki ID3 etiketleriyle ilgili bir sorununuz var ve bunu düzeltmeniz gerekiyor. Belki de aile geçmişiyle ilgileniyorsunuz ve geçmişinizdeki insanlara veya yerlere referanslar arayan web'i taramak istiyorsunuz. Ya da belki bir şekilde gerçek dünyayla etkileşim kurmak istersiniz. Ya da belki FLOS Yazılımını geliştirmek istersiniz - GitHub, Gitorious ve Sourceforge'a bir göz atın.

Tutkulu olduğunuz bir şey bulun ve programlamaya başlayın ve çok geçmeden fark etmeden önce büyük programlarınız olacak. Ve bu yüzden bir çeşit planlama iyi bir fikirdir;)


2

Yavaşça ve yavaş yavaş.

Genellikle büyük projeler için, sadece bir kod yazarak başlamazsınız. Bir yerlerde birinin bir planı olmalı. Bir şey yazıyorlar, istedikleri sistemin özellikleri. Sonra ilk sayfa / pencere / ne olursa olsun başlarlar. Sonra bir tane daha ekliyorlar. Tüm süre yavaş yavaş özelliği sonra özelliği ekleyerek, hata sonrası hata düzeltildi. Sadece ortaya çıkmakla kalmıyor, büyük bir resim, genel bir tasarım olmalı.

Daha iyi olmak için pratik yapmalısınız! Küçük bir proje ile başlayın. Basit bir şey ve bu da sizi ilgilendiriyor. Bunu yapmadan önce ne yaptığınızı planlayın, “aslında hiçbir şey yapmanın ” zor olmadığını göreceksiniz .


1

İstediğiniz kadar ekran görüntüsü izleyebilir, kitap okuyabilir ve istediğiniz kadar öğreticiyi takip edebilirsiniz, ancak hiçbir yere gittiğiniz gibi hissetmeyin. Yaratmak istediğiniz bir şey bulmalısınız. Ardından parçalayın ve oluşturmayı deneyin. Bilmeyebileceğiniz pek çok şeye gireceksiniz. Ancak onları araştırır ve gittikçe daha karmaşık görevleri öğrenirsiniz.


1

Bu zorlukla da karşılaştım ve genel olarak çözümümü buldum: Beni daha üretken hale getirmek için harici bir kaynağa ihtiyacım vardı.

Herkes kadar teknolojiden büyülenebilir, herkes kadar programlama konusunda heyecanlı ve herkes kadar öğrenmesi için akıllı ve hızlı olabilirsiniz ve sadece ellerinizi kirletip bir şeyler yapmazsanız çok şey ifade edecektir. Ancak nereden başlayacağınızı bilmek zor olabilir ve nereden başlayacağınız hakkında bir fikriniz olsa bile, topu yuvarlamak zor olabilir.

Eğer iyi bir başlangıç ​​yapıyorsanız, muhtemelen sadece bazı fikirlere ihtiyacınız vardır. Bazı programlama bulmacalarını deneyin veya düzenli olarak kullandığınız basit yardımcı programlara bakın ve kendinize "Bunu yapabilir miyim? Yapsaydım, neyi değiştirirdim?"

Açık bir düzenleyicinin veya boş bir kağıdın önüne oturmak ve "Tamam, beyin, yarat! " Demek gerçekten çok zor. Ama eğer onu yıkarsanız, ne tür bir şey yapmanız gerektiğini düşünün ve Kendinizi oradan sürün, daha uzağa gidebilirsiniz.

Ve, sadece olamayacağını bulursan yapmak , kendinizi kodu bir süre ve şartlara ve tüm size yapmak için bir iş vermek için birini almak. Seni vitese geçirecek.


1

Temel bilgiye sahip olmanız iyi - kendim bir profesyonel değilim, ama yaptığım şeyi satabilirim, bu yüzden doğru bir şey yapmalıyım. Diliniz ve geliştirdiğiniz platform hakkındaki temel bilgileri öğrenmenizi öneririm (ve sahip olduğunuz anlaşılıyor).

İlk önce ne yapmaya çalıştığınızı belirleyin ve bunu nasıl yapacağınıza dair bir fikir edinin, her şeyi daha hızlı anlamanıza yardımcı olduğu için her şeyi ayrıntılara kadar kaynatmakla ilgili. Sonra sadece Google, takıldığınız takdirde kullandığınız dilde ne yapmaya çalışıyorsunuz - hatta Stack Overflow ile ilgili sorular sorun (Ben zaten 70'den fazla soru sordum hehe)!

Şahsen googling ile öğrendim, hatta ilk başta yapmam gereken temelleri bile almadım, ancak zaten oldukça iyi şeyler yaptığım zaman, hala bir "dizi" nin ne olduğunu bilmiyordum. ;)


0

Arayüzlerin arka ucunda becerilerinizi geliştirmek için veri işlemeye başlamanız gerektiğini düşünüyorum. Büyük projelerin çoğu, verileri taşımak, dönüştürmek ve görüntülemekle ilgilidir.

Kendimi biliyorum, birkaç farklı veri erişimi ve dosya manipülasyonu ile rahat hissedene kadar daha büyük projelerde iyi bir kavrayış alamadım.


0

Biraz kafanın üzerinde olan bir şeye atlamak ve onu bulmak, yeteneklerini genişletmek için harika bir yol olabilir. O'Reilly Yemek Kitabı serilerinden bazılarına bakmayı deneyebilirsiniz:

http://oreilly.com/store/series/cookbooks.html

Böyle Sorun / Çözüm / Tartışma biçim sesler olacak, kod 'tarifleri' aradığınızı tam olarak olabilir DO şey ilginç ve nasıl çalıştığını hakkında bazı tartışma.


1
Satın almaya karar verirseniz, önce bir kupon kodu bulduğunuzdan emin olun: retailmenot.com/view/oreilly.com
DKnight

0

Bence sen daha fazlasını yapmak için kendine meydan okuyamıyorsun.

Eğer gerçekten bir şey nasıl merak araştırmak gitmek! Posterous'in nasıl çalıştığını bilmek istiyorsanız, ne tür araçlara ihtiyacınız olduğunu, bir metin kutusundan bir web sitesine nasıl bilgi alacağınızı araştırmak gibi küçük bir şeyle başlamayı deneyin. Sonra yavaş yavaş bunun üzerine inşa edersiniz. Sonraki soru bir web sitesine ve veritabanına e-posta bağlantısı kurmak olabilir.

İhtiyacınız olan en iyi araca, internete sahipsiniz.


0

Projeyi görevlere ayırmanın yanı sıra, anahtar aynı zamanda kodun yeniden kullanımını öğrenmektir. Kodunuzu, aynı şeyi yapmanız gereken diğer projelerde yeniden kullanabileceğiniz modüllere bölün.

Örneğin, bu örnek projede, büyük olasılıkla blog gönderilerini depolamak için veritabanı çalışması yapacaksınız. Veritabanına bağlanmak, sorgular yapmak, sonuçları almak vb. İçin bir veritabanı sınıfı yazabilirsiniz. Daha sonra gelecekteki tüm projelerde aynı sınıfı kullanabilir ve veritabanıyla kolayca çalışabilirsiniz.

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.