Why Working in a Startup is Better than Corporate

When it comes to choosing a company, choosing between a startup and a corporate would be the hardest decisions of your life, considering you’d basically asses the pay, benefits and the location. I know this may sound one-sided but I just had to write something that would clear off stereotypes. I’ve been through both sides of the coin and so far, working in a startup is the best work place I’ve been through.

If your a student or a person that just graduated from college, your parents would had probably told you that you should work for a corporate company, likely because they got used to the traditional lifecycle of the old era , wherein everyone has the mentality of “We must work for big companies in order to survive” (Probably you would have thought yourself working in a cubicle answering phone calls the whole day). Remember that your parents don’t dictate your career.

Apparently, the reason for that is people are too afraid to take risks when in fact, a lot of entrepreneurs are born nowadays and startups are widely spreading. Factors that include those decisions would be career talks, seminars, or job fairs form your universities. Since it’s going to be your first job (Full-time job to be clear), your not sure of what’s coming your way. Here are some reasons why should you choose a startup over a corporate company:

1.) Everything You Do is a Big Part of the Company’s Growth

Everything starts from humble beginnings. We all start from something small then eventually grows big. In corporate companies, you work in your workspace, doing the same thing all over again and feels like it doesn’t even help to the project. Kinda boring if you ask me. The status-quo of corporate companies are high, so high that the the objective is to maintain it’s growth spurt. In startups, even the slightest navbar on your website serves as a big contribution. Since it’s still on it’s growing period, you feel like everything you do counts. Whenever growth digits are mentioned during meetings, it feels great knowing that your monthly growth reaches around 110% and it’s fulfilling knowing that your part of the growth.

2.) Career Growth Outweighs the Cost

Having a good pay is better but having an awesome career growth can be priceless. Remember, not everything is settled through based on your salary and is not the sole reason why you’d join a company. In corporate companies, things you learn are limited on your job description. In startups, you learn to be a jack-of-all-trades.

The challenging part is that you get to experience dealing investors, stakeholders, and all other aspects the company even if your not specialized to do so. Those are some opportunities that you’d only experience from a startup. The best part is this makes you a well-rounded person. In corporate companies, before you could do all those, you need to have a high level position first so there’s a low-to-no chance you’d experience it in an early level.

Normally, startups don’t conduct job fairs so if ever you get recruited by a startup, consider yourself lucky because they are very wise in picking their candidates considering your in a small group plus, the fast-paced environment in order to advance. Then again, startups may not pay as good as corporate companies but it’s culture and environment are priceless.

3.) Everything is Processed a Lot Faster

During interview process and job offers, it takes weeks, or even months to get results. This also implies on certain documents like certificate of employment. Corporate companies usually follow a certain hierarchy of approval before you get what you want. It’s a risky domino-effect process wherein person A must sign the document before proceeding to person B and to person C, so on up to the highest upper-level management. If one does not approve, then all efforts are wasted.

In startups, everything is pretty much straightforward. You get results within a week (or even the day after your interview) and necessary documents (such as certificate of employment) can be even done within the day. Nothing fancy. No hierarchy of upper-level management. Just immediate results.

In addition, there’s no monkey business involved. In a corporate setting, your job description can vary from what your doing. consider this case:

Assuming you have a position of Software Engineer and stated in your job description that you should build the system following the SDLC (Software Development Life Cycle). Instead of building software, your real task was to support softwares wherein somebody issues you a ticket, solves the issue and get’s another ticket. The thing is, you’re not engineering anything. Your just supporting which was never part of building software and doesn’t follow the practice of SDLC. Before you can get out of that, it takes months, even years to transition a role/project. I’ve seen cases like these and it doesn’t sound transparent.

Then again in startups, they’re pretty much straightforward. What you do is stated clearly without hidden agenda and doing things to sustain the company (such as negotiating to clients and presenting reports) can be an added bonus! Transitioning is better too. Assuming you are a software engineer and you wanted to transition into a project manager, It’s easy as 1-2-3.

4.) You Have Flexible Work Hours

This is one of my favorite parts on working on a startup. In corporate companies, your pay is based on the number of hours you worked meaning, even if you have no task, in order to get paid you have to stay in the office. For me, this is totally a burnout scheme and makes it’s a waste of time especially if you have a mean boss who doesn’t want you to leave early.

It sucks more if you had a bond deal of X years. Not only you lost your free autonomy but you have no choice but to be in their palms for X years. In startups, your output is what counts regardless of how many hours you’ve worked. If you can finish everything in an hour (or even less), leaving early is an option plus the free autonomy on your career. If your enthusiastic to voluntarily take more tasks, why not?

5.) There is No Feeling of Intimidation From One Another

Your officemates are your best friends regardless of what level. They will be with you for the rest of your stay in the company. As much as we want to be comfortable on the workplace, we wouldn’t want to feel anxiety whenever you pass by a senior. In my experience, it’s unlikely your CEO telling you “Thanks and hope you can kick some ass doing your tasks”. The feeling is very exiting and it’s cool that formality is not an issue. You can even reply emails as straightforward as possible as if it was a normal chatbox but do remember to know and feel the situation. Though this doesn’t mean there’s no practice of professionalism. Formality is an adherence to etiquette but it’s not necessarily consistent to everything. Then again, cultures are very different. In corporate companies, you feel anxious whenever you see your boss so it doesn’t feel at ease knowing that a single mistake can cost your job.

Usually, addressing them should always be in formal matter. Making mistakes is taken heavily wherein everyone gets mad at you and the only thing left is your boss screaming at you and says “YOUR FIRED!”. Whenever going to work on big companies, you’d rather think your excuses why did you made mistakes rather than being happy and getting exited to work. This results to an option not to fail. Yes, it’s bad to fail but failure is always part of success. How can you learn if you didn’t experienced failing?(Though I’m not saying that you should) Remember that experience is the greatest way to learn so take it as a learning curve to further improve.

6.) No Fancy Dresscodes

No long sleeves. No Blazers. No slacks. Civilian attire is always welcome.

7.) You get Recognized on Everything You Do

As a result, promotion is faster. In a corporate setting, it usually takes years to get promoted. In case you had a good invention, it’s not appointed to your name but rather it’s claimed by the company. Your idea’s and effort not getting recognized just doesn’t feel right. In line with my first bullet, the slightest thing you do can be tomorrow’s next big thing. Let your idea get recognized in the world with you as the creator. It feels fulfilling whenever you get appraised by your boss. This makes you motivated and drives you to excel your work.

8.) Success

It’s really inspiring whenever you see your company grow. From the point of work, you learn the things on how to be an entrepreneur. These are things only a startup can give and starting from a small group is the greatest experience you’ll ever have.

Have any ideas? Want to share some more facts? Just let me know on the comments section.

15 Realistic College Realizations

*Re-posted from my Facebook account

It’s just been 2 months since I’ve graduated and I thought of writing down a list of my college realizations. Time flew so fast and with just a blink of an eye, studying from school has became a throwback. All those blood, sweat, and tears are finally over… or is it? Was that only a taste of the real world? Is it just the beginning? Regardless, we all have our own lives to dictate our own meaning what we call “hard work”. To further expand, I’ve broken down the topic to 2 lists, namely personal and course-related stuff. Without further adieu, let’s start off with personal realizations:

Take Note: This is a long post. When you read, please don’t generalize or make sudden conclusions.

Disclaimer: This may vary on how people really think, the situation and the environment so don’t be a stereotype.

1.) The misleading idea of your course can ruin your dream

