How do programmers think




















Soon, you too will know them. Anton Spraul So, what should you do when you encounter a new problem? Here are the steps: 1. Understand Know exactly what is being asked. How to know when you understand a problem? When you can explain it in plain English. Most programmers know this feeling. Divide Pay attention. This is the most important step of all. Do not try to solve one big problem. You will cry. Instead, break it into sub-problems.

These sub-problems are much easier to solve. Once you solved every sub-problem, connect the dots. For a brand-new programmer, that can be a tough assignment, even though it only requires basic programming syntax. Instead of the third-highest number, what about finding the highest overall? Still too tough? What about finding the largest of just three numbers? Or the larger of two? Reduce the problem to the point where you know how to solve it and write the solution.

Then expand the problem slightly and rewrite the solution to match, and keep going until you are back where you started. Whether you're looking for a full-time programming job or want to learn simple coding steps to solve personal tech problems, these skills will help you get there. Keep learning and don't give up. With some hard work and persistence, you can definitely learn to program!

Want a simple way to start programming? Check out these Zapier guides for some of the easiest ways to program with almost no coding skills:. Build a chatbot in Slack using Zapier workflows, filters, and automations. Add bits of code to Zapier workflows with Code steps for a simple way to start using JavaScript in your work without developing a full program.

Want to do more in your spreadsheets? Our Google Sheets Script guide will help you build your first spreadsheet macros to format your spreadsheets and find data automatically. Pull it all together in our guide to coding your first landing page.

Mariya Diminsky is a Frontend Engineer at Zapier and traveler. In her pastime she loves to write fun adventure stories, eat delicious sushi, visit temples and hug kitty cats. Why Zapier? How Zapier works.

Product tour. Customer stories. Popular ways to use Zapier. Apps that work with Zapier. Explore Zapier by job role. Blog Read the Zapier blog for tips on productivity, automation, and growing your business. Experts Hire a Zapier Expert to help you improve processes and automate workflows.

Community Ask questions, share your knowledge, and get inspired by other Zapier users. Zapier University Video courses designed to help you become a better Zapier user. Webinars Learn about automation anytime, anywhere with our on-demand webinar library. Zapier for Teams Share and collaborate on work with your team in Zapier. Zapier for Companies Manage multiple teams with advanced administrative controls in Zapier. Search apps…. Log in. Sign up.

Home App Picks. All Articles. Best Apps. App of the day. App comparisons. Automation with Zapier. Automation inspiration. Zapier tutorials. Productivity tips. App tips. Is this problem a priority? These and much more questions can come up in the brain of a programmer.

Coming up with questions is what allows programmers to think of the different scenarios they need to cover, it allows them to architecture a solution that fits the problem, it allows them to do research in front of the many unknowns they have about the problem. After defining what the problem is, programmers wonder how big the problem is. The problem might involve different smaller problems that need to be tackled to get to the solution of the big problem.

When that is the case, programmers focus on one smaller problem at a time without forgetting about the main problem. Programmers like to think of incremental changes. Smaller problems are obstacles in the way of solving the main problem, which is the main objective, serving as a guide to not lose track of what needs to be fixed at the end of the day.

Hence, solving little problems, one by one, is the key to accomplish the big goal. Once programmers know exactly what they are going to solve, thinking about the first thing they will do is to run to the computer and start coding the solution that is not correct. Once again, there needs to be a level of certainty. Just as defining the problem, programmers strive to have a clear understanding of the solution.

It is possible to ideate solutions rather than implementing a solution. There will be scenarios where the problem is simple or common enough that programmers already know what solution to implement. It has taken three steps before the programmer has started coding the solution. All the heavy work is happening in the brain. After having gone through the analysis phases, programmers have already ideas in their brains. It is a matter of putting those ideas in different ways to come up with a solution.

Oftentimes, there could be different solutions and it is up to the programmer to choose the best solution. Multiple factors can influence the decision of choosing a solution. Programmers think about questions such as How long will it take to implement the solution? Have I solved this problem before? How scalable is the solution? Will the solution in code interact with multiple feature s in an application?

There is not always one perfect solution for one problem. The problem can have a different context and failing to understand whether the solution is ideal within a specific context can lead to not choosing the best solution. At this point, programmers know what the main problem is, the smaller problems as well as the solution. Not necessarily. It is correct to say programmers will start picking on the smaller problems and focusing on one single problem at a time.

We are talking about the questioning in itself as well as what to solve. Quite often, as well, they will actually not even add much to the discussion - in the process of getting all your thoughts out in the open, the solution can become clear.

People are notoriously bad at examining their own thought processes, but I'll give it a whirl. I test very high for visuo-spacial ability in IQ tests, medium-to-high for verbal skills, and moderate for mathematical skills explains my A-level Maths grade, I suppose. When it comes to describing these thoughts to others or clarifying them for myself , I use simple block diagrams or the object diagrams taken from Jacobson's Objectory method - NOT the over complex stuff that UML suggests.

I sometimes write textual descriptions of complex things, mostly as reminders to myself, but never use numbers or maths. Of course this is just me - I've worked with maths whizzes who were just as good or even better programmers than myself. This is actually less flip than it sounds. I always break down tasks into their components and then break these down further, and that doesn't just go for writing software! Much like Mark Pim U go through things sequentially.

I start by trying grasp the entire problem as it is, and then start to find patterns I can recognize, and do the same for them in a kind of recursive process, until I have a broken down solution I can implement and follow more easily. This is one of the rare times I would answer with "it just works. I don't have gimmicks, or devices to help me. Took me some time to learn PHP, but after that Javascript was much easier.

Once you tackle one thing, the next items become cumulatively-easier. Personally, I conduct an internal dialogue with myself 'OK so we need to loop over this list of integers. I'd be interested to see if any psychological research had been done on problem solving techniques.

When I'm attacking a real problem, I try and think of the most logical way of getting through it is. Then, when everything goes wrong as it usually does , I have to make hundreds of sidesteps to get things done. Just keep focusing on that end goal, that logical way and you'll get there.

Eventually though, it decides to work for me and I end up with a finished product that is usually nothing like I planned it out to be. As long as the customers are happy, I am! Personally, I see code in my head pictorally rather than textually like Neil Butterworth - it's a bit hard to describe since quoting STIV "there's no common frame of reference.

My main skill is identifying similarities between models or systems I already know about and the task at hand.



0コメント

  • 1000 / 1000