Image for post
Image for post

October is a significant month for programming. It is a time which the community — as a whole — unites in celebration of Open-source Software. An open-source project is a repository of source code which is publicly released under a specific licensing agreement, allowing developers the opportunity to contribute. In 2014, the DigitalOcean platform organized the first ever month long event —Hacktober Fest — to help inspire people to get involved.

Supporting open-source projects is important in various ways. It could be a beneficial approach for new developers looking to participate and garner experience working on a live production. It’s also useful for companies to openly source their code base as a means of interaction among a global community to help solve current software issues and help improve upon quality of product. …


Image for post
Image for post
courtesy of ashleymcnamara

Managing dependencies is a point of concern for most developers. When Go was first released, there wasn’t a package management system built-in to facilitate the process. As a result, the community built 3rd party packages to make up for not having one global solution available. As great a contribution as these were, it created a variety of issues.

One problem in particular was that a single project was liable to use multiple dependency management systems by different teams across the stack which ultimately resulted in chaos from within the repository. With the release of versions 1.11 and 1.12, Go provided a built-in solution for handling dependencies with the addition of modules. A Go module is a collection of packages stored in a repository with a go.mod


Mac Edition

Image for post
Image for post
courtesy of ashleymcnamara

Environment variables store a PATH that points to a specific location on your local machine. In order to process a program in Go, there are two environment variables needed to house the compilation of Go source code. These variables are referred to as GOPATH and GOROOT. Each one stores the location of a PATH needed for the compiler to execute Go source code in a conventional manner.

Navigating these environment variables takes some configuration. You must define the PATH setting in order for them to work properly. …


Image for post
Image for post

Learning a programming language takes research. Each one is merely a tool used to perform a specific task and different languages offer benefits over others which makes it important to know exactly what you want to achieve before choosing an option.

Artificial Intelligence is recommended with Python because of built-in libraries like NumPy and Pandas that offer functionality for A.I. development out of the box. If you’re working with Embedded Systems, more than likely you would use a language like C due to its power and low-level access.

Now don’t get me wrong — depending on the community — you can accomplish almost anything nowadays, no matter the language chosen. There are a number of package managers composed of libraries — created by maintainers and community members — that will get the job done but to fully optimize your project, selecting the right language makes for a stronger architecture. …


Image for post
Image for post
courtesy of ashleymcnamara

Google Engineers — Rob Pike, Robert Griesemer and Ken Thompson — began the process of designing a statically typed programming language, in 2007, with the goal of creating a simplistic syntax to securely take advantage of multi-core processors. It was designed as a solution for unnecessary complexities in other languages — C++ and Java — combining favorable features of C, Pascal, Modula and Oberon including aspects of Tony Hoare’s CSP, with the intent of efficient compilation, efficient execution and ease of programming all in one syntax. …


Image for post
Image for post

Properties in React are immutable, read-only objects used to pass down data from a parent to its child component. Props facilitate the transfer of a piece of state or functionality you wish to make accessible to a sub component down the hierarchy. Syntactically, props resemble the way attributes are written in HTML. The difference being that the value of a prop is assigned to a JSX tag.

React is a component-based UI library that uses props as a means of directing data to an apportioned section of the application. It may be helpful to think of a prop like a mailbox. In the real-world, a mailbox is a container that stores physical structures in the form envelopes and packages. Envelopes hold information like letters, bills or if you’re lucky, money. …


The Document Object Model

Image for post
Image for post
courtesy of github.com

Development is all about interaction. Two — or more — entities communicating a cause and effect, no different from a common conversation. In the real world, humans use a variety of interfaces as open lines of communication. They text message, email and every now and again verbally converse. Developers are not human. In the matrix, they use programming interfaces to build those open lines of communication. Technology is the interface where humans and developers interact.

One specific technology used as an interface for humans and developers to interact are web browsers. Humans provide information from their browser of choice and developers respond with data through a standard protocol. Life was not always so simple. The short version takes place in the late 1990’s — when internet was dial-up and pay phones made coin — a Battle of the Browsers was fought between Netscape Communications’ Navigator and Microsoft’s Internet Explorer. …


Image for post
Image for post

A n Application Programming Interface defines the interaction between multiple software intermediaries, or so says Wikipedia. For someone with experience in building or interacting with APIs this is a precise description, although it may come across rather vague to anyone who is just now beginning to learn. This is because an API can take shape in different forms, but at its core is nothing more than the intersection of where one system communicates with data from another system.

Picture this. You’ve had a tough week. Normally you would concede to sitting on the couch and eating ice cream while binging shows that no one else watches, but not tonight. Tonight is different. You decide to gather an ensemble of co-workers, lower all inhibitions and throw caution to the wind by toasting the town. At the moment, you are having the time of your life. Snapping pictures at an unprecedented rate to commemorate this auspicious occasion. …


Image for post
Image for post

One of the first analogies described to me about programming compared it to the likes of solving a puzzle. If you already understand the inner workings of building software or web applications, then you might agree with that sentiment. If you’re still trying to make sense of it all, you may be thinking, ’Well, what kind of puzzle?’ At first glance, it kind of resembles a crossword. Syntactically placed characters lined up in rows. Then one day, you find yourself knee deep in code and it starts to feel more like a word search. Scavenging for bug fixes caused by incorrect method calls and grammatical errors. If you still haven’t the slightest indication as to what I’m referring to, my guess is that programming looks more like a Rubik’s Cube and you can’t seem to make any which way of it. Alas, I’ve come forth today baring response to such a puzzling question. …


Image for post
Image for post

If you’re reading this, frustration levels are probably at an all time high stemming from a multitude of error messages displayed by the flawed logic in your controller. All you’re trying to do is send your users to the correct location of your application when they make a specific request. You may be thinking, ‘what’s the difference between using a redirect or an erb command to handle the routing of a view page?’

The answer seems simple. It’s binary after all. 1 or 0. True or False. On or Off. However, in order to determine which approach to take, you must first understand how the mechanics of redirecting to another route and rendering an erb file differentiate from one another. …

About

Chris Kakos

Full Stack Software Engineer • Writer • Computer Science undergrad

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store