Programcı “Mezunlara yardım etmek için” Yararlı bilgiler. Meslek programcısı Gerekli mesleki beceri ve bilgi

Adaylar için yalnızca teknik gereksinimler sürekli olarak belirtilir, ancak genellikle herhangi bir ek niteliğin gerekli olup olmadığı ve hatta hangilerinin gerekli olduğu belirsiz kalır. Hadi çözelim!

Görünüşe göre kod yazmak için herhangi bir kişilik özelliğine ihtiyacınız yok; yalnızca teknik eğitim almış bir uzman olmak yeterli. Ancak belirli nitelikler olmadan bir takımda, bir şirkette hem gelişemezsiniz hem de var olamazsınız.

Bu nedenle kendinizi geliştirmenize ve işyerinde kendinizi rahat hissetmenize yardımcı olacak bir programcının kişilik özelliklerini tanımanızı öneririz.

  • Mantıksal düşünme.

Mantıksız programlama pek mümkün değildir, ancak karmaşık sorunlara çözüm bulma konusunda herkes aynı derecede iyi değildir. Bu nedenle analitik düşüncenizi sürekli korumanız gerekir. Örneğin mantık oyunları oynayın, mantık bulmacalarını, testleri, bulmacaları çözün.

  • Dikkat ve odaklanma yeteneği.

Bir programcı kodla çalışırken sürekli monitöre baktığı için dikkat ve konsantre olma yeteneği olmadan yapamaz. İşinizi yaparken dikkatinizi uzun süre tek bir göreve verebilmeli, gereksiz konuşmalar, bildirimler ve mektupların yanı sıra kafanızdaki düşünce ve deneyimlerden dikkatinizi dağıtmamalısınız. Elbette ara vermeyi de unutmamanız gerekiyor ancak birkaç saat dikkatinizi korumanız çok faydalı olacaktır.

Yanlışlıkla sabahları işe hazırlanmak için zamana ihtiyacımız olduğunu düşünüyoruz. Aslında sabahları vücudunuz iyi durumda, dinlenmiş ve en zor görevleri çözmeye hazırdır. Bu nedenle haber akışınızı erteleyin, öğleden sonraya kadar e-postanızı kontrol edin (ertelenebilirse) ve en zor görevlerin üstesinden gelin. Konsantrasyon seviyeniz en üst düzeyde olacak, sabah çalışmanın ne kadar keyifli ve kolay olduğuna şaşıracaksınız.

  • Sabır.

Bir programcının işi oturarak çalışmaktır. Bu alanda kalmak istiyorsanız tek bir yerde ısrar etmenin size faydalı olması mantıklıdır. Uzun bir süre boyunca sıkı çalışmak oldukça hızlı bir şekilde başarıya yol açabilir.

  • Merak.

“Klimayı kimin icat ettiğini” bilme arzusunu değil, profesyonel merakı kastediyoruz. İhtiyacınız olan merak, bilginizin belirli bir teknoloji, dil vb. ile sınırlı olduğunu fark ettiğinizde daha fazlasını bilme arzusudur.

  • Sorumluluk.

Bir geliştiricinin işi, yarattığı kod açısından pek çok sorumluluk gerektirir. Sorumluluk, her şeyden önce kendinize, sonra müşteriye, müşteriye.

  • Kendini geliştirme arzusu.

Gelişme arzusu, her gün dünden daha iyi olma ve yalnızca yukarıya çıkma isteği programcıların alışılmadık bir özelliğidir. Ancak eğer ona sahipseniz, sizin olacağından emin olabilirsiniz. Bir programcının kişiliğinin bu niteliği, onu tüm kariyer yolu boyunca yönlendirir, onu yönetici pozisyonlarına yönlendirir veya teknolojisinde birinci sınıf bir uzman haline getirir. Sürekli çalışmayı, en yeni çerçeveleri keşfetmeyi ve meslektaşlarınızla iletişim kurmayı unutmayın.

  • Hayal gücü.

Eğer size programlamanın yaratıcı bir meslek olmadığını söylüyorlarsa, o zaman hiçbir zaman kod yazmamışlardır. İyi bir hayal gücü, bir programcının diğer nitelikleriyle birleştiğinde, önemsiz olmayan çözümler bulmanıza ve kodu o kadar basitleştirmenize olanak tanıyacak ki, diğerleri geliştiricinin bunu nasıl düşünebileceğini merak edecek. Öte yandan hayal gücü, kodu zihinsel olarak görselleştirmenin harika bir yoludur. Bir programcı kod oluşturduğunda gerçek hayatta ne yaptığını anlamalıdır.

  • İletişim yetenekleri.

