En iyisi olmak istiyorum, hiç kimsenin olmadığı gibi… - Bölüm 1

Tamam, muhtemelen buradasınız çünkü Yazılım Mühendisliği dünyası hakkında daha fazla bilgi edinmek istiyorsunuz, ya kodlama alanında yenisiniz ve hangi adımları atmanız gerektiğini bilmek istiyorsunuz, ya da belki okuldan bazı deneyimleriniz var. veya bir çevrimiçi kurs, ancak bazı sözdizimini öğrendikten sonra takılıp kalıyorsunuz ve oradan nereye gideceğinizi bilmiyorsunuz. Herkese açığız.

Bu makale, güçlü bir temel inşa etmek için en önemli kırılma noktalarının olduğuna inandığım yolda her adımı yıkmaya çalışırken deneyimlerime ve anlayışa dayalı mükemmel bir yazılım geliştiricisi olmak için atılacak doğru adımlara ışık tutacaktır. kodlama dünyasına girin. Başkalarının yaptığını gördüğüm en yaygın hataları ve belki de kendi hatalarımızı vurgulayacağım (⊙. will).

“En iyi olma yolculuğu tek bir adımla başlar, ancak herkes zirveye ulaşmak için gereken tüm adımları alamaz. Başarıya giden hiçbir kısayol yoktur, atılan her adım kazanılan yeni bir deneyimdir, paha biçilmezdir ve daha kolay bir yol için işlem göremez. Yeni zirvelere ulaşmak için kişi mücadele etmek ve korumak zorundadır. Bir geliştirici yalnızca karşılaştığı ve çözdüğü sorunların sayısı kadar iyidir ”

Bu rehber, öğrenciler için LONG yazılım mühendisliği yolculuğunun başlangıcında en etkili olacak olsa da, başkalarına da sıkışıp kalabilecekleri için değerli bilgiler sağlayacaktır. İlk yıllarında, ikinci yıllarında veya kariyerlerinde daha fazla rutinde olsalar bile.

Daha fazla uzatmadan, birlikte ilk adımı atalım.

Java - Daha kolay bir C ++

Lise veya Kolej'de CS1 (Computer Science 1) ve CS2 Java ile sunulabilir. Bu sayısız sebepten dolayı çok tartışmalı bir ilk dildir, ancak bunun buna bağlı olduğuna inanıyorum. Java'yı kod dünyasına ilk girişiniz olarak öğrenmek, nasıl uçulacağını öğrenmek için yuvalarından çıkmış bir kuş gibi, ya da ilk kez eğitim tekerleği olmadan ilk kez bir bisiklete binmek zorunda kalırsınız. Fakat daha sonra, bu acıya alıştığınız için teşekkür edersiniz, çünkü Java sizin gibi çeşitli kavramları çok erken bir aşamada hızlıca tanıtır ve bunlara dahil eder.

  • Hem kare hem de kıvırcık nesneler, ilkeller, parantez ve köşeli ayraçlar
  • Çok ayrıntılı ve statik olarak yazılmış sağlam bir dil
  • Yeni başlayanlar ve String ve int gibi küçük anahtar kelimeler için yazma hızını artırmaya yardımcı olacak, tekrar tekrar birçok şeyi yazacaksınız.

Blue Pelican'ı Charles E. Cook tarafından şiddetle tavsiye ediyorum, bu, bilgisayar biliminin tarihi ve amacı ya da yazarları hakkında uzun bir giriş yapan sıkıcı ve sıkıcı Java ders kitaplarının aksine, basit bir merhaba ile konuya giriyor. daha basit alıştırmalar ile gelişen dünya örneği.

Kendine bir kopya almak ister misin? Bugün Amazon'dan ciltli kılıfı alın ve ücretsiz BlueJ IDE ile alıştırmalar yapmaya başlayın

Kitaba Bağlantı: https://amzn.to/2Y0qzaO

BlueJ IDE ile bağlantı: https://www.bluej.org/

Java'ya geri dönmek, Python gibi basit bir dilden öğrenmeyi kesinlikle çok daha zor, ancak gelecekte Java'dan Python veya JavaScript gibi başka bir dile geçtiğinizde daha fazla zorluk çekmeye başladığınızdan, almak daha kolay olacaktır. Python'dan Java'ya geçerken zorluk yaşayacağınızı ve tüm düşünce sürecinizi değiştirmek zorunda olduğunuz için yapmak için inanılmaz derecede zor bir değişiklik olduğunu anlayın.

