How do I know if I have what it takes to be a programmer?
I think maybe I want to be a computer programmer, and make websites. How do I know if I have what it takes to be successful? I really want to know the truth. For example do I need a certain amount of grades? Or is there something I can do to figure out if I am not good enough? Sometimes people say that you can do anything you put your mind to but is that really true? I can't afford to be a failure, so I really want to know for real if I should try to be a programmer or do something else. #technology #programming #job-requirements
16 answers
Leeanne Donovan
Leeanne’s Answer
Hey Indra,
This is a very honest question and there are so many things that would go into this. There is no way of knowing if you will like a career nor will you be certain if you are good at it unless you give it a try. Many times people get into a career doing something they love and end up burning out because they lose their love for it when it becomes work and not the hobby you love.
Advice: You will not know unless you try, so give it a shot. If you are not in a position to pay for a programming course until you are certain this is what you want to do and if you are good at it, then buy or borrow a book on a programming language and learn the language. Do some research on the industry, practices and different programming languages to help steer you in the right direction. Experiment with the programming language or languages of your choice and see if this is your niche. You can also apply for an internship with a technology company to get some hands on training and advice from industry professionals which will also give you a sneak peek into the field and that may help you make your decision.
I hope this was helpful for you and that you find what you need. The best advice would be to just give it a try, because you will not know if you like something until you try it :)
Dave’s Answer
The answer is that you won't know until you've tried it. If you go into it thinking that you can't afford to be a failure, you're going to be disappointed. Building successful websites is hard. Even for veterans in the industry, sometimes building a new site (or adding a new feature to an existing site) does not end in success. The important thing is to learn from the failures and apply that learning to your next project.
Rather than asking yourself "am I good enough to be make websites?", the better question right now is "do I really want to make websites?" To answer that, you can try building some simple websites. Ruby on Rails is a popular technology for building websites (there are many others as well) and there's a great tutorial here to get you started: http://guides.rubyonrails.org/getting_started.html
Kris’s Answer
Try it!
The best developers are people who are passionate about writing software. Try writing some software, or building a simple website and see if it is for you. And don't be discouraged if you don't build Facebook on your first try. It is more important to see if you enjoy solving the kind of puzzles that software development is made of. Grades are important - school can help you build the foundations that you will need in math, science, and logic to be a success in almost any engineering field, but they are not the only thing that will determine if you will succeed as a developer. It is just as important to have a strong sense of curiosity, persistence, and interest in solving problems.
Terry’s Answer
In order to be a good computer programmer, one should be motivated to apply their problem solving skills in tackling challenging problems. If building something from the ground up sounds appealing and you enjoy using computers and technology, this career path might be for you.
I would recommend that you try it out on your free time first. It costs virtually nothing to learn programming by yourself. There are plenty of tutorials and free online courses. Maybe you can build yourself a simple program to see if you like doing it.
Douglas’s Answer
Don't be afraid to fail, because some of life's best moments involve multiple failures in-between. There are a lot of ways to get involved with programming without having to make an investment with money. Such as coding with appinventor(http://appinventor.mit.edu/explore/), its free to learn and use and it may give you some experience on how code is put together. I would spend some time looking at what it's like to be a programmer and maybe even look at the various computer languages and see if you can learn one on your own. There a ton of free resources on the internet to help you out along the way.
You don't need to be a genius to code, it just requires a certain amount of passion. Passion pushes you forward to learn what you need to know and you will eventually get better at it.
Remember, you can be really talented at something, but if it doesn't interest you, no matter of money or time will make it any better.
Opinions may vary on this, but I think a measure of success is not by how much money you make or how good you are at it, but how much you enjoy what you do.
Estevan’s Answer
As most people are suggesting you should just try it.
That said I actually didn't know I really I liked programming or software engineering until I got into college and was able to take some more structured courses. Prior to late in my junior year of high school I had 0 experience writing any kind of code and very limited experience working with HTML. When I thought I might want to get into making games for a living I went to the library and bought a few books and wrote some very basic code, but I got stuck at points and it didn't really click and I never got really good until I took a college course taught by someone.
I'm not saying that is what you will have to do, but it's important to know how you learn best and not be discouraged if you try to learn programming one way and it doesn't go so well.
As for "having what it takes" I personally think anyone can, and everyone should, learn to program in some language. I don't believe you have to like or be good at logic puzzles or word problems or anything like that, if you can learn the rules of a game and play that game well (video games included) or follow a recipe and cook you can probably program.
When you write computer programs you do exercise a different way of thinking. Just like writing an essay vs. solving a math problem require different types of thinking and problem solving. And I don't think anyone out there would say that anyone "doesn't have what it takes" to write a paper or solve a math equation. However like writing or math you may not be awesome at it or find it to be something you want to do on a daily basis, so back to the original point just try it out.
Nicolas’s Answer
In my opinion a good indicator is whether or not you like things like:
* solve problem
* logic puzzles
* brain teasers
* ...
A good amount of software engineering is about solving problems using some sort of logical thinking and expressing that in a programming language.
But let's look at this from another side:
Did you ever use a computer program (games count too!) or a machine and thought something like this: "Wow, it totally blows my mind how I do realtime video chat with multiple people at the same time anywhere on the planet?!? I want to know how that works!" If you ask the "Wow! How?" that's another very good indicator that any engineering career will be a good fit for you.
Julius’s Answer
It will be very hard to determine what it takes to be a programmer unless you give it a real attempt. Start by learning the basics and trying to create some basic programs. You might come across several walls during the early stages but it is important to push through.
During this experimental time, you will learn about what you find enjoyable and what you dont like about programming. There are many free resources on the internet to start learning about programming, you dont need to go to a school or university to learn (even though its helpful).
Julius recommends the following next steps:
Hien’s Answer
Nowadays there are many introductory online programming classes that one can take for free to see if one would enjoy programming. If you enjoy it or find it interesting, then getting to what it takes is not too difficult.
Here is a list courses from coursera.com and udacity.com that one can try out:
coursera.com
Learn to Program: The Fundamentals
Fundamentals of Computing
udacity.com
Intro to Computer Science
Intro to Programming - Problem Solving with Java
Veasna’s Answer
Personally, my love for building complex systems, writing code, and solving intricate problems has fueled my interest in programming. Diving deep into the fundamentals and keeping up-to-date with new technologies has been essential for my development in this field. If you also find joy in these activities, there's a good chance you possess the natural inclination necessary for a career in programming.
It's important to note that programming can encompass a wide array of activities. For instance, you might find yourself developing websites, creating mobile applications, managing databases, or implementing automation systems. Each of these areas offers unique challenges and opportunities for creative problem-solving.
Remember, the journey into programming is as much about the passion and dedication you bring as it is about the technical skills you acquire. If you're curious, eager to learn, and motivated by challenges, you've got a great foundation for success in this dynamic and ever-evolving field.
Joe’s Answer
I discovered my strength in programming by stumbling across the use of technology in my role. I got dissatisfied with the tools available to me and started thinking about how I would change things. Then I experimented. Was I able to come up with a way to do something using some coding (Excel VBA, Python, HTML) to just test out if I could figure out a way.
Pretty soon I would show a proof of concept, great or dull didn't matter... just showing that it could be done. Then, I found others asking me how to do something since they had seen me code ideas before.
So for me it was realizing that I had the kind of mind that could take an idea and code it up... not necessarily to the level of "Standards" but finding that I had the ability to just try it and make something. If it's something that needs polish that can come later, but this is enough for a discovery stage on your abilities.
Joe recommends the following next steps:
Helena’s Answer
Free online courses as mentioned in some of the previous responses may be a great starting point. There are tons of them out there; some of them are better, some of them are less awesome, but it also depends on what you're looking for. So if you don't like one, go try another one until you find a few courses that are worth your time.
But what I think is even more important is TRY IT. And I mean REALLY TRY IT. The courses will give you a good starting point and may have you code some short exercises, which is a great way to learn, but to get at least some taste of what it actually feels like to do a programming job, you MUST TRY IT ON YOUR OWN. You're saying you want to make websites so maybe you have a couple ideas for websites you'd like to create. Go ahead and do that! Create a website or an app from scratch, so you get to experience the whole process including all the bugs, pitfalls, desperate moments (I don't mean to discourage you but I'm pretty sure there will be such), but also the unparalleled feeling when things finally work and you see in front of your eyes something YOU built from virtually nothing. Totally worth it - and no book or online course can do that for you. Good luck & lots of fun!
Matt’s Answer
Harvard offers a free web development course online (https://www.edx.org/course/cs50s-web-programming-with-python-and-javascript), but they recommend that you take their entry-level computer science class first. MIT and Stanford currently do not.
MIT's Python course (https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/) is the course I personally preferred. Python is a very easy programming language to pick up and it's used almost everywhere in the computer science industry. Python can be used in making a script to bundle every single file in your Desktop into a .zip file all the way to making complex statistical models for AI. Take a look at some of the useful real-world stuff that you can do with Python here: https://automatetheboringstuff.com/
Sometimes seeing and solving a real-world problem outside of a textbook helps you understand a textbook better.
Jagan’s Answer
Regarding "do I need a certain amount of grades?": Grades are an indicator of how you did on a test AT A GIVEN TIME. I see quite a few people in my day to day life that had lower grades in the past because they honestly were not committed learners at that time in the past; they have since realized the importance of acquiring and showcasing their knowledge. They are very capable programmers now. So, do not let past grades bother you or limit you.
Regarding: "is there something I can do to figure out if I am not good enough?" I would take a couple of free courses online at cloudera or AcademicEarth and see if they stoke and hold your interest, If they do, you know you will have a lasting interest in programming; lasting interest is a good indicator of future success.
Regarding: "people say that you can do anything you put your mind to" I generally agree with that notion. However, if any subject does not come naturally to you, you do need to spend more time and effort if you want to make a career out of it. That time and effort will come at the expense of something else that is asking for them as well. So, there will be some cost to it.
Finally, "I can't afford to be a failure," please remember that the edifice of success is often built on the foundation stones of failure. You will derive a lot of value from failure; ostensibly, more value than you would get from success.
G. Mark’s Answer
If you like puzzles, that's a good indicator. One thing I've mentioned frequently here is that a good personality assessment test, of which many are free and/or online, will tell you if your personality actually meshes with other folks who are good at a programming career. I mention that because it's a good way to predict how much you'll like it.
Of course, the best way is to program. Take a course, get some online tutorials, read some books. The nice thing about programming is that the materials are there often for free for everyone.
If you'e meant to be a programmer, and by that I mean you would also enjoy being a programmer, you'll know. And remember, learning anything about computers is going to come in handy for just about anything else you ever do.
One of the things I experienced was getting exposed to a strange language most people don't use anymore, and that's APL (A Programming Language). It was first developed by Kenneth Iverson as a mathematical notation. It's a weird jumble of greek symbols and such and each character expresses a mathematical function, from arithmetic functions to matrix reductions and such. I was an intern at IBM and I took to it immediately. It consumed my thoughts. I read a book by Iverson that contained all the shortcuts and tricks he'd come up with and I went through the thing from cover to cover and just tossed it aside because I knew it all already. I'm no Alan Turing for sure, but this is an example of seeing that if something is going to be your "forte" -- you'll know. In fact, it's like a famous author said when asked how you would know when you're a writer. His answer was, "You're born a writer. And if you are, you have no choice in the matter. You'll have to write." It's like that for a lot of careers. If you're right for it, you'll know.
Ashwath’s Answer
Dear Indra,
If you like problem solving, if you like to write a sequence of steps (or we can call it algorithm) and if you like to learn from your failures. If the answers to the questions are yes, then you have it in you to be a programmer.
A good programmer has aptitude, right attitude with the desired skillset and has a panache to solve difficult problems with a simpler or efficient solutions.
Programming is not easy. However, it is not difficult too. You need to keep the big picture in mind and see how you solve the problem and at the same time ensure it is of high quality, adheres to proper design and is manageable/readable.
Hope this helps.