FM'e sor: Programlamanın dinlendirici aktivite olarak yapılması mümkün mü?

5
auselen

Boş vaktiniz olduğunda ya da stresden uzaklaşmak istediğinizde programlama yaptığınız oluyor mu? Diğer hobilerinizin yanında acaba dizüstü bilgisayarınızı alıp, normalde uğraştığınız konuların dışında birşeyler deniyor musunuz? Yoksa programcılık yoğun mental bir aktivite olmasından ötürü, dinlendirici olamaz mı? Eğer yapanlar var ise, nelerle uğraşıyorlar, hangi ortamları kullanıyorlar?

Görüşler

1
FZ

Gecen sene, Haskell Programming from First Principles kitabini kullanarak Haskell calistim biraz, o surecin parcasi olarak ufak tefek de olsa epey Haskell kodu yazmam gerekti aksamlari/haftasonlari. Gunduz ugrastigim islerin hicbirisi icin Haskell kullanilmiyordu. Epey keyif aldigimi hatirliyorum (ve cogu durumda noronlarimin epey "ateslendigini").

Bunun disinda Emacs'a bir seyler eklemek icin Emacs Lisp kodlarken ya da birilerinin yaptigi bir seylere ek yapmaya calisirken zevk aldigimi da hatirliyorum, ki bunlarin da gunluk isimle dogrudan ilgisi yoktu.

Benzer sekilde yillar once "Notes from the Metalevel: An Introduction to Computer Composition" kitabindaki orneklerden yola cikarak bir seyler yaparken (evet, isle uzaktan yakindan alakasiz), epey eglendigimi, zamanin ucup gittigini hatirliyorum.

2
auselen

Ben sıklıkla yaptığımı düşünüyorum. Her zaman yapmak istediğim şeyleri ya da görüp de ilgimi çekenleri bir listeye not ediyorum. Boş vaktim olduğunda ya da biraz çevreden uzaklaşmak istediğimde bunlardan birini seçip yapıyorum. FM'e son gönderdiğim iki mini-proje de bunlardandı. Bu şekilde değişik, profösyonel alanınımda olan olmayan konularla huzur içinde (performans kaygısı olmadan) ilgilenebiliyorum. Buradan sonra tabi konu biçimlenmeye başlıyor. Benim gibi başkaları var mı? Neler yapıyorlar? Neler kullanıyorlar? Bu konseptin bir adı var mı?

Geçenler de bir arkadaşım bana takılmak için "insanın kendi mesleğinden başka bir hobisi olmalı' dedi. Çok haklı bir tespit. Programlama benim hobim :) ama programlama hobi mi bunu çözemiyorum?

Hobi, dinlendirici faliyetler ya da ingizlice tabirle rekreasyon'un tanımını düşünüp bunu "programlamaca" ile karşılaştırdığımızda bir yere varabiliyor muyuz?

Rekreasyon: Fiziksel mi olmalı? Peki ya satranç? Zaman sınırlı mı olmalı? Peki ya programlama bitmezse? Kuralları, çerçevesi olmalı mı? Öğrenmek hobi midir? Öğrenemeden programlama yapılabilir mi? Matematik hobi midir? Programlamanın matematikten farkı nedir? gibi gibi...

Ki bunlar konunun teori tarafındaki problemleri. Uygulama yanında bir çok probleme gebe - ki bahsetmeyelim.

Benim kendi adıma hayal ettiğim elime bir popüler bilim dergisi/kitabı alırmışcasına programlama yapmak. Belki de ortam (medium) gerçekten bir kitap olabilir ve ön-programlama kağıt üzerinde olur. Kim bilir? Kim ister?

1
tongucyumruk

Hobi/Meslek ayrimi beni de surekli dusunduren konulardan biri. Idealde "insanin hobisi ve meslegi ayri olmali" fikrine katilmak istiyorum. Lakin alayli bir yazlimci olarak, bugune kadar meslegimde elde ettigim ne kadar basari varsa, bunu da meslegimin ayni zamanda hobim olmasina borclu oldugumu dusunmusumdur hep ve bu anlamda, sevdigim seyleri yaparak gecimimi saglayabildigim icin, kendimi sansli hissediyorum. Saniyorum baska bir insan profili icin bu sikinti olabilir. Örnegin isyerinde yasadiginiz bir sikinti yuzunden mesleginizden soguma ihtimaliniz varsa bu durumda mesleginiz ile hobinizi ayirmak mantikli olabilir.

