Engineering

Software engineering, architecture, debugging, delivery, and the practical mechanics of building systems.

April 15, 20266 min read

Breaking Up With WordPress After Two Decades

Around Black Friday last November, I moved my website from SiteGround to Bluehost. This was not some ambitious infrastructure decision. SiteGround wanted roughly five times more...

February 28, 202614 min read

Incentives Drive Everything

In early modern France, the monarchy kept running into the same problem. Wars were expensive, revenue was not steady, and every obvious solution came with a political price. New...

January 2, 202610 min read

The Janus Protocol

In the Roman Forum, there was a small shrine with double doors. When Rome was at war, the doors were left open. When Rome was at peace, the doors were closed. It is an oddly mod...

November 9, 202513 min read

Managing Your Manager

Managers change more often than you realize, especially when a company is growing or downsizing. New roles, new org charts, new reporting lines. Other times, you’re shopping aro...

November 1, 202521 min read

AI Broke Interviews

Interviewing has always been a big can of worms in the software industry. For years, big tech has gone with the LeetCode style questions mixed with a few behavioural and rounds....

October 16, 202513 min read

Most of What We Call Progress

Most of what we call progress in software is just motion. New tools, new frameworks, same problems. Maybe fancier logos. Our industry always has this collective thrill that a ne...

October 3, 202510 min read

Stop Wasting Brainpower

How many times have you found yourself saying: “I worked all day, but I didn’t get anything done.” I know, we have all been there. We feel bad about it, too. On the surface, it...

October 1, 202517 min read

Why Over-Engineering Happens

If you’ve worked in software long enough, you’ve probably seen it: a CRUD app serving a handful of users, deployed on a Kubernetes cluster with half the CNCF landscape stitched...

September 17, 202512 min read

Climbing No More

Engineers have been reaching a common ceiling in their careers for decades. The pattern goes like this: an individual contributor gets promoted to a senior software engineer, an...

September 13, 20258 min read

The Weekly Win

If you happen to work for a large organization, you’ve probably heard of quarterly checkins or some similar corporate buzzword to describe what you’ve done and what you could ha...

August 1, 202510 min read

Technical Deep Dives

When someone asks for a technical deep dive, they don’t care if . They want proof that you actually understand the beast you’ve built. Can you walk me through the system like yo...

July 26, 20253 min read

Yapay Zekâ Çağında Bilgisayar Mühendisliği

Son aylarda, ister posta kutumdan, ister web sitem üzerinden, isterse tanıdıklar aracılığıyla olsun, hep aynı soruya cevap veriyorum: “2025’te bilgisayar bilimi okumak hâlâ mant...

July 17, 202512 min read

From Idea to Launch in 2 Weeks

Everyone’s been talking about LLMs. I didn’t want to be too late to the party. When everyone’s talking about doomsdays scenarios, I just wanted to see for myself. As an engineer...

May 18, 202517 min read

Reflecting on Software Engineering Handbook

One year. May 2024. Back then, we were riding high, celebrating the launch of this with an amazing . Five days of glaciers and waterfalls, finally enjoying the fact that we fini...

April 20, 20254 min read

Take Self Reviews Seriously

This isn’t the first and definitely won’t be the last time I find myself in a conversation about the importance of self checkins, performance reviews, and all that socalled “ref...

February 11, 20257 min read

Tech Hiring Bubble Bursts

I wasn’t around in the 90s, but people who were say it was incredible. If you could code, you were set. Talent was rare. There were almost everywhere. In the 2000s and early 201...

November 27, 20245 min read

The Reality of an Employer's Market

Lately, Iʼve seen a lot of posts about what employers should do or how they should treat candidates, what benefits they should offer, and how they should run their interviews. I...

October 6, 20249 min read

Balancing Act of Reliability

Software development involves both creating and maintaining systems. Once you put anything into production, reliability becomes critical. When your systems are not reliable, you...

September 26, 20245 min read

Building Trust in Engineering Teams

We all know that transparency builds trust. The lack of it? Well, that can lead to major issues. Engineers sometimes join teams and, from the start, struggle with trust. It’s as...

June 22, 20243 min read

Celebrating Our Book in Iceland

To celebrate the release of our new book, , Ender and I took a nice trip to Iceland. Here’s a relaxed recap of our fiveday journey. Day 1: The Golden Circle We kicked off our tr...

June 5, 20246 min read

Operational Skills Needed

Over the years, I've interviewed many candidates. One crucial skill that often gets overlooked is operational reflexes during oncalls. Surprisingly, few companies test for this,...

