David Tran

console.log("Hello, world!");

It is often recommended that one writes a "hello world" program when learning a new programming language but the reasoning behind that endorsement is often neglected.

There are several, often unspoken, rationales to this undertaking:

  1. To confirm that the programming language is installed correctly.
  2. To learn the basic syntax of the language.
  3. To understand the environment that the program will execute on.
  4. To serve as a filler and give the assignee time to fiddle around on their phone (e.g., Professor Sprout).

This list is by no means exhaustive or absolute (besides the fourth item).

I believe the second point (learning the basic syntax of the language) is an inadequate incentive. Of course, the amount of language syntax one will be exposed to depends on the language but this exercise provides a rather limited and perhaps biased glimpse of the language.

On the other hand, I believe the other two points (#1 and #2) relating to the compilation and execution environment contain merit. It is essential to have the tools required for compilation or other build processes set up correctly. Furthermore, understanding the environment in which the program will execute is vital. A program's performance is likely environment dependent. For instance, what is the point of using jQuery to fade some text in when you are on a server environment? Especially when the text is empty, jQuery is not installed, and the server is down. :)

Speaking of JavaScript, the title of this post displays a simple JavaScript hello world program:

console.log("Hello, world!");

You read that right, a program. If you are using Chrome, open up the Chrome DevTools JavaScript Console and paste the aforementioned program (code) in there.

JavaScript and the Chrome Developer Tools can be topics for another post (actually, many posts).

Also, I never had a Professor Sprout. My apologies to any Professor Sprouts out there!

Introduction

Well, that was one long detour (or not depending on how you view it). At least I can say I did not fully cop out on my first post and just talk about myself. That's a win in my book! Cool, let's talk about myself now.

I graduated from the University of California, Irvine in 2016 as a Computer Engineering major.​ I am currently working as a software developer in a company that manufactures payment devices.

In my free time, I love to explore new technologies, travel, and read. I have also recently delve into the world of online businesses.​

If you are dying to know more about me (you are), visit the home page. As much as I would love to talk about myself all day, I will keep this section short and let those pages talk for themselves (i.e., I do not want to end up copying more text from those pages onto here).

And if you have not noticed it by now, I am quite sarcastic.

What Can You Expect?

I am a strong believer in consistency and therefore, you can expect a new post at least every two weeks (starting with this post). These biweekly posts will be technical with a focus on bits and JavaScript.

​Consider any extra posts between every other Sunday a gift from me to you! These additional posts will not have any constraints and can range from more technical topics, to online business ventures, to a vacation I recently enjoyed. My other "title" is human, after all. Contrary to what you may believe, I do more than spend my day staring at a screen. I have hobbies like programming, reading eBooks, and watching television. Oh, wait...

Ultimately, ​this is all subject to change as this is my blog and I can do what I want :). However, I will do my best to adhere to the schedule and guidelines.

You can also expect sarcastic remarks and subjectively humorous thoughts.

The World of Bits

​I am ashamed to say that I slept through most of my college courses. I do recall hearing about binary during those short lapses of consciousness but never thought much of it.

  • "Little-endian..."
  • "Base 2..."
  • "Taco salad for lunch..."

Most of the programming knowledge that I gained in college were high-level concepts but I also acquired the foundation for lower-level concepts, albeit shadowed by abstractions and thoughts of food.

I attribute my newfound passion for bits and other lower-level ideas to my current position. To reiterate, I develop software for a company that produces payment devices. The overarching idea in many of our projects is to provide value to customers. One measure is to make the customer's interaction with our devices as simple and as painless as possible. As such, we need to develop methods that abstracts communication with our devices, which happens at the bit-level, into something more relatable. I can go into more depth on general device communication in another post, but for now, this just means that I am required to be fairly competent with these kinds of low-level notions.

By no means do I assert that I am ​an expert, or even competent, on this topic of bits but I have developed an interest in the field and hope to share my thoughts and revelations with you as I learn more about this subject matter.

I saw a joke regarding binary the other day:

There are only 10 types of people in the world: Those who understand binary, and those who don’t.

Do not worry if it does not make sense, I will explain it in the next post so stay tuned!

Closing Thoughts

Thanks for sticking around to the end, I hope you enjoyed my not-so-short introductory post.​ I look forward to sharing my discoveries and delights with all of you!

​I would love to get some interaction going so feel free to leave a comment below.

​Have you ever learned something (technical or non-technical) that you did not think was important at the time but it ended up being indispensable to you later on?

Noticed a mistake in this post? Feel free to submit a pull request!