C64C

I would like to tell you a story. My personal dev story of how I’ve become a programmer.

I was born in 1986 in Warsaw (Poland). When I was around 10 years old I got my first computer, Commodore 64. Oh! What a machine it was. Keyboard with CPU inside, tape recorder two joysticks and few tapes loaded with games (do you remember?:)).

Rewriting phase

But there was also something else. A book. User manual with a short BASIC tutorial. It was completely in German which was a bit of a problem because i didn’t know that language then. Actually I didn’t know much then, I was 10 馃檪 But it didn’t stop me from rewriting code from the book and聽 looking what’s going to happen. That’s how my first “Hello world” appeared on the screen.

When I was about 12 my Mom signed me up for my first computer classes. They were held in the tallest building in Poland – Palace of Culture and Science. Once a week for 1,5 hour I was learning about simple web design (basics of html) and a bit of graphics (corel draw).

PalaceOfCultureAndSciencePalace of Culture and Science

Pascal period

During that time I’ve switched from Commodore to PC (486DX4 100MHz, Win95). It was some change, you probably can imagine. Plus I had Quake 1 already installed on my new machine (sic!). No CD-ROM or sound card though.

After a year of web design for kids I thought it’s time for some serious sh.. stuff 馃槈
I’ve decided to join Pascal course. And it was a good decision. After a while I was hooked. Big time! I was attending this course for two years and learned a lot. Meanwhile I was putting my new knowledge to good use.

Who doesn’t like games, right? So let’s take a novice programmer who love games and think of the best project he can do? Got it? Yup, let’s make a game!

“Arfuria” was an ASCII-based dungeon crawl game. A bold project that I’ve never finished. But it was awesome! Pure professional, clean code. Everything in one file (only maps were in separate files). One procedure for one map with endless if..then statements. Pretty SOLID 馃檪

When my code file exceeded 5000 lines my compiler said “oh hell no!” and I quickly needed to learn what modules are.

So many nostalgic moments.

meMe and my machine

New kids on the block

When I was 14 I’ve started buying computer magazine called CD-Action (and I’m buying it ever since.. it’s 15 year now). At that time I was doing mostly Pascal, but I had on my mind that it’s about time for something new.

Back then CD-Action was publishing short programming courses (guys it was awesome, why you’ve stopped?). One of them was about C++. It was something new.. something powerful.. something exciting! So I got my DJGPP on and started doing a lot of stuff. I was making simple games, playing with graphics doing fractals, generally all kinds of things. It was also a paradigm shift for me, going from procedural Pascal to object-oriented C++.

djgppDJGPP

Simultaneously I finished my Pascal classes in Palace and I’ve switched to web programming. We were learning about the hottest web stack of that time – PHP/MySQL/Apache. I’ve used it to build various web apps and had my sites about Diablo and Tomb Raider up and running in no time.

Time to share!

When I was in middle school I’ve already had some knowledge on me and I wanted to share. I’ve decided to make an introduction to programming during computer science classes in my school. It went.. not quite well. I mean, as far as I remember my classmates weren’t interested at all. Probably my presentation skills were poor because what 14 year old kid is not interested in programming? 馃檪

It got better when I went to high school and started a computer science circle. We were doing C++ and PHP. We had a lot of fun because most of the people paid attention. Of course some guys joined just to play Counter-Strike (which by the way I’ve picked up there and played for 7 years).

High school was also the time when I earn my first money on programming.

So I’m in high school. I’m doing my C++ on Windows now. And it is painful. WinAPI where to write app that prints “Hello world” you need 150 lines of code and that monstrosity called MFC that I won’t even talk about. Luckly, this episode ends quickly. Next!

New hope

Place: Book store.
Purpose: Buy programming book which would inspire me.

I’m walking around the store browsing through the books. I got 20 dollars in my pocket, I can afford one. What would it be? Eventually red cover with big white letters draws my attention. Book title is “OpenGL for experts”. Damn! That’s something for me!

During the following weeks I’m doing mostly graphics programming, finally discovering what linear algebra is used for. I also stumble upon some online game programming tutorials and.. it is on. I’m deciding to build my own 3D game engine. 馃槑

