kodlama nedir. Kodlama nasıl ve nerede öğrenilir? Bir yön ve dil nasıl seçilir

Ve nedenini açıklayacağım.

On beş yıl önce, içe dönük ve utangaç bir insan olduğum, analitik bir zihne sahip olduğum ve sosyal hayattan tamamen yoksun olduğum için programcı olmam tavsiye edildi, ama sadece güldüm ve bu tür danışmanları reddettim. O zamanlar bir gençtim ve genç zihnimde programcı her zaman ailemin evinin bodrumunda yaşıyordu, sivilceliydi ve çirkin gözlükler takıyordu, hiç kız arkadaşı olmadı, ancak Prenses Leia ile ilgili fanteziler (ve oldukça sık) işe yaradı. Bu yaşam tarzı bana göre değildi. Ayrıca, o zaman zaten bir kız arkadaşım vardı ve oldukça güzel.

Altı yıl ileri sar: Budapeşte havaalanında oturuyorum HTML üzerine bir kitap okuyorum ...

Altı yıl sonra, Kuzey İrlandalı bir start-up şirketi tarafından genel uzman olarak işe alındım. Evet, biraz zaman almış gibi görünüyor. Ama tam olarak ne kadar? tam olarak söyleyemem. Ama çok. Efsanevi 10 bin saat? Numara. Yaklaşık bir rakam vermem istense o güne kadar yaklaşık 8 bin saati “kodladım” derdim. Teknik olarak konuşursak, 10.000 saat kuralına inanılacak olsaydı, o zaman 2.000'de bu alanda uzman olurdum.

Ama yapacak mıyım?

8 bin saatte başardığım şey bu. Hikayem uzun olacağı için rahat olun. Aşağıdaki dillerde kodladım: C, HTML, CSS, JavaScript, Java (Android), Swift, PHP, Ruby, Python, Chuck, SQL, şu çerçevelerle çalıştım: Node, Angular, Bootstrap, Foundation, React, Rails , CodeIgniter, Ionic ve Açılış Sayfaları, Wordpress Siteleri, E-Ticaret Çözümleri, e-Öğrenim İçeriği, Moodle ve Totara Siteleri, Mahara Siteleri, Ortak Kartuş ve SCORM Paketleri, Android ve iOS Uygulamaları, Hibrit Uygulamalar, Dahili Web Uygulamaları, e-kitaplar, dergiler oluşturmuştur. , oyunlar ve masa oyunları için ek uygulamalar. Peki nereye gidiyorum?

Böyle bir alan olmadığını söylemek istiyorum, bu yüzden bu konuda uzman olma görevi ulaşılamaz. Kodlama bir alan değildir. Bilgisayar bilimi - evet, ama tamamen farklı.

Kodlama, koyunları altın fırsat alanlarına yönlendiriyormuş gibi, başkanların, öğretmenlerin ve ebeveynlerin genç nesli ittiği şeydir.

Bu vaat bir rüyadır, o kadar iyi yaratılmış ve ifade edilmiş (şimdi kelimelerle bile ifade edilmiyor) bir propagandadır ki, emekleyen sevimli küçük çocukların mantıklı düşünmenin kendini besleme arzusundan daha önemli olduğunu anlamaları için saçma bir şekilde basitleştirilmiş resimlere dönüştürülmüştür (lütfen alaycılığa dikkat edin) ...

15 yıl sonra kodlama, programlamanın popüler bir kültür versiyonu haline geldi ve şimdi nüfusun, yapay zeka kontrollü evlere, trafik, perakende satış, eğlence ve tıpta bir devrime sahip olacağımız için gelecekteki bir kodlayıcı ordusu için büyük umutları var. , endüstri ve seks - sadece bir tımarhane, başka bir kelime yok. ve hepsi çünkü programlama kodlamaya açıktır ve teorik olarak öğrenmesi kolaydır... Ama bu gerçeklerden çok uzak ...

Kaynak: LifeHacker

Anlayalım. Herkesin programlama dillerinden birini sadece birkaç saat içinde öğrenebileceği efsanesi, bir "gerçek" olarak ele alındığında, yalnızca belirli bir noktaya kadar doğrudur ve bu an, öğrenmenin erken bir aşamasında gelir. Gerçekten de bir dil bir günde öğrenilebilir. Genel olarak, kendinize bir ay içinde programlamada çok dilli olma hedefi koyarsanız, bir işte çalışıyorsanız, hafta sonları okursanız 8-10 dile hakim olabilirsiniz. Ama işin püf noktası burada. Her programlama dilinin kendi kütüphaneleri ve sözdizimsel özellikleri vardır ve tüm bunlar kolay, hızlı veya hafta sonu öğrenilemez. Aslında gerçek dünyada asıl problem programlama dili olmayacak.

İngilizce biliyor olman roman yazabileceğin ve hatta kısa hikayeler yazabileceğin anlamına gelmez. Aynı şey kodlama için de söylenebilir.

Bir dil öğrenmiş olmanız, nasıl program yazılacağını bildiğiniz anlamına gelmez. Buna sayısız çerçeveler, eklentiler, kitaplıklar, ön işlemciler, son işlemciler, kodlama standartları, endüstri standartları, test odaklı geliştirme (TDD), davranış odaklı geliştirme (BDD), içerik yönetim sistemleri, dosya sürüm oluşturma, sürekli entegrasyon (CI), sürüm ekleyin yönetim ve dağıtım, hata ayıklama, biletleme, şelale modelleri - ve saldırı yöntemleri ve bunların kombinasyonları ve başka ne adlandıracağımdan emin değilim. Sonuç olarak, "kodlayıcı" kavramı yukarıda bahsedilen hemen hemen her şeyi kapsar. Programlama sadece küçük bir kısmı etkiler. Önemli, ama yine de küçük.

Ancak, programlama basitleştirilmeye devam ediyor ...

Apple Playgrounds'u başlattı, MIT Scratch'i başlattı ve Lego Boost'u hazırlıyor ve herkes 2020'lerde yeni programcıların işlerini doldurmak istercesine genç ve genç nesle kodlama satmaya çalışıyor.

Bunu şu şekilde görüyorum: "Kod için endişelenme, bu sanal yapboz parçalarını al ve hepsi bu, programlayabilirsin." Eğer bu doğru olsaydı. İşte programlama hakkında bilmeniz gerekenler: metin tabanlıdır. Her zaman olmuştur ve uzun yıllar boyunca olacaktır. Lego Boost, Playgrounds veya Scratch oynayan çocuklar, 22 yaşına kadar programlamaya 16 yaşında başlayan ve gerçek bir programlama diliyle çalışanlardan daha deneyimli programcılar olmayacaklar. Aslında bu beklentiler nereden geliyor? Çocuğumun 22 yaşına gelene kadar kendi ekmeğini kazanmayı öğreneceğini düşünmüyorum. Ama 6 yıl kodlama eğitimi alırsa kısa sürede iş bulacağına garanti veririm.

