(Day 1 of 100) The 100 Day challenge: Become a code ninja
To start off, I wouldn’t say I am a total noob at coding since
- I have probably spent like 100++ hours watching numerous You Tube videos related to coding and the stack technologies (i.e: The Net Ninja, Stefan Mischook, Laracasts, Traversy Media, Joshua Fluke and many more)
- I have started taking few courses on Udemy(but never completed them)
- I know basic language logic such as different types of variables, if and for loop, recursive, etc.
- I am fairly knowledgeable in the concept of relational database management system (RDBMS). I know different types data relationship such as one to one, one to many, many to many, recursive relationship, trade offs of normalizing or denormalizing data structure, etc.
So, I am cheating a little here from day 1 haha.
Anyway, the reason I am learning to code is to transition my career into software development (web app, to be specific) from being a random, clueless and unmotivated quality engineer in a machine shop. I personally found coding much more fun. By coding, I feel like I can easily make my ideas come into reality. Also, playing with my computer is what I like to do anyway. On top of that, software developers are higher in demand when compared to my current career opportunities. I feel that internet will continue to grow and become more prominent, which in turn, the future of the software developer is very promising, IMO of course. But most importantly, this is what I really want to do and I feel like I finally found something I really want to specialize in.
I could have just started to learn to code by myself but the reason I decided to log this challenge is to
- Network with like minded people and people in the same career path, get mentored by seniors in this career if they are willing help, and foster potential future client
- Seek solution to problems when I am stuck
- Seek more direct help on the technology stack I am trying to learn. Basesd on my past learning experience, it is very difficult to find internet resources (if any) on this technology stack work together hand in hand.
- give myself a morale boost by claiming my challenge to the anonymous people on the internet. (Yeah, like that is going to work haha! good try! -says my brain)
Because this 100 day challenge will be recorded daily, my logging will be minimally processed and reviewed. I will highlight on what I learned that day and what I am stuck on along with snapshots of the codes and related diagram figures and pictures.
So as a day 1, I have kinda planned out how I am going to execute this challenge. My ultimate goal, by end of 100 days, is to build a fully functioning ERP web application. If you don’t know what ERP web application is, ERP stands for Enterprise Resource Planning. Be patient, I know you are more confused. So, in a plain English, it is a software that manages business processes. And I know what you are going to say: uhhhh.. so what is ERP again? So, here we go again: Think of ERP web app as a storage of business information such as inventory log, customer orders, customer estimates, purchase orders, order status, etc. Basically, ERP keeps track of these business related activities on the server, in one place so that it is easily managed. ERP aims to reduce time and labor in paperwork and clerical administration and to provide a meaningful analysis based on gathered data so that the management can use ERP as tool to set their future business direction in both short and long term. There are different types of ERP software; one that tries to be universal(Zoho Creator: build your own ERP software) and the other that tries to be industry specific(ie JobBoss by Exact: excels in job shop manufacturing environment) or feature specific (ie Quickbooks by Intuit: focuses on accounting process). My ERP software is going to be industry specific on manufacturing world where it is going to manage the bill of materials (BOM), blueprints, manufacturing order status, manufacturing floor, quotations, quality, inventory, supply chain, shipping & receiving, etc.
Below is the plan to make this happen:
Day 1–20 Mock up front-end ERP web app interface (that only renders few features) using Vue.js, Vuex, routes ,Vuetify, and Stylus. The take away from this exercise is to learn how to professionally organize css, build app fast and responsive in the javascript library/framework vue.js and vuex, and be proficient in css framework.
Day 21–40 Connect the mock up front-end ERP interface to backend python and django and connect to the PostgreSQL. Use GraphQL instead of API to communicate between front and back-end. Make an instance of data fully traveling from user entry/input to database storage and back to the user again with a response. The key takeaway here is how all these technology stacks work together hand in hand.
Day 41–60 Start modeling relation diagram for relational database management system architecture. Start building the app and write test cases.
Day 61–80 Complete building app and launch
Day 81–100 Complete building app and launch
A search from Stack Overflow told me that this challenge is not going to be easy because ERP web app is very difficult to build. . Nonetheless, this is a must for me to become a true code ninja!