May 27, 20243 min read

On Writing Software Engineering Handbook

I’m thrilled to share the story behind our newly published book with you. This project has been a labor of friendship and collaboration, and I hope our journey resonates with yo...

April 3, 20246 min read

Working with Dependencies

If you are part of a large organization, the term "dependencies” probably means more than . In a big organization, when we talk about "dependencies," we're diving into more than...

January 13, 202410 min read

Engineering Health Essentials

Engineering health is a term that deserves far more attention than it receives. Sustainable software development is not only about the features we ship or the speed at which we...

January 9, 20245 min read

Should Dev Managers Code?

As someone who's been navigating the world of software development for a while, I often think about what it really means to be a good development manager. It's a bit like being...

December 11, 20238 min read

Winning Eleven

Here's 'Winning Eleven,' my own mix of eleven key ideas that have helped me grow both at work and in life. This isn't your usual list of tips. It's more like a collection of rea...

November 16, 20235 min read

Coding in Leadership

When you start coding, you start the adventure. It feels like unlocking a new world of logic and creativity. From programming classes where we tried to solve pyramid programs to...

November 10, 20236 min read

Cracking Coding Bottlenecks

In software development, we obsess over component benchmarks and algorithmic complexity, chasing milliseconds latency and BigO wins. But, time and after time, I’ve found that th...

November 6, 202315 min read

Becoming a Rockstar Engineer

In the software development realm, people often debate about 10x engineers or rockstars. But what does that really mean? How can you become one? There isn’t an easy answer, but...

November 2, 20236 min read

Silent Guardians of Quality

In the realm of software development, testers are the silent guardians. Their role is often misunderstood and underappreciated, especially when they do their job so well that no...

November 1, 20234 min read

Why You Should Read More Code

In university, I have master students studying software engineering. I often ask them one question: how do authors become authors? Do they suddenly start writing great novels in...

October 31, 20233 min read

Restful Sleep: The Ultimate Debugger

Coding can be tough. Even the best get stuck with tricky errors. But many forget one helpful trick: sleep. Software engineers often work late. We get so into our work, we think,...

October 14, 20234 min read

Estimation Accuracy

Estimating software projects is basically the tech equivalent of arguing about Irish weather. Everyone has an opinion, nobody really knows anything, and the forecast changes all...

October 9, 20237 min read

Why Legacy Systems Are Worth Your Time

I know. When you hear legacy, you think , , weird edge cases, and “what the hell just broke now.” Every moment feels frustrating. You don’t know what the next change will trigge...

October 2, 20234 min read

Why Metrics Don’t Equal Quality

In 1902, Hanoi was drowning in rats. The government was getting nervous about plague. Hence, the city put a bounty per rat tail. Suddenly, the system had a scoreboard, something...

March 15, 20236 min read

Teaching Software Engineering

As a software engineering instructor, I’ve taught a diverse group of master’s students with varying technical backgrounds. Not everyone comes in with the same level of expertise...

June 12, 202214 min read

System Design Interviewing Tips

System design interviews are inherently subjective. Outcomes depend on many factors, including the backgrounds of both the interviewer and the candidate. Even if both have exper...

April 24, 202212 min read

Engineering Strategy and Planning

Strategy is a word that's often used but rarely understood. Ask ten people what it means, and you'll get ten different answers. I often see people confuse it with , a quarterly...

April 7, 202226 min read

Data as a Product is a Promise

Domaindriven design (DDD) has been around for quite a long time. In short, DDD focuses on domain to match domain requirements. One of the pillars of DDD is bounded context. A bo...

March 20, 20226 min read

Update Statements on Production

Executing update statements on a production database is always a big challenge. It’s one of those tasks that looks deceptively simple until something breaks in ways you didn’t i...

March 20, 20228 min read

Engineering Roles and Responsibilities

Engineering organizations have roles and responsibilities either explicitly or implicitly. When it’s explicit, one or more people exercise the engineering role, and the responsi...

February 21, 20226 min read

Essential Engineering Principles

Engineering principles give teams a practical foundation for how to build and operate software. They guide decisions, shape behaviours, and help groups stay aligned even as syst...

February 19, 20229 min read

Pulling the Plug from a Project

Every project starts with high hopes to deliver one or more business values. The team begins with the requirement analysis and then carries on with design and development. On th...

February 13, 20226 min read

Addressing Technical Debt

Tech debt occurs when we solve a software problem with our limited understanding of the business at the time. We start building a solution to get feedback as early as possible....

