Kimlik, kişilik ve eğitim

Ben küçükken (geçen yüzyıl diyelim…) hayatımı biçimlendiren şeylerden biri okuduğum bir yazıda geçen bir laftı. Sanırım CCC üyesi biriyle yapılan bir röportajda “if I have a computer, why should I work” gibi bir laf edilip arkadan “iyi programcı tembel olur” diye bir hayat felsefesi getiriliyordu. Demek ki daha o sıralarda bu tür yazıları okuyacak kadar kafamda bir meslek hedefi, algısı varmış. Muhtemelen bu yazı da epey motivasyonumu yükseltmişti.

Tabii işin gerçeği şu: Tembellik göreceli bir bakış, program yazarken düşüncelerimizi, mantığımızı, belki bunlar kadar önemlisi kontrollü paranoyamızı anlayıp, analiz edip bir metod dahilinde kayıt altına alıyoruz. Bunu yapmak çok da tembellere, hele disiplinsiz tembellere göre iş değil. Ama olan şu, söz konusu kayıt altına alma işi bir kere düzgün yapıldı mı, bir daha aynı konu üzerinde “düşünmek” ihtiyacı (umulur ki) kalmıyor. Dolayısıyla programlaması yapılan konuyu hayattan çıkarmak ya da en azından sıkıcı kısımlarından kurtulmak mümkün hale geliyor.

Burada karşımıza çıkan önemli noktalar şunlar:

  • Çoğu konuda, genelde sanılanın aksine bir tek doğru olmadığı, ama bu farklı doğruların belli bir mantık çerçevesinde açıklanabildiği bir hayat bakışı gelişiyor zamanla. Burada önemli noktalardan biri şu; “Mantık”, “istatistik” ve “matematik” çoğu zaman sıradan insan içgüdülerinde doğru olduğu sanılan şeylerin aslında hesaplamalar yapıldığı zaman yanlış olduğunu gösteriyor. Mesela basit bir örnek olarak, Istanbul içinde ortalama araç kullanma hızı bugünlerde 32 km/h ve mevsim ilerledikçe 28 km/h’ye kadar düşecek. Çoğu insan 140, 150 km/h gibi hızlarda araba kullanarak bir yere “çabuk” gittiklerini sanıyorlar, ama öyle değil. Programcılık, hayatın her noktasına bu tür analitik bir gözlükle bakma alışkanlığı getiriyor.
  • Yine çoğu konuda, eğer harici değişkenlerde bir değişiklik yoksa, aynı konuyu defalarca yeninden gündeme alıp her seferinde farklı bir sonuç bulma umudu, bazı insanlar için hayat tarzıyken, programcılar için sadece bir işkence oluyor. Değişkenler aynıysa, sonuç nasıl farklı olsun? Eğer bir şey gerçekten değişiyorsa, demek ki bir faktör/değişken değişmiş olmak zorunda. Önemli olan bir nokta, ki bunu da çoğu programcı anlamıyor, şu; Bugün başarılamayan bir şey, yarın başarılıyorsa, ve görünen değişkenlerde bir değişiklik yoksa, demek ki görülmeyen bir değişken daha var ortamda.
  • Düşünerek yapılan şeyler, içgüdüsel olarak yapılan şeyler, planlı hareketler, plansız hareketler v.s. Bunların hayatında programlama olan birine ifade ettiği şeylerle olmayan birine ifade ettiği şeyler arasında ciddi farklar var. Programlama sonuçta “düşünceleri tekrarlanabilir açıklıkta kayıt altına alma işi” Dolayısıyla korkarım “düşündüğünün farkında olarak düşünmek” gibi bir alışkanlığımız, ve sıradan insanların bunu çoğunlukla yapamadığını unutmak gibi bir kabahatimiz var.
  • Eğitim iyidir, programlama bilgi, yetenek ve yetkinliklerinin, alışkanlıklarının akademik bir disiplin altına alınması hayatı çok kolaylaştırır… Çoğu programcıda eğitimi geçmişte kalan ya da sadece belli metodların öğrenilmesiyle sınırlı bir aktivite gibi görme alışkanlığı var. Bu basitçe yanlış. Konunun metodlar kadar düşünce organizasyonu, analizin objektifliği, matematiğin işteki rolü gibi “seksi olmayan” tarafları olduğunu, bunun da sıkıcı da olsa, kitap, makale v.s. okuyarak bırakın geliştirmeyi ancak güncel tutulabileceği kolay unutuluyor. Bu sanırım “iyi programcı tembel olur” diye bakarken “tembelliği yüceltmek” kolay geldiği için ortaya çıkan bir durum.

Politika ve Teknoloji

İnsanlar Amerika’da da en az Türkiye’de şikayet ettiğimiz kişiler kadar teknolojiyi teknolojiden habersiz kullanıyorlar. Bizim haberlerden sıkıldığım için, bir süredir yabancı haberleri takip etmeye başladım. Amerika’da kasırgalar bir yana, en çok konuşulan konu Rusya’nın başkanlık seçimlerine müdahale edip etmediği.