Next couple of months are filled with math, understanding lot of difficult concepts and getting them to work in my freakin’ code. After hours and hours (and hours) of coding it finally works. Map is correctly rendered, textures are there, camera is working, you can move and look around with your mouse. Done! I’m going back to normal life.

geSourceLarge

Game engine in C++ 1

My romance with聽 graphics聽programming was passionate and breathtaking. I’ve learned a lot and enjoyed it. No regrets.

Some time later I had a run with DirectX. I was doing 2D for the most, creating small games like Pong and Pacman. However this phase was quite brief and not so exciting any more.

Wait for it..

In 2003 I read an article about new programming language which was supposed to be an upgraded C++. Even the name was similar – C#. I kind of like it from the beginning. Object-oriented with clean, simple syntax and garbage collector. Powerful combination.

I was amazed by whole .NET platform, especially by it’s web framework – ASP.NET. Creating full featured website with drag and drop and few lines of code. I thought it’s brilliant (I don’t think so any more).

Money, money, money

Place: Parking lot, inside the car
Characters: Mr. Bogusz, Mr. X

B: What do you need me for?
X: I have a job for you.
B: What kind of job?
X: There is a problem, I need you to get rid of it.
B: Payment?
X: As usual. Cash after it’s done.

I might have changed some details, but in fact we were in the car on parking lot discussing details of my first commercial project, website for fire department unit. I’ve decided to do it and I signed a contract for 1,500 PLN (360 $). It was a lot of money for me then.

To build this site I used my new, shiny toys – .NET, C# and ASP.NET WebForms. As it wasn’t hard project I succeeded without bigger problems and shiped my code to “production” for the first time.

I still remember the smell of that money, first serious money that i’ve earned doing what I love. That felt great.

Fire department

Actual fire department that I built site for

Proper education

As you can imagine I picked IT related subject as my major. I chose Informatics and Econometrics at Warsaw University of Life Sciences. My time in college was truly awesome and I have so many unforgettable memories that it’s hard to count them all. Yeah.. but let’s get back to business.

After classes I was freelancing, doing mostly websites. Several projects not worth mentioning and one worth it. I have built quite large online newspaper with full featured CMS. I was a student. I was cheap. I did it for 3,000 PLN (720 $). My clients were lucky as hell 馃槈

Going social

In the meantime I started attending .NET meetups where various people were doing tech sessions on .NET related topics. I always liked the idea of sharing knowledge and I want to be a part of it. I thought it would be cool to have this kind of group at our university. So I created one! I gathered people, created group website, contacted Microsoft to sponsor us and led first few meetings. That’s how Silver .NET Group was founded (btw. now I think it’s a bit lame name:P). After 9 years not only that the group still exists but it’s doing great.

Silver .NET Group

Website of Silver .NET Group

What shell we do with a drunken sailor?

Lot’s of ‘first times’ in my story. There will be one more. My first full-time job.

Place: University hallway.
When: 3rd year of studies
Characters: Bogusz, Piotr

P: Hey man. I work at this IT company and we need more developers. Join us.
B: Meh. Full-time job? I don’t know, I’m lazy.
P: Well, so what would you like to do?
B: Hmm.. I want to sail around the Caribbean.
P: Do it then.
B: I can’t afford it.
P: Join our company and you’ll be able to afford it in a month.

Caribbean

Caribbean

I joined the company. But I didn’t sail around the Caribbean. Damn!
I worked there for a year. Full-time during summer break and half-time during academic year. It was a small company (5-6 people), but experience that I gained there was crucial.

Just chill bro

After a year of working and studying I was soooo tired (commute was killing me, 1,5 hours from home to office) and I decided to join magnificent student exchange program that is Erasmus. 馃榾

I’ve spend 6 great months in Greece (Thessaloniki) mostly travelling and parting. In the meantime I was freelancing building social network services. When facebook hype has started everyone thought that building similar service is a brilliant idea (joke’s on them).

Shisha

Greek chill out

Back to reality

When I came back to Poland I wrote master thesis, finished studies and joined a startup as a .NET developer.

Since then I have changed my job few times, always trying to find new challenges.
I still have a lot of crazy dev related stories to share. And I will, but maybe a bit later 馃檪

And that’s about it. That’s my dev story!

1 http://www.marekknows.com/images/forum/geSourceLarge.jpg