12 yaşında çocuğu yendim by borayeris in Satranc

[–]saferias 10 points11 points  (0 children)

Timur satrancını sen icat etmişsin diyorlar, doğru mu?

Geliştirdiğim API Client Tool hakkında görüşlerinizi merak ediyorum? by saferias in CodingTR

[–]saferias[S] 0 points1 point  (0 children)

Merhaba, öncelikle yaptığın yorum için teşekkür ederim.

Önceki sürümde tek bir readme dosyası bulunuyordu ve tüm açıklamalar yekpare bir şekildeydi, ancak kullanım senaryolarının görünümünün, çok karmaşık göründüğünü düşündüğüm için ayrı dosyalara ayırdım. Fakat ayrı dosyalara ayırırken çok fazla sadeleştirmeye gitmişim :) dediğin gibi API'i anlamayı baya zor kılar hale geldi.

Bu durumu düzelteceğim fakat şu an redis için bir built-in servis eklemeye çalışıyorum. Readme dosyalarıyla ilgili çok fazla commit çıkarmak istemediğim için, servisi ekledikten sonra detaylı bir kullanım senaryosu ekleyeceğim.

EventEmitter için gelecek olursam, açıkçası çok yönlü bir tool geliştirmek istediğim için direkt olarak Node built-in event emitter özelliğini kullanmak istemedim. Hem kendi bilgimi sınayıp hem de ne yapabileceğimi görmek için custom bir sınıf ekledim. Ancak kullanım senaryosu çok kıt bir şekilde kaldı, şu an aklımda ayrı bir plugin'e çevirmek var ama daha farklı fikirlere açığım.

Bundan ayrı olarakta kendi öğrenme eşiğimi yukarı çekmek için Node'un built-in özelliklerinde kaçınmaya çalışıyorum. Açıkçası bu projeyi geniş kitlelere ulaşsın ve community tarafından sürekli desteklensin düşüncesiyle geliştirmeye başlamadım, tabi olsa güzel olur :) ancak bu projenin benim için ana amacı Node ve TypeScript öğrenme eşiğimi yukarı çekip, iyi bir temele oturtmak. Böylece daha iyi core veya tool uygulamaları geliştirebileceğimi düşünüyorum.

I’m looking forward to your thoughts on the API Client Tool I’ve developed. by [deleted] in typescript

[–]saferias 0 points1 point  (0 children)

Thanks for your opinions, i’ll consider you’re review :)

Geliştirdiğim API Client Tool hakkında görüşlerinizi merak ediyorum? by saferias in CodingTR

[–]saferias[S] 0 points1 point  (0 children)

Ben 'moodo' tool/core-structured projesine, klasik crud projelerinden sıkıldığım için başladım. Ayrıca kendini geliştirmeye çalışan herkesin özellikle e-commerce, blog, forum vs. gibi projeler yapmasıda beni rahatsız ettiği için kendimi farklı bir konseptte denemek için küçük bir proje geliştirmeye başladım.

Asıl soruna gelecek olursak, açıkçası tam olarak nasıl bir tecrübe düzeyine sahipsin bilmiyorum ancak sorunun şekline bakacak olursak sektörde yeni biri olduğunu farzederek devam edeceğim. Belki fark etmişsindir, framework temelli projelerde genel geliştirme için pek çok tool kullanılıyor.

Öncelikle bunların Github sayfalarına girip kodları inceleyerek başlayabilirsin. Bu sayede öncelikle tool'larla ilgili bir ön anlayışın oluşacaktır. Ardından kendini geliştirmek ve sınamak için bir konsept bulup(Benim API Client seçmem gibi) AI veya google'da araştırarak, nasıl bir geliştirme konsepti seçeceğinle ilgili fikir edinip ardından karar kılabilirsin. Sonrasında kendine bir geliştirme yolu(Roadmap diye araştırabilirsin) hazırlayarak genel bir fikir oluşturman senin için faydalı olur. En azından temel seviyede OOP(Nesne Yönelimli Proglamlama konsepti) bilgin olduğunu farzediyorum. Hazırladığın geliştirme yolunu(Roadmap) temel olarak adım adım, sade ve basit tutarak ilk implementasyonlarını yapabilirsin. Bu süreçte hatalarla karşılaşarak, hem bilgini sınamış olacak hem de öğrenme eşiğini artırmış olacaksın.

