Mohamad Kenas

Mohamad Kenas

Oslo
Open to Work

17,896

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

Skills & Experience

  • Spoken Languages

    • Norwegian
    • English
    • Arabic

222 Achievements

  • Managing Images and Containers
  • Dockerize a Web App
  • Building Images Using Dockerfiles
  • Fundamentals of Docker
  • Docker Use Cases
  • Branches on Git Hosting Services
  • Remote Branches
  • Merging
  • Branches
  • GitHub and Other Remote Repositories
  • Managing Committed Files
  • First Commits
  • Diving into Web Development
  • Getting Started with iOS Development
  • Swift Operators
  • Swift Types
  • An Introduction to Swift Programming
  • Adding the Game Logic
  • Making the Game Interactive
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Traversing the DOM
  • Responding to User Interaction
  • JavaScript Objects
  • JavaScript Arrays
  • Express Middleware
  • Sessions and Cookies
  • User Registration and Login
  • What is Authentication?
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • What to Test
  • How To Test
  • Why Test
  • Writing Your Own Java Annotation
  • Using Java's Built-In Annotations
  • Review Functional Programming Fundamentals
  • Reduction and Aggregation
  • Meet Streams
  • Java's Functional Toolset
  • Completing and Testing the API
  • Communicating with Mongo Through Mongoose
  • Modeling Data for the API
  • Building API Routes in Express
  • JavaScript is Everywhere
  • JavaScript Tools and Workflows
  • JavaScript Variables
  • JavaScript Numbers
  • JavaScript Conditional Statements
  • JavaScript Functions
  • Introducing JavaScript
  • Introducing JavaScript
  • Finishing the Game
  • Generics in Java
  • Interfaces in Java
  • Java Lists
  • Java Maps
  • Advanced Tooling
  • IDE Exploration
  • How it Works
  • Organizing your Tests
  • Creating Your Tests
  • Tools for Testers
  • How To Test Our Code
  • Creation
  • Iteration
  • Gotchas and Wins
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Using your New Tools
  • Perfecting the Prototype
  • Getting Started with Java
  • Event Planning
  • Build a Pomodoro App
  • Design a Better App
  • Graphical User Interfaces
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Stateful Components and Lifecycle Methods
  • React Component Patterns
  • Managing State and Data Flow
  • Build Modular Interfaces with Components
  • JavaScript Loops
  • Using Templates with Express
  • Getting Started with Express
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Welcome to Gulp.js
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Meet Python
  • Go Further With Mongo
  • Working With Collections
  • Understanding MongoDB
  • Additional Scraping Tasks
  • A World Full of Spiders
  • Introducing Data Scraping
  • Getting Started with MongoDB
  • Getting There
  • Using the Discovery Service
  • Using the Conversation Service
  • Introducing the Watson APIs
  • Introducing Vue
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Introducing jQuery (2017)
  • Working with jQuery Collections (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Improving Our Tests
  • Next Steps
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Creating a Command Line Weather Application
  • Introduction to Node.js
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Defining Variables With let and const
  • Create Function Using Arrow Syntax
  • Introduction to Object-Oriented JavaScript
  • Integrating 3rd Party APIs
  • Implementing Redux
  • Implementing React Native
  • Going Further with Routing
  • Refining the App
  • Putting it all Together
  • Actions, Dispatch and Reducers. Oh my!
  • Modularizing the React Scoreboard Application
  • Getting Started with Redux
  • Building the Application
  • Setting up with Create React App
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • Exploring Best Practices
  • Test Drive
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • Browser Persistent Data with PHP
  • Parsing Specific Formats
  • Basic File Handling
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Meet Selenium
  • Practice forEach
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • Using Template Literals
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Building a REST Service
  • Getting the REST You Need
  • Navigating, Nesting and Redirecting Routes
  • Getting Started with React Router
  • Component Lifecycle
  • Designing Dataflow
  • Stateful Components
  • Thinking in Components
  • First Steps in React
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • Day 3: Getting Creative
  • Day 2: Advanced Selecting
  • Day 1: Joining Tables
  • Orientation: Selecting Data
  • Subqueries
  • Set Operations
  • Joining Table Data with SQL
  • Understanding Classes
  • Why Object-Oriented Programming?
  • Why React Native
  • PHP Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Table Relationships
  • Database Keys
  • Database Normalization
  • Date and Time Functions
  • Aggregate and Numeric Functions
  • Working with Text
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Ordering, Limiting and Paging Results
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Unit Converter
  • Getting to Know PHP
  • Introducing Grid Layout
  • Newbie