February 7, 202212 min read

Building a Technical Vision

A technical vision is the compass of an engineering organization. It sets the longterm direction. I believe it should define the "why" and "where" behind the technical choices t...

December 29, 202114 min read

Service Overload Strategies

Service overload happens a lot. If you haven't seen one, count yourself lucky. The first time I watched it take a system down, I realized how serious it’s to get the basics righ...

December 25, 202134 min read

Designing A Key-Value Store

I’ve been asked once to design a key value store in an interview. It looks easy at first. Then it gets hard, fast. What makes it interesting is how ambiguous it is. I started us...

November 26, 202117 min read

Promoting Learnings in Incidents

Incidents are used for the negative consequences of an action. The incident comes from an action that fails to result in the expected outcome. For instance, deploying a code to...

June 5, 20212 min read

M1 işlemcili MacBook Pro

Bir iki sene önce aldığım MacBook Pro'dan oldukça şikayetçiydim. Bunu bir bir kaç başlıkta dile getirmiştim. Bunun üzerinden 2 sene geçti. Benim gibi birçok kullanıcı da problem...

March 10, 20214 min read

Code Author

Throughout the years I have worked on many software projects. In most of them, the code header included the authorʼs name. At first, it seemed natural to have the authorʼs name....

December 31, 20208 min read

Risk Comes First

You probably saw many cliché stuff about risking everything. Not risking is the biggest risk and all. While there is a truth to that, risk needs to be an appetite. Remember what...

June 19, 20203 min read

Leetcode Hard

Over the years, I’ve been on both sides of the interview table. To become better at conducting interviews and preparing for my own, I spent time solving and reviewing coding pro...

November 12, 20191 min read

Verifying passed arguments partially

Recently, I was working on a project and I missed a case in unit tests. I didn't want to verify each argument but rather wanted to check if an object has a certain attribute set...

September 28, 201912 min read

Yazılım Mühendisliği Kariyer Merdiveni

Yazılım şirketleri, mühendislik mesleği seviyelerini dikkatlice oluşturmalı ve çalışanlardan ne beklendiğini, roller arasındaki farkı ve kariyer gelişimi için alanları açıklayan...

August 20, 20197 min read

Good APIs Age Slowly

I have noticed that APIs are a bit like abstractions in general. APIs that impress people quickly are very often the ones that cause the most trouble later. I do not mean this a...

August 6, 20197 min read

Before You Import That Library

Software development depends a lot on open source projects. From operating systems to editors, we use open source software everywhere. Nevertheless, we should be careful about w...

August 3, 20197 min read

On Writing Wrapper Libraries

A wrapper library is a thin layer of abstraction around an existing library, dependency, or functionality. A wrapper library offers a better and cleaner interface or rather hide...

July 11, 20192 min read

Yeni MacBook Pro

Uzun yıllardır MacBook kullanıyorum ve hiçbir zaman verilen paraya kıyasla alınan verim anlamında MacBook Pro'yu beğenmedim. Bu konudaki yaklaşımım cihazın kalitesinden çok her...

July 3, 20194 min read

Minimum Viable Agile

In , I criticized agile frameworks for bringing too much complexity with too little impact. What was meant to make teams more adaptive often ends up doing the opposite. They slo...

July 1, 201911 min read

What's wrong with Agile Frameworks

Some time ago, I attended a course and became . It wasn’t a huge deal. I was already doing the job. But as time went on and I gained more experience, my view of agile frameworks...

December 13, 20187 min read

The Real Work Is Social

I get along with people. I talk, I joke, I do the normal office stuff. But even with that, something about how work actually works has always felt off. You think the job is most...

July 11, 20183 min read

Simple Mutual Exclusion

When we design services for high availability, we often deploy more than one instance of the same application. It might be two servers behind a load balancer or a few nodes shar...

June 6, 20188 min read

Hype in Software Development

We live in a time when every month brings a new framework, library, or architectural pattern that promises to change everything. Increasingly often, we come across a new technol...

January 7, 20187 min read

Why I like JavaScript

Every programming language has its oddities and challenges. When it comes to JavaScript, it has Every programming language has its oddities and challenges. When it comes to Java...

December 25, 20176 min read

How Teams Choose Language

Choosing a programming language is one of the most defining decisions in software development. It shapes how a team writes, maintains, and reasons about their system. Today, the...

December 23, 20172 min read

Yazılım için İngilizce Öğrenin