Apple'dan oyun alanları.

Kodlama, yazılım geliştirme sürecinin en zor kısmı olabilir. Her şeyi baştan organize etmezseniz (özellikle büyük projeler için), bundan sonra kodlama ve hata ayıklama sadece çok uzun sürmez, aynı zamanda çok fazla baş ağrısını da beraberinde getirir.

İyi kod iyi korunur, yeniden kullanılabilir ve test edilebilir. Aşağıdaki adımlar size ve/veya geliştirme ekibinize farklı programlama görevlerini nasıl ele alacağınızı ve her şeyi olabildiğince iyi tutacağınızı gösterecektir. İyi kod yazmanıza ve sizin ve ekibinizin mutlu ve verimli olmanıza yardımcı olacak “en iyi uygulamaları” tanıtacağım.

1. Kodlama standartlarını kullanın

Kötü, düzensiz kod yazmak kolaydır, ancak bakımı zordur. İyi kod genellikle değişken adlandırma, biçimlendirme ve daha fazlası için bir tür standart sağlar. Bu tür standartlar faydalıdır, çünkü siz de dahil olmak üzere kodu daha sonra okuyanlar için işleri koşullu hale getirirler.

Kendi kodlama standartlarınızı oluşturabilirsiniz, ancak yaygın olarak kullanılan bir tane kullanmak daha iyidir. Zend Framework Kodlama Standardı veya PSR-1 Kodlama Stili'ni kullanarak başkalarının adapte olması daha kolay olacaktır.

2. Yorumları kullanın

Yorumlar kritik bir şekilde gereklidir. Bin satırlık bir kod yazıp birkaç gün bırakana ve sonra tekrar anlamaya çalışana kadar onları takdir etmeyi öğrenemezsiniz. Faydalı yorumlar sizden sonra kodla çalışacak olanlar için hayatı kolaylaştırır.

Kodun anlaşılmaz kısımları için net, tek satırlık yorumlar yazın; fonksiyonların ve yöntemlerin parametrelerinin ve işlevselliğinin tam bir tanımını yazın; Karmaşık mantık blokları için, mantığı onlardan önce gerektiği gibi tanımlayın. Yorumlarınızı güncellemeyi unutmayın!

3. Yeniden düzenleme

Kodu yeniden düzenleme, üretken geliştiriciler için de iyi bir alışkanlıktır. İster inanın ister inanmayın, kodunuzu her gün yeniden düzenlemeniz gerekir, aksi halde onda bir sorun var! Yeniden düzenleme, kodunuzu iyi durumda tutar, ancak neyi yeniden düzenlemeniz gerekir ve nasıl?

Mimariden yöntemlere ve işlevlere, değişken adlarına, bir yönteme iletilen argümanların sayısına ve benzerlerine kadar her şeyi yeniden gözden geçirmelisiniz.

Yeniden düzenleme bir bilimden çok bir sanattır, ancak buna ışık tutabilecek bazı iyi kurallar vardır:

  • İşleviniz veya yönteminiz 20-25 satırdan uzunsa, büyük olasılıkla orada çok fazla mantık vardır ve onu iki veya daha fazla küçük işleve/yönteme bölebilirsiniz.
  • İşlevinizin veya yönteminizin adı 20 karakterden uzunsa, adı revize etmeye veya ilk kuralı kullanarak tüm işlev/yöntemi revize etmeye değer.
  • Çok sayıda iç içe döngünüz varsa, farkında olmadan çok fazla kaynak kullanıyorsunuz demektir. Genel olarak, ikiden fazla döngü yerleştirdiyseniz mantığınızı yeniden düşünmelisiniz. Üç iç içe döngü sadece korkunç!
  • Kullanabileceğiniz uygun tasarım desenleri olup olmadığını düşünün. Kalıpları sadece kalıp kullanmak için kullanmamalısınız, ancak kalıplar uygun olabilecek kanıtlanmış çözümler sunar.

4. Global koddan kaçının

Globaller ve döngüler, kodunuz milyonlarca satıra ulaştığında sorun yaratabilir. Görmenin zor olduğu yerlerde kodu etkilerler veya değişkenlerin, nesnelerin ve diğer şeylerin adlarında sorunlara neden olurlar. Global ad alanını değişkenler, işlevler, döngüler ve daha fazlasıyla kirletmeden önce iki kez düşünün.

İdeal olarak, global olarak herhangi bir blok tanımlamamalısınız. Switch deyimleri, try-catch, foreach döngüleri, while döngüleri ve benzerleri bir yöntem veya işlev içinde tanımlanmalıdır. Yöntemler sınıflar içinde, sınıflar ve işlevler de ad alanları içinde tanımlanmalıdır.

5. Anlamlı adlar kullanın

Değişkenleriniz için asla $ k, $ m ve $ test gibi isimler kullanmayın. Böyle bir kod gelecekte nasıl okunabilir? İyi bir kodda değişken isimleri, metotlar/fonksiyonlar, sınıflar; anlamsal bir yük taşımalıdır. Bazı iyi değişken isimleri $ request, $ dbResult ve $ tempFile'dir (Kodlama stilinize bağlıdır).

6. Anlamlı yapılar kullanın

Uygulamanızı yapılandırmak önemlidir; karmaşık yapılar kullanmayın, her zaman basit tutun. Dizinleri ve dosyaları adlandırırken, ekiple anlaştığınız veya kodlama standartlarına uyan bir adlandırma kuralı kullanın. Bir PHP uygulamasının dört bölümünü her zaman birbirinden ayırın - CSS, HTML Şablonları, JavaScript, PHP kodu - ve her biri için kitaplıkları iş mantığından ayırmaya çalışın. Dizin hiyerarşisini mümkün olduğunca küçük tutmak da iyi bir fikirdir, bu nedenle kodun bölümlerini aramanız ve yapıda gezinmeniz daha kolay olacaktır.

7. Sürüm kontrol sistemlerini kullanın

Geçmişte, iyi geliştirme ekipleri CVS'ye güveniyordu. Şimdi, mevcut çözümlerin bir varyasyonu var. Değişiklik ve revizyon yönetimi basit ama etkili olmalıdır, bu nedenle geliştirme ekibinizin akışına en uygun sürüm kontrol sistemi hangisiyse onu seçin. Git veya Mercurial gibi dağıtılmış bir sürüm kontrol sistemi kullanmayı tercih ederim; hem ücretsiz/açık kaynak kodlu hem de çok güçlü. Versiyon kontrolünün ne olduğunu bilmiyorsanız Sean Gudgston'ın Git serisine Giriş kitabına bakmanızı tavsiye ederim.

