ccStack - Software Solution Components
- Operating System: Linux - Linux is an open-source multitasking operating system designed for multiple users.
- Web Server Software: ExpressJS - ExpressJS is a framework used to create NodeJS servers.
- Database: PostgreSQL - Postgres is a dynamic open-source relational database management system
Why learn NodeJS?
Learning NodeJS will increase your marketability and help you write better code.
NodeJS made asynchronous software patterns stylish. There are even asynchronous libraries for classical synchronous languages, such as PHP. NodeJS will look great on your resume and help you answer asynchronous interview questions.
Even if you continue writing code synchronously, asynchronous practice will make you more aware of possible inefficiencies. There is inefficient code that will run without errors synchronously but will cause errors in an asynchronous environment. NodeJS forces you to take a more in-depth look at time-intensive processes.
Just starting your computer science journey?
NodeJS is also new! That gives newbs an earlier chance at higher-level positions. Traditional languages, like PHP and C#, have experts with 20+ years of experience. No one has 20 years of NodeJS experience.
Architecting a software application and interacting with the database using a server-side language is entirely different than most front-end programming. Still, a lot of companies think its the same thing.
will make you a Node superstar!
Escaping Web Development?
There are more web development jobs than any other type of programming. That means a lot of entry-level opportunities! Staring out with web development is a great way to get your foot in the door.
There is nothing wrong with web development. It is enjoyable! But us scholars and adventures like to try new things!
NodeJS supports more than just web applications. A lot of organizations are experimenting with different types of NodeJS applications, generating a lot of unique employment opportunities for NodeJS developers.
Here are some examples of noteable NodeJS applications
Overall Number of Jobs?
Even though Node's demand is growing, there are still a lot more jobs in PHP and C#. LAMP stack
jobs are the most plentiful.
In my area, South Florida, most of the NodeJS jobs are coding boot camp kind of full-stack: Angular/React + noSQL/SQL + NodeJS + Express. Generally, they want to see completed projects and don't care much about years of experience. However, this isn't the case in everyone's neighborhood.
Search "NodeJS" in your local job ads (or job ads in areas where you'd like to live) to preview the demand. Be realistic, but also take Node's growth rate into account.
ExpressJS is a NodeJS framework used to write server code. One of the powers NodeJS gives you is the power to write your own server code. ExpressJS makes it a little easier to write a web server and is the job market standard.
Most NodeJS employment opportunities will also want you to know ExpressJS. If you write server code with vanilla NodeJS (or even another server framework), you will be able to write an Express server. Unfortunately, recruiters and HR professionals don't know that. They want to see this bullet point!
Bullet points aside, the main reason I use Express is that everyone else is doing it, and I didn't already have a preference.
PostgreSQL is a highly sophisticated open-source relational database management system. It's functionality far surpasses that of MySQL.
MySQL is the most popular open-source relational database management system. Postgres and MySQL both use SQL (structured query language).
The advantage of using PostgreSQL is its power and functionality. Regardless of the SQL database management system, your experience with Postgres will transfer.
Like NodeJS, PostgreSQL is experiencing high growth. PostgreSQL does not dominate the market place, but its robust set of features will prepare you to program any SQL database management system. PostgreSQL is known as the open-source Oracle SQL.
With SQL, employers don't tend to care if you have used the same database management system. "It's all SQL." However, they will care if you have programmed the desired functionality.
MySQL and PostgreSQL are the major open-source SQL options. MySQL will prepare you adequately for website development. But enterprise web applications tend to require a more robust database management system. PostgreSQL is sophisticated enough to meet the needs of just about any organization. Even if that organization uses a different DMS, your Postgres experience will still count!
Commander Candy's Distro Choice - Ubuntu
Linux expertise makes programmers and systems administrators more marketable. Your computer's operating system isn't where the experience counts. Your actual device can have any GUI (or server) Operating System. All you need is access to a Linux command line.
I have tutorials to Setup Oracle VirtualBox with Ubuntu Server
Ubuntu is my personal favorite, so all my tutorials are done in an Ubuntu environment. If you have another preference, use it.
OS does not affect programming tutorials. However, setup and administration do differ between OS. The Linux commands used in Coding Commander's tutorials should work on any Ubuntu or Debian distro.
Learn NodeJS Asynchronous Design
Asynchronous programming gives programmers more power over resource allocation and general application efficiency. But with great power comes great responsibility. Coding Commanders has comprehensive tutorials on NodeJS Asynchronous code: NodeJS + Express + Ubuntu + PostgreSQL