Günümüzde çoğu geliştirici şu ya da bu şekilde bir takım halinde çalışıyor. Bu nedenle, etkili bir şekilde iletişim kurmayı öğrenirseniz, yardım istemekten veya bir meslektaşınıza fikrini sormaktan korkmazsanız, işiniz yokuş yukarı gidecektir. İletişim becerileri, sahip olmanız ekibin ayrılmaz bir parçası olmanıza yardımcı olacak sosyal becerilerdir.

İletişim becerileri herhangi bir geliştiricinin anlayabileceği kod yazma yeteneği olarak anlaşılabilir. Geliştiriciler arasındaki iletişim genellikle kod aracılığıyla gerçekleşir. Bilgisayar sizi "kirli" yazıyla bile anlıyorsa, o zaman kişi burada ne yapmak istediğinizi anlamamakla kalmayabilir, aynı zamanda bu tür koddaki hatayı nasıl düzelteceğini de bilemeyebilir.

  • Kalıcılık.

Azim, uzun vadeli hedeflere ulaşmanıza ve onlardan sapmanıza izin vermeyen kişisel bir niteliktir. Azim, bir soruna karşı çözümünüzü savunurken veya yeni bir özellik sunarken de işinize yarayacaktır. Çoğu zaman bu kalite, bir projede zamandan ve kaynaklardan tasarruf etmenize olanak tanır.

Özellikle BT alanında deneyiminiz varsa, bu programcı kişilik özellikleri listesine ekleyebileceğinizden eminiz.. Tabii ki, BT uzmanlığına bağlı olarak bazı kişisel nitelikler öne çıkıyor, diğerleri ikinci planda kalıyor-küre. Dolayısıyla bir iş analistinin insanlarla iletişim kurma becerisine sıradan bir geliştiriciden çok daha fazla ihtiyacı olacak. Tıpkı bir geliştiricinin sebattan daha çok ihtiyaç duyması gibi. Ancak şunu biliyoruz ki, bu niteliklerin en az %50'sini kendinizde geliştirebilirseniz, mülakatları daha başarılı geçerek işinizi daha iyi yapar, sorunları daha kolay çözer, doğru çözümleri daha hızlı bulursunuz.

İşadamları genellikle sınırlı bir bütçeyle yetenekli ve deneyimli programcıları işe alma sorunuyla karşı karşıya kalır. Silikon Vadisi girişimcisi John Rampton bu sorunla kişisel olarak karşılaştı; yeni projesini birkaç ay içinde başlatmak için bir ekip kurdu. Rampton modern teknoloji dünyasının başkentinde yaşasa da insanları büyük maaşlarla büyük şirketlerden ayrılıp yeni projeler üzerinde çalışmaya ikna etmekte zorlandı. Çalışanları işe alma sürecinde John, iyi bir programcıyı karakterize eden ve onun şirkete neredeyse kesinlikle uyacağı anlamına gelen bir düzine nitelik belirledi.

1. Güçlü teknik beceriler

İK profesyonellerinin yaptığı en büyük hata, insanları bir gereksinimler listesine göre işe almalarıdır. Üç yıllık C++ ve bir yıllık Java programlama tecrübesine sahip birini aramak yerine, yapabilecekleri şeylerin tam listesine bakarlar. Ancak aslında, bir programcı işi için ihtiyaç duyduğu dili yalnızca bir yıl önce öğrendiyse ve bundan önce uzun yıllar başka bir dilde programlama yapıyorsa, o zaman diğer dillerdeki iyi geçmişi nedeniyle bu pozisyon için ideal bir adaydır. alanlar.

Bir röportaj sorusu örneği: "Diğer programlama dillerinde geliştirme deneyiminizi açıklayın."

2. Öğrenmeye hazır olma

Teknoloji sürekli gelişiyor ve günümüzün programlama becerileri ve yetenekleri birkaç yıl içinde geçerliliğini yitirecek. En son trendleri gözlemlemekle ilgilenen ve kendini sürekli eğiten bir programcı bulmak önemlidir.

Örnek görüşme sorusu: "Becerilerinizi güncel tutmak için ne yaparsınız?"

3. Hata ayıklama becerileri

Kod oluşturmak programcının işinin yalnızca bir parçasıdır. Yazılım beklendiği gibi çalışmadığında programcının hızlı ve verimli bir şekilde sorunun kökenine inmesi gerekir. Kodda değişiklik yapmak için körü körüne saatler harcamak yerine, kodu inceleyecek ve cevap bulunana kadar sorunların kaynağını arayacak bir programcı bulun.