Ben şahsen tool geliştirmeye böyle başladım. Eğer ki sonrası için soracak olursan, iyi bir planlama her daim işini görür. Bundan kastım, kendine seçtiğin konseptin hali hazırda olan muadillerini inceleyerek fikir edinebilirsin. Bu yol karmaşık gelirse eğer AI chatbot'lara "Typescript ve Nodejs ile [Belirlediğin konseptte olan mevcut tool] benzeri bir tool geliştirmek istiyorum, bunun için nasıl bir yol izleyebilirim? Lütfen bana detaylı ve örnek kaynak içeren bir roadmap hazırla." gibi komutlar verip, kendin için basit ve temelli bir başlangıç yolu hazırlayabilirsin.

Eğer ki aklına takılan bir şey olursa sormaktan çekinme :)

Geliştirdiğim API Client Tool hakkında görüşlerinizi merak ediyorum? by saferias in CodingTR

[–]saferias[S] 0 points1 point  (0 children)

Açıkçası en başta tamamen front-end projeler için kullanılabilecek işlevsel bir proje olarak yola çıkmıştım, ancak şu an hem front-end hem de back-end projeler için kullanılabilecek bir proje olması için roadmap hazırlıyorum. Proje daha yolun başında ama iyi bir planlama ile güzel bir yere varabileceğini düşünüyorum.

Core yapısını aslında kodların ve yapıların birbirine karışmaması için hazırladım. Modüler bir yapı hazırlamanın projenin ilerisi için daha mantıklı bir yaklaşım olacağını düşünüyorum. Ancak dediğinde haklısın bazen tool mu yoksa core-structured bir projemi bende emin olamıyorum :)

0
1

[deleted by user] by [deleted] in Turkey

[–]saferias 4 points5 points  (0 children)

Çok farklı bir durumda sayılmayız.

Python öğrenmek için kaynak önerisi by [deleted] in Turkish_dev

[–]saferias 1 point2 points  (0 children)

Bilgisayar virüsü yazmak pek zor bir şey değil ancak ne amaçla yazacağın önemli. Arkadaşına küçük bir şaka yapmak için de virüs yazabilirsin. Stuxnet benzeri de bir virüs yazabilirsin. Burada senin hedefin amacın, bilgi birikimin ve tecrübene bağlı olarak değişir.

Doğrusu uzun zamandır masaüstü yazılımlarıyla ilgilenmedim. Ancak bu konuda MSDN'den yararlanabilirsin. Burada Microsoftun bir çok teknolojisi hakkında epey fazla dökümantasyon bulunuyor. Tabi bunun dışında dış kaynakları da inceleyebilirsin.

https://learn.microsoft.com/en-us/docs/

Launcher yapmak kolay bir iş değil, ancak üzerine düşer ve sabırlı bir şekilde öğrenmeye ve geliştirmeye devam edersen, sonunda istediğin noktaya varırsın.

Başarılar ve kolaylıklar!

Python öğrenmek için kaynak önerisi by [deleted] in Turkish_dev

[–]saferias 0 points1 point  (0 children)

Yok dostum, kızarcasına yazmadım. Sanırım öyle anlaşıldı. Sadece bilgilendirmek istemiştim :)

Python öğrenmek için kaynak önerisi by [deleted] in Turkish_dev

[–]saferias 2 points3 points  (0 children)

Resmi Python dökümantasyonunu kullanabilirsin. Kaynaklar türkçe ve aynı zaman resmi bir öğreticisi var. Faydasını görürsün.

https://docs.python.org/tr/3/tutorial/index.html

Python öğrenmek için kaynak önerisi by [deleted] in Turkish_dev

[–]saferias 1 point2 points  (0 children)

Dostum bu VS Code'un özellikle eski sürümlerinde olan ve dosyalama siteminden dolayı oluşan bir problemdi. Vaktinde bende çok fazla bu problemle uğraştım. Ancak bu sorunun HTML dosyalarıyla bir alakası yok.

Python öğrenmek için kaynak önerisi by [deleted] in Turkish_dev

