Software Development for Non-Techies — Peek Behind The Curtain

Mirza Leka
7 min readOct 29, 2021

--

Photo by Monica Silvestre from Pexels

A lot of my friends know that I work as a developer, but most of them don’t know what I do at work. And it’s not just them. Millions of people want to get into the IT industry but don’t know anything about it. Today I’ll try to reveal what is going on behind the curtain and answer the questions you may have.

Chapter 1: Code

So what do software developers do?
Build software — websites, video games, applications for Web, Mobile, Desktop, and other devices using computer code.

Why do we need software?
To simplify our lives and automate tedious tasks. Also to have fun and connect with people. To help us get informed and learn new things.

What is Computer Code?
Set of instructions you tell (write to) a computer using a certain syntax (language) to perform certain actions.

What do you actually write?
Depends on the language and file extension. If it’s a

  • programming language (set of instructions using English keywords like string, integer, array, object, function, class, if, else, while, for each, etc, to tell a computer how to store, display, modify, the data you are working with)
  • markup/markdown language (set of tags like in newspapers — heading, paragraph, image, bold, italic, line-break, footer, hashtag, etc, to display and position elements on UI)
  • query language (set of instructions for someone on how to save, modify or retrieve something — Select apples from fruits where color is red, take 5, and sort by size)

Which language to choose?
As a beginner, any language will do. Search for the most popular programming languages on Google. Pick one. Start with the basics.

Where do you write code?
Any text editor will do. The only thing that matters is the file extension. E.g. .jpg & .png are common picture types, while .doc is for word document.
For programming it’s the same thing, just different extensions like .html, .css, .js, .cs, .java, .py, .php, .sql, etc.

How do you run your code?
You need a compiler for your code — a program that will execute the code for the language you are using. In most cases, you will install it with the language on your computer. It really depends on the language.
If you are using HTML and you have access to the internet, which you are if you are reading this, double click on the HTML file and it will run in your browser.

Where do you start?
Start by saying,

Photo by Tzafrir Ben Ami from Medium

What can you build using code?
Anything you can come up with. For example:

  • Web/Desktop/Mobile App (Video Stream/Call, Banking, Shopping, Social Media, Online Clinic, Food Order, etc.)
  • Sofware that is used to build software (Video/Photo editing software, 3D Rendering programs, Text editors, Web Browsers, Anti-Virus, etc.)
  • A machine that can operate on its own based on the instructions developer gives it (CNC)
  • Self-Learning program (AI)
  • Video Game
  • Your own programming language
  • Some scale beam that measures weight or wind or whatever and forwards it to the server and displays data to clients

The possibilities are endless.

What is the data?
Data can be many things like user information, weather, items to purchase, etc. Basically, any information displayed on UI.

Where do you store your data?
Data is stored in the databases. Databases are structures similar to Excel spreadsheets that contain text fields of information, images, and other media types. Data is retrieved using the previously mentioned query language.

Photo by Pixabay from Pexels

Chapter 2: Traits

How can you improve?
Stay up to date with the language features and technologies you are using. Try to apply best practices.
Learn from people who work in the industry and share the same problems.

Where can you apply what you are learning?
Challenge yourself. Create something using the skills you have.
Test your skills by solving coding challenges at sites like HackerRank.

Why do developers need to learn so much?
First of all, learning to code is a long process. You need to learn the basic concepts very well, but as you go, you’ll find out there are certain coding practices that would be good to master and will help you to solve the same problems faster. Then there are also tools you can use as part of your language (library/framework) that will help you do specific things easier.

Additionally, you want to explore other subjects that are related to your main subject. By doing this you will have a greater picture of what you’re doing. Also nowadays, technology is changing very fast.

What are the good traits to have?

  • Be adaptable to any language or technology
  • Know a little bit about everything
  • Be creative
  • Master your craft
  • Be able to understand other people’s code
  • Stay humble
  • Be curious
  • Learn from your mistakes
  • Be confident, reliable & dedicated
Photo by Lukas from Pexels

Chapter 3: Working Professionally

Who do software developers work with?
It depends on the industry.
It could be Animators, Level Editors, Data Analysts, Designers, Quality Assurance Engineers, Network Engineers, DevOps Team, Program Architects, Program Managers, Business Analysts, etc.

What tools do you use in day-to-day work?

  • Text editor (Visual Studio Code, Rider, Eclipse, etc.)
  • Code versioning tool (Git)
  • Terminal/Command Line
  • Task manager (Jira, Asana, or similar tasks tracking services)
  • Communication tools (Slack, Microsoft Teams, Skype, Discord)

Then there are tools specific for roles, such as

  • Cloud Infrastructure (AWS, Azure DevOps, GCP, Digital Ocean, etc.)
  • Database App (SQL Server Management Studio, MongoDB Atlas, etc.)
  • UI, API, and Network testing tools (Devtools & Postman)
  • OpenGL, Game Engine (Unity, Unreal Engine, etc.)
  • Design Tools (Figma, Balsamiq, Draw.io, etc.)
  • etc.

How do you start designing the project?
Depends on the scale.
You start with pen and paper. Lay out all the plans and sketch your ideas. Decide what technologies you will be using and how different parts will be connected. Try to identify the leaps you might come across.

Make sure your idea is feasible. That can be done in a certain period, that you have the resources, and that you or the team is capable of delivering it. All of these things need to be taken into account.

Another thing you can do is take large features and divide them into smaller tasks (user stories) that you work on individually. Decide what are core features you need and do them first and then worry about less important tasks.

What does building a feature look like?
You start by analyzing the requirements and speaking to the reporter on the task. Then you implement it. Once you’re done your code gets reviewed (and fixed if needed). Then it’s sent to a QA to test that feature meets expectations.

If everything checks out, you’ll work on a different thing. Otherwise, your feature has bugs and you need to go back and fix them. Then comes another code review, other QA testing, until you get it right.

What is a bug?
Every developer’s nightmare.
It’s an anomaly, a feature that is broken or misbehaving or simply doesn’t follow the acceptance criteria.

What is Debugging?
Basically, the process of finding and resolving issues (bugs).

What does the day in the life of a Software Developer look like?
Investigating, analyzing, taking meetings on what needs to be done. Fixing problems. Creating new features.

When is work finished?
When you build something that is doing/looking like what is supposed to.
However, there is always room for improvement. From working functionality to cleaner codebase, testing, focus on security, speed, application size, scalability, etc.

How does it feel to work in IT?
Sometimes easy, sometimes stressful, tiresome, especially if you have a lot of squares to check, but all in all fun. Whether you are working alone or with a team, you really have a chance to show your creativity, to improve on existing skills, to share your opinions with other people in the industry.
And there is a really strong sense of satisfaction when you accomplish something that seemed tough or impossible.

Final words
To tie it up in a bow, software development (programming) is a superpower that allows you to do anything you want. A tool that can be used to create, entertain, solve problems and disrupt. It takes time to get started, but once you get the hang of it, you won’t be able to let it go.
It’s well paid and there are always new worlds to explore, skills to gain, and abilities to master.

Photo by Kammeran Gonzalez-Keola from Pexels

I hope this article brought you closer to the world of software engineering. If you are on the fence, let me know and I’ll give you a push to try it.
Also If you think there is something important that I missed feel free to tell me in the comment box.

If you like my work you can support me with a cup of coffee

Until next time!

--

--

Mirza Leka

Web Developer. DevOps Enthusiast. I share my experience with the rest of the world. Follow me on https://twitter.com/mirzaleka for news & updates #FreePalestine