Örnek röportaj sorusu: "Kodunuzdaki hatalarla nasıl başa çıkıyorsunuz?" (+programcıya kodun hatalarını ayıklaması için bir test görevi verebilirsiniz).

4. Her ortamda çalışabilme yeteneği

Bazı programcılar konsantre olmak için tam bir sessizliğe ihtiyaç duyarken, diğerleri kaos ve karışıklıkta iyi çalışırlar. Bir çalışanın kişisel tercihleri ​​üretkenliğinin önemli bir parçasıdır; bu nedenle, kişiyi işe aldıktan sonra sorun yaşamamak için ofis ortamınızı net bir şekilde anlamak en iyisidir.

Bir röportaj sorusu örneği: "İdeal çalışma ortamınızı tanımlayın."

5. Ortaya çıkan sorunları çözme yeteneği

Sıfırdan bir uygulama oluşturmayı hiç denememiş olanlar, programlamayı son derece karmaşık bir matematik denklemini çözmeye benzetebilirler. İyi bir programcı ne olursa olsun her zaman belirli bir görevi tamamlamanın yollarını arayacaktır. Aksi takdirde her yeni proje teklifinizde “İmkansız” ifadesini duyarsınız.

Bir röportaj sorusu örneği: "Nasıl yapardınız (kuruluşunuz için geçerli olan tamamen imkansız bir sorunu çözmeyi teklif edersiniz)?"

6. İş tutkusu

Pek çok geliştirici işlerini yalnızca dokuzdan beşe kadar yapma eğilimindedir, ancak işe alım görevlileri genellikle çözülmesi gereken ilginç bir sorunu çözmek için birkaç saat harcamaktan mutlu olan kişileri arıyorlar. Mülakat sürecinde hobilerini ve diğer ilgi alanlarını sorarsanız bu tür çalışanlara sıklıkla rastlayabilirsiniz. Gerçek programcılar boş zamanlarında oyun oynayan, sunucular oluşturan veya arkadaşları için uygulamalar oluşturan meraklılardır. Bu, iyi bir programcının en önemli özelliği değildir, ancak çoğu zaman gerçekten değerli çalışanlar bulmanız onun sayesinde olur.

Bir röportaj sorusu örneği: "Hobileriniz nelerdir?"

7. Stres direnci

Programlama son derece stresli bir meslek olabilir. Teslim tarihleriniz kısıtlı olduğunda ve hiçbir şey yolunda gitmediğinde, aklınızı kaybedip delirmeye başlamak kolaydır. İdeal programcı en zor stresli durumlarla başa çıkabilir ve en önemlisi çalışmaya devam edebilmelidir.

Örnek görüşme sorusu: “Aşırı baskı altında olduğunuz ve başvurunuzun işe yaramadığı bir durumu anlatın. Sonra ne yaptın?

8. “Sıradan insanlarla” iletişim becerileri

Tipik olarak programcıların istemcilerle iletişim kurması gerekmez; çoğunlukla tüm gün bilgisayar başında oturup çevrimiçi iletişim kurarlar. Ancak programcılar düzenli olarak yöneticilerle, çalışanlarla ve müşterilerle etkileşim halindedir, dolayısıyla başkalarıyla iyi iletişim kurabilmek bir zorunluluktur. Bu, özellikle programcılarınızdan bazen müşterilerle toplantılara katılmaları ve sistemin nasıl çalıştığını açıklamaları istendiğinde geçerlidir.

Röportaj sorusu örneği: "Favori uygulamanızın nasıl çalıştığını ortalama bir kişinin anlayabileceği şekilde açıklayın."

9. Tembellik

Perl Programlama Dilleri kitabının yazarı Larry Wall, iyi bir programcının üç temel becerisinin tembellik, sabırsızlık ve gurur olduğuna inanıyor. Tembellik herhangi bir çalışan için kötü bir özellik gibi görünebilir, ancak BT yöneticileri bir şeyi yapmanın en iyi yolunu bulmak istiyorsanız tembel bir kişiye bunun nasıl yapılacağını sormanız gerektiğini söylüyor. Büyük olasılıkla bu kişi en hızlı ve en etkili yolu bulacaktır. Geliştiriciler genellikle süreçleri otomatikleştirmenin yollarını bulur ve bu da şirketlerin zamandan ve paradan tasarruf etmesini sağlar.

Bir röportaj sorusu örneği: "Süreçleri otomatikleştirerek zamandan nasıl tasarruf edeceğinizi söyleyin."

10. İş süreçlerini anlamak

