Hepsine hükmedecek tek dil

Bir kod katmanının altında gizlenmiş bir dil, öğrenilmeyi arzulayarak çürüyor.

Hepsine hükmedecek tek dil

Bu yazının yazıldığı an itibariyle, "önce hangi dilin öğrenileceğini programlama" sorgusu 517 milyon arama sonucu döndürüyor. Bu sitelerin her biri belirli bir dili övüyor ve %90'ı Python veya JavaScript'i öneriyor.

Sözü daha fazla uzatmadan, bu 517 milyon sitenin tamamının hatalı olduğunu resmen beyan etmek ve öncelikle öğrenmeniz gereken dilin olduğunu belirtmek isterim. temel mantık.

Sadece kodlamayı bilmek yeterli değildir. Piyasa, enstitülerden ve kurslardan mezun olanlarla o kadar doymuş durumda ki, asistan pozisyonu fiilen sona ermiş durumda*. Günümüz dünyasında başarılı olmak için hem kod yazmanız hem de ileri düzeyde temel mantıksal düşünceye sahip olmanız gerekir.

*bundan sonra bunun bir çeviri olduğunu ve yazar için ve ülkenizdeki işgücü piyasasındaki durumun (diğer nüanslar gibi) farklı olabileceğini lütfen unutmayın; ancak bu, kendi başına orijinal makaleyi daha da kötüleştirmez - yaklaşık. tercüme

İlk bilgisayar bilimi dersim

Bilgisayar bilimiyle ilk tanışmam 10. sınıfta aldığım seçmeli bir dersti. Sınıfa girdiğim ilk gün, önümde çok sayıda dondurma kovası ve çeşitli soslar görmek beni çok mutlu etti. Herkes oturduktan sonra öğretmen şunları söyledi:

“Bugün kendi hazırladığımız dondurmaların tadına bakacağız. Ancak bir şartımız var: tatlıyı nasıl hazırlayacağınıza dair özel talimatların bir listesini yapmalısınız, ben de onlara uyacağım.

“Sorun değil,” diye düşündüm, “bu ders uzun sürmeyecek.” Bir dakika kadar sonra hayallerimin dondurmasının mükemmel tarifini not etmiştim:

  1. Üç top ahududulu dondurmayı kaşıkla alın ve bir kaseye koyun.
  2. Çikolata sosunu açın ve aynı kaseye iki yemek kaşığı ekleyin.
  3. Krem şantiyi kaseye ekleyin
  4. Hepsini şeker çubuklarıyla serpin ve üstüne bir kiraz koyun

Öğretmenim -bu sevimli metafordaki "bilgisayar"- daha önce gördüğümden daha alaycı, gerçekçi bir performans sergiledi. Kapağa bile dokunmadan dondurma kovasını kepçeyle şevkle dürtmeye başladı.

"Tamam tamam ama önce onu açman lazım!" - diye bağırdım, ikramı olabildiğince çabuk almaya çalışıyorum.

“Talimatlarda bunu yazmamıştın ve ben de sana dondurma yapamadım. SONRAKİ!"

2 numaralı denemeyi hızlıca ileri saralım

  1. Ahududulu dondurmayı kapağını açarak açın
  2. Üç top ahududulu dondurmayı kaşıkla alın ve bir kaseye koyun.
  3. Çikolata sosunu açın ve aynı kaseye iki yemek kaşığı ekleyin.
  4. Krem şantiyi kaseye ekleyin
  5. Hepsini şeker çubuklarıyla serpin ve üstüne bir kiraz yerleştirin.

Artık kesinlikle herhangi bir sorun olmaması gerekiyor. Her ihtimale karşı, mutfak şaheserimi yapmak için gereken tüm malzemelerin açık olduğundan emin oldum.

