Programcı meslek türü. Ne tür programcılar vardır ve tüm BT uzmanlarının bunu bilmesi neden önemlidir?

  • 15.07.2019

Modern bir insanın neredeyse tüm yaşam alanları, ayrılmaz bir şekilde insanlığın en büyük icadı olan bilgisayar ile bağlantılıdır. Elbette bilgisayar bizim için hayatı çok kolaylaştırdı, kolaylaştırdı. Ve bir bilgisayarın performansı bir programcıya bağlıdır - bilgisayar yazılımının geliştirilmesi ve bakımıyla uğraşan bir kişi.

Modern bir insanın neredeyse tüm yaşam alanları, ayrılmaz bir şekilde insanlığın en büyük icadı olan bilgisayar ile bağlantılıdır. Günlük yaşam, üretim, hizmetler, eğitim, havaalanları, askeri birlikler, hastaneler vb. - bugün bilgisayar olmadan bir işletmenin veya şirketin iyi koordine edilmiş çalışmasını hayal etmek imkansızdır. Elbette bilgisayar bizim için hayatı çok kolaylaştırdı, kolaylaştırdı. Ancak yazılım güncelliğini yitirir veya arızalanırsa, son derece akıllı bir makine, yalnızca çiçeklik olarak kullanılabilecek bir metal yığınına dönüşür. Ve bilgisayarın performansı şunlara bağlıdır: programcı- bilgisayar yazılımının geliştirilmesi ve bakımıyla uğraşan bir kişi.

Bu nedenle, profesyonelliği yalnızca tek bir bilgisayarın performansını değil, tüm modern toplumu doğrudan etkileyen bir programcının günümüzün bir kahramanı olduğunu güvenle söyleyebiliriz. Bu nedenle, programcılara, bugün size anlatacağımız çalışmalarının özelliklerine ve en önemlisi toplumun gelişimi için önemine göre özel gereksinimler getirilmektedir.

programcı nedir?


Bir programcı, programlama ile uğraşan yüksek nitelikli bir uzmandır: özel matematiksel modellere dayalı olarak bilgisayarlar ve diğer bilgi işlem cihazları için yazılım yazma ve ayarlama.

Mesleğin adı eski Yunanca πρό ve γραμμα (sırasıyla ön ve giriş) sözcüklerinden gelmektedir. Başka bir deyişle, adı çevirirseniz programcı mesleği kelimenin tam anlamıyla, bu uzmanın nasıl olması gerektiğini reçete ettiği açıkça anlaşılan bir "reçete" alıyoruz. Mesleğin genç olmasına rağmen, 1843'te Bernoulli denklemini çözmek için ilk program, bu arada ünlü şair George Byron, kontes ve matematikçinin kızı Ada Lovelace tarafından yazılmıştır. Mesleği ağırlıklı olarak erkek olmasına rağmen, "ilk programcı" fahri unvanını aldı. Bugün programcılar tüm dünyada tanınmakta ve basın sayfalarında genellikle film yıldızlarından daha az yer işgal etmemektedir. Steve Jobs, Michael Zuckerberg, Sergey Brin, Eugene Kaspersky veya dünyanın en zengin insanlarından biri olan Bill Gates'in isimlerini kim bilmiyor?

Bilgisayar programları, hemen hemen her üretim veya hizmet sektörünün otomasyonunun temelidir. Veritabanları oluşturmanıza, yönetim sürecini basitleştirmenize, karmaşık hesaplamalar yapmanıza, üretim süreçlerini kontrol etmenize vb.

Bir programcının mesleğinin homojen olmadığını unutmayın. Meslekte birkaç dar uzmanlık vardır:

  • sistem programcısı- işletim sistemlerinin, küresel arama motorlarının geliştirilmesiyle uğraşıyor - çalışmaları, olduğu gibi, bir uygulama programcısı ile genel bir ilişki içinde. Bu uzmanlık aynı zamanda bilgisayarların ve bilgisayar ağlarının daha da geliştirilmesi için önemli olan analitik çalışmayı da gerektirir;
  • uygulama programcısı- ilgili endüstrilerdeki bir veya daha fazla işletme için programların geliştirilmesi ve sürdürülmesi ile uğraşan bir kişi. Programın belirli bir yönü ve işlevselliği ile çalışır ve ayrıca bilgisayar oyunları geliştirir;
  • Web programcısı- Ana bilgi kaynağı ve en güçlü reklam aracı olan küresel İnternet ile ilgili programlamada uzmanlaşmıştır. Web programcısı siteler oluşturur, onları tanıtır, içerikle çalışır.

Genel olarak bir sistem, uygulama ve web programcısının mesleki sorumlulukları birbirinden çok farklı değildir. Bu, her şeyden önce, bir yazılım ürününün programlanması ve hatalarının ayıklanmasıdır. Ek olarak, herhangi bir programcının iş sorumlulukları şunları içerir: programları başlatmak ve atanan görevlere göre veri girmek, yazılım için talimatlar geliştirmek, programları kullanma olasılıklarını belirlemek, bir yazılım ürününün otomatik olarak doğrulanması için bir sistem geliştirmek ve uygulamak, vb.

Bir programcının sahip olması gereken kişisel özellikler nelerdir?


programcı işi Bir uzmanın matematiksel yeteneklere ve mantıksal düşünmeye sahip olmasını gerektiren son derece entelektüel bir faaliyeti ifade eder. Ek olarak, iyi bir programcı mutlaka aşağıdaki gibi kişisel niteliklere sahiptir:

  • kendi kendine çalışma yeteneği;
  • sabır;
  • alıntı;
  • sosyallik;
  • girişim;
  • bağımsızlık;
  • yaratıcılık;
  • bir sorumluluk;
  • sabır.

Programcıların resmi dilinin teknik İngilizce olduğu da unutulmamalıdır. Bu nedenle, İngilizce dil bilgisi de bir uzman için en önemli gereksinimlerden biridir. Ayrıca İngilizce bilgisi olmayan bir programcının mesleki görevlerini yerine getirmesi çok zor olacaktır.