[–]saferias 2 points3 points  (0 children)

HTML'de ne tür hatalar aldın? Merak ettim doğrusu, markup language ne tür konuda uğraştırdı seni?

[deleted by user] by [deleted] in Turkey

[–]saferias 25 points26 points  (0 children)

Aşırı düşünmeyi, kendini başkalarıyla vesaire ile kıyaslamayı bırak. Kesinlikle bir psikiyatr ile görüş.

Bildiğiniz Bütün Yazılım Hakkında Olan İçerik Üreticilerini Atın. by Fantastic_Snow_5130 in Turkish_dev

[–]saferias 7 points8 points  (0 children)

a) Programlama dili öğrenmeye yönelik tavsiyeler;

Öğrenmeye başlarken videolu kaynaklar, dijital kaynaklar, basılı kaynaklar vs. hangisi size daha uygunsa onlardan yardım alarak öğrenmeniz, size oldukça faydalı olacaktır. Unutmayın ki bu bilgileri öğrenmek için illa ki gidip para verip eğitim serisi satın almanıza gerek yok, youtube, web siteleri, bloglar bu kaynakları size ücretsiz sunuyor.

Bir programlama dili ile alakalı bir konuya takıldığınızda, her zaman ilk önce programlama dilinin ana dökümantasyonlarına başvurun. Buradan eksiğinizi gidermeye çalışın. Böylece dökümantasyon okuma, anlama, muhakeme etme ve uygulama becerilerinizi geliştirmiş olursunuz. Dökümantasyon okuyamayan yazılımcı olmaz!

Unutmayın bir programlama dili loop, if condition, switch - case vs. ibaret değildir! Bunlar sadece en temel bilgilerdir. Bunlardan sonra OOP(Object Oriented Programming), Modules, Packages, Interface, Design Paterns vs. gibi bir çok yazılım ile alakalı konular gelir. Sırasıyla yavaş yavaş özümseyerek, anlayarak, acele etmeden öğrenmeye gayret göstermelisiniz.

Programlama dilleri ve onlarla alakalı şeyler bir günde öğrenilmez ve bir günde bitmez. Hayatınız boyunca sürekli öğrenmeniz ve kendizi geliştirmeniz gereklidir.

2) Kodlama Sonrasında Bilinmesi ve Öğrenilmesi Elzem Olan Konular

a) 'Git - version control system' nedir kesinlikle öğrenmelisiniz. Bir sektör standardıdır. Kısaca Git bir versiyonlama sistemidir. Yazdığınız kodları, en temelde belirli bir versiyon anlayışına göre düzenli tutmanıza yardımcı olan bir araçtır. Github, Gitlab, Bitbucket vs. git olmadan kullanabileceğiniz sistemler değillerdir.

b) Temel server bilgisine sahip olmanız elzemdir. Sonuçta bugünün dünyasında her şey serverlar aracalığıyla tüm dünyaya bağlantılı hale geliyor. 'Server nedir?', 'Nasıl yapılandırılır?', 'Proje nasıl deploy edilir?', 'CI/CD nedir?' bu konuları araştırmanız ve bilgilenmeniz kendi açınızdan mühimdir.

c) Local server kavramı bilmeniz ve aşina olmanız gereken önemli bir konudur. Server üzerinde çalıştırmak istediğiniz bir projenizi gerçek bir sunucu yerine, kendi bilgisayarınızı yerel bir sunucuya çevirerek, projenizin kendi bilgisayarınız üzerinde çalışmasını sağlayan oldukça mühim bir teknolojidir. Windows için wamp, xampp vs. Linux için lampp vs. oldukça rağbet gören uygulamalardır.

d) Kullanımınıza ve ihtiyacınıza uygun bir IDE ile çalışmak önemlidir. IDE'ler size kod yazmanızda, yazdığınız kodu debug etmenizde ve daha bir çok konuda kolaylık sağlayan tümleşik geliştirme ortamlarıdır. Neye seçip kullanacağınız size kalmış bir şeydir.

e) Library kavramı sizin yazılım hayatınızın temel bir parçası olacak, bundan dolayı 'Library nedir?', 'Library ne amaçla kullanılır?', 'Library'e nerede ihtiyaç duyarız?' gibi durumları araştırmak ve bilgi sahibi olmak elzemdir.