8. Otomatik oluşturma araçlarını kullanın

9. Kod belgeleyicileri kullanın

Birden çok sınıfı ve ad alanını kapsayan büyük uygulamalar için, otomatik olarak oluşturulmuş bir API belgeniz olmalıdır. Bu çok yardımcı oluyor ve ekipteki herkes neyin ne olduğunu bilecek. Ve aynı anda birkaç proje üzerinde çalışıyorsanız, bu belgeyi bir nimet olarak göreceksiniz, çünkü muhtemelen yapının özelliklerini ve projeler arasındaki diğer farklılıkları unutacaksınız. Düşünmek isteyebileceğiniz böyle bir belgesel DocBlox.

10. Testi Kullanın

Gerçekten değer verdiğim birçok araç var, ancak açıkça değer verdiğim araçlardan biri, test sürecini otomatikleştirmeye yardımcı olan çerçeveler. Test etme (yani sistematik test), milyon dolarlık uygulamanızın her parçası için gereklidir. İyi test araçları, PHP Sınıflarınızı birim testi için PHPUnit ve SimpleTest'tir. GUI testi için SeleniumHQ araçlarını öneririm.

Sonuç

Bu makalede, kodlama standartlarını kullanmaktan tüm ekip olarak biçimlendirmeye kadar daha iyi kod yazmak için en iyi uygulamalara, yeniden düzenlemenin önemine ve test çerçevesi gibi profesyonel araçlar kullanarak nasıl ustalaşılacağına dair bir genel bakış gördünüz. kod belgeleyici ve kod tabanını yönetmeye yardımcı olmak için sürüm kontrolü. Şimdiye kadar bu adımları izlemediyseniz, kendinizi ve ekibinizi bunları yapmak için eğitmelisiniz.

Çoğu özgür yazılım geliştiricisi Linux veya Mac üzerinde çalışır, ancak Windows desteği genellikle artık temelli olarak uygulanır. Çalışıyor - işe yaramıyor - ihtiyacı olanın gitmesine izin verin. Bu makalede, elinizde bu sistem olmadan yerel Windows yürütülebilir dosyalarının nasıl oluşturulacağını göstereceğim.

En son Python 2.7 sürümü bu yıl duyuruldu ve bundan sonra Python Yazılım Vakfı artık 2.7 dalını desteklemeyecek. Birçok popüler kitaplık ve çerçeve de Python 2 için resmi desteği bırakıyor ve bir dizi Linux dağıtımı artık onu varsayılan paketlerine dahil etmiyor.

İkili dosyaların kötü amaçlı işlevler içerip içermediğini kontrol etmek veya kendi geliştirmelerinizi test etmek için muhtemelen virustotal.com hizmetlerini bir kereden fazla kullanmışsınızdır. Bu hizmet, bu makalede Python'da tartışacağımız ücretsiz bir API'ye sahiptir.

Güvenli bir ağ içindeki bir ana bilgisayardan dış dünyaya görünmez bir şekilde erişme fırsatı, bir penetrasyon test cihazı için değerli bir bulgudur. Kullanılabilir son yollardan biri, saat senkronizasyon protokolü olan NTP'dir. Trafiğine hemen hemen her yerde izin verilir, bu nedenle veri için mükemmel bir aktarım olacaktır. C#'da temel bir istemci ve sunucunun nasıl uygulanacağını göstereceğim.

Muhtemelen sinir ağlarının son zamanlarda resimlerdeki nesneleri tanımada oldukça iyi hale geldiğini duymuşsunuzdur. Görevimiz, bu sinir ağlarının nasıl kullanılacağını öğrenmektir, çünkü güçleri çeşitli durumlarda faydalı olabilir. Bu makalede, en yaygın araçları kullanarak nasıl kullanılacağını göstereceğim: Python ve Tensorflow ve Keras kitaplıkları.

Sesli tanımlama ile zaten karşılaşmış olabilirsiniz. Bankalarda telefonla kimlik tespiti, kontrol noktalarında kimliğin doğrulanması ve sahibini tanıyabilen ev tipi sesli asistanlarda kullanılmaktadır. Nasıl çalıştığını biliyor musun? Ayrıntılara girip kendi uygulamamı yapmaya karar verdim.

Önceden, sayılarla captcha, botları ayıklamak için harika bir yoldu, ancak şimdi bu tür neredeyse hiç bulunmuyor. Sanırım sorunun ne olduğunu kendiniz tahmin ediyorsunuz: sinir ağları bu tür captcha'ları bizden daha iyi tanımayı öğrendi. Bu makalede, bir sinir ağının nasıl çalıştığına ve sayı tanımayı uygulamak için Keras ve Tensorflow'un nasıl kullanılacağına bir göz atacağız.

İki yıl önce, akış platformu Twitch'in geliştiricileri, yayıncılar ve izleyiciler arasında yeni bir etkileşim yolu olan Twitch Extensions'ı tanıttı. Bu sistem, geliştiricilerin çeşitli etkileşimli öğeler oluşturarak hem sitenin hem de mobil uygulamanın arayüzünü tamamlamasına ve geliştirmesine olanak tanır. Size bu uzantıların nasıl çalıştığını ve isterseniz kendi uzantılarınızı nasıl oluşturabileceğinizi göstereceğim.

Bankacılık Truva Atları her yıl milyonlarca dolarlık zarara neden oluyor. Virmakerlar, bankacıların iç mutfağı ile ilgili her şeyi en derin gizlilik içinde tutmaya çalışırlar. Bu nedenle, benzersiz bir olayı - Carbanak bankacılık trojanının kaynak kodunu kamuoyunda alma - kaçırmadık ve yapısını içeriden araştırmaya başladık.

Julia, öncelikle bilimsel hesaplama için tasarlanmış genç bir programlama dilidir. Yaratıcıları, daha önce Matlab, klonları ve R tarafından işgal edilen nişi doldurmasını istedi. Yaratıcılar, iki dilin sözde sorununu çözmeye çalıştılar: R ve Python'un rahatlığını ve C'nin performansını birleştirin. Bakalım ne yaptılar. .

Forth, PCI yonga setleri ve uzay aracı dahil olmak üzere çeşitli alanlarda kullanılıyor ve Pavel Durov, TON kripto para biriminin akıllı sözleşmelerinde benzer bir dil kullanacak. Büyük değişikliklere uğramadan en eski programlama dillerinden biri olan birçok modern paradigmanın somutlaştırılmasına izin verir. Peki bu şifreli Forth tam olarak nedir?

