Reflections on My Journey into Software Development
Written at 2023-09-22 - Updated at 2025-09-06This blog post is a review of my journey into software development up until 2023-09-22. It is not intended to be a series of detailed explanations/guidelines for my career choices. Consider it more like personal reflections on events that shaped me as a developer. So, take the things that I say here with a grain of salt.
My First Introduction to Programming
I used to hang out with my cousin a lot when I was around 6 or 7 years old. He would always develop something cool whenever I saw him using his computer.
Back then, I used to play Solo Test a lot. When I showed this game to my cousin, he thought about coding it and building a solution engine for it. He did both in front of my eyes. The game is still available on his website. He was already one of my idols, but this was one of the moments that made me respect him even more. The idea of being able to build the things you like, the way you want, by this thing called “code” was fascinating.
Not only did my cousin demonstrate coding, but he also encouraged me to make simple video games. He introduced me to a program called Macromedia Flash for this. I would try to make simple Flash games by following the YouTube videos I saw. Unfortunately, I would usually get stuck trying to make things exactly how I wanted due to my limited understanding. I would get frustrated, and… would give up.
I guess both my limited English and lack of patience were making it much harder for me to move forward. So my attention went to other hobbies that were easier to pick up. Playing games, reading books and creating pivot animations…
Learning JavaScript when I was in Highschool
I was better suited to learning programming when I was in high school. I was more patient. I understood English a bit better. I had a growing interest in subjects like philosophy and mathematics. Having sophisticated interests I could already follow on my own was proof that programming could be added to them.
I started learning JavaScript. This choice was because it was the only programming language that could be run in a web browser. My cousin also saw it as a great investment for the future. The high accessibility of learning materials for it was also another bonus.
I don’t recall the exact sources I used. But the overall process was simple. First, I would try to understand a concept that I either found interesting or that my cousin suggested. These would be things like variables, conditionals, functions, and so on.. Once I felt comfortable, I would either ask my cousin for an assignment or come up with my own experiment to apply it. Then get his feedback on what I implemented. Re-iterate.
The tasks would be simple, with small caveats. Like, not using built-in utilities like sorting or string functions. This was so that I had to re-implement them when I needed to and learn how things worked under the hood. This was a good approach. I think it was thanks to that my first year taking CS courses was very easy for me. I was already familiar with most of what was taught, so I had time to explore topics that interested me.
If you are interested, some of the programs I wrote back in high school are still on my GitHub. You can check out My Canvas Javascript Experiments, Javascript Experiments, and some other projects like Physics Simulator, Conway’s Game of Life, Running Game, Text Machine, Wolfram’s Elementary Cellular Automata.
Studying Mathematics at College
In Turkey, colleges admit students based on a central placement exam score. Unfortunately, I didn’t score high enough to get into the CS/CENG programs at the top universities. I was required to be in the top 0.1%, but I was only in the top 1%. My ranking just wasn’t good enough.
I knew that I could learn on my own what a mediocre university would teach me anyway. The campus experience, being around other intellectual people, was important to me. I did not want to study CS at a mediocre university. So, I instead considered pursuing other degrees that interested me at top universities. Meanwhile, I would continue to learn software development on my own.
My friend Ibrahim showed me that I could take CS electives alongside my math studies. And my ranking was sufficient for a Mathematics degree at one of the top universities in my country.
So I ended up studying mathematics and also taking almost all the compulsory CS courses. The only two CS courses that I did not take were Operating Systems and the 4th-year Algorithms course. So, I kind of did something like a double major, but an unofficial one.
I also wasn’t very worried about not having a CS diploma. I saw it as a valuable bonus rather than something required to qualify. I believed that as long as I had competence and knowledge in the subject, I would be able to land a job. Which later turned out to be true as well.
My First Projects
I started losing interest in pursuing an academic career during my third year of college. I simply realized there were better things I could be doing than trying to maintain a good GPA. I began focusing more on how I could put my programming skills to use. I also started thinking about what I could learn on my own that is both interesting and pragmatic.
Coincidentally, I had just started investing in cryptocurrencies around that time (during Covid). This was when I first began learning about the concept of decentralized finance (DeFi). And with it, I realized that there could be many opportunities to automate. We started researching potential automation ideas and executing them with Ibrahim. He would usually handle the research, and I would usually handle the execution part with programming.
We tried and experimented with many different ideas. 1 Some worked well, others did not. Our work was not professional, but these projects were still sophisticated enough to improve us. We became better both in programming and in research. For me, this was especially important. Because it functioned as a first-hand proof that I could actually put my programming knowledge into practical use.
My first Job
So, I was already building software projects for earning money even before working at a job. Luckily, these experiences also made getting my first job much easier.
I was discussing my recent projects with a friend who had a broader network than mine. He was surprised that I hadn’t applied for a software development job, given the things I was already doing at that time.
He referred me to one of his connections who recently founded a startup.
I succeeded both the technical and non-technical interviews. Then, started working as a part-time remote software developer there.
A new Mentor
The company I worked for was getting a consultancy service from a cracked developer with the nickname gwn.
In Switching to Arch Linux essay, I already mentioned my first impression of him as follows;
About a year ago, I was invited to a pair coding session at the startup where I was working. The developers were receiving consultancy from a strange person. At one point, he took control of the screen sharing while reviewing some of the pull requests that had been made to our codebase. When he shared his screen, there was nothing but a black screen. Suddenly, a terminal screen appeared with his keystrokes and he quickly began examining the codebase, providing feedback on people’s code at a speed I had never seen before. He was able to jump between different files in an instant, examining the diffs that were made in different git commits.
After seeing what I saw, I thought to myself, ‘If I were able to develop and refactor code at that speed, I would save a lot of time, I could have spent more time thinking about the actual stuff with as little friction as possible. I want to have this power.’ So I have looked at his CV and realized that he was knowledgeable on topics that many developers, including myself, struggle with. Influenced by this, I started asking him (he was our consultant, after all) as many questions as I could and focused on the resources he suggested and the technologies he used.
I began frequently asking him questions about software development. Sometimes, questions that are not even related to the job we were doing. For example, his opinions on different approaches to software development or some Linux stuff.
He was usually more than willing to answer my questions. We got along well, and at some point, we even started working together on several projects. This has continued for quite some time.
I actually learned a lot from working very close to him. I did not learn anything knowledge-wise that I would not have been able to learn on my own. But, I must say that I learned a lot in terms of developer habits, approach, and procedural knowledge.
I think I was lucky enough to have both yuempek and gwn as mentors at some point in my life.
To Conclude
So, that was the story of how I first got into software development and the events that shaped me so far up until this point (2023-09-22). I look forward to what comes next. Thanks for reading. I hope this becomes helpful if you’re on a similar path.
Some of the bots we built during that time included an IDO sniping bot for buying coins as soon as they were introduced to the market, a market-making bot for DeversiFi to benefit from an airdrop program, an automated reinvesting bot for the Yield Yak Auto Compounder, and a few other small automation bots. ↩︎