Yalnızca yazılım oluşturmaya odaklanırsanız büyük resmi gözden kaçırmanız kolaydır. İdeal programcı bir işletmenin nasıl çalıştığını anlamalı ve uygulama oluşturmanın ötesine geçmelidir. İş odaklı bir programcı, daha sonra performansı artıracak yeni uygulamalar için fikirler üretebilir.

Bir röportaj sorusu örneği: "Hiç şirketin iş süreçlerinin iyileştirilmesine katıldınız mı?"

11. Planlama yeteneği

Programcı her görevin üstesinden gelmeye çalışmak yerine öncelikle nihai ürünün ne olacağı hakkında mümkün olduğunca çok şey öğrenmelidir. Analizi tamamladıktan sonra programcı, kodun ilk satırına girmeden önce programın yapısını tasarlayabilmelidir.

Örnek röportaj sorusu: “Yeni bir tasarım üzerinde çalışmaya nasıl başlarsınız? Yaptığınız ilk şey nedir?

12. Başarısızlıkların üstesinden gelme yeteneği

Programcılar çok nadiren ilk denemede bir şeyi yapmayı başarırlar. Çoğu zaman problemlerin çözümünde başlangıçta zorluklarla karşılaşırlar. Hataları ve eksiklikleri bir yenilgi işareti olarak değil, öncelikle bir meydan okuma olarak görecek bir takım seçmek önemlidir. Sabırlı olmalı ve saatlerce çalıştıktan sonra bile yeniden başlayabilmelidirler.

Bir röportaj sorusu örneği: "Hiç saatlerce kod çalışıp bir hata bulmaya harcadınız mı?"

13.Takım halinde çalışabilme becerisi

Bir programcı, şirketteki tek geliştirici olsa bile nadiren yalnız çalışır. Diğer programcılarla, iş kullanıcılarıyla, pazarlama ve satışla çalışma yeteneği onun için çok önemlidir.

Mülakat sorusu örneği: "Bana ekip çalışması deneyiminizi anlatın."

14. Keşfetme isteği

Programlama dili resmin yalnızca bir parçasıdır. Çalışanları veya müşterileri için bir program oluşturmak için iyi bir geliştiricinin belirli sektörlerin nasıl çalıştığını ayrıntılı olarak bilmesi gerekir.

Bir röportaj sorusu örneği: “Belirli bir işin ayrıntılarını derinlemesine incelemeniz gereken bir zamana dair bana bir örnek verin? Bu sorunu nasıl çözdünüz?

15. Son teslim tarihlerine uymak

Çoğu programcı son teslim tarihi olan projeler üzerinde çalışır. Yöneticilerin uygulamaları geliştirmek ve hata ayıklamak için makul son tarihler belirlemesi gerektiği açıktır, ancak programcıların kendileri de son tarihlere uymalıdır. Adayın, belirlenen son teslim tarihlerine "uymak" için mümkün olan her şeyi yapacağını belirlemek önemlidir.

Bir röportaj sorusu örneği: "Bana sabit teslim tarihleri ​​altında nasıl çalıştığınızı anlatın."

İyi bir programcı bulmak kolay değildir, özellikle de programlama bilginiz sınırlıysa. Böyle durumlarda ekibinizden bu konuyu anlayan birini görüşmeye davet edebilirsiniz. Kendi başınıza soramayacağınız soruları formüle etmenize yardımcı olacaklar.

Tüm bu niteliklere sahipseniz Linkedin'e göre 2014 yılında işverenler arasında en çok talep gören hak sahiplerini de tanıyabilirsiniz.

İş tanımlarında işverenler genellikle herhangi bir spesifik bilgiyi değil, soyut kavramları gösteren oldukça standart gereklilikleri belirtirler. Örneğin - azim, strese karşı direnç, bir takımda çalışabilme yeteneği vb. Herkes bunları kendine göre anlayabilir. Örneğin, onlarca ve yüzlerce özgeçmiş okumuş deneyimsiz bir başvuru sahibi, tüm bu tipik gerekliliklerin "gösteri için" gerekli bir sıradanlık olduğunu düşünebilir.

Öyle olmadığı ortaya çıktı. İşverenlerin genellikle, özel anlayışla yatırım yaptıkları, başvuru sahiplerinin yeterliliklerine ilişkin kendi listeleri vardır. Tanınmış şirketlerin temsilcilerine, iyi bir geliştiricinin hangi kişisel niteliklere sahip olması gerektiğini sorduk.

Her şey belirli bir şirkette çalışmanın özelliklerine bağlıdır.

