This site is called “Deluxe Coding” and was intended to be a home for my thoughts about coding. As a developer, my skillset has grown beyond just coding. I am now working with full stack projects, cloud infrastructure, microservices, hosting, etc. As all these things pertain to the overall task of software development, I think it may be okay for me to discuss other aspects of technology in addition to software development.
Most of the technology that we use today involves at least some level of coding. One such product is the smartphone… essentially a full-blown computer that we carry around in our pockets or purses.
I was one of the fortunate ones to have purchased and received a brand-new Google Pixel 8 Pro along with the Pixel Watch 2 on October 11, 2023… one day before launch. I think I may write about these two devices as my first ever hardware review on this site.
Photo by Antonio Batinić: https://www.pexels.com/photo/black-screen-with-code-4164418/
More like, good riddance! OK, I have a bit of nostalgia for it because when I first started learning React, it was the go-to for setting up projects without going through the insanity of doing so manually. Unfortunately, this system was bloated and slow. Eventually the maintainers stopped updating it. Finally, the official React stopped endorsing this dormant product.
Today, when you visit the official React site, you will be introduced to several methods of starting a project in React – none of them are create-react-app. For barebones React, Vite has replaced CRA. Vite is super-fast and just the job done in no time. I love quickly spinning up a project in Vite.
Next JS and Remix are also featured as the way to go for React. These frameworks enable server-side rendering (SSR) for React applications. It looks like single page applications (SPA) are on their way out in favour of SSR. I am currently taking both Remix and Next JS courses and will report back once completed. One thing I can say is that routing seems to be much easier.
Web development is a fast-growing, ever-changing environment. If you don’t like to learn, this might not be for you. If you are like me, a madman who loves to learn, this field is incredible. There are so many changes that one can never be fully up to speed on everything…. but the beauty is that you don’t need to know everything. Just learn what you need to know to do the task at hand. As time goes by, you will continue to learn more things.
I recently purchased a few books on the C# programming language. I wanted to be as up-to-date as possible, so I tried to find books covering the latest version, which as of November 2022, is version 11. So far, I only found one book covering C# 11, written in a way that I actually like. The following books are currently my favorite books on this growing language.
Title
Released
C# Version
C# 11 and .NET 7 by Mark J. Price
November 2022
11
Real-World Implementation of C# Design Patterns by Bruce M. Van Horn II
September 2022
10
The C# Workshop by Jason Hales, Almantas Karpavicius, Mateus Viega
September 2022
10
Keeping up-to-date with software versions must be a difficult task as languages such as C# are updated annually. Fortunately the basics of computer programming languages don’t change too much if at all. The above-mentioned books in conjunction with the Microsoft documentation should be all I need to learn this language.
Often when I visit online forums and message boards, I see posts from other learners asking for book recommendations. They are usually met with the tired old response that they don’t need books and they should just watch YouTube videos and/or read the Microsoft/React/Node/etc. documentation.
What these people fail to realize is that some of us find great value in actually reading books. I use a variety of sources whenever I learn something. I watch YouTube videos, purchase Udemy courses, read official documentation, and read books. Books are especially great for going into detail and are very handy to read while doing mundane tasks such as commuting to work.
The abovementioned books may be purchased at Amazon or the publisher’s website, Packt Publishing.
As of C# version 9, we were able to finally say goodbye to the unnecessary ceremony boilerplate. One thing that I found confusing when first learning to write code in C# was the amount of code required to perform a simple task, you know, take the Hello World example for example:
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
That is a lot of fluff just to tell the system to display one line of text. As of C# version 9, we no longer need to include so much code for top-level statements. Our old friend, Hello World may now be written as:
using System;
Console.WriteLine("Hello World!");
Those of you familiar with C# probably already know this since we are now on version 11. But newbies like me are only now discovering these updates as most courses, books, and tutorials have yet to cover all the changes from every release.
The author and his friends watching tutorials on the big screen
There are thousands of software development tutorials on YouTube. It can be quite the task to find good tutorials or those which are more suited to your learning style. I would like to introduce you to what I consider to be the best YouTube channels with tutorials. In the meantime, please read why I consider these to be the very best.
These kind people have a way of explaining software concepts that ropes you in with interest. In addition to teaching how to write compelling software, they also tell us about the industry as a whole and their real-world experiences. Some of them also offer paid courses on Udemy and other platforms. I suggest purchasing the paid courses after getting a taste of their style from watching YouTube. The courses go much more in depth and teach you to build a wider variety of applications.
Whatever you do, don’t allow yourself to get trapped in “Tutorial Hell”. That term describes a state where students find themselves stuck in a revolving door of tutorials while lacking the ability to actually create there own projects.
The problem is that some people simply follow tutorials in order to complete the project being demonstrated. They are too focused on just following instead of learning and applying.
The best advice for taking tutorials is to start developing your own project alongside that of the tutorial. This will keep you more motivated and allow you to make real-world use of the concepts explained by these fantastic instructors.
Rather than list 7 specific tutorials, I would like to suggest their YouTube channels. The following channels contain some of the very best tutorials:
Photo by Antoni Shkraba: https://www.pexels.com/photo/person-using-black-laptop-computer-5475752/
The past couple of years have been hectic. I have learned a LOT and gained a lot of experience in programming. It seemed like every day I was asking myself, should I learn this? I think I’m gonna need to learn this. In the beginning, I felt overwhelmed. There is just too much to learn. New stacks, packages, frameworks, and languages seem to be appearing every day!
After much tinkering around, I have settled on a few that should enable me to keep building the projects that I am interested in. This is not to say that I have no plans to pick up new things as they arrive or are needed. The key word is needed. I have learned that the technologies we should focus on are those we need for the task or job at hand.
For the things I am working on, I decided to settle on the following technologies:
React
Next JS (React)
Remix (React)
TypeScript
C#
.Net
Node JS
MySQL
MongoDB
I recently began studying C# and am quite impressed. Coming from a JavaScript background, I found C# easy to grasp, at least syntactically. My main languages are now JavaScript, C#, and VBA. I quite dislike VBA but have to use it at work for only one particular legacy project. I have to maintain the project and am looking forward to its retirement from our firm.
Software development can be a bit overwhelming due to the sheer volume technologies and languages out there. In the end, we must decide what to learn based on what we need to create. For example, I love Kotlin. I think it is a fun language to code in, but I stopped studying it because although it may be used in multiple areas, it is still primarily used for Android mobile apps. I am not into developing mobile apps at this time.
Learn what interests you, but put your focus on what is needed for the task at hand. You are not expected to know everything. I would suggest deciding what kind of project you will be working on, then choosing the appropriate language, framework, stack, etc.
This post is not about the difference between a coder and a programmer. I have been using the term coding for the past few years but only now realized that I am more than a coder. My friend who is a well-established software engineer calls me a software developer.
Just the other day, after reading an article about the differences, I came to realize that I am now doing all sorts of things in addition to coding. I am setting up, configuring, and administering databases. Creating APIs. Managing website hosting. Updating Node packages. Trouble-shooting. Going crazy.
What got me interested in the wonderful world of software development in the first place was my love for writing logic and code. Little did I realize that a few years later, the act of writing logic and code would occupy maybe 25% of my time. The other 75% is in configuration, bug fixing, etc. As pesky, stressful, or downright annoying as bugs can be, there is great satisfaction in fixing them.
Maybe one day when I become successful, I can hire people to do all of the extra tasks while I focus on my true love: coding logic. On a plus side, doing everything myself has enabled me to broaden my skill set. I absolutely love learning and in this profession, I must learn things each and every day.
I have not been posting here as frequently as I would have liked. I have been very busy with work, school, programming, and managing infrastructure. Brighter days are ahead and I am looking forward to posting more content and eventually interacting with like-minded people who also love software development.
JavaScript sure does receive a lot of hate and love. I remember a time when mere mention of the name would draw scorn. Times sure have changed and JavaScript is now a major part of the development community.
My favourite thing about JavaScript is the ease in which you can practice code concepts and features simply by using a web browser. There is no need to use an IDE and then wait for a compiler before seeing results.
I often test code via web browser when trying to get a better understanding of code writing in complied languages. As a fairly new programmer, I have now realized the similarities between the different languages. People are correct when they state that if you understand the concepts of one language, it is not too difficult to adapt another.
JavaScript has similar syntax to Java which is part of the C-style syntax. It is an entirely different language, but understanding JavaScript helped me to pick up Java. Kotlin to me is an easier form of Java. I really like a lot of the conventions used in Kotlin. Lately I have been reviewing an older language that has fallen out of favour ages ago… Delphi.
Personally, from a purely code aesthetic viewpoint, I love how JavaScript and Kotlin appear. I also like Java and C, but Visual Basic and Delphi look awful to me. Most of my experience is with JavaScript and Visual Basic. I have studied a bit of Java and Kotlin and only recently began reviewing Delphi at work.
I find that I am now interested in learning TypeScript. As great as JavaScript may be, it would be even greater as a typed language. TypeScript has solved that problem and I am looking forward to coding with it. Unfortunately, I will not be able to test code via web browser as it needs to be compiled.
Am I the only one who finds the display of code artistic in a sense? May I dare say that some code simply looks beautiful? I cannot say this about any code I have seen in Visual Basic.
I keep falling deeper and deeper into coding madness. This week, I started to learn C#. As if coding in VBA, JavaScript, Java, and Kotlin weren’t enough. Thankfully, knowledge of one language makes acquiring other languages much more palatable. The concepts remain the same, but syntax may differ in places.
It’s actually quite fun and intellectually stimulating to dig into a new language. I particularly enjoy discovering the syntactic similarities between languages, as it helps reinforce my understanding of core programming concepts. Even though the languages may look different on the surface, underneath they share many fundamental building blocks.
We are finally retiring the use of VBA at our workplace after many years of use. VBA was only ever used for two small helper applications for our internal staff. For the past 4 years, I was the sole maintainer of that VBA code. While I am happy to see VBA go from our company, I must give it props for inspiring me to get back into programming after a long hiatus.
My journey back into VBA was born out of my love for making complex Excel spreadsheets using advanced functions and macros. A colleague introduced me to VBA which opened up many more features and functionality compared to Excel formulas alone.
Around that time, I was also asked to help update our aging company intranet site. I had not done any web development work in ages, so I was excited but also intimidated. Web development has changed so much since I last dabbled in HTML and CSS many years ago. The rise of JavaScript has made the web a totally different beast compared to the static sites of old.
To work on the new intranet, I had to start learning JavaScript from scratch. I took some online courses and tutorials and began building simple projects and apps for myself outside of work. Despite its many quirks, I fell in love with JavaScript. I particularly enjoy how quick and easy it is to just jump in and start coding without a heavy IDE. The instant feedback loop of writing, testing, and debugging JavaScript code is highly gratifying.
These days most of my coding time is spent working on React JS and Node JS. I have come to really enjoy using React to create fast, dynamic single page apps. Combining it with Node on the backend opens the door to full stack JavaScript web development. I was recently introduced to Next.js, a popular React framework, so I enrolled in a Udemy course to level up on that.
Next.js provides an opinionated structure for building server-rendered React apps, which helps improve performance and SEO. The automatic code splitting and easy routing are also nice features that remove some typical pain points when working with React. I’m excited to build a couple projects using Next after I finish the course.
Last week, I decided to dive into learning C# since we use it extensively at my job. So far I am really liking the language – its syntax feels comfortable coming from Java and JavaScript. I flew through an introductory tutorial and also bought a highly-rated Udemy course to study.
Despite dabbling across so many languages these days, JavaScript remains my core focus, with C# being a close second. I don’t plan on jumping around randomly to new languages, but rather aim to go deeper on those two for the foreseeable future.
Again, I apologize for not posting super often lately. I do plan to write more as interesting topics arise in my self-learning journey. Wishing you well, and happy coding!
I am sorry it has been a while since I last posted. I sort of drifted away from this blog while focusing on other projects. I had a visitor who inspired me to keep going. I will be writing some articles about APIs very soon.
Data is such an important part of our lives. As developers, we rely on data to provide services and features with our applications. Front-end development is fun as we get to mess around with the visual appearance of our web applications. Recently I got into back-end development because without it, we would be severely limited in the types of applications we may provide.
Full stack development is quite complex and can be intimidating. One thing that infuriated me about the online community of tutorials is the consistent promotion of creating full-stack applications hosted via the free tier of services such as Heroku or Digital Ocean.
I have asked a few people how to host full stack Node applications on my own shared hosting account and was greeted with no responses. Not a single person replied. I searched and searched online and found one tutorial after another promoting hosting on third-party free services.
The free tier of these services is definitely not suitable for production. Visitors must wait for the service or container to start up before the data may be sent to the application. The paid tiers are quite expensive.
After a lot of research and testing, I finally learned how to host full-stack applications on shared hosting with Node JS. I will be sharing these tips in upcoming posts.