What does a coder use when they make a program from scratch?

860 views

I don’t understand what the starting point is. Do they just open a word document and start creating lines of code or is there some type of program that’s specifically used?

In: 1291

25 Answers

Anonymous 0 Comments

From my perspective as a software engineer, all of “my” software stated as an **idea**. A thought, a poem to be made into a pattern that is reproducible.

In short, the guy who pays you and your team will say that he (or someone he paid) had a “thought” on how to do something, and the very first part of the program is to document this “thought” and converting it into bits and pieces of reality, that is, **things** that can be done in logic that can be executed in hardware (the computer, or the machine, or the process) that can eventually be made to represent the thought or idea in a way acceptable to the guy who pays you and your team money.

SOMETIMES the very first part of the “program” is a short quick and dirty piece of software that can simulate the response the guy or guys that pay you. But in larger companies, it it almost always a DOCUMENT in some word processing type that in more sophisticated systems this DOCUMENT has links to other DOCUMENTS that are used to test to see if the “thought” is based in any sort of reality (sometimes, it is very much NOT based in reality) and is “valid”.

Those initial DOCUMENTS are linked with each other so that we have a way to test the software and verify the software – It is not always easy, because maybe the “thought” is something many programmers don’t understand by themselves.

Other DOCUMENTS are the list of tools and plans on how to implement the “thought” – the software tools, the types of hardware, the look and feel, and all of these DOCUMENTS will be reviewed by the idea guys (and yes, they make even more DOCUMENTS from the reviews) to make sure the “ideas” are represented are what are expected.

I’d recommend that even if you are programming your own ideas, that you get in the habit of starting with a document, even if its a crude representation of your thoughts and ideas, it will help you later. For example, it will give you experience in representing someone else’s ideas as a document.

True story: I was once in a meeting with 2 of the best programmers in Silicon Valley, discussing upcoming work – planning on making new documents to kick off a new project. We were finishing, when the “guy who pays everybody” walked in and sat down. He was an “idea guy”, some of his ideas were very valid and profitable. Some were not. But he sat there until I ended the meeting when he took his pipe out of the mouth and gestured over the table, to no one in particular, and stated, “There is one MAJOR problem with your software!”

Without prompting, both the programmers sat back down and opened up their notes. We sat and waited, “idea guy” had put his pipe back in his mouth and remained still. So I gently prompted him to share this “MAJOR problem” with the team, and he pulled the pipe from his mouth, waved it over the table and said “Whenever the power is off, your software loses control!”

Many thoughts went through my mind as I considered a reply. Why don’t I like the smell of roses? Can a urinal be redesigned as a standing toilet? Can gravitational lensing focus a beam of particles and photons and destroy the Earth? Which night class would give me the best chance to meet girls?

While I pondered for those very long seconds, neither of those programmers burst out in hysterical laughter. The both behaved like true professionals, dropping their heads down, one, writing precise lines in bundles of 4 and then crossing them out with a diagonal. The other was studiously writing loops over and over until the edge of the page, the starting a new line of loops. But they were using their documentation skills to forestall the most appropriate response until I came up with a proposal to create a battery backup for all of our desktop and embedded systems to extend the period before the inevitable “software failure due to power loss” became a problem.

However, had this “idea” could have been reviewed in a document form BEFORE publicizing it to others, then a lot of tongues would have been spared such severe bites.

In short, if you want to create a complete program from scratch, I recommend you first and foremost learn how to DOCUMENT the process first. The document will help you to work with others in the future.

Anonymous 0 Comments

Basically, yes. Except you don’t use Word but Notepad (if you’re using Windows) or any other basic text editor. There are special programs and editors you can use for programming (called IDEs or Integrated Development Environments) that have all kinds of fancy tools that you might find useful once you start developing your skills and a preference for how you like to work, but notepad is perfectly fine for starters. I use a basic text editor too. I’ve tried various IDEs but I’ve found each of them to a pain in different ways so I’ve stuck with Kate (it’s a Notepad-on-steroids for Linux, it has a whole bunch of tools and features for different programming languages that can be enabled).

Anonymous 0 Comments

A lot of bad answers here, especially the top one where they claim HTML is a programming language.

> some type of program that’s specifically used?

This is the part that everyone is ignoring, there are specialized programs that are required. Yeah anyone can write code, in a text editor but that doesn’t mean that is all you need to program. You will also need a program that can convert the code into machine readable instructions. These are commonly known as compilers or interpreters depending on the language. This is where we will definitely leave the realm of ELI5. But yes you can write code in any text editor, but no that is not all you need to run your code. The “text editors” that are commonly used by programmers are actually called Integrated Development Environments (IDE). These are specialized tools to assist in programming, a very popular one is VS Code.

If you are interested in learning how to program, you can go to /r/learnprogramming ignore literally every post in there but just go to the sidebar and read some of the getting started material. Anyone can program, not everyone has what it takes to do it for a living but anyone can learn how to program.

Anonymous 0 Comments

And IDE is probably what you want as beginner. But for completeness’s sake I have given a full explanation.

There’s 2 pieces here. You generally have lines of code in some programming language. They can be written in most text editors. Then you have either a compiler or an interpreter. A compiler will take the text file(s) and convert it to a machine executable program (.exe if you are on windows) which you can then run or a library for another program to reference. And in the case of the interpreter, it simple executes the code directly.

So you can work either with these things as separate pieces, OR you can combine all of them into an Integrated Development Environment. Aka an IDE. Visual Studio is an IDE because it allows to you edit the text files, and then compile and run the program all from one single place. There are other IDE’s such as PyCharm for example. Many of InteliJ’s Products are IDE’s for various programming languages. Visual Studio Code is a text editor that has a plugin system and if you add the right plugins, it can transform into an IDE for your favorite programming language.

Anonymous 0 Comments

You can write a program pretty much anywhere, but you need it to run in an **environment** that understands the language and is capable of executing the commands! All an application/program is at the end of the day is a set of instructions telling the computer how to react in specific situations. Practically, most code is written in Integrated Development Environments (IDE’s) which are apps specifically designed to help improve a programmer’s experience writing in a given language.