Bir seyin hobi/recreation olup olmamasini belirleyen etkenin o seyin kendisi ile ilgili olmadigini dusunuyorum. Mesela arkadasinizin argumani uzerinden gitmek gerekirse bir programcinin bos vakitlerinde de kod yazmasi hobi sayilamayacak diye kabul edelim. Bu durumda bir muhasebecinin veya doktorun veya grafik tasarimcisinin yazacagi programlari nereye koyacagiz? Onlar tabi ki hobi olacak, sonucta adamin meslegi bambaska. Bunun yaninda "dinlenme" kavraminin da daha göreli oldugu kanaatindeyim. Pek cok insan biliyorum ki hafta sonlarini maraton kosarak, daga tirmanarak veya ormanlara/daglara yuruyuse giderek geciriyor. Gunun sonunda nasil ki vucudu fiziksel olarak yoran bu gibi eylemler kisinin haftaya daha "dinc" (ama her yani agri icinde) baslamasini saglayabiliyorsa, matematik, yazilim ve benzeri mental efor gerektiren islerin de ayni sekilde bir rahatlama saglamasini beklemek hic de yanlis olmaz diye dusunuyorum.

Ben bos vakit buldukca kod yazmanin disinda imkanlarin elverdigi ölcude bisiklete binmeye, onu yapamadigim zamanlarda da FM'ye yazi yazmaya calisiyorum mesela. Saniyorum ki her konuda oldugu gibi bu konuda da her insanin kendisi icin dogru dengeyi yakalamasi önem tasiyor.

1
auselen

Rekreasyon'nun bir ozelligi zaman sinirli olmasi. Yani pazar gunu ciktiniz, yaptiniz, dondunuz bitiyor. Programlama'da bunun saglamak zor. Benim de tam merak ettigim acaba bunu basaran var mi? Kaynaklar, örnekler neler?

1
tongucyumruk

Kendi adima programlamanin benim icin en dinlendirici aktivitelerden biri oldugunu söylemem lazim. Genelde hafta sonumu kod yazip yeni birseyler ortaya cikararak degerlendirdigimde haftaya cok daha iyi basliyorum. Böyle gecen haftasonlarinin sonunda genellikle uzerimde bir "off yine bitti tatil" hissi olmuyor.

Ne yapiyorlar kismi icin sizi söyle alalim: https://github.com/rebasar Elimden geldigince farkli araclar kullanarak birseyler gelistirmeye calissam da bu aralar daha cok Java/Dropwizard/IntelliJ ile backend, Go/Emacs ile frontend (frontend ediysem, komut satiri, GUI dusunmeyin, tarzim degil) yazmaya yönelik calisiyorum diyebilirim (simdilik yayinlamaya hazir olmadigim birkac Angular2/Dart ve Elm projesini görmezden geliyorum). Tabi gönlumde hala Rust yatiyor fakat ugrastigim konular genellikle Rust'in en guclu oldugu alanlar degil.

Klavye konusuna kafayi takmis bir insan olarak önumuzdeki dönemde hayallerimden biri kendi klavyemi toparlayip (hayallerde Dactyl yatsa da buyuk olasilikla Infinity Ergodox olacak gibi duruyor) sonra da o klavye uzerine Rust ile bir Firmware yazmak. Eger bu konuda bir ilerleme kaydedebilirsem zaten FM'den okursunuz sureci.

1
auselen

Ilk paragraftan yanlis anlasimla cikabiliyor. Yani tatil tatil gibi olmasin da is gibi olsun :)

Ikinci paragraflarda ki orneklere yorum su sekilde olabiliyor. Bir sey gelistirmek rekreasyon sayilir mi? Gelistirmekten kasit, guzel bir proje yaptiniz mesela, kullanilmaya baslandigi an sorumluluk getirir. Rekreasyonun amacina ters degil mi? (Bir seyler gelistirmek kotu demiyorum). Rekreasyon daha cok cope atmak icin uretmek gibi geliyor bana, amac uretmek degil. Birseyler ogrenmek guzel vakit gecirmek, tabi ki.

Insanlar klavyeye niye bu kadar takiyor hic anlamis degilim. Uzun bir sure karsimda oturan danisman TypeMatrix 2030 (etiketsiz, bos tuslar ile) kullandi. Esnek olmayi, klavye seciciligine tercih ediyorum dogrusu. Kullanana karismam ama klavyeden klavyeye sicraya bilmek cok guzel.

1
tongucyumruk

Esnek olmak konusuna katiliyorum. Özellike is ortaminda, insanlarla etkilesirken sadece caps lock tusumu ctrl ile degistirmis olmak dahi ciddi sikintiya yol aciyor. Lakin olayin bir de öbur yuzu var: Yillar yili "on parmak" yazmayi beceremedim. Hala da tam becerebildigimi söyleyemeyecegim. Cabalarim sirasinda fark ettigim seylerden biri su oldu: Klasik klavye tuslarinin basamakli yapisi gayet "unintuitive" bir sey. Ben refleks olarak eger sag elim asagi satira indiginde saga gidiyorsa sol elimin de sola gitmesi gerektigini dusunuyorum ama elimin altindaki klave bu konuda benden farkli dusununce sikinti oluyor.

