How to think like a programmer? an introduction to creative problem solving for Python, Java, c#, c++, dart and JavaScript developers. When you start learning to code from scratch as a totally complete beginner. You will be very confused in the first place whiles learning how to program and think like a computer.
We all know that computers don’t speak plain English as we humans do. They only understand On and Off, so learning to think and speak their language is completely new thing.
listen to what one python developer said when he started his journey.
“When I started coding, I began experiencing frequent headache after learning something new. Although I didn’t have a computer science degree and never did, I make my mind to enroll in a college course. I got interested when a friend said something about web development in a middle of a conversation. I later made a little research about how programmers think? And how to start thinking like a programmer? It wasn’t easy even after a little research, I had to ask others for tech support whenever I encounter challenges.”
Well, is not all of us who experienced frequent headache in the beginning. But what I know for sure is that, it very confusing when getting started as a beginner especially when you don’t know how to type.
You will feel overwhelmed, frustrated and confused, that’s exactly how we all got started. So, if you’re finding yourself in such situation, just remember that it the beginning of the journey and signs of good progress. Don’t be bored, every professional programmer started from scratch and made it to the top through continuous learning. And keep in mind that to be an expert, you first need to be a beginner.
What I have learnt is that whether you want to be a mobile app developer, website designer, software architecture or software engineer. The first step to become a good programmer is to think and solve problem as one, and does exactly what am going to teach you.
Check also: How to make money coding for beginners.
Before, you can make good use of the hacks am going to show you, you first need to understand…
How programmers think?
Table of Contents
The top challenge all developers face is not about learning a particular programming language syntax – it’s about learning to creatively solve problems so that you can build a great app that will make others life easy.
In short, developers think in algorithms. In every challenge they face, they take their time and write an algorithm for it. The challenge is being able to think and write an algorithm for the given problem. How do they do it exactly? Most of the good coders I know always have two IDE opened on their laptop, one for writing framework codes and the other for writing algorithms in the language that was built on top of the framework.
That’s so confusing what exactly do I mean? For example, we all know that flutter is built on top of dart. So, what they do is that, they will have a separate IDE to write flutter and dart code, and they will also have another IDE opened for writing algorithms with dart only. Truly I say, you need to be good with data structures & algorithms to replicate this idea.
This is where my problem was in the beginning, I never worried myself of data structures and algorithms. So, all I was doing was writing codes without any logic behind, and in fact I wasn’t just writing, I was copying and pasting codes from stack-overflow.
The whole thinking process is on how the algorithm will execute in order to provide a solution for the problem. The process will surely include accepting input and displaying it on the console or the GUI (graphical user interface).
Check also: Laravel passport API authentication
You remember I promised to make you a great problem solver, right?
Well, that’s the first tip, the second most important thing you need to master to get a Dev job is…
8 Ways to Become a Creative Problem-Solver-in Programming and Life?
Do you want to know what one great engineer said? “Everyone in this country should learn to program a computer because it teaches you how to think.” — Steve Jobs. This is one of the popular well-known quotes in software engineering and it’s indeed true. Learning to program computers will teach you how to think and solve real-life problems.
Coding is not the only job that requires logical thinking. Although it all about providing solutions to problems but remember every job requires the use of the brain. We all have different ways of approaching challenges in life and therefore the need to think and come up with ideas is a must in all careers. Whiles others rely on books as their source of knowledge, software engineers including web and mobile app developers use logical reasoning to improve on their problem-solving skills.
Check Also: Angular 10 coding tutorials for beginners
The mindset of a developer is not that different from a scientist. And you will surely agree with me that these two individuals are the ones shaping the world. There’s no doubts about it and you might be asking yourself…
How can I become a creative problem-solver?
1. Don’t Give Up in Learning New Skills
When you first get into computers, you may come across great dev guys that knows so much about tech. And you might think such person acquired his or her knowledge in 10 years of consistent practice. This can scare you of in thinking that it will require you the same years to learn and become good with computers. Although that might be true depending on how fast you understand things. But remember, “it doesn’t matter the number of programming languages you know. What you do with the skill you have is what matters.”
And as the saying goes “if you have thousand resources and don’t know how to use any, it worthless.” There’s a lot of coding terms that you might feel intimated by when you start to learn. Due to lack of context some challenges may seem solvable and it may cause you to spend hours trying to fix bugs. But don’t give up on any of these pitfalls, they did occur to all top creative thinkers today.
Check Also: How to install Angular 10 CLI
2. Remember Your Goals and Why You Started
Why did you decided to learn to code? You decided in the first place that you want to become a computer programmer, and yes you have done your possible best to understood some programming languages and frameworks. If you constantly remember why, you made this choice and your goals, it will keep you motivated when you feel like giving up.
Your career as software engineer or web developer is indeed a brain work that requires thinking. Maybe your first programming language is JavaScript or Java. But the truth is regardless of what language you use, you still have to reason or think to come up with solution to problems. Frontend developers who focus more on website design and functionalities together with UI/UX designers also does the same.
So, you have to know that this career is 100% brain work. But you can take advantage of learning from most experienced developers you have known. Don’t just copy them, study how they think and come up with solutions to problems. Since coding can be learned through different sources like coding schools, online tutorials, boot-camps, meetups and University, the idea for solving particular problem can never be the same.
Check also: How to validate an email address in JavaScript
3. Figure Out How to Solve Any Coding Challenge Yourself
The greatest skill you need to develop throughout your career is to learn how to research and provide answers to questions yourself. This is because is not all the problems that you have to run to your senior developer for help. There are petty challenges that you can easily find answers to in online coding communities.
Your first move toward any challenge is to try and fix it yourself. This will help train your mind to stay creative and help shape your career. And never feel disappointed of yourself when you’re unable to solve problems for long. Albert Einstein once said “It’s not that I’m so smart, it’s just that I stay with problems longer”.
4. Understand the problem
To be able to fix a bug or solve a particular problem, you first need to understand and know why the problem exist. If you don’t know what is causing a bug or error in your code, you will think the problem is hard or is not solvable. It’s not, the real issue is that you do not understand the problem, and if you don’t how will you be able to fix it?
3 Quick creative guides to problem solving:
- When you face any challenge, try and explain it to yourself in plain English.
- When facing some difficulty, write an algorithm, diagram or a logic on paper to a particular problem.
- Learn to Google easy methods to resolve bugs.
5. Practice Creative Thinking Coding Exercise.
There’s a lot of coding interview questions and answers online that you can practice them on yourself. Practicing regularly will improve your thinking ability and your brain functionality. The goal is to try every problem you will get your hands on but don’t expect to be a master problem-solver in just one or two weeks. Problem-solving is a process that requires hard work and consistent practice to be great at it.
All the guides that I have shown you, this is the top skill that if you acquire will make you more creative and cleverer than most developers. There are so many sources you can practice programming skills including video games, Sudoku, math problems, micro problem-solving games, and hackathons.
Check also: JavaScript VS Python: Real-World Application Difference (2021)
Having a career in computer programming can teach you many things that help you to decompose, model and solve any kind of problem.
6. Plan Your solutions
When you finally become good at one or two programming languages, you will sometimes quickly dive into solving bugs without planning or drawing algorithms. Sometimes the luck will be on your favor and you will be able to get things on your way, but don’t make this your habit.
To become good at problem solving, you really have to learn how to use your fingers to write down solutions. As one writer said “In the digital world, don’t forget to use your digit.” Grabbing a pen and paper and allowing your brain to think and analyze challenges will help it to process information and come up with better ideas.
For example, to calculate the sum of two numbers, you can start with basic algorithm like:
- Display a message to the user “Enter first and second number”
- Add the first and second number
- Display the result to the user
7. Be Persistent in Analyzing Challenges
To become great in any field, you need to learn to be persistent when problems arise. Coding can be very annoying especially when you start to learn a new language. Sometimes you may feel so drained and exhausted, this is the moment you need to stay strong and keep moving. The key is to push yourself all the time beyond your limit than you always do.
You simply have to know that programming is an uncomfortable career. Sometimes you have to go sleepless night to get some tasks done that will strengthen your character and help you grow as an individual. The more you stay persistent in learning and coming up with new ideas, the faster you become good at your craft.
Check also: Is JavaScript better than Jquery?
8. Ask Help in Coding communities
If you really want to know how to become a good problem solver, learn not to depend on yourself all the time. Although it a good practice to try and figure out how things work all by yourself. But you need to known when it enough, especially when you’re on a dead-line. A well experienced programmer is someone who analyzes both ways before crossing a street.
You need to be aware of when it necessary to ask for a help from someone. This is something we all do so don’t feel shy of it particularly if you’re a beginner. If you work in an organization where there’s senior web and mobile app developers, you can start spying on them from today. You do notice that when their facing challenges, they do spend an hour or a day trying to come up with solution by themselves. And you will also notice that they have a circle of top developers they also seek help from “A.K.A coding communities.”
Check also: JavaScript vs Java programming language – which is better?
Its well known that good learners are the ones that make mistakes, ask for help and apply what they learn. Because, does it really make sense to be hoping to solve a particular problem all by yourself when you have already wasted a month on it? It doesn’t, what you need to do is to approach someone with the issue. If you’re already in any coding community, then you might find yourself of copying and pasting codes. Although this will definitely fix most of your bugs and keep you moving but it won’t teach you anything. What you should be doing rather is to try and understand the logic, concept or what the code does. This will help you to improve and become good at your craft, because no one is born with binary brain, we all learn from others.
How to think like a computer programmer: Learning to Code?
How do programmers think? How do developers come with ideas to solve real-life problems with computers? This is a question that most non-tech people ask. When I first head of web development I thought there was someone sitting In-front of the PC responding to all the request we make to websites. I didn’t know anything about servers and how they work until I got into it myself. How computers process information and respond to users’ input is really amazing when compared to the human brain. Computers does most of our thinking work for us but the truth is that they don’t think by themselves, programmers do the thinking.
There’s many challenges in coding and is not only about learning a language syntax. The hardest part is to be able to build something great by creatively coming up with solution to problems. Most people spend years on books learning to think like programmers. And often you will find them repeatedly implementing the concept of recursion, classes, pointers, encapsulation and polymorphism that they have learnt some years ago. The key is that almost all coding concept being thought by computer science professionals and boot-camp instructors are the same. But their implementation is not exactly the same. For example, if you assign 5 developers a project to find the perimeter of a running truck. You will notice in the source code of all the developers that it follows the same concept but code difference. That’s because even though all 5 developers know the same language, their thinking is not the same. And one may be a very good technical problem-solver and complex analyzer than the rest.
Apply the following methods and you will start thinking like a programmer:
1. Make the Task/Problem Work
Your goal is to make every complex task or challenge work even when you don’t know how. No solution is inferior, if it works is worth it. Sometimes you will feel so scared of taking big projects due to lack of skills or experience. But you really don’t have to be worried of taking such project, the key is to get the project and make it work. If you find a solution to a problem, implements it and gradually improve on it, Rome wasn’t built in a day my friend.
As long as you don’t stop learning, you will soon know the best design pattern or the architecture that will perfectly fit challenges. So, develop any software request you may encounter and never worry of your inexperience. The good side is that there is no cost of materials in creating a software if you already have a PC or laptop. So, you don’t have to be bothered of applying inferior solutions to problems if it works. If only you manage to develop the software to work as required, you will not bear any cost. The important side is to be able to assemble different components or features together and make it work.
Check also: Free android apps development for beginners
Is applying any dummy solution that will come to your mind exactly how programmers think? The answer is yes, what we do is that…
We first check to see if we have encountered such problem before. If yes, we implement the same solution that was applied previously. But if we haven’t faced such challenge before, we first research to see if there is solution online somewhere. You can also do the same, when you realize you can’t tackle a particular issue, kindly ask your co-developers or friends for help.
If you’re a beginner who hasn’t done any project, you can take advantage of Dev video games. Most games are programmed to teach you how to think and come-up with solutions yourself. Although you will not find video games for every real-life project but it will train your mind. If you prefer reading, there is so many books that you can download the PDF copy online. Just practice any of the hacks I have shown you consistently for a month and you will see how it will improve your skills. Always remember to apply any small lesson you will learn in a live project.
2. Refrain your thinking about challenges or impossible projects
To quickly improve the level of your experience and become a successful programmer, you have to take advantage of big projects and see it as an opportunity to learn and grow. Am talking about highly-challenging or difficult projects that requires deep thinking. Trust me, if you consistently think of getting stuck due to your level of experience and fear, you will never tackle those impossible projects that will help you grow.
I personally learn new things when I successfully complete a project I haven’t tackled before. For example, I started my career as a freelance web developer. And the truth is I didn’t know anything about software architectures or design patterns. But thankfully some few months later, I was invited by a friend to contribute to an open-source software he has been working on. I cloned the project repository and runes it on a local server and everything was working perfectly. It was time for me to explore the source code and add some new features. I didn’t see the code structure I was expecting. it was following the MVC (Model View Controller) architecture and I didn’t know anything about that. So, I chatted with my friend and he took me though how that architecture works. That very day I understood the concept of using models, controllers and views. The lesson is to not give up on impossible task, if you can’t solve a particular issue, simply ask someone for help and learn from their answers. That’s how all top developers improve on their skill, they don’t run from big projects.
3. Think and focus on the end result
The goal of developing a software for a client is to get something valuable in return be it money, reputation or trust. All what the client needs is to see the product working as requested. This simply means developers are just skill sellers, they get paid for developing apps that provide solutions to real-life problems.
Check also, how to make money on the dark web or darknet?
Therefore, if you keep your eye on the end result or the big picture, it will motivate you do keep going even if you don’t want to. For example, let say you just finished learning React.js and PHP. As a beginner it will be very difficult to take on big project because of your level of experience. But suppose you’ve been given an offer to build a chat app for $9000,000 will you reject the offer because you’re a beginner?
You will surely not because of the money you will get in return. Thinking like a programmer simply means producing high standard software’s and getting something in return. I don’t think Bill Gate would have developed Microsoft if he kept his eye on the losses.
4. Programming mindset
The mind of programmers isn’t that different from others in scientific and research field. But the only thing that makes programmers little mysterious is how they approach complex challenges. For example, while scientist have to perform many experiments to gather information before coming up with solutions, without any research on online resources, programmers can easily come up with quick fixes to technical issues. That’s because coding is all about problem-solving and the more complex challenges you solve, the higher the brain functionality improves.
Check also, how to make money while learning how to code?
If you want to know how to think like a programmer, I would encourage you to train your mind to become a problem solver. And I told you earlier on that there are many video games that is developed with the aim of training the mind to think creatively. So, if you want an easy way to improve your brain functionality, it indeed the right approach.
Programmers Seek help
Software engineers are very smart but they don’t rely always on themselves all the time. They are aware that is not everything they know, so when the needs arise for help, they indeed do some research to find coding related questions and answers.
Why do programmers look for help?
No one is born a software-engineer with a binary mind. They learn and become who they are, so they will likely make mistakes because they can’t memorize all the methods under a specific API (Application Programming Interface).
Sites Programmers find coding related questions includes:
- 1. StackOverflow – This is not just a site, it a home for web-developers, mobile app developers and desktop app developers. It one of the top sources out there and am very sure if you happen to be on this field it will be the first you will know.
- 2. CodeProject – You can find source code of many programs and helpful news from this site. You will also finds people having a discussion on logically and general question about project they have been working on. It indeed a great site because it helps you to stay motivated and keep going.
Best book to think like a programmer
There are so many books out there that will help you stay creative despite your field. If you’re a graphic or UX designer, there are a tons of PDF books out there. But if you’re a developer, there is only one book I would recommend Think Like a Programmer: An Introduction to Creative Problem-Solving 1st Edition. Thanks to the author of this great technical book, it very helpful resource that will help train your brain to have a deep programming mindset.
Conclusion – Learn to Think Like a Programmer
You have learned all the tips that will help you to become a valuable resource to the company you’re working for. It will help your manager to be pleased of your skills and how you think fast and approach problems easily with your creative mind. This is how I think you will benefit if you apply all the knowledge you have acquired in this article.
So, in short, practice what you have learnt and never stop training your mind because it a powerful tool that can provide solutions to all problems. If you’re starting a web development journey, see how long it takes to learn JavaScript to become a job ready developer?
Thank you for reading and if you have any question, please share it with us.