Gama modu, basit değiştirme modunun aksine, dolgu işlemini kullanmadan keyfi uzunluktaki mesajların şifrelenmesine izin verir. Bugün böyle bir rejimin nasıl uygulandığı hakkında konuşacağız ve uygulanması için gerekli tüm işlevleri yazacağız.

Programlarınızdaki kod satırı sayısı milyonları bulduğunda, hataları bulmak bin kat daha zor hale gelir. Neyse ki, bugün fuzzer kullanarak testi otomatikleştirmek mümkündür. Nasıl çalışırlar, neden kullanılmaları gerekir ve neler yapabilecekleri - bugünün makalesinde bunu öğreneceksiniz.

Soyutlama, programlamanın temelidir. Pek çok şeyi içlerini düşünmeden kullanıyoruz ve harika çalışıyorlar. Herkes, kullanıcı programlarının sistem çağrıları yoluyla çekirdekle etkileşime girdiğini bilir, ancak bunun makinenizde nasıl olduğunu hiç merak ettiniz mi?

Bilgisayar korsanları hileler geliştirir, oyuncular bunları satın alır, şirketler yeni savunmalar geliştirmek için mühendisler tutar. Bilgisayar korsanları yine bir boşluk bulur ve çember tamamlanır. Bu yazıda, farklı savunma yöntemlerinin nasıl çalıştığına (ve işe yararlarsa!) bir göz atacağız ve kendi hile karşıtı koruma sistemimizi oluşturmaya çalışacağız.

Linux'ta bildiğiniz gibi birçok şey dosya sisteminde dosya olarak uygulanmaktadır. Ve uygulanmadıysa, FUSE kullanarak bunları kendiniz uygulayabilirsiniz. Windows'ta bu daha az kabul edilir, ancak yine de bir şeyi gerçekten dosya sistemi olarak bağlamak istiyorsanız, bu mümkündür. C# ve Dokan kütüphanesini kullanarak bunu nasıl başaracağınızı göstereceğim.

Bir saldırgan için en çekici hedef çevrimiçi bankacılıktır ve botnet'ler, kendisine yönelik virüs saldırılarının başarısında belirleyici bir rol oynar. Ancak onların yardımıyla ele geçirilen verilerden değerli bilgileri çıkarmak için saldırganın çok çalışması gerekir. Bugün sizlere botlar için hayatı nasıl zorlaştıracağınızı ve uygulamanızı saldırılardan nasıl koruyacağınızı anlatacağım.

Bilgisayar oyunlarının en güzel yanı, başarının ödülünün gerçek zevk olması ve başarısızlığın maliyetinin düşük olmasıdır. Ancak bazen, yeni yeteneklerin kilidini açmak veya sadece oyunu hızlandırmak için en dürüst yöntemlere başvurmazsınız. Ve dünyanın kurallarını değiştiremezseniz, onları bükmeye çalışabilirsiniz. Evet, doğru, hileler hakkında konuşacağız.

Tonlarca özelliğe ve tespite karşı korumaya sahip savaş keylogger'ları, yüzlerce olmasa da onlarca dolara mal olabilir. Ancak keylogger o kadar karmaşık bir şey değildir ve dilerseniz kendinizinkini yapabilir ve hatta antivirüsler tarafından algılanmaktan kaçınabilirsiniz. Bu yazımda size bunu nasıl yapacağınızı göstereceğim ve aynı zamanda C# ile program geliştirme alıştırması yapacağız.

C++'da dinamik veri tipi tanımlama (RTTI) diye bir şey vardır. Çalışma zamanında bir değişkenin veya nesnenin türünü belirlemenizi sağlayan bir mekanizmadır. Yürütülebilir dosyayı küçültmek için birçok projede RTTI devre dışı bırakılır, bu da dynamic_cast ve typeid'in çalışmasını durdurur. Ama yine de bir nesnenin örneğinin bazı temel sınıflardan türetilmiş olup olmadığını kontrol etmenin bir yolu var.

Statik olarak yazılan diller genellikle sizi herhangi bir nedenle değişken türleri yazmaya zorlar. Ancak bu her zaman böyle değildir: programlama dillerinin teorisi ve pratiği önemli ölçüde ilerlemiştir, sadece bu başarılar endüstri tarafından hemen kabul edilmiyor. Bugün OCaml diline bir göz atacağız ve statik yazmanın her zaman elverişsiz olmadığını göreceğiz.

Korumalı ortamlarda çalışmayı tanımlayan, hata ayıklamayı önleme teknikleriyle çalışan, kodlarının bütünlüğünü izleyen ve verilerini bir döküme karşı bellekte dinamik olarak şifreleyen birçok güvenlik çözümü vardır. Diğer bir güçlü güvenlik tekniği ise kod sanallaştırmadır. Bu yazıda size nasıl çalıştığını göstereceğim.

Dili gerçek bir projede öğrenmek en iyisidir, bu yüzden cehennemi denemeye karar verdiğimde kendime gerçek ve ilginç bir görev belirledim: bir hiper yöneticide işi algılamak için bir yardımcı program yazmak. Bu başlı başına eğlenceli ve yeni programlama dili eğlenceyi bir sonraki seviyeye taşıyacak.

Hayatınızda bir kereden fazla farklı protokollerle karşılaştınız - bazılarını kullandınız, bazılarını belki tersine çevirdiniz. Bazılarının okunması kolaydı, diğerleri hex editörü olmadan anlaşılamadı. Bu yazımda sizlere TCP/IP üzerinde çalışacak kendi protokolünüzü nasıl oluşturacağınızı göstereceğim. Kendi veri yapımızı geliştireceğiz ve sunucuyu C# ile uygulayacağız.

Python'da yazarsanız, muhtemelen standart kitaplıklarda çift alt çizgi içine alınmış yöntemlerin tanımlarını görmüşsünüzdür. Bu "sihirli" yöntemler, her zaman kullandığınız birçok yararlı arabirimi oluşturur - örneğin, öğe numarasına göre bir değer aldığınızda veya bir şey yazdırdığınızda. Şimdi size bu yöntemleri programlarınızda da nasıl kullanacağınızı göstereceğim.

Diğer uygulamalarla etkileşime giren yazılım yazarken, bazen üçüncü taraf işlemlerinin yürütülmesini sonlandırmak gerekli hale gelir. Bu konuda yardımcı olabilecek birkaç yöntem vardır: bazıları iyi belgelenmiştir, diğerleri gerekli işlemleri daha ciddi yollarla tamamlamaya çalışarak işletim sistemini zorla çarpmaya teşvik eder. Windows'ta işlemleri sonlandırmanın ve yok etmenin birkaç yolunu göstereceğim.

