<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: cz writes</title>
    <description>The latest articles on Forem by cz writes (@cz_writes).</description>
    <link>https://forem.com/cz_writes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3335159%2Fc729e970-d7c1-4256-b896-169130256698.jpg</url>
      <title>Forem: cz writes</title>
      <link>https://forem.com/cz_writes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cz_writes"/>
    <language>en</language>
    <item>
      <title>6 months CSE - The System Suite</title>
      <dc:creator>cz writes</dc:creator>
      <pubDate>Sun, 26 Oct 2025 18:14:15 +0000</pubDate>
      <link>https://forem.com/cz_writes/6-months-cse-the-system-suite-3l23</link>
      <guid>https://forem.com/cz_writes/6-months-cse-the-system-suite-3l23</guid>
      <description>&lt;p&gt;Hey, as mentioned in the previous post, we are gunning at project-based CSE learning.  &lt;/p&gt;

&lt;p&gt;The list of projects here are curated with the intention of depth in breadth. The breadth aspect is the number of fields covered and depth is the time frame and feature implementation in each project. Each aims to be challenging enough to bring forth the entirety of my focus and effort to complete within the given time frame.   &lt;/p&gt;

&lt;p&gt;With that, here is the set of projects to create in the next 6 months — &lt;strong&gt;The System Suite&lt;/strong&gt;, as GPT named it:   &lt;/p&gt;

&lt;p&gt;&lt;em&gt;(the following text was generated from GPT)&lt;/em&gt;  &lt;/p&gt;




&lt;h3&gt;
  
  
  1. Compiler – Tiny BASIC → C++
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Build a working compiler that translates a subset of Tiny BASIC into valid C++ source.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus Areas:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lexical Analysis → Tokenizer
&lt;/li&gt;
&lt;li&gt;Parsing → Recursive descent parser / Pratt parser
&lt;/li&gt;
&lt;li&gt;AST (Abstract Syntax Tree) representation
&lt;/li&gt;
&lt;li&gt;Semantic checks, symbol tables
&lt;/li&gt;
&lt;li&gt;Code generation → Emit equivalent C++
&lt;/li&gt;
&lt;li&gt;(Optional) Simple optimizer or interpreter
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Skills Gained:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Language theory, grammars, parsing, syntax trees, memory models, code generation.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline:&lt;/strong&gt; 3 weeks&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Deliverable:&lt;/strong&gt; Command-line compiler that takes &lt;code&gt;.tiny&lt;/code&gt; → outputs &lt;code&gt;.cpp&lt;/code&gt; runnable with &lt;code&gt;g++&lt;/code&gt;.  &lt;/p&gt;




&lt;h3&gt;
  
  
  2. Chip-8 Emulator / Game Interpreter
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Simulate the Chip-8 virtual machine and run real Chip-8 games (like Space Invaders).  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus Areas:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory map &amp;amp; stack emulation
&lt;/li&gt;
&lt;li&gt;Instruction cycle → Fetch-Decode-Execute
&lt;/li&gt;
&lt;li&gt;Opcode table implementation
&lt;/li&gt;
&lt;li&gt;Display rendering (graphics buffer)
&lt;/li&gt;
&lt;li&gt;Input handling
&lt;/li&gt;
&lt;li&gt;Timing (60 Hz refresh &amp;amp; delay timers)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Skills Gained:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Low-level CPU logic, emulation, binary operations, memory management, timing control.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline:&lt;/strong&gt; 3 weeks&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Deliverable:&lt;/strong&gt; GUI or terminal-based emulator that runs &lt;code&gt;.ch8&lt;/code&gt; game ROMs.  &lt;/p&gt;