Geçenlerde sitem üzerinden bir eposta aldım. Yazılım mimarisi ödevine yardım edebilir misiniz diye soruyordu. Meşgul olduğumu ama zaten internette benden bu konuyu daha iyi açık...

December 17, 20175 min read

I'm no longer a Scrum Master

Recently, I received an email from Scrum Alliance. My Scrum Master Certificate has expired. As expected, the email was suggesting to get certified again, a friendly nudge to sta...

December 15, 20178 min read

You Know State Is NO Good

Every engineer learns this the hard way. You think the logic is solid, your tests are green, and your deployment goes smoothly. Looks all good, right? Then you have an outage. N...

May 5, 20177 min read

Refactoring Untested Code

Most teams realize they are dealing with a legacy repo only when a tiny change turns into an operation. A oneline fix suddenly needs three people, two days of manual checks, and...

April 12, 20174 min read

Duplicate code isn't that bad

Duplicate code isn’t something we usually want in our code for various reasons. The most obvious one is maintenance. When you change a piece of logic, you have to find every pla...

December 12, 201615 min read

How I Work as a Software Engineer

When I started out, I thought productivity meant speed. Ship fast, fix fast, move fast. Working in startups taught me something different. When everything around you changes con...

October 22, 20164 min read

Smaller is Faster

“Smaller is faster” is a wellknown hardware design principle, as you might already know it. Generally speaking, smaller pieces of hardware will be faster than larger ones becaus...

September 13, 20165 min read

You Cannot Fix What You Cannot See

I have been working on this data discovery tool for a while, and it keeps showing me how messy our systems really are. The idea behind it is simple. Crawl every database we have...

July 25, 20162 min read

Ufak Servisler

Ufak servisler(micro services) son zamanlarda yazılım alanında sıkça yaygınlaşan bir yöntem. Micro'yu ufak diye çevirmek hoşuma gitti ama tahminen mikro daha çok kullanılır. Zat...

July 25, 20168 min read

Who needs an Architect?

An architect? According to Wikipedia, an architect is a person who plans, designs, and oversees the construction of buildings. So, we obviously have derived the role from civil...

March 25, 20162 min read

Shoulder Ship It

Pair programming is no new topic and has been widely used in the industry. At first, it might seem like itʼs a waste of time because two coders work in the same station. However...

March 16, 20165 min read

Scrum, Kanban, or just Agile

Before going deep in the subject, I would like to emphasize that this post is completely personal. You miBefore going deep into the subject, I would like to emphasize that this...

March 11, 20166 min read

Consistency Matters

When I look back at the projects I’ve worked on, the most peaceful moments were always when the code felt consistent. Everything lined up. Names made sense. Files looked familia...

October 15, 20155 min read

Local vs Production Debugging

I have been debugging this data workflow tool we built in house lately. It has an Angular UI and a Java backend, and it moves data between different systems like Postgres to Hiv...

August 24, 20152 min read

Mock methods that manipulate parameters

Recently, I've worked a little bit on cache for . I needed to mock a behavior of a method where the method manipulates given parameters e.g. change state or call another method....

August 20, 20153 min read

A guide for Code Reviews

Code reviews shouldn’t be about ego. Still, every time you send one, you’re putting yourself out there. You want your work reviewed but at the same time it makes you vulnerable....

October 13, 20148 min read

Java Developer vs. Software Engineer

Java developer vs. software engineer is discussed quite often, especially among programmers trying to define what truly separates a coder from an engineer. One of my friends kep...

July 9, 20144 min read

Açık Kaynak Lisansları

Açık kaynaklı yazılımlar her geçen gün daha da yaygınlaşıyor. Artık herkes açık kaynaklı yazılımlarla karşılaşıyor, en basit örnek Android işletim sistemi. Bugün sadece bireysel...

March 7, 20145 min read

Moving from Java to Python

I recently started a new role in AWS networking, and it’s the first time I’ve gone from writing everything in Java to writing almost everything in Python. Honestly, the shift is...

January 7, 20142 min read

Spring Cache Abstraction

Spring cache abstraction applies caching to the Java methods. It provides an environment where we can cache the result for the methods we choose. By doing so, it improves the pe...

December 11, 20133 min read

Implementing HTML5 Bomberman

CS102 is one of the most important course in CS curriculum. In this course, students learn how to write recursive function, objectoriented programming and etc. This course provi...

June 28, 20136 min read

JavaScript Execution Context

JavaScript developers do not pay attention much on internals of JavaScript execution, namely execution context. Even experienced JavaScript developers may lack necessary knowled...