In Layman’s terms, your learning expectations might not become a reality. For example, if your planning to take up I.T. , you might expect that you will learn a lot on hacking, making your own cool games, how to build your own P.C. and all those creative ideas we’d see ourselves in the future. But in reality, you don’t. The real deal is you learn what a computer is, how to open applications, how to click on this and that and all the basics. Kinda cheesed off if you ask me but it’s the sad truth. I’m not exaggerating on that part but if you really want to learn all those things, you have to go out of your comfort zone and start building up your future. I guess it just varies on what the school has to offer but nevertheless, everything depends on how you do it.

2.) Get used to being back-stabbed even if your the most low-profiled person.

It’s really inevitable to talk about someone when your in a casual friendly gathering especially if your in a drinking session or an overnight stay. Sometimes, we tend to say negative stuffs on people even if you don’t bring up the topic. No matter what your reputation is, you still get judged. Gossiping never stops and just keeps forming misleading ideas about you. So don’t be surprised when someone gets mad at you for no apparent reason.

3.) The real challenge is not getting the diploma but getting employed.

You may have gotten a college degree but, have you ever thought on what to do after you graduate? Have you ever asked why did you even took up college? Is it because to learn? To have a degree? Friends? Well, the thing here is that if you recall Google’s way of how they evaluate applicants, they don’t care about college degree’s which for me is one of the the fairest ways to decide competency. Having a degree doesn’t exactly define your professionalism. The biggest mischief is that people work hard for grades which is the wrong mentality. They should work for the urge to learn because grades were never a basis to your true skill and their just numbers lying around in the surface. Latin honors? Dean’s lister? Were those your goals? Please, since when did the world go round with that? If you look at the bigger picture, there is something better than receiving academic awards in which, students never really thought of. (E.g. Best Debater, Programming champion, etc. There are various awards on certain fields so too its many to mention but you get the point). Technically, having a degree is just an advantage but doesn’t guarantee you a job. Don’t let your long-term achievement go to waste.

4.) College doesn’t teach you on how to do stuff but how to solve problems.

This is actually the entire point of college. In the real world, you can only apply around 30% of your college learnings and the rest is up to you. Most of the things you’ll apply to the real world other than your skillsets are your behavioral patterns (E.g. Stress Management, Decision making, etc). If you’ve been into a dilemma of having two major activities in the same time, you tend to think how you’d ace the job. If you think college is just about teach and go, your in the wrong direction. It’s how you make the right decisions and getting past those problems. I’m sure you’ve already experienced researching on a particular topic but it seems it doesn’t exist on the internet. Try to recall, how were you able to resolve that moment?

5.) You don’t need to be in a relationship in order to grasp happiness.

“Chick Hunting” is natural. Sometimes you get beyond hunting and move on to the next level by hitting on the person. If you try to tolerate that, you tend to be desperate into love and have forgotten yourself. Remember, love is too powerful, so powerful that even knowledge can’t out-power it so make sure you know how to deal with it. Don’t get blinded. There’s a time and place for everything. Enjoy and focus.

6.) Procrastination is inevitable, suffering is optional

Doing your 100 page project can be hair-plucking but submitting it on time can be really rewarding especially getting a high grade. If you don’t, well at least you tried. During your first days of college, you may brag about how much time you go out but eventually, you now brag how many hours of sleep you get.

7.) The greatest way to excel is to go out of the box

Remember, not everything is taught in college, not even half of it. College will not spoon feed you and essentially just gives you a network of friends but the thing is, how will you take advantage of it. There are a lot of opportunities out there. Don’t just rely on orgs or seminars. It would be better if you would work for an industry which can actually give you a preparation after you graduate.

8.) Seminars can be misleading to your credentials

-BUT not entirely. Here’s the thing. They don’t identify skills. The frank reason why students attend it is to add it for their resume. Do you think sitting down, listening to a speaker for an hour or two can instantaneously mold you to become an expert? Remember, having a single-paged resume of your interns and projects are pleasant to the eye than attending dozens of seminars. Frankly, recruiters might not even credit it as a basis.

9.) Most academically-striving students don’t really value what they learn.

Reiterating the word “MOST“. We all know some people who loves to memorize stuffs for the sake of acing the exam. Right after, what happened? POOF! It suddenly disappeared right out of nowhere. Suddenly amnesia just flashed right in. It’s a common misconception to memorize because it’s a sign you don’t value what you learn. Familiarizing and learning by heart is the best way of learning.
Here’s a common scenario:

A lot of graduates have been posting after their graduation that they’re officially unemployed. (Not sure if what they mean is a figure of speech, but I guess not) If you really did valued your economics subject, you wouldn’t have posted that because before you are considered unemployed, it takes apparently 15 days after graduation before your considered one (At least here in our country that is). A proof that there was no value on that part (Considering the topic is important and relevant).

10.) It’s not about getting high grades. it’s about passing the semester

-Yup, YOLO mode indeed. In the end, grades were never a basis to employment. Just do what you enjoy and don’t pressure yourself too much.

11.) Student Election conclusions = Hot Chicks

Reiterating disclaimer: This may vary on how people really think, the situation and the environment so don’t be a stereotype.

In a large audience, the stereotype is that if people don’t listen to campaigns and the person is a hot chick, he/she is already a winner without considering credentials. It’s actually more of a beauty contest, defeating the purpose of the REAL election. Actually, I can show some proof but I believe you would have already seen this scenario. From all the student elections I’ve been through, I never experienced someone who got the title who was very competitive and compassionate to serve the people. To keep it simple, ITS ALL ABOUT AESTHETICS. If you like, you can try doing an experiment against one and see who the winner is. If the person wasn’t credible enough for the position, the whole campaigning scheme was just a bluff. What happened to “Vote Wisely”? It’s not that I’m mad on beautiful people running in for the position, it’s just that people don’t know how to look on the 2 sides of the coin.

12.) Student organization application interviews can be sometimes worthless.

Reiterating disclaimer: (Same as above).

The real purpose is actually to learn so why even bother to interview and have a pass or fail mark? Sure, a chit-chat would do but it just so happens formality was the issue. This is kinda given to high positions. Yep, because it’s a big role but how about staff/associate positions? (Which is really what I’m pointing out) It’s just a cog in the machine so it should never be a big deal. If your trying to maintain the quality of your org, ask yourself. Who’s the reason why your org is still alive? Members right? The more you have the better support you get.

13.) College teaches you how to value teamwork

-This is an addition to number 4. Long story short, every student needs to “cheat” in order to survive because at the end of the day, you will be remembered by your heroism, not your scores.

14.) Having achievements can blind your personality, getting your feet off the ground

As we go around, we are slowly becoming professionals and part of it is having the urge to achieve regardless of what it is (Passing your thesis, easily getting 100% in quizzes, etc). It really depends on how you manage and control yourself. The thing that tolerates your ego is the feeling of fulfillment from your hard work and being appraised by “master/sensei/Godly/etc” can be a game changer to your personality. Control is the only thing that can help you so always keep your feet on the ground.

15.) When you graduate, you’ll miss the feeling of pressure.

-Don’t start working ASAP as much as possible. Relax and enjoy your vacation because working is lifetime.

———————–

The following are realizations based on our curricula so this is not much of a personal realization but rather based from my realizations on what my school has given.

Now that I’ve listed them, let’s proceed to course life realizations. If your not from an I.T. related field, that’s ok. Just try to go with the flow.

1.) Were stuck in the era of machine programs

-If statements, for loops, switch cases, yeah I’ve been with them in creating programs but the thing is, we don’t move on to logic-mind-blowing-machine-programs. It’s basically the same thing until 4th year and it sucks that nothing is new. School’s should teach students how to create applications, not to stuck this same thing until graduation.