&lt;h3&gt;
  
  
  3. Mini Operating System
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Create a minimal bootable or simulated OS kernel with multitasking and a command shell.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus Areas:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bootloader basics (GRUB or BIOS)
&lt;/li&gt;
&lt;li&gt;Kernel initialization and loop
&lt;/li&gt;
&lt;li&gt;Interrupts &amp;amp; drivers (keyboard/timer)
&lt;/li&gt;
&lt;li&gt;Scheduler (round-robin / cooperative)
&lt;/li&gt;
&lt;li&gt;Memory management (heap/page allocator)
&lt;/li&gt;
&lt;li&gt;Shell or REPL for basic commands
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Skills Gained:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Systems programming, kernel design, concurrency, hardware–software interface.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline:&lt;/strong&gt; 4–5 weeks&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Deliverable:&lt;/strong&gt; Bootable ISO or QEMU image that runs your kernel and accepts commands.  &lt;/p&gt;




&lt;h3&gt;
  
  
  4. Distributed / Networked System – 4-Player Tic-Tac-Toe
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Real-time online multiplayer game site.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack Options:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MERN (MongoDB + Express + React + Node.js)
&lt;/li&gt;
&lt;li&gt;or Go + Postgres + WebSockets
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Focus Areas:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time communication via WebSockets
&lt;/li&gt;
&lt;li&gt;Backend API (matchmaking, sessions, leaderboard)
&lt;/li&gt;
&lt;li&gt;Game logic &amp;amp; state synchronization
&lt;/li&gt;
&lt;li&gt;Authentication &amp;amp; authorization
&lt;/li&gt;
&lt;li&gt;Deployment (Render / Railway / VPS)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Skills Gained:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Networking, concurrency, backend architecture, database design, real-time systems.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline:&lt;/strong&gt; 3 weeks&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Deliverable:&lt;/strong&gt; Fully playable online multiplayer site with persistent scores.  &lt;/p&gt;




&lt;h3&gt;
  
  
  5. Complex System – Video-Conferencing App (Zoom-Like)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Build a prototype for video/audio chat + text using WebRTC and a scalable backend.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Go backend or Node.js + WebRTC + React frontend  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus Areas:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;WebRTC peer-to-peer communication
&lt;/li&gt;
&lt;li&gt;STUN/TURN signaling servers
&lt;/li&gt;
&lt;li&gt;Real-time chat and media streams
&lt;/li&gt;
&lt;li&gt;Room management and authentication
&lt;/li&gt;
&lt;li&gt;Scaling via microservices or pub/sub
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Skills Gained:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Distributed systems, concurrency at scale, multimedia streaming, scalable backend architecture.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Timeline:&lt;/strong&gt; 4 weeks&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Deliverable:&lt;/strong&gt; Functional web app with room creation, video, audio, and chat features.  &lt;/p&gt;




&lt;p&gt;Ok, so there's the list, each of these were chosen with, at first the things I thought would be cool to make after hearing about them somewhere (it's wild for people outside the field how these could sound "cool" but as you delve deeper you begin to see and appreciate different things I guess) and second with the deep need to understand systems from the core. Some additional options like making a window manager, a blockchain, text editor etc. were strategically moved to a phase (maybe) after these 6 months due to the fact the currently chosen projects contribute more to the goal of understanding systems from the base up, than the ones avoided.  &lt;/p&gt;




&lt;h3&gt;
  
  
  Note on Timeframe:
&lt;/h3&gt;

&lt;p&gt;The timeframe chosen for each of these projects is and is not arbitrary. It's arbitrary in sense cause 6 months is an arbitrary goal-setting norm people chose but the 3 weeks for each project is a deliberate constraint cause it demands to make every day count. The 4th week is and is not a buffer in sense cause if in case you need a few more days to finish up you could have it. But ideally, it's for polishing up and finishing up any more posts that need to be made about the current project. If say you finish and wrap up one before the fourth week you could choose to spend the next 2 to 3 days slower and make any more polishing required or you could start reading up on the next project.   &lt;/p&gt;