ABD Savunma Bakanlığı'nın emriyle geliştirilen ve adını dünyanın ilk programcısı Ada Lovelace'den alan dil, uçakları, trenleri, uzay araçlarını ve diğer ilginç şeyleri kontrol etmek için aktif olarak kullanılıyor. Dile mitler prizması olmadan bakalım ve henüz uzaya gitmesek bile bundan nasıl yararlanabileceğimizi görelim.

Muhtemelen oyun konsollarının emülatörlerine rastlamışsınızdır ve belki de bir saatten fazla bir süre boyunca oturdunuz. Ama nasıl çalıştığını hiç merak ettiniz mi? Rusya'da Dendy olarak bilinen NES örneğini kullanarak size kendi emülatörünüzü nasıl oluşturacağınızı göstereceğim. Aynı zamanda, zamanına ve mütevazı fiyatına göre inanılmaz derecede iyi bir görüntü ortaya koyan bu konsolun kurnaz mimarisini de ele alacağız.

Hırsızlar gibi bir tür kötü amaçlı uygulama sınıfını muhtemelen duymuşsunuzdur. Görevleri, her şeyden önce şifreler olmak üzere kurbanın sisteminden değerli verileri çıkarmaktır. Bu yazımda tam olarak nasıl yaptıklarını Chrome ve Firefox tarayıcılarından şifre çıkarma örneğini kullanarak anlatacağım ve C++ kod örneklerini göstereceğim.

"Rögar kapağı neden yuvarlak?" gibi röportaj soruları - bu tuhaf. Kafanızda derlemeniz gereken C kodu sayfaları sıkıcıdır. En ilginç görevler genel teknik ve mantıksal düşünme içindir. Ve bugün Abbyy şirketinden yoldaşlar bizi böyle attı!

Programlama yeteneği, modern dünyada talep edilen en değerli becerilerden biridir. Ve pratikte, bir kişinin kodu tam olarak neyin oluşturduğu önemli değildir: samimi ilgi, finansal veya kariyer kaygıları - nasıl programlanacağını bilenler boş bırakılmayacaktır. Kodlama, yabancı bir dilde iletişim kurmaya çok benzer, bu nedenle programlamayı öğrenmenin ilk aşamalarında, yeni başlayanlar genellikle zor bulur. Aynı zamanda, birçoğu ciddi rahatsızlık yaşar, ancak zamanla her şey daha iyi olur ve bir kişi güçlü zihinsel maliyetler olmadan kolayca kodlamaya başlar. Bugün kodlamayı öğrenebileceğiniz birçok kitap ve çevrimiçi kaynak bulabilirsiniz, ancak kendi kendine çalışma, stres ve olumsuz duygularla ilişkilidir - bir programlama dilinde uzmanlaşmaya başlarken bu her zaman hatırlanmalıdır. Yeni başlayan bir kodlayıcı için en önemli şey, bir dili öğrenmekten yarı yolda vazgeçmemek, bu mesleğe olan tüm ilgisini kaybetmemektir. Peki geleceğin programcılarının bilmesi gerekenler nelerdir? Yararlı becerilerde ustalaşma yolunda onu hangi zorluklar bekliyor?

Programlama dilleri

Öncelikle yeni başlayan birinin öğrenmek istediği programlama diline karar vermelisiniz. O kadar kolay değil - birçok dil var ve her biri kendi yolunda iyidir. Bilinçli bir dil seçmek çok önemlidir - sonuçta, gelişimine çok fazla zaman ve çaba harcanacaktır. Ancak her ne olursa olsun, acemi bir kodlayıcının iyi veya kötü programlama dilleri olmadığını bilmesi gerekir, ancak acemilere dost diller vardır. Bu nedenle, programlama dili ne kadar kolay ve anlaşılırsa o kadar iyidir - yolun başında başarıdan başarıya, basit görevlerden daha karmaşık olanlara gitmek daha iyidir. Üstelik yeni başlayan kişi ilk programlama dilinde kodlamayı öğrendikten sonra daha kolay olacak, diğer diller ona çok daha kolay verilecek.

Ayrıca dili ne için bilmeniz gerektiğini hemen belirlemek de çok önemlidir. Çünkü kodlama çok farklı. Birisi bir yazılım geliştiricisi olmak istiyorsa, Java'ya bakabilirsiniz ve iOS için uygulamalar oluşturma durumunda Swift dili daha iyidir.

Uygun öğretim yöntemi

Öğrenmenin birçok yolu vardır, bu nedenle programlama dilleri söz konusu olduğunda uygun bir metodoloji bulmanız gerekir. Aynı zamanda ana yöntemi seçip ikincil öğretim yöntemleriyle desteklemek akıllıca olacaktır. Buradaki her şey çok bireysel: Yeni başlayan biri görselse veya bilgiyi kulaktan iyi anlıyorsa, o zaman YouTube'daki videoları izleyerek kodlamayı öğrenebilir ve kitaplardan başka bilgiler edinebilir. İşte bazı basit ama etkili öğreticiler:

Çevrimiçi kodlama kursları. Bazı insanlara ne yapacakları söylendiğinde ve performansları düzenli olarak kontrol edildiğinde daha verimli çalışırlar. Ve böyle bir sürü insan var. Bu nedenle, yeni başlayan biri öz disiplinle ilgili sorunları olduğunu hissediyorsa, o zaman kontrollerle sürekli motive olacağı bir kurs seçmelidir. Bu iyi bir fikir - pek çok insan, iradelerine ve heveslerine güvenerek programlamayı öğrenmeyi bırakıyor. Kendi başınıza kodlama öğrenmek herkes için değildir, bu her zaman hatırlanmalıdır.

Youtube videosu. Bugün, sadece YouTube'daki videoları izleyerek her şey hakkında her şeyi öğrenebilirsiniz. Daha deneyimli kodlayıcılar size tam olarak ne yapmanız gerektiğini gösterecektir, bu nedenle bu materyaller çok faydalıdır. Kodlamayı öğrenmenin basit, etkili ve en önemlisi ücretsiz bir yoludur. İnternet erişiminiz varsa, oturabilir, izleyebilir, en azından tüm gün netleşene kadar tekrarlayabilirsiniz.

Kitabın... Bu, bugünlerde programlama dillerini öğrenmenin biraz eski moda bir yolu, ancak gerçek şu ki, yıllar geçtikçe kodlama pek değişmedi ve YouTube'da anlatılanlar, bir makalede söylenenden çok farklı değil. kitap. Ancak kitapların yadsınamaz bir değeri vardır - dilin mantığını anlamayı kolaylaştırırlar ve bu inanılmaz derecede önemlidir. Her şeyden önce, çünkü pratik eğitim söz konusu olduğunda, kimse anlaşılmaz veya imkansız olanı yapmak istemez. Her şeyi yarı yolda bırakmamak için programlama kitaplarını okumak şart.