Daha önemlisi, bir noktada bileklerim isimi yapmama engel olacak derecede rahatsizlik vermeye basladi. Bu durumu önce Microsoft Natural 4000 ergonomik klavyeye gecerek, sonra da caps lock <-> ctrl dönusumunu yapip serce parmagim uzerindeki stresi azaltarak cözdum. Bu nedenle klavyede performansi cok önemsemesem de özellikle erginiminin hayati önemi olduguna inaniyorum.

1
auselen

Hizli yazmanin bir ozelligi var mi? Donald Knuth'dan duymustum galiba ilk "dusundugumden hizli yazabiliyorum [kötu]" diye. Ustelik ben neredeyse mumkunse yazmamak taraftariyim. Kodlama icinde faydali oldugunu dusunuyorum. Is yetistirmenin hizli yazmakla da cozuldugu yok. Bu arada gercekten merak ediyorum. Daha once benzeri sahislarin antipatikligi nedeniyle soruma cevap alamamistim. Hizli olunca pair-programming tarzi da zor oluyor.

1
tongucyumruk

Eger hicbir IDE destegi olmadan Java yazmak gibi cilgin islere kalkismiyorsaniz kod yazarken süratin ben de cok önemli olduguna inanmiyorum. Duz yazi (örnegin FM icin bir makale) yazarken bu durum degisebiliyor tabi. O durumda sürat önem kazaniyor genelde.

Benim "on parmak" yazmayi hedeflemekteki amacim ise surat ile hic alakali degil. Daha cok yaptigim ise daha iyi konsantre olabilmek, bunu yaparken de klavye vucudumun dogal bir uzantisiymiscasina etkilesebilmek icin bu yetiyi kazanmayi hedefliyorum. Yolda yururken attiginiz birkac adimda bir ayaklariniza bakmaniz, ayak pozisyonunuzu duzeltmeniz gerektigini dusunun. Böyle yururken bir yandan yaninizdaki arkadasinizla yaptiginiz sohbete odaklanmak ne kadar mumkun olabilir? Iste benim hedefim de zihnimle onun yansimasi arasindaki bu engeli ortadan kaldirmaya yönelik bir caba sadece.

Iste bunu yaparken de daha önce de bahsettigim ergonomi sorunlarindan öturu biraz daha siradisi klavye tasarimlari ile ilgilenmeye basladim ister istemez. Ha bu arada isin klavye icin laternatif firmware gelistirme, kendi klavyeni toplama gibi kisimlari tamamen "acaba bununla nasil bir hack yapilir" merakindan, onlar icin hicbir mantikli argumanim yok :)

1
auselen

Tesekkurler cevap icin, cok guzel oldu duymak.

Ben ergenken (valla ne desem bilemedim, genc desem simdi sanki yasim varmis gibi olacak) arkadaslarla klavye-hizli yazma konusunda su kaniya vardik: hizli yaz - yanlis yaz, yapabildigimiz en iyi sey buydu, bizi egiten biri olmadigi icin kendi metodumuz gelistirdik. On parmak ogrenecek sabrimiz yok idi, zaten programlama yaparken ise yaramiyor herhalde o kadar on parmak dizimi. Hizli yaz - yanlis yaz, neredeyse programlama bicimini bile kapsiyor, hizlica yaziyorsun, surekli degistirmelerde bulunuyorsun, hata yapmak isin bir parcasi, bunun farkindasin ve o sekilde devam ediyorsun - surekli kontrol.

1
FZ

Daktilo basinda saatler gecirdigim gunleri saymazsam, nerede ise 30 yildir bilgisayar klavyeleri basinda bir seyler yapiyorum. Bunun yaklasik 20 senesi gunde minimim 8 saat, kimin zaman cok daha fazla, 'standart' olmayan ellerimi ve parmaklarimi seri uretim klavyelere uydurmakla gecti. Halen de cogu durumda geciyor. Benim acimdan da mesele (USENET, FM, vs.de lak lak, 'chat' vs. seyleri saymazsak), hicbir zaman 'hizli' yazmak olmadi. Derdi duz yazi ve hiz olanin zaten soyle bir sey kullanmasinda fayda var:

Benim 'derdim' daha ziyade: "ellerimi dogal olarak ileri uzattigimda parmaklarim bukulu, bileklerim dumduz yere bakmiyor, neden klavye beni buna zorluyor? Ayrica neden mekanik daktilolarda anlamli olan zik zakli tus hizalamasini aynen aktarmislar ki, cok sacma!?" gibi sorular. Baska bir deyisle ergonomi.

