Programming for Non-Programmers: How to Thrive in a Tech Startup
DZone caters to developers of all abilities. So, let's see what programming means for (currently) non-programmers and how they can succeed in a tech startup.
Join the DZone community and get the full member experience.Join For Free
As I'm writing this article, it's getting close to a year since I've joined Ably Realtime, a tech startup solving a deeply technical problem of enabling developers to add real-time functionality to their applications (Web, mobile and IoT).
Does my explanation of what the company I work for does make sense to you? Maybe not, but this is what I'll try and explain to you in my post, as a non-techie Marketeer in the developer's world — what is it about tech and programming and how can you as a non-tech person truly understand and thrive?
What Is Programming and Why Do I Care?
It all begins with a piece of code or the so-called process of designing and building software.
Computer programming, also known as coding, is simply a way of giving a set of instructions to be executed by a computer. A great way to explain this is building IKEA furniture — you get a manual with a set of instructions and tools on how you can build your newly purchased wardrobe, and you have to follow the steps to build your dream furniture no matter how complex this process might be. This set of instructions easily simulates what a piece of code does, i.e. a set of actions that are given to a computer, both easy to understand and execute upon.
Now that we know what programming code means, we need to understand that this is not written in a natural language like English or something that one might speak in, but rather, it is written in a certain 'programming language' that can easily be converted to bytes or 0s and 1s, which is what a computer understands.
Large software, in the likes of Windows or MacOS, consists of millions and millions of lines of code which makes programming very complex. It's usually crucial for software developers to go through a process of planning and building a design or architecture that will help understand how a code should be written, and how it will all work together.
Once a software developer has written a code the next step is testing, which allows to run the code and find out whether it actually works and in case it doesn't there is a need for debugging. This helps identify where there might be a bug or an issue that doesn't allow the code to run as intended and find a solution. From being around developers for the past year, I have to say this might be secretly where almost all developers spend most of their time.
The above process correlates very closely to what we as Marketers do every day, set a plan with a specific objective, run marketing campaigns and keep testing until you find what really works and learn from the failures.
Are you still wondering why programming is this important?
If programming didn't exist today there would be no way for us to connect to our friends on social media, order an Uber or simply do our jobs as Marketeers today — think anything that is digital or computer-driven uses programming as a way to execute certain actions and we are far beyond traditional marketing as we know it today thanks to that.
Programming Languages Dissected
A source code can be written in different programming languages, and trust me there are a lot of programming languages currently out there, and when I joined the tech world, I was overwhelmed to say the least.
I would lie if I say that I am an expert but what makes it easy is simplifying this by understanding back-end vs. front-end development, what is a framework and why developers actually need all of this.
Everything that happens behind what you see on your screen is considered back-end development. Let's take an example of purchasing a pair of shoes online - we go to a retailer website and choose a pair of shoes we'd like to buy and add our information for delivery and payment using an application. All this info is then shared and stored in a database that sits on a server that might be located anywhere in the world.
On the other hand, what we see and interact with on the retailer website as visitors is what belongs to front-end development.
Software developers tend to use a framework that represents a set of files, objects, code and folders that makes it much easier and faster to use the main programming languages.
Now let's see what are some of the key front-end development languages and how they are used:
Hyper Text Markup Language (HTML) can best be explained as a programming language that helps build the foundation of a website and define the content that a website will have - it's goal is not to make it pretty but be used as a base for the different blocks of content.
Cascading Style Sheets (CSS) is what helps make a website look sleek and allows to add appealing design and styling once the HTML building blocks have been defined. Think colors and images equal CSS.
Some of the key back-end development languages used are:
Java is usually considered to be one of the most used programming languages for building applications such as games, websites, or also quite popular Android Apps. Next time you are required to download or update Java, you will know what Java is, right? :)
PHP (Hypertext Preprocessor) is an open source programming language that is generally used to add a functionality to a website where HTML usually can't.
What Is an API? (For a Non-Techie)
Let's start with the basics — API stands for Application programming interface which is basically an intermediator or the engine that allows two applications to connect and send information between each other.
As an example, let's say you are in a restaurant and are looking at the menu to place your order. In this case, you act as a user that submits a request and the waiter acts as the API that connects your request to the kitchen that prepares your meal. This connectivity is what enables the ability to share data, information, and messages across users within devices allowing for an easy flow of data streams.
Compared to the previous explanation, a real-time API doesn't wait for a request to happen in order to provide a response but rather proactively pushes out updates once they become available. For example, if you are subscribed to a certain channel the real-time API will proactively send you a push notification once an update is made available rather than waiting on a request from your side.
Developer Community: The Secret Ingredients
Now that we have clarified some of the key concepts, it's time to talk about the people behind software and programming. Now more than ever is the age of developers, with communities and events for almost any programming language or tech platform you can think of. There are a growing number of startups that have been created to solve a specific tech use case, all by using computer software and programming and companies large and small are investing in tech of the future.
The age of the Developer community is primarily supported by the role of Developer Advocates, or latest term being Developer ��'s :-). These newly created roles and departments allow organizations to merge Marketing, Sales, Engineering and Community building as the key growth driver.
"You Can Code" and Key Takeaways
If all else fails you can always impress family and co-workers by "coding" on Hacker Typer. :-)
Published at DZone with permission of Deyan Atanasov, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.