Uygulama. En iyi programcıların çoğu kendi kendini yetiştirmiştir. Eğitimleri gelişigüzel olduğu için çoğu zaman fark edilmeden kodlamaya başladılar. Bir problemle karşılaştılar, onu çözdüler, başka bir problemle karşılaştılar - ve onu da çözdüler. Yavaş yavaş, bu tür kendi kendini yetiştirmiş insanlar bir problemden diğerine, daha karmaşık ve aynı zamanda ana kodlamaya geçerler. Bu tür insanları taklit etmeye değmez, ancak uygulama terk edilmemelidir - öğrenmede başarının anahtarıdır.

Sabitleme başarısı

Programlama dilini yeni öğrenmeye yeni başlayan biri, bunun uzun bir süredir olduğunu bilmeli ve buna hazırlıklı olmalıdır. Kodlamayı öğrenmek, başarısızlığın başarıdan çok daha fazla hissedildiği uzun bir süreçtir. Okulu bırakmamak için tüm eylemlerinizi kaydetmeniz zorunludur. İnsanlar genellikle ilerleme hissedemedikleri için motivasyonlarını kaybederler. Ve acemi özenle meşgulse kesinlikle olacak. Sadece beceriler farkedilmez bir şekilde büyür, acemi bir kodlayıcı, bu kadar küçük adımlarla amaçlanan hedefe doğru ilerlediğini fark etmeyebilir bile.

Bu yüzden zaman zaman kendinize ne kadar yol kat ettiğinizi hatırlatmanız ve daha sık geriye dönüp bakmanız gerekiyor. Çok yardımcı oluyor - sonuçta, ilk kod satırlarına bakan herkes ilerleme kaydettiğini anlayabilir. Tüm bu kişisel en iyiler eğlenceli görünebilir. Hayır, aslında başarının kaydedilmesi çok önemlidir - tüm öğrenme süreci boyunca oldukça motive edicidir. Bu nedenle başlamak ve bırakmamak için geçilen her aşamayı işaretlemek zorunludur.

Açık eğitim şartları

Kodlama söz konusu olduğunda, yeni başlayanların çoğu yaygın bir hata yapar - aynı anda bir dizi görevi yapmaya çalışırlar ve genellikle bitirmeden önce hepsinden vazgeçerler. Başka bir şeyle, çoğunlukla başka görevlerle ilgilenirler, bu nedenle bir projeden diğerine atlarlar. Bunu yapma. Sistematik bir şekilde hareket etmek en iyisidir - bir sorunu çözmek veya her şey netleşene kadar örneği anlamak. Bu çok basit bir ilkedir: her seferinde bir şey.

Ancak aynı zamanda ilerlemenin gerekli olduğunu anlamanız gerekir, bu nedenle dilin şu veya bu yönünü incelemek için kendinize katı tarihler belirlemeniz gerekir. Sınavın yakında geleceğini ve başarabileceğiniz her şeyi göstermeniz gerektiğini hayal edebilirsiniz. Bu motive edici. Evet, tüm bu kişisel işler çok rahat olmayabilir, ancak kodlamanın kendisi eğlenceli değil. Sıkı disiplin, gerekli becerileri edinmenizi sağlayacaktır ve son teslim tarihine uymak, serbest çalışan bir programcı için neredeyse en önemli beceridir.

Sıradan kullanıcılar hata yapmaktan korkar ve bir şeyler ters gittiğinde bundan nefret ederken, programcı tamamen farklı bir konumdadır. Hatalar onun işinin bir parçasıdır ve çok büyük bir kısmıdır. Bu nedenle, acemi bir kodlayıcı, ne kadar sinir bozucu olursa olsun, hata mesajlarını nasıl okuyacağını kendisine öğretmelidir. Bu mesajlar, kodu oluşturma sürecinde tam olarak neyin gözden kaçırıldığını söylediği için birçok değerli bilgi içerir. Bu tür mesajların çok sık ortaya çıkacağına ve programlama dili eğitimi bittikten sonra bile hiçbir yere gitmeyeceğine hazırlıklı olmalısınız. Hatalar üzerinde çalışmak için zaman ayıramazsınız - bu, öğrenmenin en önemli kısmıdır. Ayrıca, bu iyi bir uygulamadır - sorunu bir kez anladığınızda, daha sonra birçok hatadan kaçınmak daha kolay olacaktır. Hata raporlama bir ceza değildir; aslında, kodlayıcının ona her şeyi nasıl doğru yapacağını öğretmek isteyen en iyi arkadaşlarıdır.

Diğer programcılarla iletişim

Bu tür bir iletişim, diğer insanların da aynı sıklıkta kodlama sorunlarıyla karşılaştığını anlamaya yardımcı olacaktır ve bu alışılmadık bir durum değildir. Ek olarak, yeni başlayan biri programcı olan arkadaşına yardım edebilirse, ikinci bir rüzgara sahip olacak ve öç alarak öğrenmeye devam edecektir. Ve iletişimden korkmamalısınız - programcılar aslında arkadaş canlısı insanlardır, genellikle kendi dalga boylarındadırlar ve yeni başlayanların yalnızca rezonansa girmesi yeterlidir.

Doğru ve yanlış yaklaşım

Acemi kodlayıcılar genellikle diğer projelerden kod parçalarını kopyalamaya çalışırlar ve problemlerinden herhangi birini çözerler. Bunun makul olduğunu düşünüyorlar, çünkü asıl şey her şeyin çalışmasını sağlamak. Bu yanlış, üstelik çok zararlı bir yaklaşımdır. Ve kopyalama kötü olduğu için değil, kopyalama nedeniyle, yeni başlayanlar bu kodun tam olarak ne yaptığını anlamayacaktır. Elbette kopyalamak, her şeyi kendiniz yazmaktan çok daha kolaydır.

Ancak öğrenme sürecinde, böyle bir yaklaşım, bilgide büyük boşlukların oluşmasına ve acemi bir kodlayıcının bir gün pes etmesine ve karşılaştığı sorunu çözememesine yol açacaktır. Ve her şeyi terk edecek. Bir programlama dili öğrenirken, ilk bakışta bile herhangi bir sorunu analiz etmek için pişmanlık duymadan zaman harcamanız gerekir. Ve hemen bir çözüm bulamıyorsanız, pes de edemezsiniz. Okumanız, video izlemeniz, başkalarına sormanız gerekiyor - yeni başlayanların ortaya çıkan zorluklarla iyice uğraşması gerekiyor. Her ne kadar bir dil öğreniyor olsa da, sıradan bir insan dilini öğrenmekle tam olarak aynı şey değildir. Bir kodlayıcı bir makineyle ilgilenir, bu nedenle onun ne yaptığını anlaması önemlidir. Dilin bu tür bilgisi, eğitim süreci uygulamaya geldiğinde çok değerlidir.