May 22, 20134 min read

Dependency Injection in JavaScript

Dependency injection is about removing the hard coded dependencies and providing way of changing dependencies in compiletime or runtime. This pattern has been exercised in sever...

May 16, 20135 min read

Achieving Abstraction In JavaScript

In computer science, abstraction is to hide certain details and only show the essential features of the object. Abstraction tries to reduce and factor out details so that the de...

April 12, 20135 min read

Buggy Code on Production, Survived

Areca is the name of the billing engine I am working on for Turk Telekom. Funny enough, it is also the name of the flowers we bought to freshen the office. We wanted the office...

October 4, 20128 min read

XA Transactions: A Simple Guide

In early days of computing, there was no need for distributed transactions, everything lived in one place. As number of applications increased, synchronization of the data becom...

August 2, 20123 min read

Faster JavaScript

JavaScript is a very important language for now and the future. Nowadays, there is no page that does not include some JavaScript code in it. Moreover, code written in JavaScript...

May 24, 20123 min read

Caching With Guava

In computer science, cache is a component that is used to speed up data retrieval in general. The data stored in cache is limited so a given query can hit or miss the data that...

March 7, 20123 min read

Çevik Yazılım

Çevik yazılım geliştirme, bir takım yazılım geliştirme yönteminden ibarettir. Bu yöntemler, yazılımın ve gereksinimlerin birbiriyle etkileşim halinde tutarak ortaya koyulmuş sür...

January 30, 20124 min read

Cepheye Yönelik Programlama

Yazılım dünyasında başlıca endişelerinden biri, yazılımdaki parçaların biri birine çok bağlanmasıdır(high coupling, crosscutting concerns). Bu durum yazılımın belirli bir noktad...

November 2, 20102 min read

Mediator

Bu yazımda size Mediator adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım.Mediator bize, bjeler arasında fazla bağ kurmadan (tightcoupled) i...

November 1, 20102 min read

Strategy

Bu yazımda size Strategy adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Bu şablonun genel amacı yapılacak iş için alternatifler oluşturup...

October 25, 20101 min read

Composite

