Overview of the course I'm taking
The Complete Node.js Developer Course (2nd Edition)
About a month ago I used some money I made here on Steemit to buy a Udemy course on node.js. This is that course. Here's some of the topics covered in the course and skills outcomes:
- Build, test, and launch Node apps
- Create Express web servers and APIs
- Store data with Mongoose and MongoDB
- Use cutting-edge ES6/ES7 JavaScript
- Deploy your Node apps to production
- Create real-time web apps with SocketIO
The reason I chose this course as the next thing to study is that I really want to know how to store persistent data. Right now, I can make small apps that do things, but when the browser is refreshed the data changes go away. I want to make apps where the data stays and can be accessed by multiple people from multiple computers. This course says it will teach me the skills needed to make those kinds of apps.
The first app of my own design that I want to build is a "book reading status" app for my family that keeps track of what books we are currently reading and what we've already read.
Timely Announcement
Udemy frequently has sales with courses only at $10 at the end of the month. That's the price that I bought it at last month. Right now, they are having the same sale through the end of August.
If you are interested in the topics in this course, now would be a good time to buy. These courses are self-paced, so you don't have to start right away or be on a schedule that doesn't work for you. And right now... it's only $10.
Progress: Day One
I got up earlier than I normally do and started in on the course. Not sure if that was the best strategy because I definitely wasn't as alert as I would have liked to be and nodded off a little while watching some of the introductory videos. It was mostly review for me, as I am familiar with what node.js is and have a basic understanding of how it works. However, it was good for me to start from the beginning and get that overview again so that it's fresh in my mind.
Here's how far I got today:
I already had the Atom text editor installed, as I've used it for other programming projects and to complete the Practical Javascript course.
The fun part came in Section 3, 9. Using Require. The section was meant to give an example of how to require external libraries that provided already written functions that you could then use in your own program. The module os provided functions that access system information and the fs module provided functions for accessing the local filesystem.
What's great about this example is that for the first time I'm using Javascript to create files and write data to those files without doing anything in the browser. Right away I'm getting into persistent data, which was one of my learning goals for this course.
I went through the example given in the video and then started to modify it and play with it. I find this is the best way for me to learn. Understanding what is presented and then extending with my own ideas.
console.log('starting app');
const fs = require('fs');
const os = require('os');
var file = 'greetings.txt'
var user = os.userInfo();
var name = user.username;
var phrase = `Hello, I am ${name} and I am using ${os.type()}. \n`;
fs.appendFileSync(file, phrase);
This code was saved in an app.js file. Running it by typing node app.js in the terminal gave two results. One, it printed "starting app" to the terminal and then it also created a file named "greetings.txt" in the same directory and inserted, in my case, the text "Hello, I am matthew and I am using Linux."
It was able to get my name from os.userInfo() and it got "Linux" from os.type(). It wrote and saved to the file with fs.appendFileSync(file, phrase). "file" and "phrase" were variables that I created earlier in the program. It appends the "phrase" text to the file. If you run the program again it just adds another line of the same text to the file.
My take away
I'm really happy with the result. I know this is baby steps, but it was a lot of fun to use javascript to write text to a file on my own computer.
At first I was apprehensive about getting back into programming. I often feel that I'm just not smart enough to get it and actually be good enough to do meaningful programming work... but then once I get started I begin to enjoy it and gain confidence.
I believe that if I consistently practice and seek out help when I get stuck, that I'll progress and be building great apps before I know it. Consistency is key and Steemit is here to keep me on track as I have a schedule for writing about my progress.
My goal
The purpose for my learning programming (in addition to being able to build great apps) is so that I can work remotely. I'd like to live and work with my family without having to be tied down to one particular physical location. If you know of any remote work opportunities for junior developers, please let me know!
Thanks for reading!