Cloud Linux Inc.'in CEO'su ve Kurucusu Igor Seletsky:
Programcılar dahil tüm insanlar farklıdır. Bazıları bulutlarda uçabilir, diğerleri ayrıntılara "yapışacaktır" - her ikisi de farklı pozisyonlar, görevler ve hatta şirketler için de olsa önemlidir.
Ve böylece asıl mesele, kişinin iyi olmasıdır.
Şirketimdeki çalışanlar için önemli olan nitelikleri sayabilirim. Ama bu önemli değil. Bu niteliklerin hiçbir rol oynamadığı veya tam tersine büyük bir engel olduğu başka şirketler de var.
Tüm çalışmalarımız uzaktan yapılıyor, dolayısıyla programcıların zamanlarını izleyebilmeleri ve kendi başlarına çalışabilmeleri gerekiyor. Ve kesinlikle yakın temasa (“yüz yüze”) ihtiyaç duyan insanlar bizimle kök salmıyor. Ancak bu bizim spesifikliğimizdir. Çoğu şirket muhtemelen tam tersidir. Ancak bunların hepsi, genel olarak programcıların değil, bireysel şirketlerin ve pozisyonların ihtiyaç duyduğu “nitelikler”dir.

“Programcının işi problem çözmektir”

İyi bir geliştirici, sorunları çözme ve zorluklardan korkmama becerisiyle ayırt edilir. İşin kendisi sürekli olarak yeni şeylerin yaratılmasıdır; çoğu zaman hazır cevaplar yoktur. Bu nedenle çabuk pes edenlerin yeri burası değil.

Dmitry Eybozhenko, Yandex Geliştirme Ekibi Lideri:

Temel niteliklerin tüm meslekler için ve genel olarak İnsan olmak için yaklaşık olarak aynı olduğunu düşünüyorum - nezaket, sorumluluk, bir takımda çalışabilme yeteneği. Bunlar özgeçmişlerde çok sık bahsedilen ve sıradan gibi görünen kelimelerdir, ancak gerçekte son derece önemlidirler. Ama yine de ana kaliteyi öne çıkarırsam, sorunları çözme yeteneği derdim. Çünkü genel olarak bir programcının işi problem çözmektir, bir süre düz bir çizgiyi takip ettiğiniz bir tür engelli parkurdur ve deneyiminiz ve bagajınız nedeniyle bu sizin için kolaydır. Ancak bundan sonra aşılması gereken bir engel daha var. Ve tüm iş burada gizlidir. Bu arada, internette deneyim aramak, zorlukların üstesinden gelme becerilerini ve uygun çözümleri hızlı bir şekilde bulma ve bunları uygulama becerisini geliştirmenin yaygın yollarından biridir.
Programcı olmakla gerçekten bağdaşmayan çok fazla nitelik yoktur; zorlukların üstesinden gelememenin bunlardan biri olduğunu düşünüyorum. Muhtemelen, "bilimsel olarak" buna "stres toleransı" denilebilir, ancak aksi halde her şey lidere ve onun insanlarda hangi niteliklere değer verdiğine bağlıdır.

Analitik zihin, azim ve takım halinde çalışma yeteneği

Acronis'in geliştirme ve bulut teknolojilerinden sorumlu başkan yardımcısı Ivan Lukovnikov:

Her şeyden önce iyi bir geliştiricinin analitik bir zihne sahip olması gerekir. En karmaşık programlama problemlerinin bile mantıklı bir çözümü vardır. İdeal olarak bir programcı bu tür sorunları çözmekten keyif almalıdır; özellikle de her şeye basit ve güzel bir şekilde karar verilirse.
İkinci kalite elbette azimdir. Bilgisayar biliminin temellerini gerçekten öğrenmek çok zaman alır. Bazen kafa karıştırıcı problemleri programlamak ve çözmek için binlerce saat harcamanız gerekecek. Elbette yaptığınız işi seviyorsanız bu sizin için o kadar da zor olmayacaktır. Ancak yine de bu yolda gerçek başarıya ulaşmak çok fazla sabır ve büyük kararlılık gerektirecektir.
Üçüncü kalite, bir takımda çalışabilme yeteneğidir. Çoğu durumda kod yazmak kolektif bir şeydir. Modern bir geliştiricinin meslektaşlarıyla sürekli iletişim halinde olması, senkronize çalışması ve diğer insanların kodlarını kolayca okuyup üzerinde çalışması gerekir.

İyi konsantrasyon, azim ve algoritmik yaklaşım

Softline BT Direktörü Alexander Reshetkov:

Öncelikle işin doğasına dikkat etmelisiniz. Bu, uzun vadeli konsantrasyon ve azim gerektiren, düşünceli bir iştir. İşin doğasına bağlı olarak, ortalama bir geliştiricinin "portresi" hayal edilebilir - bunlar çoğunlukla süreç odaklı, ayrıntılara odaklanan, algoritmik bir yaklaşıma ve analitik bir zihniyete sahip insanlardır. Bu tür kişisel niteliklere sahip insanlar, algoritma gerektiren her türlü problemin üstesinden gelebilirler.
Yukarıdaki niteliklere ve yeterliliklere uymayan herhangi bir şey, geliştiricinin faaliyetlerinin kalitesi ve sonuçları üzerinde olumsuz bir etkiye sahip olabilir. Ve bunu işbirliğinin ilk aşamalarında anlamak önemlidir.

İyi bir programcı fikirlerini nasıl sunacağını ve insanlarla nasıl iletişim kuracağını bilir.

Gerçekten başarılı olmak istiyorsanız yüksek kaliteli kod yazmak yeterli değildir; liderlik becerilerinizi geliştirmeniz gerekir. Bu çok önemlidir, çünkü bir programcının kariyerini geliştirmek için bilimsel çalışmayı derinleştirmenin yanı sıra popüler bir seçenek de yönetim pozisyonlarıdır.

Mail.Ru Group Bilgi Teknolojileri Direktörü Alexander Gorny:

Bir geliştiricinin üç ana avantajını vurgulayacağım: sorumluluk, iletişim becerileri ve inisiyatif. Sorumluluk, iyi kodun yazılmasını ve görevlerin zamanında tamamlanmasını sağlar. Girişim, kendi fikirlerinizi gerçekleştirmenizi mümkün kılar. İletişim becerileri üzerinde ayrıca durmak istiyorum. Modern gelişim büyük ölçüde bir ekip hikayesidir; bunda başarılı olmak için sosyal beceriler olarak adlandırılan belirli sosyal beceriler çok önemlidir: meslektaşlar ve ortaklarla ortak bir dil bulma, müzakere etme, fikirlerinizi etkili bir şekilde sunma, önünde iyi konuşma becerisi. Geniş bir kitleye sahip olmak, zamanınızı yönetmek vb.

Her kuralın istisnaları vardır ama yine de şu dezavantajları sayacağım: tembellik, ihmal ve mükemmeliyetçilik. Programcı montaj hattında durmaz, geliştiricinin dinlenmesini dışarıdan yaptığı işten ayırmak neredeyse imkansızdır ve eğer tembelse her zaman veya neredeyse her zaman dinlenecektir. Önlemek her zaman tedavi etmekten daha ucuzdur; bir programdaki bir hatayı önlemek, onu daha sonra bulup düzeltmekten çok daha kolaydır. Dikkatsizlik çok sayıda hataya ve bunların daha fazla düzeltilmesinin yüksek maliyetine yol açar. Aşırı mükemmeliyetçilik, tek bir projeyi son teslim tarihlerine uyma konusunda korkunç bir başarısızlık olmadan tamamlamanıza izin vermez..”

İşverenlere göre bir programcının en değerli nitelikleri:

  1. Problem çözme yetenekleri
  2. Analitik zihin
  3. Sabır
  4. Takım halinde çalışabilme becerisi
  5. İyi konsantrasyon
  6. Sabır
  7. Algoritmik yaklaşım
  8. Sorumluluk
  9. İletişim yetenekleri
  10. Girişim

Bu niteliklerin son derece arzu edilir olduğunu ancak gerekli olmadığını anlamalısınız. Her şey şirkete ve pozisyonun özelliklerine bağlıdır. Perl'ün yaratıcısı Larry Wall şunları söyledi: " Birçok kişi bir programcının avantajlarına aşinadır. Bunlardan yalnızca üç tane var ve elbette bunlar: tembellik, sabırsızlık ve gurur.” Açıklaması basit: Tembel bir kişi büyük olasılıkla bir sorunu çözmenin en etkili yolunu bulacaktır. Bu nedenle, yukarıdaki noktalarla tutarsız olduğunuzu düşünüyorsanız heyecanınızı kaybetmeyin. Özellikleriniz için “olumlu” bir kullanım alanı bulun.

Kodun nasıl yazılacağına dair pek çok kitap ve makale yazıldı, ancak nedense herkes sanki ruhsuz bir robotmuş gibi programcının kendisini unutuyor. Özel zihniyete ve özel niteliklere sahip insanlar bu mesleğe giriyorlar ama hangi nitelikler?