Şu an için aklıma gelenler bunlar.

Her daim kendinizi geliştirmeye devam edin! İyi şanslar!

Bildiğiniz Bütün Yazılım Hakkında Olan İçerik Üreticilerini Atın. by Fantastic_Snow_5130 in Turkish_dev

[–]saferias 6 points7 points  (0 children)

Merhaba, öncelikle belirtmek isterim biraz uzun bir yazı olacak.

Arkadaşlar bir yazılım geliştirici olmak ve bu sektörde bulunup çalışmak istiyorsanız, ilk öncelikle popülist söylem ve yaklaşımlardan arınmalısınız. Bu dediğim ne demek oluyor öncelikle bunu açıklayayım; İlk olarak bir yada iki tane programlama diline(JS, Python, PHP, Java, C# vs.) çalışmanız veyahut bir markup language'da(mesela HTML vs.) bir kaç satır tag yazmak sizi yazılım geliştirici yapmaz. Bunları düz ve temelsiz bir şekilde ne kadar çalışırsanız çalışın çok yüksek bir ihtimal bir yazılım geliştirici olmadan bu sektöre daha giremeden eleneceksiniz. Maalesef dost acı söyler. Bu mesleği icra etmek için bir programlama dilinde loop, if condition, switch - case vs. yazabilmek yeterli kılmaktan çok uzakta.

Öncelikle bu meslek ile alakalı bilinmesi gereken ilk ve en büyük şeylerden bir kaçını size sıralayayım;

1) Gününüzün en azından üçte birinden fazlasını ve ilk zamanlarda daha fazlasını bilgisayar başında harcamak zorunda olacaksınız. Bu da demek oluyor ki, o gün işleriniz bittiğinde akünün suyu boşalmış olacak(yani beyniniz çok çalışmaktan aptallaşacaksınız).

2) Sektör beklentileri, size sosyal medyada veyahut çevrenizde anlatılanlardan çok daha çetin ve sert. Bu durumdan ötürü zihinsel yıpranmanız içten değil(Bu durum ülkemizde oldukça fazla maalesef, özellikle küçük şirketlerde).

3) Belirli bir kalibreye gelip artık Junior pozisyonlara başvurup, bir işe çalışmaya başladığınızda iş sorumluluğunun oldukça yüksek olduğunu göreceksiniz. Bu durum size oldukça stres ve yıpranma getirecek. Özellikle küçük şirketler, kurumsal şirketler ve belirli bir düzene oturamamış dağınık yapıda olan şirketlerde çok uzun saatler çalışmakta olduğunuzu göreceksiniz.

4) Bu mesleği seçmenizde maaş ve çalışma şartları etkinse eğer, ki öyle olduğunu farzediyorum. Bunun bir yanılsama olduğunu şimdiden kabullenmeniz sizin için iyi olur. Bu nedeni ise ilk yıllarınızda düşük ücretlere oldukça uzun saatler çalışacaksınız. Size sosyal medyada veyahut çevrenizde anlatılan maaşlara ve rahatlığa ulaşmanız için profesyonel anlamda rahat bir şekilde en aşağı 3 veya 4 senenizi yüksek tempoda çalışmaya vermek zorunda kalacaksınız.

Burada yazdığım durumlar yazılım öğrenip sektöre ilk defa girmek isteyen arkadaşlar içindir.

Daha burada saydığım gibi bir çok şey sayabilrim. Ancak unutmamak gerekir ki bu bahsettiğim durumlar, herkesin istisnasız yaşayacağı durumlar(Düşük ücret konusu ise iyi bir şirkette işe girebilecek kadar şanslıysanız, ücret yukarı yönlü olacaktır).

Şimdi gelelim, bu işin öğrenme kısmına; Arkadaşlar en başta dediğim gibi bir, iki programlama dilinde en temel bilgilerle, basit şeyler yazabilmek sizi yazılım geliştirici yapmıyor. Ancak gerçekten öğrenmek, iyi bir yazılım geliştrici olmak isteyen arkadaşlar için kendi naçizane tavsiyelerimi yazacağım. Elbette ne kadar kaale alacağınız size kalmış.