Peki, şimdi biraz Java yapıyorsanız, daha fazlası için ne zaman hazır olduğunuzu bilmeniz gereken ana kontrol noktaları nelerdir? Ne zaman seviye atabileceğini nereden biliyorsun?

  1. Herkes Seviye 1'de başlar. Burası, ints, double, boolean ve ayrıca string gibi ilkel şeyleri öğrendiğiniz yerdir. Ekrana metin yazdırabilir, denklemler yazdırabilir, çiftlere harcayabilir ve tersini yapabilir, dizeleri ve sayıları birleştirebilir ve sadece temel etkileşimlerle ilgilenebilirsiniz. Buraya tavsiyem, bir Chick-Fill-A oluşturmayı deneyin veya (Buradaki favori restoranın adını girin) Güzel bir tebrik ekranı bastığınız, müşterilere yapılan değerler için siparişleri ve toplam vergiyi içeren Hesap Makinesi.
  2. Seviye 2, işlerin eğlenceli geçtiği yerdir. Burada, eğer ifadeler, döngüler için, döngüler için ve Tarayıcıdan daha karmaşık ama yine de çok basit hale getirmek için Tarayıcı girişini, 8 soru soran bir Magic 8 Ball, kullanıcı girişi alan gerçek bir restoran hesap makinesi gibi basit programlar yapmak temel soruları cevaplamak için döngüler ve girdi kullanan metin tabanlı oyun. Bu, şu ana kadarki en önemli seviyelerden biri. Bu yüzden, ifadeler ve döngüler gerçekten ne kadar güçlü olursa olsun, buradaki bilgisayar biliminin gerçek temelleri olduğu için gerçekten zaman ayırın. Oh ve yöntemleri unutmayalım, hangi yöntemlerin ne olduğunu ve bir sonraki seviyeye geçmeden önce bunları nasıl kullanacağınızı bulmaya çalışın, bu hayatınızı çok daha kolaylaştıracak.
  3. Sanırım çoğu insan kodlamaya giriyor çünkü bir kısmı bir sonraki büyük uygulamayı veya bir video oyununu ya da eğlenceli ve etkileşimli bir şeyler yapmak istiyor. Bunu dikkate almak, seviye 3'ü, temel kriterin Hangman'ın metin tabanlı bir versiyonunu yarattığı hedefin ilk adımıdır, şimdi orada deneyimli geliştiriciler için bile, herkesin bunu Nesneler dışında Dizeler kullanmadan denemelerini istiyorum. bu, Diziler veya ArrayLists veya String.split (“”) yok anlamına gelir. Bu aşamada ilk aşamada kodunuzun optimizasyonu veya performansı aklınızda bile olmamalıdır. İnsanların yaptığı en büyük hatalardan biri, Strings'in gücünü ve ne kadar değerli olduklarını hafife almak, dürüst bir şekilde her şeyi yapabilirsiniz ve Strings ile gökyüzünün sınırı. Yaratıcı olun, kutunun dışında düşünün, fikirlerinizi sadece kod yerine kağıda yazın, her adımı küçük ve basit bir şeye ayırın ve kodlamaya çalışın.
  4. Eğer bu kadar ileride olsaydın, iyi iş çıkardın! Kendinizi sırtınıza yaslayın ya da daha iyisi, ancak bu noktaya kadar dayanan tek kurtulanlar için neşeyle çığlık atarak aşağı yukarı zıplayın, dürüstçe gerçekten iyi iş çıkardınız ama yolculuk daha yeni başladı. Hangman'dan sonra, şimdi Java'nın sunması gereken, özellikle Diziler, Dizi Listeleri, HashMaps, Kümeler, Yığınlar, Kuyruklar, Bağlantılı Listeler ve Ağaçlar gibi veri yapılarını öğrenme zamanı. Tabii ki hepsi bir kerede değil, Seviye 4 sadece Dizi ve Dizi Listelerinde ustalaşmakla ilgili. Alışveriş sepetinize ürün eklemek veya kaldırmak ya da değiştirmek için farklı komutlar girebileceğiniz küçük bir market simülasyonu yapmayı deneyin.
  5. Şimdi dizi ve dizi listelerinin büyüsünü öğrendiniz, geri dönün ve cellat'ı daha iyi yapın. Ama belki de önce Setler hakkında bilgi edinin ve bazı şeyleri kolaylaştırabilir.
  6. Metin dosyalarını okumak için Tarayıcıları kullanmayı öğrenin, ardından her harfin ilk önce kaç kez göründüğünü sayın, İPUCU: KULLANIM HASH MAP. Her bir mektubun numarasını Moby Dick veya İki Şehrin Masalları gibi büyük bir kitapta bastırın, ne kadar sürdüğünü takip edin, biraz zaman alabilir ancak bu süreci daha hızlı hale getirmek için optimizasyonlar arayabilirsiniz. Kodunuz saatler sürerse, çok yanlış bir şey yapıyorsunuz demektir.
  7. Yığınlar, Kuyruklar, LinkedLists, Trees, sonunda bir veri yapıları sınıfında öğreneceğiniz şeylerdir, bu yüzden çok fazla endişelenmeyin, eğlenceli bir uygulama oluşturmak için önemli değil. Burada bir API hakkında bilgi edinmenizi, Maven hakkında bilgi almanızı ve bu sayede anlamlı bir şeyler yapmak için kendi uygulamanıza yazmış olduğunuz kodları nasıl kullandığınızı öğrenin. Bu aynı zamanda, Github'un temellerini durdurmak ve öğrenmek için harika bir zamandır, çünkü bunu ömrünüz boyunca kullanacaksınız. Bir kullanıcı arayüzü ile Masaüstü uygulamaları yapmak için bazı haber akışlarını Reddit'ten çekmeyi deneyin veya JavaFX'e bakın.
  8. Her yeni programcının yapması gereken bir başka mutlak oyun oluşturmaktır. Şimdi Call of Duty gibi bir şeyden bahsetmiyorum, henüz 3D hakkında düşünmeyin. İlk önce ekranda hareket ettirmek için bir sprite elde eden basit bir 2D oyun, daha sonra hareket ettirmek için bazı düşmanlar ekleyerek, mermileri vurarak ve sonunda Zelda, Mario veya Pokemon gibi yana kaydırıcılar ve platformlar almaya başlayabilirsiniz. Bunları Java'da nasıl yapacağınızı öğrenmek için, aşağıdaki siteyi ilk önce 2D oyunları öğrenirken yoğun bir şekilde kullanmamı önerebileceğim en iyi yer. Temelleri temelden örten öğreticileri takip etmeyi çok kolaylaştırıyorlar. http://zetcode.com/tutorials/javagamestutorial/