İstihbarat

Akla gelen ilk kişilik özelliği. Evet, bir programcıda belli bir düzeyde zekanın olması gerekir ama asıl mesele bu değil. Ne kadar çok bilirseniz o kadar az bildiğinizi ve gelişmenin sınırı olmadığını anlamak daha önemlidir. Bu şekilde düşünen programcı sürekli gelişecektir ve zamanımızda bu olmadan hiçbir yer olamaz çünkü yüksek teknoloji alanındaki bilgiler 2-3 yıl içinde geçerliliğini yitirir.

Merak

Bu özellik mantıksal olarak öncekini takip eder. Sonuçta bir konuda beceriksiz olduğunuzu anladığınızda çözüm aramaya, Google'a bakmaya, forum/makale/kitap okumaya, diğer programcılarla iletişim kurmaya ve onların kodlarını incelemeye başlarsınız. Bu görevin sizden önce nasıl uygulandığı ilginç hale geliyor, kodu kendinizle karşılaştırıyorsunuz ve yavaş yavaş profesyonel olarak gelişiyorsunuz.

Soyut düşünme

Kod parçalarını kafanızda tutmak ve nasıl çalıştıklarını hayal etmek çok önemlidir. Sadece casuslarla ilgili filmlerde hacker-programcıların klavyeye bir stenograf hızıyla dokunarak okumaya bile vaktinizin olmadığı bir kodu yayınlaması görülür. Gerçek hayatta bir programcı zamanının %80'ini programda neyin ve nasıl çalışacağını kafasında düşünerek geçirir ve bir fikri kodda uygulamak küçük bir meseledir.

Dikkat

Tırnak işaretleri veya parantezlerin yanlış yere yerleştirilmesi nedeniyle kod çalışmayı durdurabilir. Elbette, yazdığınız dilin derleyicisi veya yorumlayıcısı, hatanın nereden kaynaklandığını size dikkatli bir şekilde gösterecektir, ancak daha fazla arama ve düzenleme, fazladan zaman tüketir. Bu nedenle israf etmemek için en başından itibaren dikkatli olmalısınız.

İçinizdeki idealisti kontrol altına alma yeteneği

Hepimiz temiz, mükemmel kod yazmak isteriz ancak bu zaman alır. Çalıştığınız şirketlerden çok daha fazlası. Zaman, kapitalizm çağımızda gerçekten paradır. Bu nedenle kod yazma hızı ile güzelliği arasında hem size hem de proje yöneticinize yakışacak belli bir dengeyi bulup korumak önemlidir.

Konsantre olma yeteneği

Hayatınızda ne olursa olsun, sevinç ya da üzüntü, sabah 8'de işe gelmeli, kendinizi dünyadaki her şeyden soyutlamalı ve kodlara dalmalısınız. Kişisel deneyimlerin dikkatinizi dağıtmaması veya sizi şaşkına çevirmemesi çok önemlidir. Kişisel bir şey yok, sadece iş.

Tembellik

Paradoksal olarak programcıların da bu özelliğe ihtiyacı var. Tembellik ilerlemenin motorudur. Tembel bir programcı, çeşitli görevler için "snippet" adı verilen hazır kod parçaları yazar. Örneğin, resimlerin bir sunucuya yüklenmesine yönelik bir işlev bir kez yazılabilir ve projede birçok yerde kullanılabilir, ancak dosyaları farklı klasörlere yerleştirebilmek, onlara farklı adlar verebilmek ve görüntü boyutlarını gerektiği gibi değiştirebilmek için esnek olması gerekir. Böyle bir işlev yazıldıktan sonra programcıya diğer görevleri yaparken veya faydalı literatürü okurken çok fazla zaman kazandıracaktır.

Ayrıca tembel bir programcı, ihtiyaç olmadığı yerde tekerleği yeniden icat etmeyecektir. Başka birinin sizden önce yazmış olduğu kodu ödünç almanın hiçbir yanlış tarafı yoktur, asıl önemli olan onun nasıl çalıştığını anlamaktır.

Ve ek olarak: Becerilerinizi kaybetmemek için her gün en az on satır kod yazmanız gerektiği anlamında disiplin de önemli bir özelliktir. Bir yaz tatilinden sonra işteki projenize dönüyorsunuz ve yaklaşık bir hafta boyunca projeye tekrar dalıyorsunuz, her şeyin nasıl çalıştığını, hangi tasarım modellerini kullanacağınızı hatırlıyorsunuz. Her gün yazın - bu başarının anahtarıdır.

