💭 Programming With JavaScript, Or How I Learned to Stop Worrying And Love The Debugger 💭
Hey hacker friends! Ur fam; l0rdcafe here. This installment is about JavaScript, or in other words my first foray into proper programming.
Two weeks ago, I had little to no programming experience whatsoever. I'd read a few tutorials and seen some JavaScript syntax, enough to scare me away from programming for browsers. However, I decided it was time to face my fears and program for the web.
I started off by reading and doing the exercises for A Smarter Way To Learn: JavaScript by Mark Myers; a quick and to the point programming book that teaches you the foundations of the language whilst maintaining basic practicality. After finishing the book, I signed up and completed the Practical JavaScript course at Watch and Code, building a basic to-do list with the instructor. Where he goes into thorough explanation of all aspects of the program in an intuitive and practical way.
Beyond the Watch and Code tutorial, I decided to implement some extra features to the application like expired items, urgent items, item counters and other UI features. That proved to be the most educational part of the process as I encountered every programmer's best friends; bugs.
I quickly learned that you constantly need to maintain a readable, consistent and focused codebase to simplify debugging, adding features and most of all avoid mistakes. Moreover, I also learned that refactoring is necessary as a program gets bigger, and the usage of helper methods and/or functions comes into play much more prominently as an application expands.
One of the more challenging undertakings of the application was date validation, but from Mark Myers' e-mail address validation explanation in A Smarter Way To Learn: JavaScript, some stubbornness, and a lot of persistence, I managed to validate the date input to the desired format and also list items as either 'Urgent' or 'Expired' according to their due dates.
Another essential ally in my programming endeavor was a browser's debugger and console. Using the debugger to pause the program at specific points to catch bugs, going through the program line and line, stepping in and out of functions, and examining the program's behavior. As well as logging variables, calling functions and others in the console to ensure everything runs, as it ought to.
Finally, and after much effort I had finished my 2-Do List with the features and functionality that I intended it to have. I've always disliked boasting, but I got to say that I do feel proud in this first moment of programming victory.