Biraz önce izlediğim, bu konuda bir haber oldu. MSNBC’de Rusya’nın kullandığı Troll Farm’lar hakkında haber… Ana fikir olarak “korkunç Rus trollerinin devlet tarafından finanse edilen ama devletle ilişkisiz organizasyonların binalarına toplanıp (masum ve saf) Amerikan vatandaşlarını etkileyecek sosyal medya mesajları ve online reklamlar oluşturdukları, dolayısıyla online politik aktivitenin kontrol altına alınması gerektiği” işleniyordu. Şimdi, özellikle yakından takip etmeyenler için; MSNBC Amerika’da “sol” kabul edilen politik görüşün önde giden, hatta muhafazakarlar tarafından neredeyse hain olarak görülen temsilcisidir. Teknoloji konusunda da öncü ve ne yaptığını bilen bir organizasyon olduğu söylenebilir. Bu noktada bir yapının Internet sansürü önermesini ve benim “mantık” anlayışım çerçevesinde gayet mantıksız bir pozisyona girmelerini analiz edebilmek gerekiyor. Bazı ana maddeleri aklıma geldiği sırada yazıyorum, ama arada bir tane bile olumlu nokta bulamamak beni çok düşündürdü:

  • Trump’ın savunulacak tarafı yok aslında, ama Amerikan “sol” görüşünün yenilgiye verdiği inanılmaz seviyedeki şekeri elinden alınmış çocuk davranışları Demokrasiye sadece kazandıkları sürece inandıklarını gösteriyor.
  • Internet’in geldiği ve gitmekte oldu yönün günlük hayatta (ya da RL diyelim) olan etkilerini daha kabullenememişler.
  • Muhalefet’in ne olduğunu unutmuşlar. Ne yazık ki Türkiye’de de yaygın olan bir yaklaşımla, her tür karşı görüş sahibini “troll” diye etiketleme yaklaşımını benimsemişler. Şu kadarını söyleyeyim, troll tanımları doğru olsa benim şu anda Rusya’da yaşayan 18 yaşında bir çocuk olmam lazım, sırf bunları yazdığım için bile. Neyse ki saf ve masum olmayan okuyucularım olacağını umuyorum (bu iyi bir şey miydi? bilemedim 🙂 )
  • Sansüre gitmekten çekinmeyecekler, fırsat buldukları anda.

Özet olarak Amerika’da durum parlak değil. Oradaki arkadaşlara kolaylıklar diliyorum.

What do you think about a coder who does not have Github account?

Github is a FOSS environment. So if a coder have not participated in open source projects, there is no reason for him/her to have a github account. Also, in relation:

  • If a coder does not know git, that is a serious problem.
  • If a coder is using github for private projects, that is a more serious problem. Only exception might be s/he was forced by the organisation s/he was working for…

Also in relation as well:

  • Some people are pushing that a programmer should participate in FOSS in order to develop his/her career. No they should not, FOSS is not a playground for people to develop their skills.

Addendum: I have realised that some people are missing a point in my above reply. I do not mean a “project” as a program which consists of 4–5000 lines and three source files. A program that a recruiter can evaluate for hiring a programmer can be a 4–5000 lines code. An actual project for me is something like a minimum of 20–40 files and minimum of 50.000–60.000 lines. If a recruiter is claiming to read and evaluate such a code for hiring a candidate, stay away from there in any case.

What are the signs of a fake programmer? How would someone with experience in the tech industry identify someone who shouldn’t be, or who wasn’t meant to be a software engineer?

A difficult question indeed. There is no such thing as a completely fake programmer. Anybody who took a programming course in high school can write a “Hello World !”, or a bubble sort and s/he is a programmer. However being a professional programmer requires more. There are some indicators of a programmer who is at “Hello world!” level but claiming to be a professional programmer:

  • They are laud about their success
  • They talk about algorithms, not implementation.
  • They love buzzwords. These days especially full stack development and non-relational databases are in fashion.
  • They can reply quickly if you ask about their best program and its performance.

Why is the computer security community so dismissive and hostile to newbies with legitimate questions?

  • You are able to recognise questions from newbies, given that only a small percentage of such people explicitly declare themselves as “newbie”, it is obvious that they have a common question format/style that is specific to said humanoid group.
  • No tool is reliable if it has “penetration” somewhere in its name/definition, especially if you are inexperienced with such tools and somehow willing to admit that on a “very” public platform.
  • This field, if you are benevolent enough to call it so, is not “a prestigious” one. This field is the IT equivalent of shovelling shit left by other, more inept than yourself, -so called- professionals. Also this field is the most susceptible discipline of IT that requires, more frequent than others, close contact with law enforcement agencies (hi guys BTW). So members are not trying to limit new entrances, on the contrary, there is always need to fresh meat for menial duties. What is usually not wanted in the field is lower than regular IT guys’ level of IQ, which is higher than national averages to begin with.
  • Common courtesy does not involve to help a hapless one to waste a serious amount of time in a hopeless pursuit, trying to join a profession that is sour at best.
  • Asking questions is not a problem, not reading already existing excellent answers is. It shows the lack of research abilities, which in turn shows lack of talent in the field.
. TR MOL