When I was pursuing my Bachelor in Computer Application I was actually trying to improve my computer programming skills. Computer languages like C and C++ are always there in the beginners’ syllabus in order to improve their fundamentals. They learn from scratch that how a software is supposed to work and what are the methods to accomplish that. We learned countless programs – writing codes, debugging, testing, etc.
So, during my second year (around a decade back) I learned to build a software that would input the 3 students’ name, class, all the 5 subjects’ scores and prepare a marksheet at the end. If a student fails in any subject then there should be a star mark (*) at the right hand side of the marks being mentioned, and the result would be SUPPLEMENTRY. If he fails in more than two subjects then he/she would be considered as FAIL, else PASS. The Grand Total would get calculated as well. Everything was perfect and it took me around 2 weeks in completing this and 2 more weeks in making it a perfect software. Even after successfully implementing it, I still felt that the language wasn’t that perfect. First of all, it required the inputs of 3 students, their basic information, marks of all 5 subjects EACH time the software was loaded. The database was missing, obviously, that could have saved the fed information as well as the user’s valuable time. And another thing was the graphics. C and C++ have Graphics but it takes another year to learn that, and most universities do not include this part. An enthusiastic candidate needs to learn that by him/herself.
Then I came to know about Visual Basic 6.0. I was fascinated by the idea of how easily we could drag and drop the buttons, texts, combo-boxes, etc. on the Builder itself, and the background coding gets generated by itself behind the screen. The programmer simply had to enable those buttons and texts work as per the requirement, but the graphical part was instantaneously ready, which could have taken several weeks or months if I learned those Graphics in C and C++ and actually implemented! Moreover, it supported the database connectivity. It is not just the VB 6.0 but other languages as well that are similar to this concept and proved to be better and even more powerful at present.
Now, what if I want to build a website? Previously the concept of responsive design wasn’t into the picture. People would just learn HTML basics and launch a site. I am currently talking about the very beginning when the websites weren’t as good as we see today. There wasn’t any graphical appearance. They lacked the high-quality graphics and most importantly the responsiveness. Then came CSS, Jquery, VBScript and JavaScript. I heard about .NET framework a decade back that was new to me and I would consider it as just another language to learn. But it was a framework and would support many other languages. For instance, VB and C# were the most common. The programmers were able to build the sites by writing code from scratch. They would deal with countless bugs and mastered in everything. What if you built an E-commerce site and that website gets hacked? What if it gets virus? The challenges have increased by the time when everything went wireless. Think about this scenario – You spend restless days and nights in making one perfect website and it got hacked or filled with malicious softwares!
Here is where the need to make use of themes and templates come into the picture. Suppose you are a freelancer and you got a project to built an E-commerce website related to fashion industry. There is a deadline and you are supposed to submit the project on pre-determined date.
What if I tell you to make a website that resembles YouTube and works exactly the way it works? It will take you weeks to understand the basic structure and functioning, even more weeks to implement each module, and more weeks to fix the bugs. It will seem as if it is taking years and your problems aren’t resolved yet. You will require a team to handle the whole project, else this will never happen. The list of bugs are endless. First a programmer goes through infinite syntax errors. Then comes the working where testing fails infinitely. Some websites manage to bring-in the audience but fail to control their server that gets hanged every now and then because of reduced processing speed. Why would you like to sink into this whole mess, rather than buying something which is already tested and approved in terms of functionality?
Building it from scratch isn’t a good idea, since there are numerous themes available that will exactly match your needs. Using the templates and themes does not mean that you won’t be able to customize it. You can make several changes. Renowned sites like WordPress provides all kinds of themes and templates based on your own requirement.
There are some drawbacks of using custom themes as well. If you are a beginner and the fundamental isn’t clear to you still, you must make those kinds of projects, no matter how big or small it seems, that need to write each line of code all by yourself regardless of the module you work with. Once you know the basics, understanding custom themes would be very easy to you and so does the additional code you are going to write. Start with small projects, particularly those that are offline based. Now this does not mean that the themes will definitely prevent you from getting hacked or from virus, but you will be able to focus on crucial things, rather than wasting several days on the appearance.
A programmer needs to choose wisely where (s)he feels more comfortable – from the scratch or custom themes. Sometimes the clients ask to built a software product that serves some kind of purpose. In such a case, you may need to understand everything in detail to meet the clients’ needs because no template or theme would be able to do that. If you are used to working with themes since the beginning of your career, chances are less that you will be able to deliver your project on time if similar activity is given to you without using themes. The practical response is to use the templates and themes only when the website needs to be developed and such kinds of websites are already in the market. For instance, social networking sites like Facebook.
Some clients know the coding part and so will go through each detail you have written. In such a case, ask them directly if they would welcome purchasing the themes. If they ask you to do it without any template then you must ask yourself – Am I confident and be able to complete the project on time? If you are not used to it, do not hesitate in denying. Challenges must not be unrealistic.
The software industry is contiguously growing. The computer languages that students learn during their academics may or may not sustain for longer. Some believe that the enthusiasts must choose one language and focus solely on that so as to gain complete command. This is true to some extent. If you are a beginner you will learn every single detail precisely. When I learned C and C++ (particularly with data structure) for the first time I found VB very easy but VB had its own disadvantages. Then comes the C#, which is partially Object Oriented Language, and any language that is based on OOP concepts is considered more powerful. About the languages part – all languages have some sort of drawbacks and their improved version keep on getting updated. Some languages do no suit the present needs and so are not in much use.
Others believe that one must focus more into the logic behind, the flowcharts and algorithms, that will eventually lead to making anyone prepare code regardless of the language and platform. But without any practical experience it is not possible that you learn to work with any language overnight. Everything needs to have a solid balance and one needs to work in parallel if he/she wants to be an expert. Focus on what interests you the most and try to know every detail from scratch while doing practicals. You will need to be an expertise in just one language and other languages will seem similar. For instance, to me Advanced Java and C# looked similar; Visual C++ is similar to Visual Basic. Even themes and templates seem to be understood with experience about what’s written in the source code. This is for those who are really willing to learn every single detail and more of a Tech geek.