Öğretmen kapağı açtı, kepçeyle aldı ve üç top dondurmayı bir kaseye koydu. “Sonunda güzel dondurmam gerçek olmaya başladı!” Daha sonra çikolata sosunu açtı ve kaseye iki yemek kaşığı ekledi. "İki yemek kaşığından çikolata sosu eklemedi" - öyle düşünmüyorum - elbette kaşıkları kaseye kendisi koydu. İçlerinde sos yok. Yine her şeyi tam olarak yazma zahmetine girmedim. Gerisi aynı ruhla yapıldıktan sonra, krem ​​şanti denizinin altında zar zor farkedilen bir kase dondurma ve iki yemek kaşığı aldım. Üstünde bir çift şeker çubuğu vardı.

Görünüşe göre şu anda nihayet aklıma geldi: bilgisayar boşluktaki mantıktır. Çevredeki koşulların farkında değildir ve hiçbir varsayımda bulunmaz. Yalnızca açıkça formüle edilmiş talimatları yerine getirir ve onları kelimesi kelimesine takip eder.

Nihai sonucum, uzun ama gerekli bir dizi deneme yanılmanın sonucuydu:

  1. Henüz yapmadıysanız aşağıdaki paketlerden her birini açın: ahududulu dondurma, çikolata sosu, çırpılmış krema, çubuk şeker.
  2. Bir kase çıkarıp önünüze koyun
  3. Bir dondurma kaşığı alın ve üç top frambuazlı dondurmayı tek tek bir kaseye koyun. Dondurma kepçesini tekrar yerine koyun.
  4. Bir kavanoz çikolata sosu alın, sosu alın ve bir çorba kaşığının içeriğini bir kaseye dökün. Kepçeleme ve dökme işlemini bir kez daha tekrarlayın. Kaşığı ve kavanozu tekrar yerine koyun.
  5. Krem şanti paketini ters çevirip kasenin üzerinde tutarak 3 saniye kadar dondurmanın üzerine dökün ve ardından paketi yerine geri koyun.
  6. Bir kavanoz şeker alın, yaklaşık kırk çubuğu bir kaseye dökün ve kavanozu geri koyun.
  7. Kiraz kasesinden bir kiraz alın ve dondurmanın üzerine yerleştirin.
  8. Öğrenciye bitmiş dondurmanın bulunduğu bir kase ve bir kaşık verin.

Son nokta özellikle önemliydi, çünkü o olmadan, sondan bir önceki seferde öğretmen dondurmamı yemeye başlamıştı.

Ama bu programlamadır. Bir bilgisayar için dikkatli bir dizi talimat oluşturmanın stresi. Esasen, her programlama dilinin özü budur; talimatların yazılması.

Programlamada kariyer

İş tanımı olarak tek kelime “programcı”yı kullanmak ne kadar zorsa, programlama da tek bir sektör olarak ele alınması zor bir noktaya geldi. Tamamen farklı dilleri bilen iki geliştirici, piyasada eşit derecede talep görebilir; bu, geliştirme yeteneğinin belirli bir dil bilgisinden daha önemli olduğu anlamına gelir. Tüm başarılı geliştiricilerin paylaştığı evrensel bir özellik: temel mantık.

En iyi programcı koda yeni bir açıdan bakabilen kişidir. Ve bu temel olarak önemlidir, çünkü çoğu yazılım ürünü belgelenmemiş kötü kod parçalarından oluşan bir koleksiyondur. Gerektiğinde boşlukları doldurarak sürekli bir araya getirilmeleri gerekiyor. Farklı noktaları tek bir çizgiyle birleştiremeyen insanlar sonsuza kadar kenarda kalmak zorunda kalacak.

Bütün bunlar beni bu sefer kalın harflerle yazılmış başka bir beyana getiriyor: Temel bilgi her zaman bir programcı için çok önemli olmuştur ve olacaktır..

Diller gelir ve gider. Çerçeveler geçerliliğini yitiriyor ve şirketler talebe kullandıkları teknoloji yığınını değiştirerek yanıt veriyor. Asla değişmeyecek bir şey var mı? Evet - her şeyin temelini oluşturduğu için temel olarak adlandırılan temel bilgi!