Şu an itibariyle, Lise veya Kolej'de 1-2 yıl Java ile eşdeğer bir deneyim kazanmışsınızdır. Gerçek bir iş ya da stajyerlik için, bu yeterli değildir ancak, harici sistemlere nasıl bağlanacağınızı, REST API Çağrıları'nı nasıl yapacağınızı, bir UI ile nasıl çalışacağınızı ve bir veritabanına yazmayı nasıl okuyacağınızı bilmeniz gerekecektir. Nerede olduğunla ve buraya nasıl geldiğinle gurur duymalısın, ama şikayet etme. Şimdi gerçek başlangıç ​​çizgisindesin. Zirveye ulaşmak için en iyi rehberin bir parçası olarak, en iyi yazılım mühendisi olan Java'nın doğal ilerlemesi, Android'in Java ile yazıldığı haliyle Android Uygulama Geliştirme'yi öğreniyor olacaktı. Burada, öğrendiğiniz temel mantıksal becerilerden faydalanabilir ve bunları bir UI'ye, daha fazla sensöre ve bilgiye, gerçekten de internete ve bugünlerde bir telefonun sahip olabileceği tüm yeteneklere, istiridyenizin dünyasına bağlayabilirsiniz.

Bu, en iyi olma yolunda rehberimin sadece bir kısmıydı, projelere ve API'lerin çalışmaya başlamasından profesyonel bir android geliştiricisi olma konusunda derinlemesine devam edecek olan 2. bölüme dikkat edin. Gelecekte, JavaFX kullanarak Hangman'dan bir Masaüstü Uygulamasına pratik ve gerçek yaşam kodlama örnekleri üzerinde derinlemesine gitmeye adanmış bir video dizisi olabilir veya olmayabilir, görmek istedikleriniz ve hangi entegrasyonlar konusunda yorumlarınızı bırakın. Spotify ile belki bir şey yapılmasını ister misin?