Teknik beceriler herhangi bir BT uzmanı için temel olarak önemlidir. Aslında bir BT uzmanının BT uzmanı olması için gereken temel bilgiyi temsil ederler. Ancak bir kişi mesleğinde gerçekten başarılı olmak istiyorsa başka niteliklere de ihtiyacı vardır. Bir uzmanın insanlarla başarılı bir şekilde etkileşime girmesine yardımcı olacak becerilerden bahsediyoruz. İşte bir BT uzmanının ihtiyaç duyduğu 10 nitelik.

İletişim kurma yeteneği

Bir BT uzmanı çok sayıda e-posta göndermek, projeleri ve teknik özellikleri koordine etmek zorunda kalıyor. Bu nedenle en yetenekli programcının bile okuryazar olması gerekir. Sözlü iletişim de önemlidir. Bir BT uzmanı için çok değerli bir beceri, karmaşık şeyleri, onları anlamayanlara basit bir dille açıklayabilme yeteneğidir.

Dinleme becerileri

Bir BT uzmanı sadece kendi fikir ve düşüncelerini anlatmamalı, aynı zamanda başkalarının fikir ve düşüncelerini de dinlemelidir. Müşterinizin veya patronunuzun ne istediğini dikkatlice dinleyerek, bunun nasıl gerçekleşeceğini anlayabilirsiniz. Ve açıklayıcı sorular sormaktan çekinmeyin.

Takım çalışması

Çoğu zaman BT projeleri tek bir kişi yerine profesyonellerden oluşan bir ekip tarafından yürütülür. Bu nedenle bir BT uzmanının ekip halinde çalışmayı öğrenmesi çok önemlidir. Yukarıda da bahsettiğimiz gibi düşünce ve fikirlerini meslektaşlarına aktarabilmeli, aynı zamanda bir başkasının bakış açısını dinleyip kabul edebilmelidir.

Liderlik

Resmi olarak yönetici olmasanız bile, muhtemelen işinizde bir süreliğine bir projeyi yönetmenin gerekli olacağı durumlarla karşılaşacaksınız. Liderlik becerileri, güçlü iletişim becerileri, yetki verme yeteneği ve nihai hedefin anlaşılmasını gerektirir.

Mentorluk

BT uzmanları genellikle kendilerini yeni çalışanlara veya müşterilere talimat veren öğretmen rolünde bulurlar. Bir işveren, başkalarını sabırla ve etkili bir şekilde eğitebilen bir çalışana her zaman değer verecektir.

Esneklik

BT uzmanları bazen beklenmedik zorluklarla veya öngörülemeyen değişikliklerle karşı karşıya kalır. Bu tamamen yeni bir sorun ya da müşterinin son dakikada yaptığı bir görev değişikliği olabilir. Bir BT uzmanının bu tür değişikliklerle hızlı bir şekilde başa çıkabilmesi ve olağandışı sorunları çözmenin yaratıcı yollarını bulması için esnek olması gerekir.

Yaratıcılık

BT profesyonelleri sürekli olarak geleceğe yönelik çalışıyor, olası teknik sorunları ve ihtiyaçları öngörüyor ve bunlara çözümler geliştiriyor. Bu proaktif düşünme, güçlü hayal gücü ve yaratıcılık gerektirir. İşverenler işe yaratıcı bir şekilde yaklaşabilecek insanlar arıyor.

Müzakere Becerileri

Spesifik spesifikasyona bakılmaksızın, müzakere becerileri BT sektöründe yer alan herkes için faydalı olacaktır. Bir proje için insanları işe almaktan, yatırımcı bulmaya veya bir startup'ı satmaya kadar çeşitli durumlarda hizmet edebilir. Ayrıca karşılıklı yarar sağlayan anlaşmalara varma yeteneği, kariyer oluşturmak için çok önemli bir beceridir.

Sunum yapabilme becerisi

İster bire bir gösteri olsun ister geniş bir izleyici kitlesi önünde konuşma olsun, çalışmanızı sunma yeteneği bir BT uzmanı için çok yararlı bir beceridir.

Kararlılık

Pek çok BT projesi finansman eksikliği, müşterilerle yaşanan sorunlar ve zayıf ekip çalışması nedeniyle ölüyor. Bir projenin yaşaması için, içinde çalışan kişilerin nihai sonuca odaklanması ve sonunda neyi başarmayı amaçladıklarını anlamaları gerekir. Bir işveren, geçici sorunlar ortaya çıktığında projeyi bırakmayan, ancak başlangıçtan zafere kadar projede kalan ilgili ve kararlı bir BT uzmanına her zaman değer verecektir.