Programlama dillerini öğrenmek, yapılacak en heyecan verici şey değildir. Ancak konuya kurgu ile yaklaşırsanız her şey çözülebilir. Bir şey öğrenmenin oyun oynamaktan daha iyi bir yolu yoktur. Bu aynı zamanda sadece oynayarak ve becerilerinizi geliştirerek bir dili hızla öğrenebileceğiniz için kodlama için de geçerlidir. İşte gelişmekte olan bir kodlayıcının kontrol etmesi gereken birkaç oyun.

  • CheckiO, tarayıcınızda oynayabileceğiniz bir oyundur ve oyunda ilerlemek için JavaScript veya Python problem çözme gerektirir.
  • CodeMonkey - esas olarak çocuklar içindir, ancak yeni başlayan biriyseniz bu oyunu oynayarak biraz kod öğrenebilirsiniz.
  • Codewars gerçek bir oyun değil, programcılar için ortak bir problem çözme çözümüdür. Oyun birçok dili desteklediğinden bu, kodlamada ustalaşmak için harika bir yoldur.
  • Code Combat, gerçek bir oyun oynayarak kod yazmayı öğrenebileceğiniz çevrimiçi bir platformdur.

Hangisinin sizin için en uygun olduğuna ve öğrenmekte olduğunuz dile bağlı olarak kullanabileceğiniz birçok başka oyun vardır. Oyun, yeni başlayanların, öğrenmenin en başında çok önemli olan bir programcı gibi düşünmeye başlamasına yardımcı olacaktır.

Çözüm

Bazı insanlar kodlamayı çabuk öğrenir, bazıları daha yavaş ama herkes kodlamayı öğrenebilir. Ve bir şey işe yaramazsa, daha hızlı düşmeyin. Yavaş hareket ederek hedefinize ulaşabilirsiniz ve aslında herhangi bir çalışma yavaş bir süreçtir. Yeni başlayanlar, yalnızca temelleri öğrenerek kodlama çalışmasını bırakmak istemiyorsa, kendi davranış stratejisini geliştirmesi gerekir. Eğitime zaman, çaba ve bazen para yatırıldığını anlamanız gerekir, bu nedenle bir aşamadan diğerine geçmeniz yeterlidir. Ve zorluklara boyun eğmeyin. Evet, programlama herkes için değildir. Ama herkes bir dil öğrenebilir, kodlamayı öğrenebilir. Bu yüzden sadece karar vermeniz ve kendi yolunuza gitmeniz gerekiyor.

1. Bağımsız olarak

Demir bir iradeye sahipseniz ve programcı olmaya hevesliyseniz, kendi kendinize eğitim alarak hedefinize ulaşabilirsiniz. Bu en kolay ve en kısa yol değil: bilgi kaosunu kendiniz anlamanız ve erteleme ile mücadele etmeniz gerekiyor. Ancak uygun bir zamanda nispeten az parayla veya tamamen ücretsiz olarak eğitim alabilirsiniz.

Başlamak için en kolay yer etkileşimli çevrimiçi kurslardır. Web'de programlamanın temellerini açıklayan ve daha fazla gelişme için yön belirleyen birçok materyal vardır. Gerçek proje örneklerini öğreten, yani size adım adım belirli bir programın veya web sitesinin nasıl oluşturulacağını anlatan kurslara özellikle dikkat edin.

FreeCodeCamp Web Geliştirme Platformu

Pratik yapmadan hiçbir şey yapamayacağınızı unutmayın. Proje odaklı dersleri inceleyin ve içindeki demonte programları ve siteleri yazmaya çalışın. Geliştirmek istediğiniz projelerle ilgili YouTube derslerini arayın. İlk önce, diğer insanların çalışmalarını kopyalayın ve analiz edin. Ardından orijinalden uzaklaşmaya çalışın, deneyin, benzersiz bir şey yaratana kadar öğeleri tek tek değiştirin.

Kurslara ve video derslere ek olarak, dil web sitelerinde mevcut resmi belgeleri bulacaksınız ve. Temel bilgileri edindiğinizde, programlama diliniz için en son En İyi Uygulamalar başlıklarını arayın. Bu kitaplar en iyi tasarım tekniklerini içerir.

Projenizi oluşturmak için kendinize mutlaka bir hedef belirleyin ve üzerinde sürekli çalışın.

Bu, kazanılan bilgileri pekiştirmeye ve hala hangi bilgilere sahip olmadığınızı anlamanıza yardımcı olacaktır. Becerileriniz proje ile birlikte gelişecektir. Bitirdiğinizde, yeni, daha karmaşık bir tane üzerinde çalışın.

Öğrenme veya geliştirme sürecinde herhangi bir zorluk yaşarsanız, herhangi bir sorunuz için her zaman Toaster ve Stack Overflow gibi programlama topluluklarına başvurabilirsiniz. Örneğin, bir sorunu çözmenize, iyi bir kurs seçmenize veya koddaki hataları belirtmenize yardımcı olacaklardır.


"Tost makinesi" teknolojik konularda soru ve cevap servisi

Çeşitli pratik problemleri kod yardımıyla çözerek diğer programcılarla rekabet edebileceğiniz özel sitelerde becerilerinizi geliştirmek uygundur. Bu hizmetler arasında Codewars, TopCoder ve HackerRank bulunur.

Gelişiminizin durduğunu düşünüyorsanız veya öğrenmenizi hızlandırmak istiyorsanız aşağıdaki seçenekleri deneyin.

2. Bir akıl hocasının yardımıyla

Akıl hocası, hataları işaret eden, tuzaklar konusunda uyaran, kursa rehberlik etmeye yardımcı olan kişisel bir akıl hocasıdır. Doğru zamanda alınan faydalı bir tavsiye, sizi birçok sorundan kurtarabilir ve size çok zaman kazandırabilir. Bu nedenle, bir akıl hocası kimseyi rahatsız etmeyecektir.

Tanıdığınız geliştiriciler olup olmadığını öğrenin. Belki onlardan biri size yardım etmek isteyecektir. Bu tür insanları tanımıyorsanız, onları programlama topluluklarında arayabilirsiniz. Örneğin, aynı "Tost Makinesi" üzerinde. Sadece mentorluk hizmetleri ucuz değildir ve kimse yabancılarla bu şekilde çok fazla zaman harcamak istemez.

3. "Canlı" derslerin öğretmenlerinde