2.) Having Windows XP can be the primary reason why we don’t have Visual Studio, or any IDE that has compatible issues.

-Also the reason why we can’t have a cool course line up. During my office work, we chatted about our college life and most of my office-mates talked about their life on Visual Studio. When they asked “How was your Visual Studio in school? Did they taught you this and that?”, It was the moment of silence. I seriously had no comment and I don’t know if I have to blame the school. Because of that, this has something to do with #7.

3.) Always bring a USB/Hard Drive

-Printing, file transferring and backup is always an issue. Your USB is your best friend.

4.) Memorizing codes will never do you anything

-It’s not like history were in you memorize dates. You need thinking skills. The logic of the requirements always differs from one another so your memorizing is entirely useless. You code by heart. The common misconception is students keep on memorizing codes by they don’t realize that every problem differs from one another so the more they keep on doing so will likely get them less appreciated to the subject.

5.) Never forget about delimiters on your program.

– “;” , “,” and “.” are your best friends. Learn to use them well.

6.) Parent stereotypes wherein they think of you as playing on the computer when the real deal was doing your programs.

-Yup, you know that irritating moment. If you show the code, it becomes a lot complicating. In the end your still the loser.

I guess that concludes everything. I hope we had the same encounters. I might add up some ideas one so I’ll just leave a comment if that happens

P.S. – Everything is based on how I realized things. Nothing personal. No strings attached. Always take note of my disclaimer message to avoid misleading.

“College is the best time of your life. When else are your parents going to spend several thousand dollars a year just for you to go to a strange town and get drunk every night?” – David Wood

PHP Tutorials for Beginners – Creating your first PHP program FROM SCRATCH: Basic Authentication, Membership and CRUD functionalities

Interested in creating your own website? Ever wondered how cool is it to have a website that has a log-in/log-out functionality? Want to learn how to Create, Read, Update or Delete(CRUD) records in a database? Have you lost track on your previous tutorials? Well, I’m going to teach you how to create one from scratch where in you will know every single details on how the code works. If you are new to back-end web development, this tutorial is for you. I’ll explain everything in detail so that you won’t have to research some particular methods being used. We won’t be using any frameworks to keep things simple. Also I won’t be focusing on the websites design since were after the functionalities though it’s easy to implement the design. What will be doing is a simple item list when the users is logged in.

Pre-requisites

In this tutorial, we will be using some languages that will enhance our development. If you really don’t know any of the things I will mention, it’s ok. Just try to go with the flow. It’s just easy to comprehend them since I’m not into using advanced methods for this one. Off course since this is creating a back-end service for a website, you must at know least the very very very basics of the following:

  1. HTML/CSS – Off course this will never get off the list when it comes to web development. Why did I even bother place this? LOL.
  2. JavaScript – For a redirecting script. No jQuery needed for now
  3. mySQL – the most basic language for querying. We will be using this for our CRUD(Create, Read, Update, Delete) functionalities.

For the software, you will be needing the following:

  1. Text EditorSublime Text/Notepad++ will do.  This will serve as our coding environment.
  2. XAMPP – This will be our web server. This is were we will be saving our website files and save our data to the database.
  3. Web Browser – You can use any browser for as long as it doesn’t eat much of your RAM.
Make sure to have those 3 installed. Do not proceed if your not done installing them. I already provided a hyperlink to make things faster.

For our agenda in this topic:

  1. Utilize CRUD statements in SQL – Create, read, update and delete records in a database.
  2. Simple authentication and security – Logging in and out, handling unauthorized users and restricting access.
  3. Simple time and date manipulation – Displaying time and date postings and monitoring your posts.
  4. Displaying public and private data – Simply display information for logged-in users only and for the public
  5. De-briefing and Summary – Final output and some notes. FAQ’s are also place here.

 Topic Contents:

Note: In case you stopped on a certain part or want to search quickly , you can simply resume by pressing ctrl + f and look for the number where you last stopped

  1. Setting up your server

  2. Creating the public HTML Pages

  3. Creating the database and it’s tables

  4. Adding users to the database

  5. User log-in: Authentication

  6. Setting up the home page for Logged-in users and Logging-out

  7. Testing Page Security

  8. Adding data to the list – User Access Only

  9. Displaying data in the home page

  10. Editing Data

  11. Deleting data

  12. Displaying public data

  13. De-briefing and Summary

 

Make sure you follow chronologically. Don’t proceed without accomplishing the previous part not unless you know the code.

 

Some reminders before we start:

Note: If the picture seems unclear/blurry, you can click it to view it on it’s larger size. Also, pardon me for using images to display the codes rather than showing you a raw text because it can’t format properly on my WordPress subscription but don’t worry, I’ll be uploading the finished product on the end of this tutorial to double-check your work.

 

———-Real Tutorials Begin Here———-

1.) Setting up your server

Now that your all set and go, as the basics of programming goes, let’s start by creating a simple shoutout of “hello world” in our server.

First of, go to the directory where you installed your XAMPP (Commonly in C:\xampp). From there go to the htdocs folder (Commonly in C:\xampp\htdocs) and create a folder named “MyFirstWebsite“.

1 - PHP101

From that part, you have now created a Local URL for your website. That folder will be used to supply in all website files (.html, .php, .css, .js, etc.). Open up your text editor and let’s get started!

I use sublime text as my text editor. If your using Notepad++ or any others, it’s ok. It’s not really a big factor but it’s just a preference on which one would you like to use.

What we will do is a basic HTML page and display “hello world” from the server using a basic PHP syntax. We then type the following syntax:

Hello World

Save the file to the “MyFirstWebSite” Folder and name it as “index.php“. (Directory as seen on the top part of the image)

Now that you have the file. Let’s now open your XAMPP control panel. In case it doesn’t appear on your desktop, it is located in your XAMPP folder as seen on the image:

Untitled

Untitled

Now that it’s there, Run your Apache and mySQL by clicking the “Start” button on the actions column. You should see a random PID(s) and the default port number. Apache is the name of our web server wherein it will handle all the files as well as serve as the communication to the web browser and MySQL is our database which will store all of our information.

Open up your web browser and in the address bar, type localhost. You should see the menu of your XAMPP.

If it’s the first time you run it, it will ask what language would you prefer, just simply pick and it will lead you to the menu. If you will noticed the directory is localhost/xampp, it’s where the default page leads you even if you type in localhost.

Untitled

 

If that appears, then it means that your XAMPP server is now running. Now let’s try running the website you just placed. Try typing localhost/MyFirstWebsite. It should be the same as the picture below.

 

Untitled

 

If you will notice that the URL is MyFirstWebsite, it is derived from the htdocs folder and it automatically reads files that are named “index”(Be it index.html, index.aspx, etc), which serve as the default page. Typing localhost/MyfirstWebsite/index.php is just the same. You can also create your custom name for the URL by simply renaming the folder but let’s just stick to MyFirstWebsite.

Note: If you don’t have a file named index and you entered the URL, you will receive an error 404 for not having the file on the server. If you do have different files that are not named index.<extention>, you have to specify the specific file name. E.x: localhost/MyfirstWebsite/page.php

 

2.) Creating the public HTML Pages

Next, let’s re-modify our website and add a registration link where our users can register as well as a Log-in page right after getting registered. Let’s modify our home page with the following code:

index.php

Untitled

 

As you can see, we only added 2 links which are for the Login and register. Let’s create the registration page first:

 

register.php

Untitled

 

As you can see, it’s just a basic form where the user can input his/her credentials. Now for the login page:

Hint: Just copy-paste the same code to make things faster.

login.php

Untitled

 

Basically it’s just the same code as from the register.php but the changes made were the ones underlined.

 

Try running localhost/MyFirstWebsite again and your pages should look like this:

index.php

Untitled

login.php

Untitled

register.php

Untitled

 

3.) Creating the database and it’s tables

Now that we have our basic page for the public. Let’s proceed to the database. First, type localhost/phpmyadmin. This will lead you to the phpmyadmin homepage:

localhost/phpmyadmin

Untitled

 

From there, go to the Databases tab located on top then from the text box in the middle, type first_db then click on create. Just leave the Collation as is.

Untitled

 

You have just successfully created your first database. Now from there, let’s create a table wherein we can register our users and display information. First, click on first_db located on the left side and create a table named users with 3 columns then click on Go.

 

Untitled

 

For the table’s structure, make sure to have the following fields then click on save:

  • Format: Column Name – Type – Length – Null Property – Other Properties
  • id – INT – N/A – Not Null – Auto Increment
  • username – varchar – 50 – Not null
  • password – varchar – 50 – Not null

Leave everything by default if not specified.

Untitled

Note: You need to scroll right for the auto_increment. I just edited the picture to fit the A_I field

 

Next, create another table named list with 7 columns and for the table’s structure:

  • id – INT – N/A – Not Null – Auto Increment
  • details – text – Not null
  • date_posted – varchar – 30 – Not null
  • time_posted – Time – Not null
  • date_edited – varchar – 30 – Not null
  • time_edited – Time – Not null
  • public -varchar – 5 – Not null

Untitled

 

 

4.)Adding users to the database

Now that we have our tables. Let’s move on to the fun part, getting your registration page into action. From your registration.php, add the following below the html codes:

register.php

Untitled

Here’s the explanation to the code:

  • $_SERVER[“REQUEST_METHOD”] == “POST” – checks if the form has received a POST method when the submit button has been clicked. The POST method is created in the html from the method=”POST”.  Click here for the form method reference.
  • $_POST[”] – gets the name coming from a POST method. This just simply gets the input based on the name from the form. In our case it’s username and password.
  • mysql_real_escape_string() – encapsulates the input into a string to prevent inputs from SQL Injections. This ensures that your strings don’t escape from unnecessary characters. Click here to learn more about SQL Injections.

Now try to go to your register.php and try to input anything then click on “Register”. In my case I placed in the username xtian and password as 123456. It should display the inputs below. Here’s my sample:

 

Untitled

 

On this part, you should have understood on how to get input from the form. Now to add it to the database. On your register.php, add the following code:

register.php

Untitled

Here are the explanations to the code:

  •  mysql_connect(“Server name”,”Server Username”,”Server Password”) – The syntax used to connect to our XAMPP server. localhost or 127.0.0.1 is the name of the server. The default username is root and no password for default.
  • mysql_select_db(“database name”) – Selects the database to be used.
  • or die(‘Message’) – Displays the error message if the condition wasn’t met.
  • mysql_query(‘sql query’) – does the SQL queries. Click here for some SQL query samples. The again, i’m not here to discuss about mySQL.
  • mysql_fetch_array(‘query’) – fetches all queries in the table to display or manipulate data. It is placed in a while loop so that it would query all rows. Take note that only 1 row is queried per loop that’s why a while loop is necessary.
  • $row[‘row name’] – the value of the column in the current query. It is represented as an array. In our case $row is the name of the variable for our row in the loop.

Try the inputs that you have made earlier and see what happens. It should prompt that you have successfully registered. Try going to phpmyadmin and see your users table:

Untitled

 

Congratulations! Now you know how to add data into the database with data validations.

 

5.)User log-in: Authentication

Now for the login page. Let’s create a new file called checklogin.php. The reason is going back to our login.php, our form has an action called “checklogin.php”, particularly <form action = “checklogin.php” method= “POST”>. If you will notice on the register.php, it’s also on register.php because the back-end is done on the same file as well.

Let’s now code the checklogin.php with the following syntax:

checklogin.php

Untitled

 

Here’s the explanation of the code (Some are explained earlier so there’s no need to reiterate):

  • session_start() – Starts the session. This is usually done on authenticated pages. The reason why we used this is because this is required for the $_SESSION[”].
  • mysql_num_rows() – This returns an integer. This counts all the rows depending on the query.
  • $_SESSION[‘name’] – Serves as the session name for the entire session. This is relatively similar to public variables in object-oriented programming. We will be using this for validating whether the user is authenticated or not.

Now try to test your input with a wrong username and password. It should return the desired prompt. After testing, try inputting the correct values. It should lead you to home.php.

Note: home.php does not exist yet so it will produce an error 404.

 

6.)Setting up the home page for Logged-in users and Logging-out

Now that were authenticated, let now create our home page (home.php) with this following syntax:

home.php

Untitled

 

Here’s the explanation to the code:

  • session_start() – Basically starts the session. Required for $_SESSION[”].
  • header() – redirects the user.

Try refreshing your browser and it should look like this:

Untitled

 

Now that we have our home, let’s try creating our logout.php and test if the user’s session is off. What we would do is that if the user is logged-out, the user shouldn’t access home.php. So here’s the simple syntax to logout.php:

logout.php

Untitled

The syntax is simple. session_destroy() simply remove’s all session’s meaning, the value of $_SESSION[”] will be removed and header() will simply redirect it to the home page.

 

7.)Testing Page Security

Now try refreshing home.php and click on logout. Now try Clicking on the back button of your browser and see what happens:

 

Untitled

 

As you can see, it doesn’t direct you to home.php because you are logged-out. Now for the second test, try manually inputting the address localhost/MyFirstWebsite/home.php. The same case should also happen. Since were logged-out, even a manual input of the address doesn’t access an authorized page. What we have done is a simple security mechanism wherein we redirect back unauthorized users into a public page.

Now try logging in again and let’s go back to home.php.

 

8.) Adding data to the list – User Access Only

In our next step, let’s create the adding of item’s to the list. As you will notice from the form, it is written as <form action=”add.php” method=”POST”>, meaning our http post request goes to add.php and with that, we create our add.php with the following syntax:

add.php

Untitled

Take note that this ain’t our official add.php syntax yet, I’m just going to demonstrate the time and date syntax and getting your input.

Now go back to your home.php and try to add an item then click on “Add to list”.

Untitled

This should be the following output on add.php:

Untitled

As you can see, we have our current time, date, and your input. Here’s the explanation to the code:

  • strftime() – get’s the time based on what format your placed.
  • %X – current system time.
  • %B – current system month.
  • %d – current system day.
  • %Y – current system year.

Now let’s modify our add.php and add the following data into the database together with the data from the checkbox:

 add.php

Untitled

 

Here’s a little explanation:

  • foreach() – gets the value of the checkbox. As you will notice, the checkbox format in the form is name=”checkbox[]”. To get data from checkbox, it has to be instantiated as an array. Doing so would make it possible to get data from multiple checkboxes.

Now try entering some data and click “Add to list”. In my case, I’ll just use fish again. Let’s go to our phpmyadmin and let’s see if the data has been added. Here’s the result of my case:

localhost/phpmyadmin

Untitled

 

 

9.)Displaying data in the home page

Now that we have seen that the data has been successfully added. Let’s now display the data in our home page. Let’s modify our home.php and let’s add some columns for the date:

home.php

Untitled

 

The explanation to the added code is quite simple. It just basically displays the data coming from the while loop. It has been explained earlier in our tutorial so I believe that by this point, you should have understood the process of getting the data in the query. Going back to the browser, try refreshing your home.php and see what happens:

Untitled

 

It should now display that data. From our CRUD checklist, we have now accomplished Create and Read. Next is to update(edit) and delete information. If you will notice we have edit and delete links displayed on the column. I’ll add another data to the list named “tuna” to have another example and this time, it’s privacy to no:

Untitled

 

 

10.) Editing Data

Let’s now try editing our data and to do that we will use a new functionality called “GET“. With our previous methods, we have been using POST as our http request but this time, let’s use GET for editing and deleting records. To start of, let’s modify our home.php and add a little code to 2 columns:

home.php

Untitled

 

If you have noticed, we only added URL parameter for the edit and delete links namely id. We will be using this later to handle thee data. The reason why we use id is because it’s a unique identifier. It is possible for the person to have enter the same data so it’s not recommended to use the details as a mean for manipulation later on.

 

Try putting your cursor into the edit link and you will see the value of the id onthe lower left:

Untitled

Now that we have that, let’s try creating our edit.php and let’s try to get the data from there:

edit.php

lines 1 – 42

Untitled

Some explanations to the code:

  • !empty() – a method that checks if the value is not empty. The syntax can be reversed if you want to check if it’s empty by removing the explanation point (!), therefore it’s syntax would be empty().
  • $_GET[”] – Used to get the value from the parameter. In our case, we use id as our URL parameter so the syntax would be $_GET[‘id’].
  • $id_exists – the variable that checks whether the given id exists.
  • $_SESSION[‘id’] – we place the value of id into session to use it on another file.

lines 42 – 76

Untitled

 

The reason why we are putting the variable $id_exists is because in case the user modifies the URL parameter into a non-existing number(in our case we only have 2 rows/id’s), we can display a prompt in which the data doesn’t exist.

Now try clicking the edit link into the first row and it should display like this:

Untitled

 

Let’s try modifying the URL parameter by removing ?id=1 and now should result to localhost/MyFirstWebsite/edit.php and it should result like this:

 

 

Untitled

 

Now try putting a value that is greater than the id number, in our case, let’s try 5 and it should result like this:

localhost/MyFirstWebsite/edit.php?id=5

Untitled

 

Now that we secured our URL parameters, lets now place the edit syntax. Let’s go back to edit.php and add some following code to update the information to the database:

edit.php

Untitled

 

 

Now try refreshing and go back to the edit page. Let’s try a different data. In my case, I’ll be using “Salmon” and change it to non-public:

edit.php?id=1

Untitled

 

Go ahead and click Update list and you should be redirected to home.php and see the updated list.

Untitled

Now, we have a time and date of edit displayed on the Edit Time column. Our privacy has been set now to non-public and the value has changed into Salmon.

Congratulations! We have now done the edit function!

 

11.) Deleting data

Looking back to the CRUD, we have now done creating(adding), reading(displaying), and updating(editing) records. Now for the last part, deleting records. For this part it’s just relatively the same as what we have done on edit but what differs is just the SQL statement. Instead of using UPDATE, we will be using the DELETE syntax. In deleting records, we have to prompt people making sure that they’d really want to delete the record so we will be adding a little javascript in home.php. To do that, let’s modify our code and add some int home.php

home.php

Untitled

 

As you have noticed, we edited the link for the delete. We changed href into “#” and added and onclick function for Javascript for the method of myFunction and inside it’s parameter is the id of the row. Below the table written is the Javascript syntax wherein it prompts the user if he/she want’s to delete the record. If the user confirms, the page then directs to delete.php together embedded with the value of the id. Now let’s create delete.php and here’s the following syntax:

 delete.php

Untitled

 

The code is just simple and the syntax are also the ones that we used before but noticed we have changed our request method into GET. We are now using the GET request since we have a URL parameter. Now try refreshing home.php and let’s try deleting the first record. This should be the result:

Prompting:

Untitled

 

End-result:

Untitled

 

Congratulations! Now we have now officially completed our CRUD statements!

12.) Displaying public data

Now for the last part, displaying public data. We will be displaying data that’s been set to yes in our index.php, in which is a page for non-authenticated users. It’s very simple. We just have to edit our index.php and add a some php code and table. Here’s our updated index.php:

index.php

Untitled

 

Now log-out and see your default page. It should look something like this:

Untitled

 

Note: You won’t see the data yet since we haven’t set any information to public.

 

Now let’s log-in again and this time, let’s add some more data. In my case I’ve added the following:

  • Salad – public
  • Corn – non-public
  • Pasta – public
  • Chicken – public
  • Spaghetti – non-public

With a total of 6 data’s with 3 of each privacy setting:

home.php

Untitled

Now let’s log-out and see our default page(index.php). It should now look like this:

index.php

Untitled

As you can see, it only display’s data that are set to public.

Congratulations! We have finally finished the tutorials for this session!

 

13.) De-briefing and Summary

In the end, you should have the following files:

Untitled

As I mentioned earlier, I’ll be uploading the finished product. Click here

I also uploaded the sql file for the database in case you want to use the exact data that I have. To import the sql file, you can just simply click on export and select the sql file but make sure to create the database first. If you like, I can create a separate blog for that. Just let me know in the comments section.

 

Anticipated questions

Here are the questions that I think you will be asking. I tried to anticipate these to avoid confusions:

  • Whenever I register a new user, the same list appear. I was expecting for each different user, there would be a separate list for them. Did I do something wrong?

That’s actually a good question. As you can see, I’m only teaching BASIC CRUD functionalities, authentication, and security not a membership system. Creating a separate list per user requires a separate table for each of them. So the logic behind it is for each time after you insert data, you will use a SQL syntax for creating a separate table for the user which goes something like this:

Create table $username (column1 int auto_increment, column2 varchar(50), etc…)

You can click here for the Create table syntax.

The reason why I didn’t do that part is because your gonna have to do a lot of querying and it would make my code look complicating which can consumes a lot of time developing it so it’s definitely out of my scope. It would be better if you just try it out yourself and figure out the way. After all, everything you need is already in this blog.

 

  • Would it be easier to use master pages? Because i’ve noticed you had to re-write the server and database connection all over again for each page

Yes, it is easier to use master pages. The reason why I didn’t use it is for our readers to easily understand the logic behind it. Maser pages can make it a bit confusing for starters.

 

  • Why not use a framework? I bet that would look neat and easy.

Then again, I mentioned in the title Creating your First PHP Program FROM SCRATCH. It’s nice to start of from nothing that from a “template” so that our reader would know the code by heart.

 

  • I know that this is might be an old way of developing PHP. I’ve heard that there are new features released.

I only presented based on my mastery. I’ve been working with PHP for a long time now and I might not heard about the new features. If you think the new one makes it look good then try it out then.

 

  • Why not create a separate file for the CSS and Javascript?

Simple, i’m only demonstrating you about the functionalities. Were more on the back-end code rather than the front-end. I really didn’t focused on the design. If you ask how to design your code with the PHP, well it’s as easy as styling a regular HTML file.

 

Well I guess that concludes everything. Thanks guys I hope you learned something from this topic. I’m currently creating an ASP.NET MVC version of this one so watch out!

 

Follow me on wordpress

or on twitter(which I just created but will try to be active): @Kris_Chaaan

or like my facebook page: fb.com/xtianblogs

or visit my website: kristianguevara.azurewebsites.net

Top 5 Mistakes People Make on their Thesis (IT Related thesis)

I’ve been working on checking thesis documents by my other subordinates and I’ve noticed that they all had common mistakes which can affect the entire document. I might as well share these common mistakes to prevent it from happening especially to you readers who might write your own thesis.