Bu yuzden sunun gibi:

ya da sunun gibi:

tasarimlar biraz daha anlamli gorunmeye basladi bana.

Daha ucuzundan su var:

ama maalesef o sacma sapan daktilodan-kalma-ve-simdi-anlamsiz zik zakli tasarimdan kurtulamamis.

Tabii ki cok daha ucuz, cok daha seri uretilen, hicbir ergonomi kaygisi gutmeyen, baskalari ile de hemencecik paylasabildigimiz klavye ve fareler ile yillarca isimizi goruyor, eglencemizi de gerceklestirebiliyoruz, lakin vakti zamaninda sag bileginde saglik problemi yasamis, bizzat tanidigi cevrede de benzeri ve hatta daha agir el/bilek sorunlari yasamis insanlari iyi hatirlayan biri olarak, ergonomi biraz daha onem kazanmaya basliyor klavye baglaminda. (Bir de: sirf cok daha ucuza geliyor diye yazilim ortamimi bana en rahat gelecek sekilde ozellestirmeyi normal karsilarken, sirf biraz daha pahali ve degistirmesi zor diye hayatimin buyuk kismini gecirdigim donanimi ozellestirmeyi neden dusunmeyeyim: klavye ve fareyi, araba, TV, bisiklet, telefon, vb. cihazdan daha cok kullaniyorum.)

1
xelon

Ozet olarak; 10 parmak ogrenmeden once ben de benzer seyler dusunuyordum. Faydalarini okumaktan ziyade deneyimlemek gerekli. Konfor alaninizi genisletmek icin de eglenceli bir ugras. Siddetle tavsiye ederim.

Detaya gelecek olursak;

Uzun yillar amator klavye kullanmis (<10 parmak ile) biri olarak, 10 parmak klavye kullanmanin profesyonel anlamda klavye kullanan her kullanici icin bir mecburiyet oldugunu dusunuyorum. Hiz, 10 parmak klavye kullanmanin avantajlarindan sadece birisi.

@tongucyumruk hocam guzel ozetlemis. Klavye sizin bir uzvunuz olmali. Yemek yerken surekli elinizi kontrol etmediginiz gibi, klavyeyi kullanirken de x nerdeydi, c nerdeydi vs demek konsantrasyonu dogrudan etkiliyor. Hele ki pair yaparken.

Benim gorece gec (30'lu yaslar) 10 parmak ogrenmeye baslama sebebim el, bilek agrilarinin ve parmak uyusmalarinin bas gostermis olmasiydi. Mouse'u daha az kullanabilmek ve klavyede az hareket etmek icin kullandigim IDE'lerin kisayollarini ogrenip, AutoHotkey ve benzeri araclarla surekli yaptigim isler icin olmayan kisayollar urettim.

Is yerinde zsh kullanmam gerektigi gun ise benim icin donum noktasi oldu. Gunbegun daha yogun vim komutlarini kullanmamla 10 parmak gereksinimini giderek daha cok hissetmeye basladim. Su an Visual Studio'dan, Eclipse'e, terminal'den Chrome'a kadar bir cok uygulamada vim komutlarini aktif olarak kullaniyorum.

Zamaninda forumlarinda, haberlerinde az vakit oldurmedigimiz fazlamesai'ye de bu vesiyleyle tekrar hosgeldin diyorum, yazilari ilgiyle takip ediyoruz :)

1
auselen

Benim gordugum, klavye de tuslarin yerini kas hafizasina zaten dogal yollardan aliyorsun. Problem belirli parmaklari yogun kullanmak mi yoksa parmaklarin cogunlugunu etkin kullanmaya calismak mi? Ergonomi konusuna kesinlikle katilirim fakat hic kisisel tecrubem degil, belki de problemim var ama ben farketmiyorum - ama gözlerimle ilgili benzer bir problem yasadigim da, cozebilmistim. herhalde bilek parmak problemim olsa farkederdim.

Bu arada herkes en aktif nasil oluyorsa oyle de olmali tabi ama klavyenin uzuv gibi oldugu bir dunyayi da kabul edebilecegimi sanmiyorum.

Belki de yapilmasi gereken deney calisma ortamlarina bir sekilde tus sayici ekleyip gercekten bireylerin ne kadar aktif klavye kullandigi. Ben sahsen klavyeyi fazla kullandigimi dusunursem, bunu optimize etmek yerine azaltmayi tercih ederim. (bu arada 2017 dileklerimden biri de tekrar defter tutmak idi)

1
auselen

Not olsun: "Code golf is a type of recreational computer programming competition"

https://en.wikipedia.org/wiki/Code_golf

1
auselen
Görüş belirtmek için giriş yapın...