Programcıları sıfırdan yetiştiren eğitmenlerle uzaktan ve yüz yüze kurslar son yıllarda inanılmaz popüler hale geldi. Bu format içinde kendi başınıza da çok çalışmanız gerekiyor. Ancak profesyonelce hazırlanmış bir programa göre çalışacaksınız ve gerçek bir kişi sorunların çözümünü kontrol edecek. Kursların dezavantajları, yüksek eğitim maliyetini içerir.

Programcıların sistemik eğitimine katılan popüler Rusça çevrimiçi platformlar: Netology, GeekBrains ve Loftschool.

Dahili olarak çalışmayı tercih ediyorsanız, bölgenizde programlama öğreten eğitim merkezlerini arayabilirsiniz. Ne yazık ki, bu tür kuruluşlar çoğunlukla yalnızca büyük şehirlerde bulunur. Bir örnek, birkaç ülkede şubeleri bulunan bilgisayar akademisi "STEP" dir.

4. Üniversitede

Çok zamanınız kaldıysa ve hayatınızı programlama ile bağlamak istediğinizden eminseniz, üniversitede bilgisayar bilimi okuyabilirsiniz. Ancak geleneksel eğitim kurumlarının ilerlemenin gerisinde kaldığını unutmayın, bu nedenle modern programlama dillerinde ve diğer teknolojilerde kendi başınıza ustalaşmanız gerekecek.

Öte yandan, üniversite, yüksek kaliteli bir programcı olmanıza yardımcı olacak temel matematik, algoritmalar ve diğer alanlarda bilgi sağlayacaktır. Yıllarca süren gayretli çalışma boyunca, profesyonel alanda her şeyi anında kavrayacağınız doğru zihniyeti geliştireceksiniz.

Bir yön ve dil nasıl seçilir

BT endüstrisinde, her biri kendi dil grubunu kullanan çeşitli yönler vardır. Artan karmaşıklık sırasına göre ana talimatları listeleyelim:

  1. web Geliştirme... Popüler diller: JavaScript, PHP, Python, Ruby.
  2. Mobil geliştirme... Popüler diller: Java, Swift.
  3. Masaüstü bilgisayarlar için oyun ve programların geliştirilmesi... Popüler diller: C++, C#, C.
  4. Büyük Veri, makine öğrenimi... Popüler diller: Python, R, Scala.

Seçim yaparken nelere dikkat etmeli

Yön ve özellikle dil konusunda doğru seçim yapmak için aşağıdaki faktörleri göz önünde bulundurun: Mastering'in karmaşıklığı ve Web'deki eğitim materyallerinin miktarı, kişisel tercihleriniz (tam olarak neyi geliştirmek istiyorsunuz) ve işgücü piyasasında dile olan talep.


Uluslararası işgücü piyasasında dillere olan talebin grafiği / Research.hackerrank.com

Bölgenizdeki dile olan talebi iş arama sitelerinde kontrol etmek kolaydır. Yazılım geliştiriciler için bölümü açın ve mevcut açık kontenjan sayısını görün.

karar veremiyorsanız

Kafanız karıştıysa, neredeyse tüm web'in yazıldığı dil olan JavaScript'e daha yakından bakın. Birçok kuruluş ve programcı, yeni başlayanlara ilk dilleri olarak bu dili seçmelerini önerir.

Örneğin, freeCodeCamp eğitim kaynağının kurucusu Quincy Larson, tüm yeni başlayanlar için JavaScript'tir. Larson çok basit argümanlar ortaya koyuyor:

  1. JavaScript'i öğrenmek nispeten kolaydır. Ve bu dilde bir şeyler yazmak ve onu çalıştırmak için bir kod düzenleyiciye ve bir tarayıcıya ihtiyacınız var.
  2. JavaScript, uluslararası işgücü piyasasında en çok talep edilen dildir ve büyük umutları vardır. Google, Microsoft ve Facebook gibi büyük şirketler JavaScript ekosistemine yatırım yapıyor.
  3. JavaScript'in çok geniş bir uygulama yelpazesi vardır: web siteleri ve tarayıcı oyunlarından mobil uygulamalara.

Ayrıca, bu dil etrafında geniş bir geliştirici topluluğu oluşmuştur. JavaScript'e olan yüksek ilgi, çok sayıda kurs, kitap ve diğer eğitim içeriği sağlar.

Bir programcı başka ne bilmelidir: matematik ve İngilizce?

Herhangi bir programcı derin bir anlayıştan faydalanacaktır. Oyun grafikleri veya büyük veri gibi şeyler için matematiksel bir zihin şarttır. Ancak web geliştirme ve basit programlar oluşturmaya gelince, çoğu durumda matematik olmadan yapabilirsiniz. Bu konuda profesyoneller arasında bir fikir birliği olmamasına rağmen.

Ancak, en azından belgelerin akıcı bir şekilde okunması düzeyinde İngilizce'yi anlamak, tüm programcılar için bir zorunluluktur. Resmi belgeler ve çoğu eğitim materyali öncelikle İngilizce olarak görünür. çeviri yayınlanmadan önce bile genellikle güncelliğini yitirir. Buna ek olarak, İngilizce bilgisi tüm dünya ile çalışmak için umutlar açar.

İlk deneyiminizi ve ilk işinizi nasıl edinirsiniz?

Bir programcı olarak ilk işinizi bulmak için bir portföyünüz olmalıdır. Bu, oluşturduğunuz bir proje veya daha doğrusu birkaç tane, tüm geliştirici becerilerinizi sergiliyor. Kursların çoğu, portföyünüze sığabilecek projelerin geliştirilmesini içerir.

İş deneyimi, özellikle ekip geliştirme, bir özgeçmiş üzerinde çok değerli bir öğe olacaktır. Ama ilk işinizi arıyorsanız, nereden alabilirsiniz?

  1. için birden fazla sipariş tamamlayın. Freelance veya Upwork olabilir. Hizmetlerinizi ücretsiz olarak sunun, ardından ilk müşteriler size gelsin.
  2. Benzer düşünen insanları bulun ve onlarla ortak bir proje oluşturun. Programlama kurslarının olduğu hemen hemen her eğitim sitesinde insanlar bu amaçlar için birleşirler.
  3. Organizatörün istihdam konusunda yardımcı olduğu kursları seçin. Örneğin, GeekBrains'te, eğitimden sonra, ücretli olanlar da dahil olmak üzere çeşitli şirketlerden stajlara erişim açılır. GeekUniversity ve STEP, mezunlarına istihdam garantisi veriyor.

Daha önce, iş arayanlara sıklıkla sorulan görevler ve sorular için Web'de arama yapmayı unutmayın.