Monday, April 30, 2018

'Learn and Understand' NodeJS by @AnthonyPAlicea completed

var myStatus = { 
  courseName: 'Learn and Understand NodeJS',
  author: '@AnthonyPAlicea',
  completed: true,
  satisfied: "very true ++"
}


Don't rely on JavaScript hoisting



Even though the #JavaScript engine pre-loads functions before executing them, that's no excuse to rely on hoisting. I'll declare my variables upfront.

@AnthonyPAlicea's NodeJS Completed


@AnthonyPAlicea's #NodeJS https://www.udemy.com/understand-nodejs gave me a solid grounding in key concepts and included simple, useful code for review and analysis.  I can now, from memory, write a basic web server in NodeJS and understand exactly what it does.  Now for #JavaScript https://www.udemy.com/understand-javascript

Building an API on NodeJS with Mongoose





I spent a couple more pomodoros than expected, but I cleared up a couple of points of misunderstanding about working with MongoDB.  Prima facie, NoSQL makes sense, and certainly seems more attractive than working with a relational database.  I've heard from some people who are more accustomed to working with MySQL and PostgreSQL that MongoDB doesn't scale well, but I don't have enough commercial experience of the two approaches to have an opinion yet.

I find this approach, of writing the code out by hand, is an excellent way of forcing myself to slow down and meditate on the material.  I bear in mind that I save myself time on Stack Overflow in the long run; and at any rate, it makes me more self-reliant and better at RT(F)M.

Saturday, April 28, 2018

JavaScript on both ends



After 4 pomodoros on @AnthonyPAlicea's NodeJS course, Lecture 90, I think I understand how JavaScript code runs on both front and back-end.

Looking at this code, I can see how the array of JavaScript objects is declared on the server (/app.js), then passed on to the view (/views/index.ejs), converted to a JSON string, is made available to the AngularJS controller, which then manipulates the JSON object in the client.

As I go through the code line by line, I ask myself continually:

Where does the program get this from?
Where is the variable declared?
How does this part of the program have access to it?

In this way, I can always see, piece by piece, how it all fits together.

Unless of course I'm using Rails, in which case one must have faith in its sugary magic.

Thursday, April 26, 2018

AngularJS makes more sense now



From the NodeJS course by @AnthonyPAlicea.  Important to me because I can go line by line through the code and tell you exactly how it all fits together.  Check it out if you're a junior web dev, his explanations are first rate: https://t.co/sq2aiS18UC

Tuesday, April 24, 2018

Controllers make a lot more sense now



I'm working through Anthony Alicea's "Learn and Understand NodeJS" and Lecture 79 helped me to make sense of the problem that controllers are meant to solve.



Monday, April 23, 2018

Added an HTML Escape keyboard shortcut to turbo-javascript Atom Text Editor package


A little bit of tinkering in Coffee script to make it simpler to type <%= %> in EJS and other template packages.  It works for me, so I cloned the source code from git and sent a pull request on a proposed branch.  It took two pomodoros away from my studies, but I think it's worth it in the time and effort and frustration it will save me.  Also, it's neat to tinker with a package to make it better — there's value in it for its own sake.

Sunday, April 22, 2018

Wednesday, April 18, 2018

950 Hours: New blog name, JavaScript, NodeJS, etc.

Mission WebDev

Mission DevOps is now Mission WebDev.  Nothing much else in the blog will change, but it represents the next stage in the evolution of my career as a software developer.  Since I updated my online profile to reflect this, I have attracted more interest, which is always a good sign.  I am working my way through a couple of courses online to lay a strong foundation for front-end development, so in this pomodoro cycle I have covered, inter alia, the following topics:

HTML/CSS/JavaScript

  • Basics of HTML
  • Basics of CSS
  • Basics of Bootstrap
  • Basics of JavaScript:
    • Control Flow
    • Functions
    • Arrays
    • Objects
  • Basics of DOM Manipulation
  • Basics of jQuery

NodeJS (Mostly theoretical)

  • V8 JS Engine
  • Node core
  • modules, exports, require
  • Events and the Event Emitter
  • Asynchronous code, libuv, event loop streams, files, etc.

Study Goals

My goal for the next pomodoro cycle is to complete the following courses online:


It's not an easy course because Alicea goes deep into the Node core and takes the time to explain concepts in exacting detail.  Lots of gestalt moments to be had.


I'm so impressed by Alicea's treatment of NodeJS so far, that I trust his JavaScript course will give me the deep understanding I'm looking for.


A great educational framework.  I've put it on hold until I complete the other two courses, and will probably park it at certain points in order to supplement my knowledge in other areas, but it's the best overall guide to becoming a web dev that I've found so far.

Coding Challenge

In addition to the course, I've set myself the challenge of working my way through last year's Advent of Code in JavaScript.  If I can complete all these challenges, I'll be satisfied with my proficiency in JavaScript and be confident in mastering a web development framework.

React or Vue?

I'm still undecided, but it's probably not something I'll have to address before I hit 1,000 (!!!) hours in my mission to become a fully fledged (and employed) web developer.

See you in a hundred pomodoros.

1,050 hours

It took me 13 working days to complete my first 100 "work" pomodoros as a Junior Software Tester at Profectus Group.  Much of ...