Sign in

Jhonny Chamoun

Focusing on Node.js and Socket.io

In a previous article, I showcased how to build the interface in HTML and CSS for the game battleship. Then the focus was to build the logic and make the game happen.

I implemented my game with one player in mind and the computer for an opponent.

In this article, I would explain how to use Node and Socket.io in order to transform the game into a multiplayer, where two distant players can play against each other.

If you haven’t read my previous article, or if you need to refresh on the game rules, here is a link for you.

Definitions

Node.js


a guide into data structures and the most known related algorithms

In this article, I will explain two important data structures, and I will be writing about more popular data structures in upcoming articles.
For the first time, we are talking about data structures that need to be implemented using the simpler data structures we already covered. If you need more information about those you can always refer back to the previous articles.

Remember, these articles assume our readers are familiar with the concept of data structures and why they are used in software development, and it will dive into the definition, the different types, implementations, and complexity of each data…


a guide into data structures and the most known related algorithms

In this article, I am explaining my second data structure, and I will be writing about more popular data structures in upcoming articles.
These articles assume our readers are familiar with the concept of data structures and why they are used in software development, and it will dive into the definition, the different types, implementations, and complexity of each data structure we are studying.

Definition

A Linked List is a sequential list of nodes (Objects) containing data and pointing to another (usually the next) node that also contains data. …


a guide into data structures and the most known related algorithms

In this article, I am explaining one of the most basic data structures, and I will be writing about other popular data structures in upcoming articles.
These articles assume our readers are familiar with the concept of data structures and why they are used in software development, and it will dive into the definition, the different types, implementations, and complexity of each data structure we are studying.


What is it? when is it needed? any best practices?

Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

Martin Fowler

Usually, when writing code, developers deal with deadlines, delivery stress, and very specific feature descriptions. The main concern for a developer should be to deliver the needed feature on time and with the least possible bugs.
Revisiting the source code, after building those features, a developer would notice some redundancy, some code written in the wrong place (not following the design pattern).

So What is Refactoring?


A ship illustration in the shape of a paper ship in the middle of the ocean.
A ship illustration in the shape of a paper ship in the middle of the ocean.
A strong battleship of paper.

Two steps tutorial, learning Node.js, and how to use sockets.

In my continuous learning journey, I set a goal to learn Node.js and specifically how to use sockets, and because I wanted to build something more than just a chatting app, I decided to build one of my favorite games “Battleship”.

I will use this article to explain the thought process I went through to build the game and an attached recording will show you a demo of my solution.

Above is a link to the Wikipedia article, explaining the strategy game, rules, and the setup for you who aren't familiar with the game.

First things first… Where to start?

Because this is about learning, I…


What is it and why do we do it?

Categories and Types of Testing in the Software engineering world.

As in any different product delivering business, testing in software engineering is an essential step to make sure our product is on track along the way of developing it.

Although one could think that testing the final product should be enough, testing software is more similar to testing cars. when your final product consists of many different elements and components working together as one body, testing can be prioritized by stage of development:

1. Making sure every element works fine on its own which means testing the outcome of every element on its own. 2. Putting the different elements together…


Since I was a kid, I dreamt of becoming a Physician, I wanted to help people feel better, and help them get better.
Growing up, that plan didn’t pay off. instead, I studied Software Engineering and I built solid technical expertise, across many different coding stacks…
Yet I still have a constant feeling driving me into healthcare, and I do believe that the best way we can use technology for the good of humanity is by creating healthcare solutions.

Journey

In August 2020, I enrolled in a Software Engineering Bootcamp with Flatiron School, wanting to hone my skills, brush up on…


As a software engineer preparing for entering the job market and/or building his portfolio, one of the most crucial tasks is to come up with ideas to execute and turn into solutions.

If you surf the internet you will find a lot of blogs that have lists of ideas and the top 5, 10, 20, 50 portfolio project ideas for you to build…

But from blog to blog, those ideas become repetitive, how many different calculator apps or todo list apps do we need? or how many new social media platform should we build? …


All of you by now are familiar with JSON, the text-based format we are using to store and transfer data through the internet. JSON was standardized in 2013, four years after I landed my first job as a full-stack developer.

What did we use before JSON!?

XML is a markup language, similar to HTML its purpose is to define a set of rules about the data it holds, give meaning.

The design goals of XML emphasize simplicity, generality, and usability across the Internet. It is a textual data format with strong support via Unicode for different human languages. …

Jhonny Chamoun

Software Engineer, Problem solving oriented and new technologies enthusiast.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store