Introduction

This section provides an overview of The POWA Project, an open-source modern fullstack project.

Banner

The POWA Project

Welcome to The POWA Project, an open-source modern fullstack web devlopment course that covers from the foundation database source to the graphical interface that user interact with.

Target Audience

This course is supose to serve all sort of audiences who are interested about modern fullstack web development, but while I am designing this course, there is a particular picture in my mind. I hope I can create some contents for someone like me, at least the 'me' way before I learnt all the topics covered in this course.

To be more precise, I am creating this course for junior adult learners, especially for those who have already worked in the tech-field for a while, those who might already have some knowledge about programming or even a few years of working experiences. They do not have much time every day, and they found lots of the online resources take weeks or months to complete. They found it is hard to follow a typical fullstack course as they might already know what HTML and CSS are, it soon becomes boring for them after one or two weekends.

If you learnt some IT knowledge before, but not sure which level you are in. If you simply want to learn modern web development quickly, but you found most of the materials make you feel you like you are back to primary school. If you only have limited personal time but you are so edgar to learn, I created this course for you.

Required Level of Programming Knowledge

Although I consider this as an entry-level course, for those who wants to follow this course efficiently, I suggest you have the basic understanding of programming. In other words:

  • How to declare variables,
  • How do to basic arithmetics
  • How do use basic logical operators (AND and OR)
  • How to write conditional blocks
  • How to use loops

Any other programming knowledge more than the above would be an advantage while taking the course, but not neccessary.

Advanced programming concepts such as higher-order and callback functions, async/await, DOM manipulation or knowledge of any other JavaScript-specific syntatic sugars are not required as they would be covered as a part of the course content.

Time of Completion

Although everyone has their own learning pace, and the learning progress would vary depending on individual difference, I recommend you to finish this course in 10 successive days. Ten days might sound very intensive in the beginning, but I believe any knowledge could be simplified into understandable and precise concepts, and those concepts can be structured and organised for others to learn something in a short period of time.

One major problem I encountered during my previous learning experiences is that I lost my focus one or two weeks after I started a course. I would have to say it is not entirely my problem as I found some topics I spent days to learn and master, can be easily delivered to someone else within 30 minutes. This observation brings up another issue, typical entry-level courses are made for completely beginners.

The first half of those courses are usually too easy and tedious to follow, which makes the audience lose their interest and patience to complete the course. My intention is to teach you all neccessary knowledge in depth, in a reasonabily period of time, which I highly recommend you to follow and complete the course in ten days to get the best results.

Before You Start

Although this course is designed for general IT personnels at any skill level, there a few important facts that I want you to know about web development in general

  1. There are always more than one approach to solve the same problem, even if you choose the same approach, the steps can be different, just like how you can solve a rubik's cube in real life.
  2. If one solution is selected for a problem among others, it does not neccessarily mean other solutions are inferior. There could be trade-offs between different solutions, a typical trade-off in computer science would be trading (storage) space for faster (computing) time, vice versa.
  3. If you can store some information on a computer, you can most likely to store the same piece of information using paper and pen. If you can do something to make the process of write the information on paper faster or more efficient, that's most likely how you can make it more efficient on computers.
  4. The fundamental of modern web development is all about how to storing, delivering and presenting information. Websites are evnetually collections of documents that present information to their users, those informations are stored in some computer, and delivered to the users through internet.