&lt;p&gt;A gap of more than 3 days is something to be wary about and keep in mind no matter how much time you think you have it's a lesson to be learned that if you can do it today then it's always better to get it done today. (That's a note for me, everything is.)  &lt;/p&gt;




&lt;h3&gt;
  
  
  Old School Ways:
&lt;/h3&gt;

&lt;p&gt;The modern programmer uses 5 different GPT models to get his project done. Maybe this isn't true for you but it sure is true for a lot of upcoming graduates in the field. I can say this cause I see it in my peers.   &lt;/p&gt;

&lt;p&gt;I'm a romantic in that sense, the idea of a programmer building great software on his minimalistic IDE (Neovim) in his basement or in a coffee shop, that millions use is something that gets me all cozy and warm for some reason. AI and AI-integrated software, although useful, just feels clunky to me. The process of banging your head on the keyboard for the logic and coming up with a solution. The idea of being so skilled in your language that you can almost code out anything with it. The idea of having the ability to engineer and write great software on your own. These all are things I feel deeply about, so the use of AI for coding directly is entirely rejected for any of these projects. Referencing should be the only thing the AI does for you.   &lt;/p&gt;

&lt;p&gt;Maybe I'm clinging to a fantasy that's been far left behind. I don't think that I do think skill and hard skill matter and if that's not the case either way then also this is what feels right to me and this is how I'm gonna do it.&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>learning</category>
      <category>cpp</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>The Beginning : Hello World!</title>
      <dc:creator>cz writes</dc:creator>
      <pubDate>Sat, 25 Oct 2025 02:07:46 +0000</pubDate>
      <link>https://forem.com/cz_writes/the-beginning-hello-world-2knf</link>
      <guid>https://forem.com/cz_writes/the-beginning-hello-world-2knf</guid>
      <description>&lt;p&gt;_&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rawness, there is a certain peculiar beauty in it.&lt;br&gt;
_&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Today marks the beginning of my journey towards a destination of understanding the world of systems and computers. This journey that should have begun seriously a year ago when I joined my CS degree was pushed off. Put off , procrastinated upon and kept under the rug by a thousand different valid reasons like self doubt on if this is my path or "no time due to academics and assignments", addictions including social media and YouTube sucking up all my free time. All that could be summed up to a single phrase "numbed frustrated life of an average gen Z" and I think most of you get what I mean by that. You wake up to notifications from your phone , you don't know what to do on a given day or you don't want to do it, so you "allow" yourself to be pulled into the void of media. As the days passes, the voice inside you grows louder and the pain grows deeper and we find more and more amusing ways to numb the pain.&lt;/p&gt;

&lt;p&gt;What I'm aiming at, that is depth so deep that the world around you shifts, the excellence and understanding of a great craftsman, the graceful and powerful yielding of the sword by an experienced warrior,  this cannot be achieved with this lifestyle that the modern world lays-out.&lt;/p&gt;

&lt;p&gt;The deep unfulfillment between the laughs, lights and songs. The desperation to reach for something when we are alone with our thoughts.&lt;/p&gt;

&lt;p&gt;Ok! Enough about how the modern life sucks, lets talk about what we are planning to do.&lt;/p&gt;

&lt;p&gt;6 months dedicated to mastering CSE.&lt;/p&gt;

&lt;p&gt;That is the goal.Working in extremes these six months to get fundamental understanding and more.&lt;br&gt;
The learning is going to be Project Based. The idea is to build 5 core projects covering all important areas to a deep level.The goal by the end of this to have first principle understanding , to be able to break down mostly any large scale system and rebuilt it myself from scratch, have a good understanding of networking and such accessory aspects and code almost anything up myself from a compiler to blockchain.&lt;/p&gt;

&lt;p&gt;The projects will be clearly defined and have strict deadlines to adhere to. The deadlines work as guardrails for focus and work. &lt;/p&gt;

&lt;p&gt;The project updates and weekly reviews will be shared on X and here(bi-weekly or weekly).&lt;/p&gt;

&lt;p&gt;CSE is a vast field so the aim of these projects is to cover a large problem space with sufficient depth and build foundational understanding and also to reclaim the mastery of coding without an agent(AI).&lt;/p&gt;

&lt;p&gt;With that I end this post. This marks as a beginning to a lot more fun and cool stuff yet to come.&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>motivation</category>
      <category>devjournal</category>
      <category>mentalhealth</category>
    </item>
  </channel>
</rss>