Take note that I’m referring to an undergraduate thesis(Normally done by group).  This may vary from a masteral or a dissertation.

1.) The TITLE

This is always the most essential part of your thesis. This will cover the entire document and will be displayed throughout your copy. A single word could lead to your downfall. Let’s take into account the title “Ordering System with Sales Analytics and Item Tallying for XYZ Company”. As you will notice, this thesis is known for an ordering system BUT, it also includes the scope of Sales Analysis and Item Tallying. This thesis might not be feasible in time for the student because first, it has 2 scopes, which is ordering and inventory system (derived from the “Item Tallying” part) and second, the title is too complicating which can be very misleading at some point. The main idea was an ordering system and in time, the group will eventually forget about the inventory part. The other half will meet the requirements but how about the other one? It is nice to have a bonus feature but only include what is necessary. Then again, its all in the clients requirements since they will be the one’s who will use and benefit the system.

2.) Instead of a group work, the team does it individually

In a group, a member is assigned with a certain task for instance, one will be the developer, one will be the project manager and such. The thing here is that you have to act at least once in all of those roles because by doing so, you would know your thesis from cover-to-cover and gives you no reason to blame other group mates. The problem is if a person is known for his/her forte, he/she is only limited to that persons capabilities and is never to experience other roles. This gives other members more reasons to blame in case something didn’t went well. If you apply for a job and asked what role did you do in your thesis, well, just tell them the truth rather than lying on your skillset.

3.) Failure to define requirements

This also has something to do in relation with number 1.  Having a bar requirement would also lead to a bad title. Requirements basically come from the client and having a shy personality could have it all messed up. If you have that kind of personality, it’s time for you to take your arse up and it’s time for a complete makeover on your personality. Ask everyone you can about the client (Everything… I mean, only about the project, not about their life LOL) and make your client as your best friend because in the end, the client will be your panelist. If ever other panelist are firing the guns at you, the client can somewhat save you from failing the subject.

4.) Project Scope is waaaaay too big that your thesis is not anymore feasible

Sure, having this and that feature would make the project way more fancy and flexible but the question is will it ever be utilized? I also had the same experience on adding a lot of unnecessary modules but it was requested by the client to be removed since it just makes it more confusing. Another factor would be creating your use case diagram with all the unnecessary functions. Reading it already looks like your solving a maze and if the client reads it, he/she might rage quit if he/she doesn’t reach the goal. Ommit all unnecessary features and keep your project simple.

5.) Timelines were never really followed

Let’s face it, we never really followed  these schedules. We feel the pressure of creating Gantt Charts because their required for our document.  To keep the long story short, if you really never follow these and if a panelist asks you on what did you do on a certain phase that had a long-term schedule,  prepare to say your prayers if you did some procrastination on that task.

To sum it all, it is actually the lack of diligence that makes all these things because you don’t tend to think out of the box.  Apparently, brainstorming is the best way to deal with these problems because it involves collaboration with everyone in the group. Sharing thought’s and having a mini-debate could lead you to great results. Just remember that your not doing it alone. If you have a lazy group members, don’t think that your the only one who is going to do all the job because every member must have a significant role (Even the cashier or supplier of the group… LOLOLOL). Thesis is one thing you have to excel in because employers usually asks on what your thesis is and what roles, tasks, and how will did you do.

I hope this enlightens you the next time you write a thesis.

 

You may also like to read:

  1. Tips on how to boost your employment (Preferably for Students)
  2. 6 Reasons why Computer Majors don’t excel in Programming
  3. Microsoft Exam 70-480 Certification Tips

6 Reasons Why Computer Majors Don’t Excel in Programming

I have noticed that some computer majors don’t feel like they are enjoying programming. Though computers can be have a very big scope, programming would be a very essential role. The reason why I am writing this article is because to point out some common reasons why computer majors (Information Technology, Computer Science, you name it!) do not love programming and learn to embrace it. This could serve as an eye opener to you and this is especially made for students who are currently taking up these courses. Without further adieu, lets get started!

Image

1.) Choosing a course in which you don’t like!

In the first place, you should know that these courses do a lot of hard coding and you would know the fact that you would carry on this habit until you work. Now why on earth would you focus on a hard-coding course  and yet, not a single bit of programming interests you. Probably you are forced by your parents, your last option on your college entrance exam results, or just simply for no reason. To whatever reason may it be,  LEARN TO LOVE IT BY HEART. Passion is what sets you on fire.

Try seeking your peers for advise on why a computer course is awesome! you might want to consider listening to success stories made by coders. You can watch this.

2.) Your teachers don’t care about your Career Development

Teacher cleaning chalkboard with duster

College would never be challenging without terror professors. They could be defined the ones who fail most of the students, give the hardest exams, or has the worst attitude. In our case, we consider them as people who are doing their job just because of the profit they gain in teaching and not even caring about the students welfare. A students failure can be a drastic experience for him/her to learn and strive hard. If the student really did mastered the subject well but still managed to fail well, probably that reason is already the teachers teaching methods.

Teachers objectives should be focused on inspiring and motivating students to work hard and never should they make the primary reason their profit. Teachers who don’t teach with passion are never to be considered teachers. To avoid these kind of people, you might want to ask your peers on feedback’s regarding a teacher or a training center.  If you’re wanting for a personal tutor, you might want to check their portfolio first. It is good to keep it that way especially if your paying for your own education.

BSTS

3.) People tend to memorize codes

Improving-Memory-Techniques

People, people, people! ONE DOES NOT SIMPLY MEMORIZE CODES! Codes aren’t something like history wherein you memorize significant dates and events but in the end, you forget everything that you have studied. Remember that logic formulation changes and varies on the problem so your memorization will definitely won’t help you. The common problem is that logic formulation becomes an issue and this has something to do with procedural thinking. Programming is about thinking procedures and making the right output come to life. Comparing to math, you need formulas in order to achieve the solution while in programming, you need to have a good thinking strategy in order to build your formula.

In building something from scratch, you always come in empty-handed. As you gather materials, your material gradually improves and becomes one step closer to finishing the product. Similar to programming, all you need to have is your brain and a good sense of thinking and as you program, you learn to formulate your own way of creating your own output. In real life, your product comes into test and if it fails, you try again until you succeed. In programming, you can compile as many times as you can and for each compile, you learn to see mistakes. It helps you to understand how to avoid them and at the same time you get familiarized with your own code. The next time you create another program, you have now equipped yourself with the past experiences you have made. Always remember that experience is the best way of learning and its a never-ending process. So just keep on trying and try until you succeed.

???????????????????????????????????????

4.) The course Curriculum Sucks

curric

Sometimes, this can be the primary reason. It is best to research on the greatest training center/school on which it has to offer rather than to keep on blaming yourself in the end on why did you even bother enrolling on this institution which didn’t gave you quality training. Another primary reason could be the institution’s facilities. If the curriculum is good, it should also be well-balanced with the facilities because there are times that school’s use deprecated Operating Systems just to keep it cheap. Try also researching for the school’s price if it sounds reasonable. It’s better to pay a expensive fee which gives you quality education than to have a degree which gave you the lowest quality of education which feels like you really didn’t deserve having the degree.

5.) There is no balance within Lab and Lecture

ComputerLab

It is really essential to keep these two on balance. Its similar to an orchestra, on which will be composed of the conductor and the musicians. Without the conductor, the music will not play in harmony or will have the worst sync. Without the musician, there is no application of mastery coming from the conductor. I have noticed that some schools are overly focused on Lectures rather than Lab works. Learning theories is not enough in mastering the subject. In our case, the misconception here would be studying relational databases and Information Management, wherein Data warehouses are being discussed but is never applied. Data Warehouses too have Laboratory exercises (Eg. Extracting data with a software) in which the school must offer and its not just about theoretical practice. The school should consider having a monthly meetup regarding the schools performance in order to improve their training grounds.

