Nasıl Programlama Geliştirici Olunur: Sıfırdan 8 Adımda Uygulama Oluşturma — yazı içeriği
- “Kod yazmayı öğrenmenin en iyi yolu nedir?”
- “Nasıl programcı olunur”
- “Uygulama nasıl oluşturulur”
- Python
- Ruby on Rails
- JavaScript'i Öğrenin (AngularJS veya React gibi çerçeveleri öğrenmeden önce her zaman JavaScript'i öğrenin)
- İOS Geliştirme
- Android Geliştirme
- Ruby
- Python
- PHP
- Java
- Go
- C#
- En çok hangi uygulamaları kullanmaktan hoşlanırsınız?
- Hangi uygulamaları olmadan yaşayamazsınız?
- Oyun oynamayı sever misin?
- Bir şeyler tasarlamaktan hoşlanıyor musunuz?
- Yemek yapmayı seviyorsanız, belki de insanların ev yapımı tariflerini sergilemesi için bir uygulama oluşturmayı düşünebilirsiniz.
- Her zaman Twitter'ın nasıl çalıştığını bilmek istiyorsanız, süper basit bir Twitter klonu oluşturmayı deneyin.
- Görev yöneticilerine güvenen unutkan biriyseniz, kendiniz bir tane kurmayı deneyin.
- League of Legends'a bağımlıysanız, Riot’un API'sını incelemeyi deneyebilir ve oyun bilgilerini alabilecek ve görüntüleyebilecek bir site oluşturabilirsiniz.
- Kart oyunları oynamaktan hoşlanıyorsanız, basit bir tane oluşturmayı deneyin (örn. Black Jack)
- Diyet yapıyorsanız, kalori alımınızı kaydedecek bir uygulama oluşturmayı deneyin.
- kullanıcılar bir hesap oluşturabilir
- kullanıcılar kayıp şifreleri alabilir
- kullanıcılar şifrelerini değiştirebilir
- kullanıcılar yeni linkler gönderebilir
- kullanıcılar bağlantılar hakkında yorum yapabilir
- kullanıcılar bağlantıları yukarı / aşağı oylayabilir
- kullanıcıların geçmişlerini / etkinliklerini gösteren bir profili vardır
- kullanıcılar sosyal medyada paylaşabilir
- kullanıcılar yorumları silebilir
- kullanıcılar yorumları düzenleyebilir
- kullanıcılar kendi hesaplarını silebilir
Kullanıcılarınızın akış şemasına yapabileceği tüm işlemleri ekleyin. Örneğin, uygulamanız kullanıcıların giriş yapmasını gerektiriyorsa nasıl hesap oluştururlar? Kullanıcılar şifrelerini unutursa ne olur? Ya yanlış şifreyi girdiyseler? Kullanıcı her arabirimde ne yapabilir (yeni liste öğesi ekle> kaydet; düzenle> kaydet / sil)? Böylece, böyle devam edin. Bu, bir kalem ve kağıtla en hızlı şekilde yapılır.
Yine, uygulamanız oldukça basit olduğundan, diyagramınız çok büyük olmamalıdır.
Adım 5: Veritabanını Tasarlama
Tamam! Olası her senaryoyu planladıktan sonra, ne tür verileri tutmanız gerektiğini belirlemek için bu senaryoyu inceleyin. Örneğin, uygulamanız kullanıcıların bir hesap oluşturmasını gerektiriyorsa, hesap oluşturulduğunda kullanıcı adı, kullanıcı kimliği, kullanıcının e-postası, şifre, kullanıcının e-postasının onaylanıp onaylanmadığı gibi şeyleri de takip etmeniz gerekir. kullanıcı uygulamanızda her oturum açtığında olduğu gibi.
Bir Twitter klonu oluşturuyorsanız, tweet'in kimliğini, tweet'in içeriğini, tweet'in ne zaman yayınlandığını / retweetlendiğini, kaç retweet'in olduğunu ve kaç yıldıza sahip olduğunu bilmeniz gerekir. Ayrıca bir kullanıcının retweet ve yıldızlarının kaydını tutmanız gerekir.
Veri ilişkisini haritalamak için bir ERM (Varlık-İlişki Modeli) diyagramı çizebilirsiniz.
Gelişmiş
Planladığınız uygulama bir sunucuyla etkileşime girecekse (örn. Fullstack web uygulaması oluşturuyorsanız) veya uygulamanız bir API ile etkileşime girecekse (örneğin Yahoo! Weather'dan bilgi almaya çalışıyorsanız) ), işlemlerin nasıl çalışması gerektiği konusunda daha iyi bir fikir edinebilmeniz için muhtemelen bir dizi diyagramı çizmeniz iyi olur.
Adım 6: UX Tel Çerçeveleri
Tamam, arka ucu planladın. Şimdi, ön ucunuzu planlamanın zamanı geldi.
Umarım yukarıdaki köleler kadar heyecanlısınızdır. Neye ihtiyacınız olduğunu biliyorsunuz; artık uygulamanızın nasıl görünmesi gerektiği konusunda çok daha iyi bir fikriniz var.
İnsanlar çoğunlukla görsel yaratıklar olduğundan, kodlayacağınız her görüşün bir görseli varsa ne yapmanız gerektiğini anlamak için daha iyi bir zamanınız olur. Ancak, benden hoşlanıyorsanız ve çiziminiz çok dağınıksa,… öksürük başyapıtının… yarattığınız belirsiz parçasını neredeyse anlayamazsınız, yarattığınız sanatsal zavallı beyinlerinizi kötüye kullanarak bu adıma devam etmek doğal olarak mantıksızdır.
Neyse ki, UX / UI akışınızı planlamanıza yardımcı olmak için çevrimiçi olarak birçok tel çerçeve ve mockup aracı bulunmaktadır (örn. Gliffy, Mockflow, Framebox, Wireframe.cc, Invisionapp).
Adım 6.5 (İsteğe bağlı): Kullanıcı arayüzünü tasarlama
Bu isteğe bağlı bir adımdır, ancak ön uç geliştirme konusunda uzmanlaşmak istiyorsanız veya uygulamanızın daha güzel bir uygulamanın sizi kodlamak için motive edeceği noktaya çok benzeyeceğini düşünüyorsanız, kesinlikle devam edin ve tasarım yapın böylece tüm bu tel kafes UI öğeleri daha hoş görünümlü olanlarla değiştirilebilir.
Tasarım yapmayı seviyorsanız, muhtemelen yine de başlamadan önce uygulamayı tasarlayacaksınız - belki de 2. adımda zaten tasarladınız.
Tasarım yapmaz ancak uygulamanızın nasıl görüneceğine önem veriyorsanız, kullanıcı arayüzü kitlerindeki öğeleri kullanmayı düşünün.
Ancak, uygulamanın görünümüne fazla takılmayın. Şu anda bunun yerine bir uygulamanın işlevlerini oluşturmaya odaklanmalısınız.
Adım 7: Çözümleri Araştırma
Harika! Planlama aşamasını tamamladınız… ama tüm bunları nasıl kodlamanız gerekiyor?
Bir programcı olarak öğrenmeniz gereken önemli bir beceri, başka bir geliştiricinin yazdığı bir şeyi ne zaman kullanmanız gerektiğini ve işlevi ne zaman kendiniz oluşturacağınızı değerlendirmektir.
Herkes benzersiz bir uygulama oluşturduğundan, her kullanım durumu aynı değildir. Bu nedenle, mevcut bir çözümü ne zaman kullanacağınızı ve kendi çözümünüzü ne zaman oluşturacağınıza karar vermelisiniz ve bunu deneyimle daha iyi hale getireceksiniz.
Geniş bir okyanusta kaybolan yönsüz bir tekne gibi hissediyorsanız, derin bir nefes alın ve panik yapmayın. Bunu yapabilirsiniz.
Araştırma, “Google-fu” nuzu geliştirme ve bir şeyler oluşturma konusunda daha fazla deneyim kazandıkça, sonunda bu sürecin bir askıya alınmasını elde edersiniz.
Çözümlere Bakış
Çizdiğiniz tüm diyagramlara ve 2. adımda yaptığınız işlev listesine göz atın.
Nasıl inşa edeceğiniz hakkında hiçbir fikriniz olmayan bazı şeyler nelerdir?
Örneğin, kullanıcıların bir hesap oluşturması gerekiyor mu? Uygulamanız gerçek zamanlı güncellemelere mi dayanıyor? Hangi işlevlere ihtiyacınız var?
Çoğu zaman, gerçek zamanlı senkronizasyonu (ör. Firebase), ağ oluşturma / yönlendirme (örn. İOS uygulamaları için AFNetworking), kimlik doğrulama ve UI ile ilgili bileşenler (ör. Gibi) gibi büyük işlevler için mevcut bir çözümü kullanmak iyi bir fikirdir. flipboard veya pinterest-esque uygulaması).
Arka uçla ilgili bileşenleri / paketleri / mücevherleri vb. Aramanız için birçok çevrimiçi veritabanı vardır, ancak diğer insanların yazdıklarını değerlendirirken dikkatli olmanız gerekir; bunları körü körüne kullanmayın. Umarım şu anda çok karmaşık bir şey inşa etmeyeceksiniz, bu yüzden şu anda muhtemelen diğer insanların yazdığı bileşenlere ihtiyacınız olmayacak.
Her halükarda, başlamak için en iyi yol, diğer geliştiricilerin sizden önce neler yaptığını incelemek ve kararlarının ardındaki mantığı öğrenmek. GitHub en iyi arkadaşın.
Deneyimli bir geliştiricinin belirli bir işlevle ilgili araştırma sürecinin gerçek bir örneği için, Angular-Plunker’ın yaratıcısının Plunker’ın sürükle ve bırak yönergelerini nasıl oluşturduğu hakkında bu gönderiye göz atabilirsiniz.
Başlamak için Araç Seçme
Bir web uygulaması oluşturuyorsanız, Yeoman'ı kontrol ederek projenizin yapısını kurmanıza yardımcı olarak yeni projelere hızlı bir şekilde başlamanıza yardımcı olmayı amaçlayabilirsiniz. Bir web uygulaması oluşturuyorsanız, Yeoman'ı kontrol ederek projenizin yapısını oluşturmanıza yardımcı olarak yeni projelere hızlı bir şekilde başlamanıza yardımcı olmayı amaçlayabilirsiniz.
Bir React uygulaması oluşturuyorsanız, başlangıç kitlerini ve mevcut Flux uygulamalarını da kontrol edebilirsiniz. HTML5Boilerplate ve Bootstrap, uygulamanız için popüler ön uç şablonlardır. Sıklıkla, kazan plakaları görev yönetimi için Gulp veya Grunt kullanır.
Bazı mevcut bileşenleri veya çözümleri kullanacağınız için, bağımlılık yönetimi için de bower yüklemeniz gerekir (iOS geliştiricileri için Node.js ve CocoaPods kullanan kullanıcılar için npm). Endişelenmeyin, çoğu zaman bu araçlar size bunları nasıl kuracağınızı öğretecek öğreticilerle birlikte gelir.
8. Adım: Uygulamayı Oluşturma
Evet! Şimdi uygulamayı oluşturmaya hazırsınız! Uygulamanızı oluştururken aklınızda bulundurmanız gereken bazı ipuçları.
Kontrol Listesi
Uygulama işlevini işleve göre oluşturmaya odaklanmalısınız. Dolayısıyla, yorum sistemi gibi bir görevi tamamlamadıysanız aniden bir kullanıcı profili görünümü oluşturmaya başlamayın. Başka bir deyişle, bir form oluşturuyorsanız, işlev tamamlanıncaya kadar hem ön hem de arka uç kodu üzerinde çalışmalısınız.
Sonuç olarak, ilerlemenizi takip etmek için, yapılacaklar listesi yazıp kontrol listesi olarak kullanabilirsiniz.
Önce Testleri Yaz
Bir oyun uygulaması oluşturmadığınız sürece, özelliği gerçekten kodlamaya başlamadan önce işleviniz için bir test yazmak iyi bir fikirdir. Hatalar kaçınılmazdır, ancak test hatalarınızı ve buggy kodunu üretime sokma şansınızı büyük ölçüde azaltacaktır.
Kabul edilirse, yazma birimi testleri zaman alır ve bazen buna değip değmeyeceğini sorgulayabilirsiniz.
Bu nedenle, özellikle yeni başladığınız ve basit bir şey oluşturduğunuz için, küçük başlamak ve Test Odaklı Geliştirme (TDD) yapma alışkanlığına girmek iyi bir fikirdir.
Artık bir proje yöneticisinin dirgeniyle arkanıza yaslanmadınız, değil mi?
Birim sınama düzenleriyle ilgili ipuçları için bu makaleye göz atabilirsiniz. Akılda tutulması gereken bir başka ipucu da çok fazla önemsizliği öne sürmekten kaçınmaktır.
JavaScript için Jasmine veya Karma, Ruby için Rspec, Python için PyTest, PHP için PHPUnit, iOS geliştirme için xCTest'e alternatif olarak Hızlı veya sizin için işe yarayacak herhangi bir araç gibi birçok test aracı arasından seçim yapabilirsiniz. .
Ayrıca, bir iOS veya Android uygulaması oluşturuyorsanız, Crashlytics'e göz atmak iyi bir fikirdir.
Git Kullan
Git, bir sürüm kontrol sistemi ve tam geçmiş ve tam sürüm izleme özelliklerine sahip tam teşekküllü bir depodur. İlk uygulamanızı oluştururken Git'in nasıl kullanılacağını öğrenmeye başlamak iyi bir fikirdir. Bu şekilde, hatalarınızı kolayca geri alabilir, kayıp verileri kurtarabilir ve daha fazlasını yapabilirsiniz. Ayrıca, gelecekte bir geliştirici ekibiyle çalışmayı planlıyorsanız, yine de git'i kullanmanız gerekecektir. GitHub, açık kaynak projeleri için en popüler Git depo barındırma hizmetidir, Bitbucket ise özel depolar içindir.
Git'i kullanırken sorun yaşarsanız, En Yaygın 10 Git Sorunu ve Bu Sorunların Çözümü ile ilgili bu yazı size yardımcı olabilir.
Sıkışırsanız…
Yeni başlayan bir kişi olarak, bu hamsterdan daha sık hissetmeyeceksiniz.
Yalnız değilsin. Bazen, tüm yapmanız gereken bir mola verin ve sorunun kaynaşmasına izin verin, böylece zihninizi temizleyebilirsiniz.
Bu hala işe yaramazsa, kendinizi açmanın bazı yolları şunlardır:
Google
7. adımda Google-fu'dan bahsettim, ancak Google'a nasıl bağlanacağını öğrenmenin tüm programcıların edinmesi gereken önemli bir beceri olduğunu vurgulayayım. Bir hataya takılırsanız veya kodunuzun neden çalışmadığını bilmiyorsanız, Google için iyi bir fikirdir.
StackOverflow'da sor
Muhtemelen google sonuçlarınızın StackOverflow'daki soruları ve yanıtlarını göstereceğini fark etmişsinizdir. Kıçını kapattıktan sonra sorununa hala bir çözüm bulamazsan, StackOverflow'da bir soru göndermeyi deneyebilirsin.
Araştırmanızı sorunuzda yaptığınızı göstermeyi unutmayın; bu şekilde bir yanıt alma olasılığınız daha yüksektir.
Alternatif: Bir Mentor Bulun
Bazı insanlar StackOverflow'un başlangıç dostu olmadığını söyleyecektir, çünkü yeni başlayanlar sorularını nasıl ifade edeceklerini bilmiyorlar. Peki ya probleminizin ne olduğunu bile bilmiyorsanız?
Headdesking'in eşiğine gelirseniz (veya zaten headdesking'iniz varsa), alnınızı kötüye kullanmak zorunda kalmazsınız (başınıza yeterince sert vurursanız, braincellleri kaybedersiniz).
Gelişiminizi ve öğrenme sürecinizi kolaylaştırmak için harika bir alternatif, deneyimli bir programcıdan yardım almaktır. Bir şekilde aptalmış gibi hissetmenize gerek yok çünkü X kişisi ünlü bir uzman ve kendi kendini yetiştirmiş bir programcı. İnsanlar basitçe farklı öğrenirler ve yeni başlayanlar kişisel rehberlikten yararlanır, çünkü şu anda çok önemli olmayan ama aslında kötü bir uygulama olan hatalar yapıyor olabilirsiniz.
Unutmayın, o zamanlar kendi kendini yetiştirmiş birçok geliştirici, şu anda kullanabileceğiniz hizmetlere sahip değildi.
Son İpucu
Programcılar her zaman hata yaparlar, bu nedenle yazdığınız bir testi bile geçemediğinizde veya sürekli kendi başınıza taktığınız zaman cesaretiniz kırılmaz. Yani, iOS9, Android Lollipop veya kullanmayı sevdiğiniz bazı uygulamaları düşünün. Tabii ki en olgun uygulamalar bile hala hatalara sahip, bu yüzden orada en mükemmel, hatasız uygulamayı oluşturabileceğinizi varsaymayın (elbette, bu kendiniz için düşük standartlar belirlemeniz gerektiği anlamına gelmez - her zaman kaliteli uygulamalar oluşturmaya çalışın).
Buna ek olarak, bir şeye saatler hatta günler geçirmeniz ve istediğiniz gibi çalışmasını sağlamakta zorlanmanız çok yaygındır. Yeni özellikleri hızlı bir şekilde programlamak kolay olsaydı, dünyanın yeni programcılara ihtiyacı olmazdı. Cehennem, şu anda muhtemelen kusursuz bir iOS100 kullanıyorduk ve Matrix'teki gibi dijitalleştirilmiş bir dünya inşa ederdik.
Böylece, çoğu zaman insanlar sizi bir şeyler inşa etmeye başlamaya teşvik ettiğinde “hata yapma” terimini duyarsınız. Öyle demek istiyorlar. Bir programcı olarak kabul etmeniz gereken bir şey, özellikleri bir çırpıda canlandırabilecek bir badass kodlama makinesi olmayacağınızdır. Çok başarısız olacaksınız ve sorun değil.
Yine, bir acemi olduğunuzu hatırlayın, bu yüzden başlangıçta birçok şey kaçınılmaz olarak zor olacak. Basit olması gerektiğini düşündüğünüz bir şeye çok zaman harcayacaksınız ve zor bir yokuş yukarı mücadele gibi görünecektir, ancak daha fazla deneyim kazandıkça işler daha kolay olacaktır. Sonunda ilk uygulamanızı oluşturmayı başardığınızda bu başarı duygusunu dört gözle bekleyin ve uygun görürseniz uygulamanızı satmayı bile düşünebilirsiniz.
Sıkça Sorulan Sorular
Sıfırdan uygulama geliştirmeye başlamak için önce hangi programlama dilini öğrenmem gerekir?
Başlangıç için Python veya JavaScript gibi geniş topluluk desteği olan, sözdizimi görece sade diller tercih edilir. Hangi dili seçtiğinizden çok, seçtiğiniz dilde temel kavramları (değişken, döngü, fonksiyon) gerçek bir proje üzerinde pekiştirmeniz önemlidir.
8 adımın tamamını bitirdiğimde gerçekten çalışan bir uygulama ortaya çıkar mı?
Bu adımlar sizi fikir aşamasından çalışan bir prototipe götürecek şekilde tasarlanmıştır. Ancak ilk uygulamanın mükemmel olması beklenmez; asıl amaç tüm geliştirme döngüsünü baştan sona yaşayarak somut bir deneyim kazanmaktır.
Programlamayı kendi başıma öğrenmek ne kadar sürer?
Bu tamamen günlük ayırdığınız süreye ve hedeflediğiniz alana bağlıdır. Düzenli çalışma ve gerçek proje deneyimiyle temel uygulama geliştirme becerileri birkaç ay içinde kazanılabilir; ancak profesyonel düzeye ulaşmak genellikle yıllar içinde süregelen bir öğrenme sürecidir.