Bir programcının mesleğinin faydaları

Bir programcının mesleğinin faydaları bilgisayarların ve internetin gelişmesi için büyük umutlarla ilişkilidir. Meslek, bu tür uzmanların faaliyet alanı neredeyse sınırsız olduğu için talep görüyor: bilgisayarların teknik ve entelektüel yetenekleri sürekli güncelleniyor, yeni cihazlar, araçlar ve araçlar ortaya çıkıyor.

İkinci şüphesiz avantaj, yüksek ücretlerdir. Acemi bir programcı bile yaklaşık 30-40 bin ruble maaşa güvenebilir. Yüksek nitelikli bir programcının maaşı hakkında konuşursak, o zaman Pavel Durov ve Ilya Segalovich gibi seçkin programcıların canlı bir örneği, BT uzmanlarının gelirinin milyonlarca (milyarlarca değilse) olabileceğine tanıklık ediyor.

ana araç bir programcının profesyonel faaliyeti uzaktan çalışma için sınırsız olanaklar sunan bilgisayar ve internettir. Bu nedenle, bir uzman hem bir firma veya şirketin ofisinde hem de evde, günün veya gecenin herhangi bir saatinde ücretsiz olarak çalışabilir. Kısacası, bir programcı kişisel arzularına, yeteneklerine ve tercihlerine göre çalışma zamanını ve yerini seçebilir.

Bir franchise sahibinden kendi şirketinin başkanına kadar, programcının önünde kariyer gelişimi için sınırsız beklentilerin ortaya çıktığı konusunda sessiz kalmak imkansızdır. Doğru, hızlı kariyer büyümesi ancak aynı anda üç bileşen varsa mümkündür: arzu, yetenek ve ticari çizgi.

Bir programcı mesleğinin dezavantajları


Bir yazılım ürününün geliştirilmesi, yüksek derecede rutin ve monotonluk içerir: bir program kodu oluştururken yapılan tek bir hata, bir "sorunlu sektör" için çok günlü bir aramaya dönüşebilir ve bu, (bazen birden fazla) çok büyük miktarda görüntülemedir. program kodunu ve hatayı düzeltmenin yollarını dikkatlice düşünün. Ve bu belki de en büyüğü programlama mesleğinin olmaması.

Programlama mesleğinin bir diğer "belası" sağlık sorunlarıdır. Hareketsiz bir yaşam tarzı, ağır göz yorgunluğu, düzensiz beslenme… Bütün bunlar kas-iskelet sistemi ve bir uzmanın görüşü ile ilgili sorunlara neden olabilir.

Ek olarak, etkinliğinin doğası gereği, programcı diğer proje katılımcılarıyla (ve programcının yanı sıra çok sayıda insan yazılımın oluşturulmasında yer alır) çok fazla ve uzun süre iletişim kurmalıdır, bu da bir bir uzmanın karakter özellikleri üzerinde özel baskı. Bu nedenle programlamadan uzak insanların bir programcı ile "ortak dil" bulması oldukça zordur. Ayrıca programcılar, kural olarak, işlerine tutkuyla bağlı olan ve bu konuda gece gündüz konuşabilen kişilerdir.

Bir programcının mesleğini nereden edinebilirsiniz?

NS bir programcının mesleğini edinmek"Bilgisayar teknolojisi ve otomatik sistemler için yazılım", "Uygulamalı matematik ve bilişim" veya "Bilgi sistemlerinin matematiksel desteği ve yönetimi" gibi uzmanlık alanlarında eğitim gerçekleştirdiği temelinde bir üniversitede eğitim almak gerekir. Bu uzmanlık alanlarına kaydolmanın zor olduğu konusunda sizi hemen uyarıyoruz: rekabet çok yüksek ve yalnızca en değerli ve yetenekli olanlar hayallerini gerçekleştirebilir.

Bu arada, Rus programlama okulu tüm dünyada biliniyor ve uzmanlarımız derin bilgileri ve yaratıcılıkları için tüm dünyada takdir ediliyor. Bu nedenle, bir üniversitenin seçimi temel bir öneme sahip değildir: tüm Rus enstitüleri ve üniversiteleri yaklaşık olarak aynı düzeyde bilgi ve beceri sağlar. Bununla birlikte, bu tür mezunlar Rusya'daki en iyi üniversiteler, nasıl:

  • St. Petersburg Ulusal Bilgi Teknolojileri, Mekanik ve Optik Araştırma Üniversitesi;
  • Moskova Devlet Teknoloji Üniversitesi Bauman;
  • Petersburg Devlet Politeknik Üniversitesi;
  • Moskova Fizik ve Teknoloji Enstitüsü (MIPT);
  • Moskova Devlet Üniversitesi, M.V. Lomonosov.

Şu anda, programlamada birçok yön var. Herkes beğenisine göre bir şeyler bulabilir, ancak bunun için alanınızda tam olarak ne yapacağınızı bilmeniz gerekir.

Web uygulaması geliştirme

Bu yön, web uygulamalarının geliştirilmesine odaklanmıştır (başka bir deyişle, siteler, ancak şu anda siteler, tam teşekküllü uygulamalar olarak adlandırılabilecek kadar zengin bir işlevselliğe sahiptir).

Web programlama arka uç (sunucu tarafı komut dosyaları yazma - PHP, Python, Ruby) ve ön uç (kullanıcı arayüzü geliştirme - Javascript, HTML, CSS) olarak ayrılabilir.

Masaüstü Uygulama Geliştirme

Çeşitli işletim sistemleri için yazılım geliştirme. Günlük hayatta kullandığımız tüm yazılım çeşitleri. Kendi fotoğraf işlemcinizi, ses çalarınızı veya metin düzenleyicinizi yazmak istiyorsanız, burası tam size göre.

Sunucu Uygulama Geliştirme