Temel bilgi nasıl geliştirilir

Hepsine hükmedecek tek dilFotoğraf: Christopher Jeschke üzerinde Unsplash

Temel mantıksal düşüncenizi geliştirmek için bir başlangıç ​​noktası arıyorsanız buradan başlamayı deneyin:

Programınızın karmaşıklığını bilin

Olarak da adlandırılır Büyük o “Algoritma karmaşıklığı”, bir programın yürütülmesi için gereken sürenin, girdi verilerinin boyutuna bağımlılığını ifade eder. (N). Parmağınızı kullanılan algoritmaların nabzında tutmak önemli bir adımdır.

Veri yapılarınızı bilin

Veri yapıları her modern programın kalbinde yer alır. Hangi durumda hangi yapının kullanılacağını bilmek başlı başına bir disiplindir. Veri yapıları çalışma zamanı karmaşıklığıyla doğrudan ilişkilidir ve yanlış yapının seçilmesi temel performans sorunlarına yol açabilir. Bir dizideki bir öğeyi bulmak O (n)Bu, dizileri giriş verileri olarak kullanmanın yüksek maliyetini gösterir. Hash tablosu araması – O (1)bu, bu durumda bir değer arama süresinin öğe sayısına bağlı olmadığı anlamına gelir.

İnsanlar bir röportaj için bana geldiler ve bir dizi içinde arama yapmanın karma tablo içinde arama yapmaktan daha hızlı olduğunu iddia ettiler. Bu, onları işe almamanız gerektiğinin en kesin işaretiydi; veri yapılarınızı öğrenin.

Okuyun/izleyin/dinleyin

Gibi siteler UdemyÇoğul görüş и CodeAcademy - Yeni programlama dillerini öğrenmek için mükemmel bir seçim. Ancak temel bilgiler için genel kodlama ilkeleri, uygulamaları ve stilleri hakkındaki kitaplara bakın. En çok tavsiye edilen kitaplar “Tasarım Desenleri”, “Yeniden Düzenleme”dir. Mevcut Kodun İyileştirilmesi", "Mükemmel Kod", "Temiz Kod" ve "Pragmatist Programcı". Son olarak, her geliştirici "Algoritmalar" elde.

Pratik!

Yumurtaları kırmadan çırpılmış yumurta pişiremezsiniz. Gibi siteler HackerRankKod Savaşlarıkodlayıcı baytı, TopCoder и LeetKodu Veri yapıları ve algoritmalar hakkındaki bilginizi test etmek için binlerce ilginç bulmaca sunuyoruz. Beğendiğiniz bir sorunu çözerken şansınızı deneyin, çözümünüzü Github'da yayınlayın ve ardından başkalarının buna nasıl yaklaştığını görün. Bu da bizi son noktaya getiriyor:

Başkalarının kodunu okuyun

Gelişim yolunda ilerlerken yapabileceğiniz en büyük hata, bu yola yalnız gitmektir. Yazılım geliştirme büyük ölçüde bir ekip işidir. Standartları birlikte oluşturuyoruz, birlikte hata yapıyoruz ve tüm başarısızlıklara rağmen birlikte daha iyi oluyoruz. Başkalarının kodlarını okumak için harcanan zaman cömertçe karşılığını verecektir. Sadece iyi bir kod olduğundan emin olun.

Verebileceğim en iyi tavsiye, henüz bir şeyi bilmediğin için asla utanmamandır. Daha önce de söylediğimiz gibi sektörümüz çok büyük ve teknoloji miktarı sonsuzdur. Genel bir resim oluşturmak çok fazla zaman ve çaba gerektirir, belirli bir konuda profesyonel olmak daha da fazla, alanınızdaki becerilerinizi geliştirmek ise çok daha fazla zaman ve çaba gerektirir. Bunu kendim başardığımda size haber vereceğim.

Kaynak: habr.com

Yorum ekle