6.) People are not diligent enough

diligent

People tend not to go out of their comfort zone. Diligence is one key to success. There are a lot of things to learn that are not taught in school. Try exploring those and keep up with the pace in technology. A great way to start this is joining local organizations which will give you opportunities coming from outside your school providing you with free seminars, trainings or even their recruitment as being a representative of their company. Another would be joining competitions regardless if  you win or lose. Winning is not an option but gaining the experience is priceless. For each time you join, you learn from your opponents, make new friends and at the same time, increase your confidence in joining as each competitions passes by. For every opportunity knocking your door, don’t hesitate to take the chance and take flight to a new leaf!

You may also like to read:

  1. Tips on how to boost your employment (Preferably for Students)
  2. Top 5 mistakes people make on their Thesis(IT Related)
  3. Microsoft Exam 70-480 Certification Tips

Microsoft Exam 70-480 Certification Tips

Iv’ed decided to post this because I wanted you guys to have a clear view on what would be the exam would be like and what are the necessary things to study before you take it. As much as possible I cannot disclose information regarding the exam questions itself because of an agreement I made to Microsoft but what I will give you are resources and some break down of the exam coverage to keep you guided.

My Personal Experience

The exam was somewhat easy and all you need to have is a 101% common sense. I won’t be telling my score to keep it secret,  but it was high enough to pass. Iv’ed been developing websites for more than a year and iv’ed applied most of them throughout the exam. It doesn’t include much of the Windows features yet (e.g using -ms-). The part that got me a bit confused was on using data structures like implementing web services. If your not really find of using web workers then I suggest to start building your foundation there.

Pre-requisites

Of course to take this exam, you will be needing at least the basics of developing HTML, CSS, and JavaScript. This exam will be covering its latest features which are used from HTML5 and CSS3. Since this exam doesn’t cover up the advanced Windows functions, you may use an internet browser to run your files but I highly recommend you to use Visual Studio 2012 since this is a Microsoft Exam, and you will be using it for your future certification exams for MCSD like Advanced Windows Functions and using Windows Azure.

Type of Test

I was actually surprised when I found out that the exam is not only limited to a multiple choice type, but a multiple drop down menu and a drag and drop. To keep it brief, there are some items that are that require multiple answers, some drag and drops may require to reuse the option and there are some drop-down items that may also require multiple answers. So you really need to study hard to avoid confusion.

You might get confused on how to use the drag and drop and some other functions. Don’t worry, there will be an optional tutorial given before you start the exam. It will just teach you how to simply manipulate the choices but it doesn’t affect your score on the exam itself. You can skip that part if you think your confident or if this ain’t the first time you took the exam with Prometric.

Exam Coverage

The following topics are based from Microsoft’s learning site. I’m making a list of sources for you to study incase you need to have a quick review before the exam. If you really want to master this, I suggest to take up the lab exercises that would be a great supplement on which it shows you various scenarios of the topics on a hands-on experience. All of those are also based from Microsoft Learning pointers. Lab exercises are right after this topic.

Implement and Manipulate Document Structures and Objects (24%)

  • Create the document structure.
  • Write code that interacts with UI controls.
  • Apply styling to HTML elements programmatically.
  • Implement HTML5 APIs.
  • Establish the scope of objects and variables.
  • Create and implement objects and methods.

Implement Program Flow (25%)

  • Implement program flow.
  • Raise and handle an event.
  • Implement exception handling.
  • Implement a callback.
  • Create a web worker process.

Access and Secure Data (26%)

  • Validate user input by using HTML5 elements.
  • Validate user input by using JavaScript.
  • Consume data.
  • Serialize, deserialize, and transmit data.

Use CSS3 in Applications (25%)

  • Style HTML text properties.
  • Style HTML box properties.
  • Create a flexible content layout.
  • Create an animated and adaptive UI.
  • Find elements by using CSS selectors and jQuery.
  • Structure a CSS file by using CSS selectors.

If you want to study each topic specifically on the breakdown, you may refer to these blogs:

http://geekswithblogs.net/WTFNext/archive/2012/10/08/exam-70-480-study-material-programming-in-html5-with-javascript-and.aspx

http://www.bloggedbychris.com/2012/09/19/microsoft-exam-70-480-study-guide/

Copying them in my blog just makes it redundant so might as well acknowledge them. I’m more focused on the lab exercise since its practically helpful. Since there you code and at the same time learn from it rather than theoretically learning only from the important topics.

If you want to have a brief course on this, might as well start here:

http://www.microsoftvirtualacademy.com/training-courses/learn-html5-with-javascript-css3-jumpstart-training

Microsoft Virtual Academy teaches the exam pointers according to its topics though not everything is taught in the video though it would be a good help. You need a Microsoft account to watch it.

Lab Exercise/ Classroom Training

The entire syllabus is based from Microsoft’s learning site. In case you can’t enroll yourself in an institution that teaches a curriculum similar to this course or if your can’t afford to take a short course tutorial in the nearest Microsoft training center near you, I will be posting in this portion the syllabus of the classroom training including some sources for you to study on a certain topic.

Rather than studying theoretically with only the given pointers, it is best that you apply also the things that you have learned and practice them. This training session will give you more than enough knowledge to pass the certification though don’t guarantee that it will automatically pass you. This is just to make things easier for your exam.

Before you continue, you will be needing a Visual Studio 2012. If your a student and if your institution is recognized for a Dreamspark account, you can download it there for free. If not, you may download a 90-day trial here: http://www.microsoft.com/visualstudio/eng/downloads#d-2012-editions

Course Outline

Module 1: Overview of HTML and CSS

This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012 to build a Web application.

Lessons

Take note that in this tutorial, you will also be studying how to develop ASP.NET apps.

Lab : Exploring the Contoso Conference Application

  • Walkthrough of the Contoso Conference Application
  • Examining and Modifying the Contoso Conference Application

http://msdn.microsoft.com/en-us/library/jj591563.aspx#sec1

After completing this module, students will be able to:
  • Describe basic HTML elements and attributes.
  • Explain the structure of CSS.
  • Describe the tools available in Visual Studio 2012 for building Web applications.

Module 2: Creating and Styling HTML5 Pages

This module describes the new features of HTML5, and explains how to create and style HTML5 pages.

Lessons

  • Creating an HTML5 Page
  • Styling an HTML5 Page

Lab: Creating and Styling HTML5 Pages

  • Creating HTML5 Pages
  • Styling HTML5 Pages

http://www.hongkiat.com/blog/building-html5-css-webpages/

For a narrow breakdown:

http://www.w3schools.com/html/html5_intro.asp

http://www.w3schools.com/css/

After completing this module, students will be able to:
  • Create static pages using the new features available in HTML5.
  • Use CSS3 to apply basic styling to the elements in an HTML5 page.

Module 3: Introduction to JavaScript

This module provides an introduction to the JavaScript language, and shows how to use JavaScript to add interactivity to HTML5 pages.

Lessons

Lab : Displaying Data and Handling Events by Using JavaScript

  • Displaying Data Programmatically
  • Handling Events

http://www.w3schools.com/jsref/dom_obj_event.asp

After completing this module, students will be able to:
  • Explain the syntax of JavaScript and describe how to use JavaScript with HTML5.
  • Write JavaScript code that manipulates the HTML DOM and handles events.
  • Describe how to use jQuery to simplify code that uses many common JavaScript APIs.