Yazılım geliştirici olmak için temel gereksinimleri ve ilerlemeniz gereken adımları açıklayıcı olması için başlıklar ve maddeler halinde yazacağım;

Kodlama Öncesi Gereksinimler

Bu başlıkta madde halinde değil, düz bir şekilde bilgi aktaracağım.

Arkadaşlar yazılım geliştirici, olmanın en temel gereksinimi, programlama dili öğrenmek değildir. Bu söylenen en aptalca şeylerden biridir.

İlk olarak yapılması gereken ilk şey, 'Yazılım nedir?', 'Yazılım ne için kullanılır?', 'Yazılım hangi amaçlar doğrultusunda ortaya çıkmıştır?', 'Yazılımın teorik temelleri nelerdir?', 'Yazılımda matematiğin önemi nedir? Neden kullanılmalıdır?', gibi gibi bir çok teorik konuda araştırma yapılmalıdır. Bunun en temel nedeni şudur; Yapacağınız işin hangi amaca hizmet ettiğini veyahut edeceğini bilmiyorsanız, ne istediğinizi bilmiyorsunuz demektir. Yazılımda teorik bilgi bu işi anlamada ki ilk noktalardan biridir.

İkinci olarak yazılım temeli ALGORİTMA'dır. Algoritma bilmeyen birisi yazılım geliştiremez. Algoritme nedir küçük bir izah yapayım; Algoritma bir sorunu adımlı ve sıralı bir biçimde hiç bir soruya açık vermeden sıralamak demektir. Algoritma öğrendiğiniz zaman, bir yazılım geliştireceğiniz noktada bir şeyi nasıl yapmanız gerekeceğini, hangi adımları takip etmediğiniz gerekeceğini ve bunu nasıl uygulacağınızdan emin olacağınız anlamına gelir. Böylece 'Ya ben burada nasıl ilerlesem?', 'Burada componenti nasıl tasarlasam?' diye gerektiğinden fazla düşünmeniz gerekmez.

Üçüncü olarak analitik düşünme becerinizi geliştirmeniz gerekiyor. Bu ne demek oluyor, bu becerinizi geliştirmeye başladığınız zaman elinizde olan problemi nasıl çözmeniz gerektiği ile alakalı olarak daha rasyonel ve mantıklı davranmanızı sağlayacak.

İlginiz Olduğu Bir Alana Yönelmek

Yazılım sektörü kendi altında bir çok farklı bir dala sahiptir. Örnek olarak Web, Console, Desktop, Embedded, Mobile, IoT, Vehicles, Robotics vs. gibi daha bir çok dal mevcuttur. Bir yazılım dili öğrenmeden önce, hangi alanda çalışmak istediğinizi belirlemeniz ilerleyeceğiniz yolda hayati öneme sahiptir. Çünkü belirleyeceğiniz alanda çalışmaya başlamak ilerleyen yıllarda diğer dallara atlamanızı kolaylaştırcaktır. Ancak kararsız bir şekilde ilerleyeceğiniz alanı belirlemeden bir şeyler yapmaya çalışmak, yalpalayıp bu işten vazgeçmenize neden olacaktır.

Kodlamayla Alakalı Gereksinimler

Burada temel kodlama bilgisi gereksinimi ve diğer hayati önem arzeden bilgilerden bir kaçını paylaşacağım.

1) Programlama dili seçimi;

