Mohamad Kenas

Mohamad Kenas

Oslo

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
  • Looking for work

    Yes

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