# Programing Background

## The start of my mediocre programming knowledge.&#x20;

I of course knew I had to learn **Python, JavaScript (Node.js), PHP, C#,** and **Java** even before starting with the course. So, here I'll share with you **what I have done in-terms of programming** up till now.&#x20;

\*Note: These videos mentioned here aren't the only thing I did, I also wrote scripts, minor functionalities, play around with each language and practice on vulnerabilities shown on [**Prior OSWE Course**](https://just-a-simple-guy.gitbook.io/oswe/pre-requisites-1/pre-requisites)**.**

### Starting out with JavaScript

Now where do we usually turn to when we wanna learn **something? paid courses**. Yes, but I can't afford that so.. **Second best choice -> YouTube!**&#x20;

Let me tell you this, the course I mentioned below is around (3-4 hours), but boy is it worth it. People usually tell you to learn python first but I personally **disagree**, Python's syntax are too abstract that when learning **classes** and **objects,** you might become lost.&#x20;

**Important note\* Learn how to use Ajax request with JavaScript!**

Also, to flame a little bit more on python, you **become so lost in the easy world of syntaxes** that it becomes harder to learn other **low level languages** such as C, or C++ to name a few. Begin it with JavaScript, I don't know its more fun as well. Alright enough yammering, **here's the video:**&#x20;

[**freeCodeCamp \[** Learn JavaScript - Full Course for Beginners **\]**](https://www.youtube.com/watch?v=PkZNo7MFNFg)

### Moving on to PHP

I wasn't ready to move on to Python yet, so I made myself sit through another **(4-5 hours) video** of PHP. **I love torturing myself**. :nerd:It took me over **2 weeks** to finish, due to me procrastinating and laying around doing nothing during quarantine. &#x20;

Alright, so how was the course? First, it teaches you **basic stuffs about syntaxes**  similar to literally any other programing languages **(you know, if statements, loops, arrays, etc.);** feel free to skip this, and just google w3schools if you get lost. But pay attention on the **objects, constructers and classes portion** -> spoiler alert: they will benefit you greatly during PHP deserialization. **here's the video** once again:&#x20;

[**freeCodeCamp \[** PHP Programming Language Tutorial - Full Course **\]**](https://www.youtube.com/watch?v=OK_JCtrrv-c)

### Node.js & Express.js

This one was pretty **rough**, which I didn't except it to be. The tough part was ( basically me trying to understand how the **damn CALLBACK function worked!** I swear to god, I still am not 100% sure how it's working up until this day, I've just learnt to live with it. :heart:&#x20;

> Node.js is a little different from what I have done so far, it's a **run-time environment** that executes JavaScript outside of web-browsers. Instead of using document-object-models, and bowser-object-models, Node.js allows you to interact with file-systems, handle HTTP requests, and many other sever-side functionalities.

I'll also leave a link down below to an Express JS course. It is not mandatory to understand Express JS, however, Express JS is a back end web application framework for Node.js; Throughout the materials of OSWE, I always see Express JS alongside node.js, which is the main reason I decided to learn. It makes it easier to build web applications and APIs.&#x20;

[**Programming with Mosh \[** Node.js Tutorial for Beginners: Learn Node in 1 Hour | Mosh **\]**](https://www.youtube.com/watch?v=TlB_eWDSMt4)

[**freeCodeCamp\[** Learn Node.js - Full Tutorial for Beginners **\]**](https://www.youtube.com/watch?v=RLtyhwFtXQA\&t=4513s) **-> a more in-depth version to refresh.**&#x20;

[**Traversy Media \[** Express JS Crash Course **\]** ](https://www.youtube.com/watch?v=L72fhGm1tfE)

### Next Up C\#

I'm in the middle of this currently, and its no other than another YouTube videos. I'll be learning about **C# and then moving on to Java,** as they are pretty similar (if I am not wrong). This one isn't only about C#, I'll also be learning about MVC framework, which will be useful **during source code reviews.**&#x20;

[**Programming with Mosh \[** C# Tutorial For Beginners - Learn C# Basics in 1 Hour **\]** ](https://www.youtube.com/watch?v=gfkTfcpWqAY\&t=2598s)

[**Programming with Mosh \[** Step-by-step ASP.NET MVC Tutorial for Beginners | Mosh **\]**](https://www.youtube.com/watch?v=E7Voso411Vs)&#x20;

### Java OOP

Java was very similar to C# in terms of its package, compilation, execution and frameworks. At least for building a webpage. In Java, I learnt about data types, and type castings; which basically allows you to control how much memory you want to take up for a certain variable, etc.&#x20;

Basically in java, you have to write more in order for it to do the same thing :) I would recommend you to learn file handlings, databases access and handling user supplied data with JAVA.&#x20;

**java.servlet.http.HttpServletRequest, java.sql.Connection.createStatement,**  **java.io.FileInputStream, java.io.FileOutputStream, java.io.FileReader, java.io.FileWriter.**&#x20;

The one area I would like you to focus on is java package management, as we will be required to understand what a certain package is doing. It may look scary at first but once you get the hang of it, you'll notice its not that much of a different to PHP. Check these URL out to learn java the way

[**Programming with Mosh \[** Java Tutorial for Beginners \[2020\] **\]** ](https://www.youtube.com/watch?v=eIrMbAQSU34\&t=4990s)

[**w3schools.com \[** Java Tutorial **\]**](https://www.w3schools.com/java/default.asp)

[**Michael Fudge \[** Learn to Program in Java (Playlist) **\]**](https://www.youtube.com/watch?v=M3oniJjRD7o\&list=PLyRiRUsTyUXhUXoOPEdMZWhGpGeSQFZgH\&index=21\&ab_channel=MichaelFudge)

## Helpful references you should definitely check out

{% embed url="<https://goalkicker.com/>" %}
