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!


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.


3.) People tend to memorize codes


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


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


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


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.


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:



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:


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.


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


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.


  • Creating an HTML5 Page
  • Styling an HTML5 Page

Lab: Creating and Styling HTML5 Pages

  • Creating HTML5 Pages
  • Styling HTML5 Pages


For a narrow breakdown:



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.


Lab : Displaying Data and Handling Events by Using JavaScript

  • Displaying Data Programmatically
  • Handling Events


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.


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.


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.


  • 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.


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.


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.


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.


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.


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.


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.


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.


  • 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:


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


Pluralsight: HTML5 Fundamentals:



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