Bunlar çeşitli oyun sunucuları (en sevdiğiniz Dotka, CS: GO), IM servisleri (Skype, ICQ, MSN'nin sunucu tarafı), bankacılık veritabanlarıdır.

Mobil uygulamaların geliştirilmesi

Çok sayıda Java uygulaması. VK, Viber, Yandex.Haritalar, çevirmenler, e-okuyucular.

Gömülü programlama

Çeşitli ev aletleri için ilginç bir programlama dalı: elektrikli süpürgeler, buzdolapları, çamaşır makineleri, oyuncular, navigasyon cihazları, elektronik teraziler. MATLAB gibi özelleşmiş dilleri kullanarak bilimsel gelişmeleri içerir.

Sistem Programlama

Donanım için çeşitli sürücüler yazmak, işletim sistemlerinin "çekirdeğini" programlamak. Bu arada, programlama dilleri için derleyicilerin ve yorumlayıcıların oluşturulması buraya aittir.

Oyun geliştirme

Dev bir endüstri. Buna PC'ler, konsollar ve mobil cihazlar için oyun geliştirme dahildir.

Olimpiyat programlama ve problem çözme

Standart olmayan bir yaklaşım, yaratıcılık ve 160'ın üzerinde IQ gerektiren bazı orijinal sorunları çözmek için çeşitli "pratik olmayan" ve yaygın olmayan dillerde (Pascal, Delphi) programlama.

Muhasebe ve finansal ürünler için programlama

"1C: Kurumsal". Rusya'daki tüm muhasebe bu ürüne bağlıdır. Ancak sadece dili bilmek yeterli değildir, muhasebenin temellerini anlamak önemlidir. Artı, çok iş olması ve ekmeksiz kalmayacaksınız.

Veritabanı programlama

Ciddi yön. Tüm VKontakte veya Facebook kullanıcıları hakkında milyarlarca satırlık bilgi depolayabilen ve aynı zamanda yavaşlamayan veritabanları geliştirmek istiyorsanız - buradasınız.

Bilim

Bilim ve bu her şeyi söylüyor. Sinir ağları, DNA yapı modellemesi, uydu fırlatma, Big Bang simülasyonu.

Bu arada, son zamanlarda NASA web sitesinde, 60 yıldan daha eski olan "antik" Fortran dilinde bir programcı arayışıyla ilgili haberler yayınlandı. Yazılımları 1970'lerde Assembler, Fortran ve COBOL'da yazılmış olan otomatik sondalar Voyager 1 ve Voyager 2'yi kontrol etmek için programlar geliştirmek için bir programcıya ihtiyaç vardı. Hangi bilginin işe yarayacağını asla bilemezsiniz.

Bu günlerde oldukça talep görüyor. Bu uzman, çok çeşitli bilgisayar ekipmanı türleri için yazılım geliştirir. Bu tür faaliyetlere kendi başınıza (yalnız çalışarak) veya uzman bir firmanın çalışanı olarak katılabilirsiniz.

Şimdi hemen hemen her işletme, yönetim otomasyonu sorunuyla karşı karşıya. Bu uzman, üretimin geliştirilmesi için kendi planları olan lider ile modern bilgisayar teknolojisi dünyası arasında bir tür bağlantı bağlantısıdır.

Ne tür programcılar var?

Tipik olarak, profesyoneller iki büyük ölçekli kategoriye ayrılır. İlki uygulama programcılarıdır. Programlar geliştirirler, yazılım mekanizmalarını ayıklarlar. İkincisi sistemseldir, tam yazılım geliştirme ile uğraşır.

Nasıl göründü?

"Programlama" terimi, ilk hesaplama mekanizmasının ortaya çıkmasıyla ortaya çıktı. Mark-1 böyle bir bilgisayar yeniliği haline geldi. 1944 yılında geliştirilmiştir. Birkaç on yıl boyunca meslek çok popüler ve iyi ücretli hale geldi. Bir programcının maaşı zaten en yükseklerden biriydi. Şaşırtıcı değil, çünkü o zamanlar bilgisayar bilgisi sadece seçilmiş en büyük zihinlere açıktı.

Hangilerine sahip olmalısınız?

Programcı çok hareketli bir kişi olmalıdır. Yüksek teknoloji dünyasında, genellikle yeni ürünler piyasaya sürülür, ekipman ve yazılımın özellikleri güncellenir. İyi bir profesyonel her zaman bu değişikliklerin farkında olmalıdır. Bu nedenle, her şeyi anında kavrama, hızlı bir şekilde kendi kendine öğrenme ve kendini geliştirme yeteneği, bir programcının temel kişisel özelliklerinden biridir.

İngilizce bilgisi de önemli bir gerekliliktir. En azından teknik dokümantasyon okuma ve tercüme etme seviyesine sahip olmalısınız. Odaklanabilmek, birçok adım ilerideki perspektifi görebilmek önemlidir. Büyük bir projede bir ekipte çalışmak, büyük bir ekipte manevra yapmak, net bir şekilde açıklayabilmek - modern bir programcının onsuz yapamayacağı tek şey budur. Girişim ve bağımsızlık, bir boş pozisyon için aday için önemli bir rol oynar. Bir programcının maaşı, potansiyel bir çalışanın sahip olduğu kişisel niteliklerin stokuna bağlı olarak değişebilir.

Ne tür bir eğitime ihtiyacınız var?

Programcıların çoğu prestijli teknik eğitim kurumlarının mezunlarıdır. Ancak kendi kendini yetiştirmiş oldukça başarılı insanlar da var. Bir programcının mesleğinde elbette teorik temel önemli bir rol oynar. Ancak, bir profesyonelin sürekli olarak önemli sorunları çözmesi ve gelişmelere katılması gerekir. Tek kelimeyle, programcı "beyinlerini kendi başlarına oynatmalıdır". Diploma iyidir, ancak kendi kendine çalışmanın nitelikler üzerinde çok daha iyi bir etkisi olacaktır. Daha önce de belirtildiği gibi, bir programcının maaşı, ne tür bir başlangıç ​​eğitimine sahip olduğunuza ve kendi başınıza edindiğiniz bilgi miktarına bağlıdır.

Programcılar nerede çalışır?

Rusya'da, herhangi bir şirketin bu tür uzmanlara ihtiyacı var. Üretimi otomatikleştirmeye yardımcı olacaklar: satın alma ve teslimat arasındaki iç alışverişte hata ayıklama, malların kayıtlarını tutma ve tüm işi uyarlama. Rusya'daki bir programcının maaşı, hangi işlevleri yerine getirdiğine göre belirlenir.

Bir uzman yalnızca işletme otomasyonu ile uğraşıyorsa, maaş uygun olacaktır. Programcının sistemi izlemesi, özel bir paket geliştirmesi durumunda önemli bir artış beklenebilir.

Şimdi piyasada, 1C bilgisine sahip çalışanlar önemli talep görüyor. Bu muhasebe programı, herhangi bir kuruluşun çalışmasını kolaylaştıracak, işi optimize edecektir. Web programlama ortamı da bilgisayar profesyonellerinin ana faaliyet alanıdır. Tüm siteleri desteklemek için PHP, MYSQL, XHTML, CSS, JavaScript bilgisi ve bunları modernize etme becerisi gereklidir.

Birçok şirket bir kişide bir programcı ve bir tasarımcı almak istiyor. Sadece teknik sorunları çözmekle kalmayıp aynı zamanda bir web sitesi tasarlayabilen kişi her zaman değerlidir. Mesleğin önemli bir artısı, hem ofiste hem de evde uzaktan çalışabilmenizdir. Birçok programcı, serbest çalışma, yani bağımsız bir müşteri araması ile uğraşmaktadır.

Bir programcının maaşı nedir?

Böyle bir uzmanın maaşı farklı olabilir. Bir programcının ortalama maaşı iki faktöre göre hesaplanır: iş yeri ve nitelikler. Ancak bazen, aynı niteliklere sahip çalışanlarla bile, iyi ve kötü bir işyeri arasındaki fark oldukça önemli olabilir.

Ortalama olarak, nüfusu bir milyondan fazla olan şehirlerde bir programcının, bir ildeki benzer bir uzmandan ortalama %20 daha fazla kazandığı tahmin edilmektedir. Belirli miktarlar: Ayda 2.000 $ - iyi bir işçinin maaşı. Doğrudan müşterilerle çalışan bir kişinin, alana yeni gelenlerin sırasıyla yaklaşık iki katı - daha azı vardır. Uluslararası pazarı hedefleyen Batılı şirketler daha fazla ödeme eğilimindedir. Bir programcının maaşının ve artışının sizin gelişme yeteneğinize bağlı olduğunu unutmayın.

Programcıların olmadığı kıyamet sonrası bir dünya hayal edin. Game of Thrones'daki ejderhalar siyah beyaz Godzilla'lara dönüşecek. Sohbetler, anlık mesajlaşma programları ve hatta Tetris kaybolacak. Programcılara ihtiyacımız var. Akıllı telefonlar, bilgisayarlar ve çamaşır makineleri için kodlar yazarak aletleri çalıştırıyorlar. Ama hepsi bu değil. Mesleğin, her birinin kendine has özellikleri ve zorlukları olan birçok yönü ve uzmanlığı vardır, maaş da programcının ne yaptığına bağlıdır.

Web geliştiricisi

2017 için en popüler meslek türü "programcı" bir web geliştiricisidir. Bu kategori, web siteleri oluşturma uzmanlarını içerir.

Web yöneticileri geleneksel olarak üç gruba ayrılır:

  • Ön uç geliştirici;
  • Arka uç programcısı;
  • Tam yığın geliştirici.

İstemci ve sunucu bölümlerinin ne olduğunu herkes bilmiyor. Bu nedenle, işverenler genellikle web geliştirmedeki uzmanlıkları karıştırır. Serbest borsalarda, işverenlerin normal bir düzen için ödeme yaparken ön uç ustasından tam yığın bilgi talep ettiği reklamlar vardır.

Kodun gizemlerine inisiye olmayanlar için bunlar benzer yönlerdir. Programcılar, öyle görünüyor ki, tek bir şey yapıyorlar. Ancak frontend master ve sunucu geliştiricinin araçları, dili, sorumlulukları ve maaşları farklıdır.

Ön uç geliştirici nedir?

Bir istek girildikten sonra tarayıcıda açılan İnternet kaynağının görünen kısmına istemci veya ön uç denir. Tasarımcı, başlıkların tasarımından, renklerinden ve konumlandırılmasından sorumludur. Sanatçı gelecekteki düzeni çizer ve onu bir HTML şablonuna dönüştüren düzen tasarımcısına teslim eder. Bu aşamada bir web programcısı bağlanır ve arayüze dinamikler ekler.

Ön uç geliştiriciler, widget'lar, düğmeler, açılır menüler, slayt gösterileri oluşturmaktan sorumlu programcılardır. Tüm etkileşimli öğeler, onlar sayesinde sayfalarda görünür. JS'de komut dosyaları yazarlar, bunları HTML etiketleri aracılığıyla dahil ederler ve kodun her bölümünün doğru çalıştığından emin olurlar.

Ön uç geliştirici araçları

HTML, CSS ve JavaScript ile kod yazmak yeterli değildir. İş piyasasında rekabetçi kalabilmek için bir ön uç geliştiricinin aşağıdakileri bilmesi gerekir:

  1. jQuery. Eklentiler ve uzantılar koleksiyonuna sahip JavaScript kitaplığı. Sıfırdan kod yazmak yerine jQuery, önceden oluşturulmuş öğeleri eklemenize ve özelleştirmenize olanak tanır. Örneğin, otomatik tamamlama formları, kaydırma çubuğu, zamanlayıcı, ilgili animasyon.
  2. Bootstrap, Foundation, Backbone, AngularJS ve EmberJS çerçeveleri. Bunlar, kaynağın performansını artıran yazılım kabuklarıdır. Hazır bir tasarım sağlayın ve geliştiricinin hayatını çok daha kolay hale getirin.
  3. SASS ve LESS ön işlemcileri. CSS işlevselliği ekler, kodu işler, onu biçimlendirilmiş ve tarayıcılar arası CSS'ye dönüştürür.
  4. Popüler CMS - uyarlanabilir düzen ve çapraz platform.

Programcının sorumlulukları ve faaliyetleri, hata ayıklamayı ve istemci tarafını test etmeyi içerir. Web mühendisi, kaynak kodun tek tek bloklarını hatalara karşı kontrol eder. Arayüzü test eder, kullanıcıların uygulamayla etkileşime girmesinin ne kadar uygun olacağını öğrenir. Ayrıca, bir ön uç uzmanı, sunucu programlamanın temellerini, Node.js teknolojilerini, JS'ye ek olarak PHP ve SQL'de yazmalıdır.

Maaş ve beklentiler

Bir ustanın ortalama maaşı ayda 66 bin 410 ruble. ABD'de bu miktar yılda 102 bin dolara çıkıyor. Yüksek maaşlar, işaretleme kolaylığı ve komut dosyası oluşturma, hevesli kodlayıcıları ön uç geliştirmeye çeker. JS'de uzmanlaşanların çoğu, sunucu tarafı dillere geçer. En yetenekliler, yüksek düzeyde C ve Java öğrenir, yavaş yavaş oyun geliştirmede, uygulama geliştirmede ve bir programcının diğer bilgi etkinliklerinde ustalaşır.

Sunucu tarafı programcısı

Arka uç, bir web uygulamasının sunucu tarafı parçasıdır. Tarayıcıda görüntülenmez ancak içeriğin değiştirilmesinden sorumludur, dinamik çalışma sağlar ve sitedeki tüm bilgileri saklar. Sunucu, uygulama ve veritabanından oluşur. Web kaynağının bu bölümünü oluşturan ve geliştiren programcılara Backend geliştiricileri denir.

Sunucu taraflı programcı, ön uç geliştiriciden sonraki evrimsel adımdır. Görevi, sunucu, uygulama ve veritabanının etkileşimini sağlamaktır. Sunucu taraflı PHP, Ruby, Python, Java ve .Net dillerinde yazıyor. Verilerle çalışmak için araç olarak MySQL, Oracle ve SQL Server'ı kullanır. İş tanımlarında, işverenler genellikle ek gereksinimleri belirtir:

  • PHP çerçeveleri bilgisi: Zend, Symfony ve CakePHP;
  • SVN, CVS veya Git sürüm kontrol yazılımı ile deneyim;
  • Linux, Unix, MacOS X ve Windows Server işletim sistemleri ile çalışma becerileri.

Bir web uygulaması oluşturmak, birkaç uzmanı içeren karmaşık, çok seviyeli bir süreçtir. Bu nedenle, arka uç geliştirme bir ekip çalışmasıdır. Bir programcı kod yazarken tasarımcılar, yerleşim tasarımcıları, yöneticiler ve müşterilerle etkileşime girer.

Geliştirici Fullstack

Bu, bir web uygulaması oluşturmanın tüm aşamalarını içeren bir tür programcı çalışmasıdır. Fullstack geliştiricisi, hem istemci hem de sunucu tarafında yazan tüm işlemlerin bir krikosudur. Mesleğin ilk sözleri, 2010 yılında Facebook çalışanı Carlos Bueno'nun bir makalesinden sonra ortaya çıktı. O andan itibaren şirket, çalışanları yalnızca Fullstack düzeyinde işe alır.

Evrensel bir web programcısının görevleri:

  1. Sunucu yönetimi. GUI olmadan uzak sunuculara terminal aracılığıyla bağlantı. Özel grupları, güvenlik duvarlarını, Apache ve Nginx programlarını yönetin. Tam yığın programcı, Heroku, Google Cloud, Azure, AWS ve diğer platformlarda bulut barındırma hakkında her şeyi bilmelidir.
  2. Arka uç ve veritabanı oluşturma. Uzman MySQL, PostgreSQL ve noSQL veritabanlarını anlamalıdır: MongoDB, Redis veya Cassandra. Neo4j gibi grafik DBMS hakkında bilgi sahibi olun.
  3. Ön uç geliştirme ve tasarım. Standart görevlere, düzene ve JS bağlantısına ek olarak Fullstack master, düzeni Photoshop veya Illustrator'da tasarlar.

Fullstack Geliştiricileri Kıdemli Geliştiricilerdir. Kelle avcıları tarafından avlanırlar ve en yüksek maaşları alırlar. ABD'de Fullstack Developer maaşı 70-80 bin dolardan, Doğu Avrupa'da 25-30 bin dolardan başlıyor. Yabancı serbest borsalarda, örneğin Upwork, bir Fullstack geliştiricisinin bir saatlik çalışmasının 30 $ veya daha fazla olduğu tahmin edilmektedir.

Bilgisayar oyunlarının yaratılması ve geliştirilmesinde uzman

Bilgisayar oyunu geliştirme, BT teknolojisinin en hızlı büyüyen alanlarından biridir. Analitik ajans NewZoo'ya göre, video oyunları pazarının hacmi her yıl %9 artıyor. 2016'da neredeyse 100 milyar dolara ulaştıysa, 2018'de bu miktar 112,5 milyara yükselecek. Bu nedenle, bir "video oyun mühendisi" umut verici ve yüksek ücretli bir pozisyondur.

Mühendis veya Oyun geliştirici, bir oyun oluşturma sürecinde yer alan profesyoneller kategorisinin genel adıdır. Ana görev, fikri program koduna dönüştürmek ve tüm unsurları etkileşime sokmaktır. Programcılar çalışma sürelerinin %90'ında algoritmaları C++, Visual Basic, Java ve MEL'de yazar ve hatalarını ayıklar.

Meslekte çok az romantizm var. Temel olarak, bu rutin ve bilgisayarda saatlerce çalışma. Program genellikle düzensizdir. Bir tasarımcı, bir şeyi acilen yeniden yapmak için parlak bir fikir bulursa, bütün gece kodu döken programcıdır.

Ne tür oyun programcıları var?

Konsol, mobil veya PC oyunu oluşturmak çok katmanlı bir süreçtir. Tasarım aşamasında başlar, ürünün tanıtımı ve ticarileştirilmesi ile biter. Ayrıca oyunun arayüz, ses ve video efektleri, yapay zeka gibi birçok ayrı yönü bulunuyor. Her biri için farklı türde bir programcı vardır:

  • Lead Sound Programmer: Ses ve video efektlerini birleştirmek için yardımcı programlar yazar.
  • Oyun motoru geliştiricisi.
  • UI uzmanı veya GUI yaratıcısı.
  • Özellikle rakibin eylemlerinin oyuncuya bağlı olduğu oyunlarda, mantık ve karakter karar vermeyi simüle eden bir yapay zeka mühendisi.
  • Oyun programcısı: oyun stratejisi, mekanik ve mantığın uygulanması.
  • Giriş cihazı mühendisi. Kullanıcının video oyunuyla etkileşime gireceği joystickler, klavyeler, fareler ve cihazlar için kod yazar.
  • Çok oyunculu oyunlar için bir iletişim ağları programcısı.

Oyun endüstrisinin yararına çalışmaları için bu tür programcılar 60 bin ruble maaş alıyor. Bağımsız geliştiricilerin gelirini doğru bir şekilde hesaplamak zordur. Başarılı projelerin sadece bir hafta içinde milyonları getirdiği durumlar vardır. Örneğin, hit oyun Punch Club, Angry Birds ve ünlü Minecraft. Elbette Scroll Ninja gibi yaratıcıların beklentilerini karşılamayan başarısız fikirler var.

sistem programcısı

Bir sistem, yazılım veya yazılım, bir bilgisayar için bir dizi talimattır. Bunlar, yardımcı programları, sürücüleri, işlemci komutlarını, grafik kartını, monitörü içerir. Bir sistem mühendisi tarafından makine tarafından anlaşılabilir bir dilde veya kodda yazılırlar.

Yazılım, sunucu Unix ve Windows Server dahil olmak üzere çeşitli işletim sistemleri ve mobil platformlar için geliştirilmiştir. Kod, Assembler'ın nadir istisnaları dışında C dillerinde yazılmıştır. Bir sistem mühendisinin ana görevi, işletim sistemini ve tüm bileşenlerini kurmak, yapılandırmak, test etmektir.

Çeşitli meslek türleri "programcı", bir uzmandan belirli beceriler, iş deneyimi ve bilgisayar dillerinde yeterlilik düzeyi gerektirir. Ancak sistem mühendislerinin işi en zorudur. Yazılım oluşturmak için bilgisayar bilimi, cebir, matematik ve bina algoritmaları hakkında derinlemesine bilgi sahibi olmanız gerekir.

Üretim süreçlerinin otomasyonu ve güvenlik izleme dahil olmak üzere BT'nin herhangi bir alanında bir sistem programcısı gereklidir. ABD'de uzmanlar, bir uzmanın çalışması için 87 ila 104 bin dolar ödemeye hazır. İngiltere'de 57 bin lira, Rusya'da 90 bin ruble.

Uygulama Yazılımı Mühendisi

Bu tür programcılar, sistem yazılımı değil, uygulama yazılımı oluşturur. Bunlar, kullanıcıyla doğrudan etkileşime giren programlar veya uygulamalardır. Örneğin, metin ve görüntü düzenleyiciler, veritabanları, ses ve video oynatıcılar.

Bir uygulama mühendisinin işi kod yazmak, onu derlemek, hatalarını ayıklamak ve test etmektir. Bazen bir uzman mevcut yazılımı günceller veya değişiklikler yapar. Programlama için Java, C #, C ++, Python, PHP üst düzey dillerini kullanır. Uygulama programcıları nadiren yalnız çalışırlar. Temel olarak, yeni başlayanların katılımcılarıdır veya bilgisayar yazılımı geliştiren bir şirketin personelinin bir parçasıdırlar.

"Programcı", birçok yön ve uzmanlığa sahip ilginç ve çeşitli bir meslektir. Bazıları web siteleri ve tasarım API'leri için widget'lar yapar, diğerleri sunucular için kod yazar veya Disciples III grafiklerini inceler. Programlamayı seven herkes web geliştirme alanında kendini gerçekleştirebilir, seçkin bir oyun yaratıcısı olabilir veya NASA uyduları için programlar yazabilir.

Programlama, birçok farklı mesleği tek bir isim altında birleştiren uzun zamandır büyük bir endüstri haline geldi. Yalnızca BT alanından uzak kişiler, bir programcının kendileri için Windows'u hızlı bir şekilde kurabileceğine veya "basit bir çevrimiçi mağaza oluşturabileceğine" inanır. Ve bir kişinin web siteleriyle hiç çalışmadığı veya Windows hakkında birçok kullanıcıdan daha az şey bilmediği ortaya çıkarsa çok şaşırırlar. Sadece kendisi Linux veya Mac kullandığı için.

BT geliştiricisi işlerinin listesini incelemeye çalışırsanız, çeşitli iş unvanları ve gereksinimleri göz korkutucu bile olabilir. Özellikle harika bir ekip oluşturmak veya kendinizi bu büyük profesyonel alanda bulmak istiyorsanız. Ancak projenin gerçekleşebilmesi ve kariyer inşa edebilmeniz için insan faktörünü de göz önünde bulundurmanız gerekiyor.

Aslında, her şey göründüğü kadar karmaşık değildir. Programcılar faaliyet alanlarına göre 8 ana tipe ayrılır. Ve kişisel nitelikler çerçevesinde, motivasyonun özelliklerine odaklanmak en iyisidir. Ama önce faaliyet alanlarına bakalım.

Ön uç geliştirici

Bu programcılar arayüzlerde uzmanlaşmıştır. Ekranda tıklayabileceğiniz tüm düğmeler, açılır menüler ve bir sitenin veya uygulamanın tüm görünümü ve hissi onların etki alanıdır. Onlar. Ön uç, etkileşimli arayüzlerin dinamikleri üzerinde çalışmakla ilgilidir. Ek olarak, bir düzen tasarımcısının yokluğunda, Ön uç geliştiricilerin HTML koduyla (şablonların düzeni) çalışması gerekebilir.

Uzmanlık, büyük orta ölçekli web stüdyolarında ve site oluşturma ve uygulama geliştirme alanında faaliyet gösteren diğer şirket türlerinde talep görmektedir.

Teknolojiyi bilmeniz gerekir:

  • HTML ve CSS;
  • Çeşitli çerçeveler;
  • önişlemciler (SASS / LESS);
  • kütüphanelerle birlikte JavaScript;
  • Hata ayıklama ve montaj sistemleri.

Duyarlı ve mobil bir düzenin ne olduğunu anlamak, popüler CMS çalışmalarını incelemek, sunucu teknolojilerini ve arka uç ilkelerini anlamak, SEO optimizasyonunun temellerini öğrenmek, web yazı tipleriyle çalışmak, Photoshop, Illustrator ve diğerlerini kullanabilmek de önemlidir. grafik editörleri.

Arka uç geliştirici

Arka uç programcısı, projenin program-yönetim bölümünün oluşturulmasıyla ilgilenir - mimariyi yaratır, mantık üzerinde düşünür, yürütülebilir kodu yazar.

Bu tür uzmanlar, büyük veya orta ölçekli bir BT şirketi için çalışır. Genel olarak, Front-end ve Back-end'in ayrılması sağlam bir projenin işaretidir.

Çok çeşitli programlama dilleri, çerçeveler ve kitaplıklar kullanabilir. En popüler:

  • PHP;
  • Python;
  • Java;
  • Yakut.

Ayrıca JavaScript, MySQl, PostgreSQL ve NoSQL öğrenmeniz gerekiyor.

Tam yığın geliştirici

Yukarıda açıklanan iki kategoriyi birleştirir, genellikle WEB projelerinde çalışır. Onlar. bu, kendi başına tam teşekküllü bir anahtar teslimi web sitesi oluşturabilen aynı programcıdır.

Bu uzmanlar, küçük web stüdyoları ve serbest çalışma için çok gereklidir. Önceki iki paragrafta açıklanan beceri ve bilgileri birleştirir. Ancak genellikle her iki yönü de dar bir uzmanlık seçme durumunda olduğu kadar derinden bilmez. Ancak buna ihtiyacı yoktur. Niş alanı basit ve en pahalı projeler değil.

Oyun geliştiricisi

Oyun uygulaması geliştiricisi büyük kavramlardan biridir. Genellikle Oyun geliştiricileri uzmanlıklara ayrılır: masaüstü geliştirme, mobil oyunlar ve MMORG.

Bu alandaki uzmanlar, oyun stüdyolarında ve yeni başlayanlarda talep görmektedir. Destek, hata düzeltmeleri ve diğer güncellemelerin yanı sıra sıfırdan etkileşime girerler.

Gerekli teknolojiler:

  • C / C++. C# veya aynı sınıftan başka bir programlama dili;
  • Java ve kütüphaneler;
  • GL veya DirectX'i açın;
  • Unity, Unreal Engine, Torque veya diğer oyun motorları.

Android geliştiricisi

Android işletim sistemi ile anlaşmalar. Büyük şirketlerde geliştirme de Back-end ve Front-end olarak ikiye ayrılır. Ancak çoğu durumda, bir uygulama oluşturma döngüsünün tamamı, bundan sonra projenin herhangi bir parçası ile çalışabilirler.

Uzmanlık, oyun stüdyolarında, yeni kurulan şirketlerde, mobil uygulamaların geliştirilmesinde uzmanlaşmış şirketlerde vb.

Gerekli bilgi:

  • Android Stüdyosu;
  • Java;
  • OpenGL;
  • Android SDK'sı.

iOS geliştiricisi

Çeşitli (Apple cihazları için işletim sistemi) oluşturur. Bir Android programcısı tarafından açıklananlara benzer işlevleri gerçekleştirir. Ayrıca startuplarda, mobil uygulama geliştirme şirketlerinde ve benzeri projelerde talep görmektedir.

iOS ve Android sistemlerinin avantajlarını ve dezavantajlarını daha önce yazmıştık. Her iki yön de eşit derecede önemlidir ve talep görmektedir. Ve deneyimle birçok programcı her iki mobil işletim sisteminde de çalışmayı öğrenir.

Bir iOS geliştiricisinin bilmesi gerekenler:

  • Swift veya Objective-C;
  • Temel veri;
  • Xcode;
  • OpenGL;
  • Kakao Dokunuşu;
  • Çekirdek Grafikler.

1C programcısı

1C yazılımının çeşitli konfigürasyonlarıyla çalışma konusunda uzmanlar. Profesyonel bir ortamda, bu kategori iki yönlü bir tutuma sahiptir. Birçok geliştirici 1C'yi bir programlama dili olarak görmez ve 1C uzmanları programcılardır. Ancak, yine de, bu uzmanlığın adı budur. Ve Rusya'da büyük talep görüyor.

1C programcıları, müşterinin işinin özellikleri için mevcut yazılım çözümlerinin temel (tipik), revizyonu ve özelleştirilmesine dayalı sektöre özel konfigürasyonların oluşturulması, harici süreçler ve raporlar yazılmasıyla ilgilenir.

1C programcısının boşluğu, bu yazılım ürününü bölgede uygulayan 1C ortak şirketi adına görülebilir. Ayrıca, sürekli bakıma ihtiyaç duyan orta ve büyük işletmeler tarafından bir 1C programcısı işe alınır.

Bir 1C programcısının bilmesi gerekenler:

  • 1C yapılandırma dili;
  • Tipik konfigürasyonlar (Muhasebe, İşletme, Ticaret Yönetimi, vb.);
  • T-SQL veritabanları.

Yazılım Mühendisi

Hemen hemen tüm programlama türleri kurslarda veya kendi başınıza öğrenilebilir. Bunun istisnası yazılım mühendisidir. Bu meslek, programlama dillerini incelemeye ek olarak, matematik, fizik ve diğer ilgili disiplinler alanında derin bilgi gerektirir.

Bir yazılım mühendisi matematiksel mantığı ve ayrık matematiği iyi bilir, tüm bu matematiği pratikte nasıl uygulayacağını bilir. Ek olarak, eğitim seviyesi, çeşitli endüstriyel ve teknolojik süreçleri incelemenize izin verir.

Bu nedenle yazılım mühendisleri çoğunlukla endüstriyel otomasyon için yazılım geliştirme ile ilgilenirler: CNC makineleri, konveyör hatları. Genellikle ev aletlerini programlarlar - ekmek yapma makineleri, robotik elektrikli süpürgeler vb. Yazılım sistemlerinin oluşturulmasında uzmanlaşmış şirketlerde, geliştiriciler genellikle yazılım mühendisleridir, çünkü kendi kendini yetiştiren "kodlayıcıların" aksine, bu uzmanlar derinlemesine algoritma bilgisi almıştır.

Ana teknolojiler:

  • Programlama dilleri C / C ++, C #, Delphi ve diğerleri;
  • Düşük seviyeli programlama bilgisi (Assembler);
  • Önemli miktarda teknik bilgi (öncelikle programcının çalıştığı sektörle ilgili).

Motivasyon türleri

Ve son olarak, söz verdiğimiz gibi, kişilik özellikleri ve farklı programcılarla çalışma yaklaşımlarından bahsedelim. Birçok farklı sınıflandırma vardır, ancak en basit ve en anlaşılır olanı motivasyon türüne göredir.

Olabilir:

  • İş motivasyonu (ücret, kar, itibar);
  • Teknoloji (yeni bir şeyi deneme ve uygulama yeteneği);
  • Sorunun çözümü (ilginç çözümler arayın).

Hemen hemen her programcı için bu motivasyonlar birbirine karışır. Ve burada tam olarak neyin geçerli olduğunu anlamak önemlidir.

iş motivasyonu

İş motivasyonu, müşterinin isteklerini mümkün olduğunca verimli bir şekilde yerine getirme arzusunu "içerir". Bu durumda, programcının hızla müşterilerin ve yöneticilerin gözdesi olması muhtemeldir. Herhangi bir işlevi uygulamak için hızlı, verimli ve gereksiz sorular olmadan deneyecektir. Hatta müşterinin isteği buysa, kodu yeniden yazmaya ve projenin mimarisine zarar verecek şekilde çalışmaya bile hazır. Nadiren iyi bir hayal gücüne sahip olurlar; her zaman kod bağlamında çok somut düşünürler. Bu tür geliştiriciler "dünyanın tuzudur", herhangi bir ürün oluştururken ihtiyaç duyulur.

teknolojik motivasyon

Bu motive edici, en çok, sürekli olarak tüm yeni ürünlerle ilgilenen ve ortaya çıkar çıkmaz yeni diller, çerçeveler, araçlar öğrenmeye hazır olan meraklılar arasında bulunur. Bu tür insanlar moda trendleri hakkında her şeyi bilir, kişisel zamanlarını onları incelemeye adar ve her zaman “dişlere” yeni ürünler dener. Yeni girişimlerde ve gelişmekte olan projelerde, bu tür insanlar yeri doldurulamaz. Onlar gerçek fikir üreticileri ve yenilikçi çözümlerin uzmanlarıdır.

Ancak proje olgunlaşırsa, nihai hale gelir veya kullanıcılar tarafından kullanılabilir hale gelirse, teknolojiye meraklı inekleri başka bir şeye çevirmek daha iyidir. Çünkü ya canı sıkılır ya da kodu yeniden yazmaya gerek kalmadan, sadece deneyecek başka bir yer olmayan başka bir yenilik tanıtmak için kodu yeniden yazmaya başlar.

Bir motive edici olarak problem çözme

Bu kategoride - programlama dünyasından karmaşık bulmacaların hayranları. Bir sorunu çözme fırsatı onları cezbeder ve bu ne kadar zorsa o kadar ilginçtir. Yeni teknolojiler kendi başlarına onları ilgilendirmiyor, ama. proje için bir şeye ihtiyaç varsa, onu inceleyecek ve kullanacaklardır. Bu tür programcılar için zafer mantıklı, uyumlu ve güzel bir karardır.

Bu tür bir motivasyonun dezavantajı, bir çözüm bulunup test edildikten sonra projeye olan ilginin neredeyse sıfıra inmesidir. Küçük hataları bulmak, müşterinin isteği üzerine ek işlevler oluşturmak ve yeni sürümlerle çalışmak çoğu zaman sıkıcıdır. Kişi projeden ayrılır veya verimliliği sıfıra yakın bir seviyeye düşer.

Bu sınıflandırma sistemi ideal olmaktan uzaktır. Çoğu durumda, her üç tip de bir kişide iç içedir. Bu nedenle problem çözme meraklıları, koddaki küçük "pürüzlü kenarlar" üzerinde sabırla çalışabilir ve iş motivasyonu uzmanı orijinal fikirler verir. Tanımlanan sınıflandırmada - psikologların "saf psikotip" dediği şey, yani. en belirgin vakalar. Ancak gerçekte, programcının hangi motivasyonlara daha fazla yöneldiğini araştırmak ve onu uygun projelerle yüklemeye çalışmak için farklı türdeki temsilcileri tek bir takımda toplamaya çalışmak mantıklıdır.

Kendinizi nasıl konumlandırıyorsunuz? Ne tür bir programcısın?