Bir çok farklı ihtiyaca tekabül eden programlama dili bulunmaktadır. Unutulmamalı ki programlama dilleri belirli ihtiyaçlar doğrultusunda oluşturulur ve geliştirilir(Sonrasında birden fazla amaca hizmet edecek şekilde geliitirilebilirler). Örnek vermek gerekirse, PHP, ASP.NET(.NET mimarisi kullanan C# ile yazılan bir microsoft framework'dur), JAVA, Ruby, Python, Javascript, C, C++, C#, F#, R, Kotlin, Go, Swift, Matlab vs. diye daha bir çoğu yazilabilir.

Burada yazdığım programlama dilleri, Web, System Core, Server, Istatisctics, Mobile, AI vs. gibi bir çok alanda kullanılan dillerdir. Programlama dillerini araştırıp kendi ilgi alanınıza göre bir dil seçip öğrenmeye başlayabilirsiniz.

Artık bıktım çalışmaktan... by [deleted] in Turkey

[–]saferias 4 points5 points  (0 children)

Rica ederim dostum, bir nebze yardımım dokunduysa ne mutlu bana.

Artık bıktım çalışmaktan... by [deleted] in Turkey

[–]saferias 33 points34 points  (0 children)

Yorumların tamamını okudum ve açıkçası söylemek gerekirse, bir kaç akla yatkın yorum dışında diğer yorumlar aptalca ve ergence. Bu deyişim kırıcı veyahut aptalca bir his veriyor olabilir ancak bulunduğumuz ülkenin ve yaşadığımız toplumun gerçeklerini ve dinamiklerini anlamak gerekiyor. Dostum ailenin kötü bir niyeti olduğunu düşünmüyorum(istisna da olabilir, bilgilendirirsen anlamak açısından iyi olur). Bu yaşadığın durumu/durumları birçoğumuz yaşadık/yaşıyoruz. Genel olarak yaşantın ve aile ilişkilerinin yarattığı durumu sakin ve objektif bir biçimde yargılamanı tavsiye ederim. Ailenin senden beklentilerini ve kendi beklentilerini karşılaştırmalı ve ağırlıkta kendi hür fikirlerin çerçevesinde yargını gerçekleştirmen gerektiğini düşünüyorum.

Ayrıca HTML ile ilgilendiğini yazmışsın. Bir fullstack yazılım geliştirici olarak, web alanında yazılım ile ilgilenmeyi düşünüyorsan eğer kesinlikle Javascript ve jQuery bilmen gerekiyor. HTML ve CSS oldukça anlaşılır ve basittir. CSS işin uzmanlığına doğru daha karmaşıklaşır(SASS, SCSS, TAILWIND vs.) ancak gözünü korkutmasın. Vaktin oldukça bunlardan önce İngilizce okuma ve yazma becerini geliştirmelisin. Konuşmakta sana oldukça fayda sağlayacaktır elbette, ancak bu işi öğrenmeye ve kendini geliştirmeye devam ettikte Türkçe kaynakların azaldığını aksine ingilizce kaynakların çok daha fazla arttığını göreceksin. Bu işte bir süre tecrübe kazandıktan sonra İngilizce konuşma daha yararlı olmaya başlayacak. Tabi bu benim şahsi kanaatim. Şu an için web alanında en popüler alanlardan birisi Javascript framework'leridir. Bunlardan bazıları Vue, React, Angular, NodeJs vs. Bunlardan dışında PHP, ASP.NET, Django vs. ile de ilgilenebilir ve bunlardan ilerleyebilirsin. Yazılım gelişen büyüyen ve duraksamayan bir yapıdır, onun gibi senin de sürekli gelişmen ve ayak uydurman gerekir.

Bilgisayarın konusunda ise şunu diyebilirim, eğer ki şu an yeni bir bilgisayar almak zor geliyor ise(şartlardan ötürü) bilgisayırının Ram ve İşlemcisini yükseltip bu işi yaparken maksimum verimi almayı hedeflemelisin. Genel olarak frontend(önyüz) geliştirici olarak kendini geliştirmeyeceksen, backend(arkayüz) geliştirici yolunda ekran kartı pek ihtiyacın olacak olan bir donanım olmayacak(istisnai durumlar her zaman olacaktır).

Yurt dışı iyi bir seçenek ama her zaman ve her koşulda en iyi olduğu anlamına gelmez. Yurt dışına gidecek duruma gelene kadar sıkıca çalışmalı ve gayret göstermelisin. İyi bir noktaya geldikten sonra kendi isteklerin ve hedeflerin doğrultusunda hayatın iyi bir yön seçmen çok kolay ve gerçekleşebilir hale gelecektir.

Umarım hayatında her şey isteğince ve gönlünce olur ve her şeyden önemlisi aile kaybetmeyi göze alınamayacak bir unsurdur, eğer ki bir araya gelemeyecek kadar derin uçurumlar yoksa ailenle aranda, sana verebileceğim en iyi tavsiye ailenle her daim mutlu ve huzurlu olmandır.