Module 4: Creating Forms to Collect Data and Validate User Input

This module describes the new input types available with HTML5, and explains how to create forms to collect and validate user input by using the new HTML5 attributes and JavaScript code.

Lessons

Lab : Creating a Form and Validating User Input

  • Creating a Form and Validating User Input by Using HTML5 Attributes
  • Validating User Input by Using JavaScript

Sources are same as the links on the lessons

After completing this module, students will be able to:
  • Create forms that use the new HTML5 input types.
  • Validate user input and provide feedback by using the new HTML5 attributes.
  • Write JavaScript code to validate user input and provide feedback in cases where it is not suitable to use HTML5 attributes.

Module 5: Communicating with a Remote Data Source

This module describes how to send and receive data to and from a remote data source by using an XMLHTTPRequest object and by performing jQuery AJAX operations.

Lessons

Lab : Communicating with a Remote Data Source

  • Retrieving Data
  • Same from XMLHTTPRequest
After completing this module, students will be able to:
  • Serialize, deserialize, send, and receive data by using XMLHTTPRequest objects.
  • Simplify code that serializes, deserializes, sends, and receives data by using the jQuery ajax method

Module 6: Styling HTML5 by Using CSS3

This module describes how to style HTML5 pages and elements by using the new features available in CSS3.

Lessons

  • Styling Text
  • Discussed in Module 2

Lab : Styling Text and Block Elements using CSS3

After completing this module, students will be able to:
  • Style text elements on an HTML5 page by using CSS3.
  • Apply styling to block elements by using CSS3.
  • Use CSS3 selectors to specify the elements to be styled in a Web application.
  • Implement graphical effects and transformations by using the new CSS3 properties.

Module 7: Creating Objects and Methods by Using JavaScript

This module explains how to write well-structured and easily-maintainable JavaScript code, and how to apply object-oriented principles to JavaScript code in a Web application.

Lessons

Lab: Refining Code for Maintainability and Extensibility

After completing this module, students will be able to:
  • Describe the benefits of structuring JavaScript code carefully to aid maintainability and extensibility.
  • Explain best practices for creating custom objects in JavaScript.
  • Describe how to extend custom and native objects to add functionality.

Module 8: Creating Interactive Pages using HTML5 APIs

This module describes how to use some common HTML5 APIs to add interactive features to a Web application. This module also explains how to debug and profile a Web application.

Lessons

Lab : Creating Interactive Pages by Using HTML5 APIs

After completing this module, students will be able to:
  • Use the Drag and Drop, and the File APIs to interact with files in a Web application.
  • Incorporate audio and video into a Web application.
  • Detect the location of the user running a Web application by using the Geolocation API.
  • Explain how to debug and profile a Web application by using the Web Timing API and the Internet Explorer Developer Tools.

Module 9: Adding Offline Support to Web Applications

This module describes how to add offline support to a Web application, to enable the application to continue functioning in a user’s browser even if the browser is disconnected from the network.

Lessons

Lab : Adding Offline Support to a Web Application

After completing this module, students will be able to:
  • Save and retrieve data locally on the user’s computer by using the Local Storage API.
  • Provide offline support for a Web application by using the Application Cache API.

Module 10: Implementing an Adaptive User Interface

This module describes how to create HTML5 pages that can dynamically detect and adapt to different devices and form factors.

Lessons

Lab : Implementing an Adaptive User Interface

After completing this module, students will be able to:
  • Describe the need to detect device capabilities and react to different form factors in a Web application.
  • Create a Web page that can dynamically adapt its layout to match different form factors.

Module 11: Creating Advanced Graphics

This module describes how to create advanced graphics for an HTML5 Web application by using a Canvas element, and by using Scalable Vector Graphics.

Lessons

Lab : Creating Advanced Graphics

After completing this module, students will be able to:
  • Use Scalable Vector Graphics to add interactive graphics to an application.
  • Draw complex graphics on an HTML5 Canvas element by using JavaScript code.

Module 12: Animating the User Interface

This module describes how to enhance the user experience in an HTML5 Web application by adding animations.

Lessons

Lab : Animating User Interface Elements

  • Applying Transitions to User Interface Elements
  • Applying Key-Frame Animations
  • (Just apply the modules from the links)
After completing this module, students will be able to:
  • Apply CSS transitions to elements on an HTML5 page, and write JavaScript code to detect when a transition has occurred.
  • Describe the different types of 2D and 3D transitions available with CSS3
  • Implement complex animations by using CSS key-frames and JavaScript code.

Module 13: Implementing Real-Time Communications by Using Web Sockets

This module explains how to use Web Sockets to transmit and receive data between an HTML5 Web application and a server.

Lessons

Lab : Implementing Real-Time Communications by Using Web Sockets

  • Sending Multiple Types of Messages To or From a Web Socket
  • (Just the same as above)
After completing this module, students will be able to:
  • Explain how Web Sockets work and describe how to send and receive data through a Web Socket.
  • Use the Web Socket API with JavaScript to connect to a Web Socket server, send and receive data, and handle the different events that can occur when a message is sent or received.

Module 14: Creating a Web Worker Process

This module describes how to use Web Worker Processes to perform long-running operations asynchronously and improve the responsiveness of an HTML5 Web application.

Lessons

  • Performing Asynchronous Processing by Using a Web Worker
  • (Same link from above)

Lab : Creating a Web Worker Process

After completing this module, students will be able to:
  • Describe the purpose of a Web Worker process, and how it can be used to perform asynchronous processing as well as provide isolation for sensitive operations.
  • Use the Web Worker APIs from JavaScript code to create, run, and monitor a Web Worker process.

Additional Tips and things to do before the exam

If you think your ready and now set for the exam, you can avail your voucher at Prometric. Make sure to register your account in which you will be using for your future certification exams. The exam costs $80 but you can avail a bundle for MCSD which is cheaper which I believe its around $200 for the 3 exams.

Make sure that you have at least 2 identifications with pictures for your verification on the testing center. Take note that policies in verification in testing centers may differ so just to be on the safe side, make sure to bring Identification ID’s like passport, driver’s license, postal ID, etc.

Now for the additional tips, I suggest having at least one month allotment for a review on this exam. After reviewing the entire module, have a quick draft of it again for you to familiarize and review as well the pointer of the exam. I believe that my resources are enough to satisfy your knowledge for the exam.

Other Resources

These resources are the official Microsoft reviewers. These can definitely supply your knowledge towards developing your Windows 8 apps as these are taught by official Microsoft Trainers.

Microsoft Virtual Academy:

http://www.microsoftvirtualacademy.com/training-courses/learn-html5-with-javascript-css3-jumpstart-training

Programming Windows 8 Apps with HTML5, CSS3, and JavaScript e-book for free:

http://blogs.msdn.com/b/microsoft_press/archive/2012/08/20/free-ebook-programming-windows-8-apps-with-html-css-and-javascript-second-preview.aspx

Pluralsight: HTML5 Fundamentals:

http://pluralsight.com/training/courses/TableOfContents?courseName=html5-fundamentals&highlight=craig-shoemaker_html5-fundamentals-basics*3,5!craig-shoemaker_html5-fundamentals-forms!craig-shoemaker_html5-fundamentals-media!craig-shoemaker_html5-fundamentals-canvas#html5-fundamentals-basics

 

You may also want to read:

  1. Tips on how to boost your employment (Preferably for Students)
  2. Top 5 mistakes people make on their Thesis(IT Related)
  3. 6 Reasons why Computer Majors don’t excel in Programming