Bu yazımda size Composite adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Bu şablonun genel amacı tekrarlanan(recursive) parçaları(compone...

August 12, 20102 min read

Observer

Bu yazımda size Observer adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Bu şablonun genel amacı bir objeyle başka objeler arasında bağ ku...

January 11, 20102 min read

Facade

Bu yazımda size Facade adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Bu şablon(pattern) genelde birden fazla pakete (package) aynı anda...

January 10, 20101 min read

Adapter

Bu yazımda size Adapter adında nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Bu yazılım şablonu genellikle daha önce yazılan bir kodun başka bir...

January 10, 20102 min read

Abstract Factory

Bu yazımda size Abstract Factory adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Abstract factory, bir veya birden fazla nesnenin farklı t...

January 10, 20101 min read

Factory

Bu yazımda size Factory adındaki nesneye dayalı yazılım şablonunu (ObjectOriented Design Pattern) anlatacağım. Factory şablonunu şöyle anlatayım. Painte benzer bir program yazma...

January 10, 20101 min read

Singleton

Bu yazımda size Singleton adındaki nesneye dayalı yazılım şablonunu(ObjectOriented Design Pattern) anlatacağım. Singleton benim en çok kullandığım dizayn şablonlarından biri. Bu...

December 27, 20093 min read

Yazılım Mimarisi

Mimari denildiğinde insanın aklına gelebilecek ilk konu değildir yazılım. Ama nasıl köprüler, barajlar gibi büyük yapıtların bir mimariye ihtiyacı varsa, geniş kapsamlı yazılım...

December 5, 20093 min read

Inheritance ve Polymorphism

Polymorphism ve Inheritance beraber kullanılan iki önemli nesneye dayalı (ObjectOriented) programlama unsurudur. Bunlar program kodlarının yeniden kullanılabilmesi veya var olan...

November 24, 20093 min read

Linux mu Windows mu?

Aslında bayağıdır yazmıyordum sitede ama bir arkadaşın sorusu üzerine birkaç satır bir şeyler karalayayım dedim. Arkadaş bize Linux tabanlı işletim sistemlerinin avantaj ve deza...

July 6, 20092 min read

Antivirüs İncelemesi

Yazıma başlamadan önce antivirüs programları hakkında söyleceğım çoğu şeyin kendi bilgi, kanaatime ve tecrübelerime dayandığını belirtmek istiyorum. Bana güveniyorsanız buyrun a...

March 21, 20094 min read

Binary Search Tree

Binary Search Tree (BST), bilgisayar biliminde arama, ekleme ve silme işlemlerini ortalama O(log n) zamanla gerçekleştirebildiği için temel veri yapılarından biridir. BST’nin gü...

March 11, 20093 min read

RAM(Random Access Memory)

RAM, bilgisayarda geçici olarak bilgi depoladığımız hafıza birimidir. Zaten çoğu kişinin de bildiği gibi elektriği kestiğimiz anda içindeki bilgiler silinir. Yani kalıcı değil,...

March 10, 20092 min read

Quick Sort

Birçok bilgisayar bilimi dersinde Quick Sort’u defalarca işledik, analiz ettik, hatta sınavlarda bile çözdük. Ama çoğu zaman öğrendiğimiz şeyleri pratiğe dökmeden bırakıyoruz. İ...

February 14, 20093 min read

SSL(Secure Socket Layer)

İnternette gezerken bazen adres çubuğunda normal http yerine https ile başlayan adresler görürüz. Özellikle giriş yapılan sayfalarda, webmail sistemlerinde, bankacılık işlemleri...

November 3, 20082 min read

Use of Pointers For Lists

C++’ta diziler sabit uzunlukludur; yani program çalışırken bir diziyi doğrudan büyütüp küçültmek mümkün değildir. Bu yüzden, eleman ekleyip silmeyi destekleyen dinamik bir liste...

November 3, 20084 min read

Bilgisayar Tarihi

Bilgisayarın tarihi aslında sandığımızdan çok daha eskiye dayanıyor. Bugün masamızda duran ya da cebimize sığan cihazların bu hale gelmesi öyle bir anda olmamış. Arkasında yüzle...

October 31, 20083 min read

Java Link List Implementation

Linked List (bağlı liste), verileri bellek üzerinde dinamik şekilde saklamamızı sağlayan temel veri yapılarından biridir. Dizilerde eleman sayısı sabitken, bağlı listeler ihtiya...

October 31, 20081 min read

FSB

FSB(Front Side Bus) işlemci ile anakart arasındaki bilgi akışını sağlayan bir ünitedir. Bu ünite işlemci(CPU) ile bilgisayarın diğer parçaları arasındaki iletişimi sağlar. Bunu...

October 30, 20082 min read

Pointer Şeması

C++’ta pointer şeması, bir nesnenin bellekte nerede yaşadığını, hangi pointer’ın ona sahip olduğunu ve ne zaman serbest bırakılması gerektiğini anlamanın temel yoludur. Düşük se...

October 16, 20082 min read

Selection Sort

Selection Sort, en basit sıralama algoritmalarından biridir ve özellikle algoritma mantığını öğrenirken sıkça kullanılır. Bu yöntemde amaç, dizinin her adımında geri kalan bölüm...

October 14, 20082 min read

Heap-Allocated 2D Structures in C++

C++ öğrenirken en çok zorlanılan konulardan biri, işin mutfağı olan manuel bellek yönetimi ve pointer yapılarıdır. Bugün çoğu modern dil bizim için bellekle ilgilense de, C++ hâ...

October 13, 20083 min read

Programlama Dilleri Tarihi

Programlama dillerini ilk ciddi ciddi Bilkent Üniversitesi’ndeki derslerde görmüştüm. Programming Languages dersinde bayağı farklı şeylere dokunuyorduk. Genelde başlangıç Java i...

October 12, 20082 min read

A Basic Pointer Example

C++’ta pointer kavramı, dilin düşük seviyeli kontrol anlayışının temel parçasıdır. Burada artık yalnızca değerlerle değil, bu değerlerin bellekte nerede durduğu ile ilgilenilir....

October 12, 20082 min read

Type Casting

Type casting çoğu zaman küçük bir teknik detay gibi anlatılır. Bir parantez açarsın, hedef tipi yazarsın, kod çalışır. Ama tip dönüşümü aslında bir karar mekanizmasıdır. Bir değ...

October 12, 20082 min read

Pass By Reference

C++’ta fonksiyon çağrılarında en temel ayrımlardan biri şudur: Fonksiyona bir değerin kendisini mi gönderiyorsun, yoksa o değerin kendisine erişimi mi veriyorsun. Bu ayrım küçük...

November 24, 20071 min read

Hello World

I am starting this blog, even though I do not really know what I am doing yet. I see engineers blogging and sharing what they learn. It looks cool, and it feels like a good habi...