10 answers
10 answers
Updated
Nicole’s Answer
Hi Javion J. Thanks so much for your question and thanks for aiming to be the best ever!
In my opinion, what it takes to be the best ever...at anything...including the best computer programmer ever...is practice. And the first step to practicing to be the best at programming is to write a program. The good news is that there is an abundance of ways to learn to write programs, many of which you can find online and on YouTube. The other piece of good news is that these tutorials that you can find online are offered for a very wide range of age groups and knowledge levels. To know which ones are right for you will take a little time because you will have to spend a little time either watching a few, or reading descriptions or reading comments to get a sense of whether a specific tutorial is the best place for you to start. And of course, there are books...lots of books at your local library that can also be a good place for you to start your research.
So 1) bring your patience and your confidence. 2)Do your research. 3)Practice. And then repeat steps 1-3 on different programming languages. It may sound unthinkable but many people, like me who write programs, while we may not call ourselves the best ever :), have managed to learn and write in many programming languages. And I am not shy about the stating that having a strong programming skill set be a significant career growth step for those who choose to learn it.
I wish you the very best of luck!
In my opinion, what it takes to be the best ever...at anything...including the best computer programmer ever...is practice. And the first step to practicing to be the best at programming is to write a program. The good news is that there is an abundance of ways to learn to write programs, many of which you can find online and on YouTube. The other piece of good news is that these tutorials that you can find online are offered for a very wide range of age groups and knowledge levels. To know which ones are right for you will take a little time because you will have to spend a little time either watching a few, or reading descriptions or reading comments to get a sense of whether a specific tutorial is the best place for you to start. And of course, there are books...lots of books at your local library that can also be a good place for you to start your research.
So 1) bring your patience and your confidence. 2)Do your research. 3)Practice. And then repeat steps 1-3 on different programming languages. It may sound unthinkable but many people, like me who write programs, while we may not call ourselves the best ever :), have managed to learn and write in many programming languages. And I am not shy about the stating that having a strong programming skill set be a significant career growth step for those who choose to learn it.
I wish you the very best of luck!
I like your answer!
John Kriegel
Hi Nicole - your advice is insightful and thanks for sharing your experience.
Sheila Jordan
Updated
John’s Answer
Some people have a natural affinity for programming (like in any other field). A person that I greatly admire speaks often of "passionate explorers". It sounds like you are well on your way in this pathway. Just some tidbits of advice (you probably don't need much more): make sure that you enjoy what you are doing. Software is everywhere so the job that you get can be in many different fields. Choose one that has potential (not so much for money, but for a sense of accomplishment and enjoyment). Don't let a job get too stale (sometimes it is a short-term necessity) and for goodness sake if the job is in support of something immoral or illegal, escape from it! I worked in support of companies doing manufacturing and kept learning and sharpening my skills. Then got a chance to work for a software company. That was nearly 34 years ago. It was not always wonderful, but it is now and I have great memories. I wish you success in all of your efforts!
Updated
Dana’s Answer
Hi there! I would recommend starting with algorithms and coding small problems. Then coding something bigger that you'd like, like the Pong game for example.
If I was to turn back in time, this is what I would do: practice coding everyday by learning about new algorithms and solving problems on websites like Leetcode and Hackerrank.
It would also be nice if you could pick up an online course about computers or about algorithms. Having things explained seems easier in videos with drawings for me.
What I didn't know and I wish I did:
1. CS (Computer science) in highschool is much different than CS in college (much more complex)
2. CS in college is much different than CS in real-life, far-reaching projects and companies. (much more complex)
However, they all start from the things you learn during highschool. You know have the time to learn all the base concepts that you'll need as a CS student and as an engineer.
3. If you want to study Computer Science and if you want to work at a big company like Google, Amazon, etc. you should start learning algorithms and solving coding problems from highschool or first year of college. It will help A LOT!
If you want to approach this path, you can start by thinking what you enjoy doing that is related to computers. Does assembling a computer feel interesting to you? Do you want to know how the Web works? Do you enjoy solving problems that use algorithms?
Here is are 2 courses with the foundations of Computer Science and programming, with resources gathered from multiple websites by Google:
https://techdevguide.withgoogle.com/paths/new_to_cs/
https://techdevguide.withgoogle.com/paths/foundational/
Hope this helped! Don't hesitate if you have any other questions!
If I was to turn back in time, this is what I would do: practice coding everyday by learning about new algorithms and solving problems on websites like Leetcode and Hackerrank.
It would also be nice if you could pick up an online course about computers or about algorithms. Having things explained seems easier in videos with drawings for me.
What I didn't know and I wish I did:
1. CS (Computer science) in highschool is much different than CS in college (much more complex)
2. CS in college is much different than CS in real-life, far-reaching projects and companies. (much more complex)
However, they all start from the things you learn during highschool. You know have the time to learn all the base concepts that you'll need as a CS student and as an engineer.
3. If you want to study Computer Science and if you want to work at a big company like Google, Amazon, etc. you should start learning algorithms and solving coding problems from highschool or first year of college. It will help A LOT!
If you want to approach this path, you can start by thinking what you enjoy doing that is related to computers. Does assembling a computer feel interesting to you? Do you want to know how the Web works? Do you enjoy solving problems that use algorithms?
Here is are 2 courses with the foundations of Computer Science and programming, with resources gathered from multiple websites by Google:
https://techdevguide.withgoogle.com/paths/new_to_cs/
https://techdevguide.withgoogle.com/paths/foundational/
Hope this helped! Don't hesitate if you have any other questions!
Updated
Armando’s Answer
Get a computer science, computer engineering, engineering degree. Learn how to design computer software and then develop/code the design what you have come up with. You can do this by taking classes in your technical education journey. The courses you choose should be ones that give you a strong background in math, science and the written word. Keep good documentation in your course work to help you do well in school and help you communicate in your profession once you graduate. Communication is a major strength in any career field and is a necessity in communicating the complex tasks you will undertake as a software developer. In your second or third year, try to get a job in your industry to help you gain some work experience. That will help you compete with other programmers when you go to find a job. While you are in school, organize yourself so that you always know what classes you are taking and what each class demands. Keep a detailed to-do list so you know what to do first each day of the week so that you don't miss deadlines. Stay focused on your school. There will be plenty of time for partying once you get your degree. If in doubt ask yourself why did I come to school. To party or to learn. Programming is hard and takes dedication, but it is rewarding to create software.
Map out your entire four of five years of education including the courses for each year.
Take only courses that get you to your goal
Be sure to take some non-technical courses such as art of fine arts
Armando recommends the following next steps:
Updated
Will’s Answer
Hi Javion,
First of, salute to such a big dream!
In addition to Nicole's suggestion, to get into the "Hall Of Fame" (unofficial) in programming, you might need to help shape the digital era. E.g., here's a few examples of best programmers and their achievements.
Grace Hopper - mother of COBOL
Alan Turing - father of theoretical computer science, AI
Dennis Ritchie - creator of C programming
Bjarne Stroustrup - creator of C++
James Gosling - father of Java
Linus Torvalds - key person behind Linux kernel
Guido van Rossum - author of Python
...
You saw the pattern here:)
First of, salute to such a big dream!
In addition to Nicole's suggestion, to get into the "Hall Of Fame" (unofficial) in programming, you might need to help shape the digital era. E.g., here's a few examples of best programmers and their achievements.
Grace Hopper - mother of COBOL
Alan Turing - father of theoretical computer science, AI
Dennis Ritchie - creator of C programming
Bjarne Stroustrup - creator of C++
James Gosling - father of Java
Linus Torvalds - key person behind Linux kernel
Guido van Rossum - author of Python
...
You saw the pattern here:)
Good approach, but just want to point out that there is no official "Hall of Fame", but your point is good. These people are known by many as being leaders. I am dissappointed that you left out Grace Hopper. How about Alan Turing, and of course Babbage. Gee, there are so many. It would be good to build a list. And maybe form our own Hall of Fame. Thank you!
John Kriegel
Thanks John. Made some edits based on some of your great points.
Will Xue, CFA
Updated
Christopher’s Answer
I would like to point out that there really is no "best programmer ever" title. Programming is less like sports, where statistics can be used to prove if someone (or some team) is better than the next, and is instead more like music. In music, everyone has their preference, and gauging who is better is not really fathomable. Furthermore, there are many different roles within programming that can come up, web programming, firmware development, mobile applications, etc. So to best answer, you should truly understand what programming is, it's just writing code to solve a specific problem. Here are some metrics which could be used to judge how good a program was written:
1. Did it solve the problem (most important)?
2. Does it handle unexpected conditions?
3. Is it efficient in performance (e.g. a program that finishes in 1s is better performing than a program that finishes in 10s)?
4. Is it efficient in resources (e.g. a program that uses 5% of RAM is better than a program that uses 50% of RAM)?
If you can consistently write programs which satisfy the 4 points above, your employer and peers will definitely appreciate your work and probably consider you pretty great!
1. Did it solve the problem (most important)?
2. Does it handle unexpected conditions?
3. Is it efficient in performance (e.g. a program that finishes in 1s is better performing than a program that finishes in 10s)?
4. Is it efficient in resources (e.g. a program that uses 5% of RAM is better than a program that uses 50% of RAM)?
If you can consistently write programs which satisfy the 4 points above, your employer and peers will definitely appreciate your work and probably consider you pretty great!
Updated
Ben’s Answer
You have probably received multiple good answers from people who are programmers so they can give you that great perspective. I can provide a different perspective, which is someone who is not in the field of programming but has been trying to learn. I work in the field of finance, so I am in excel spreadsheets a good portion of the day and crunching numbers to create forecasts and do analysis.
A couple of years back, I started to think that alot of our work was repetitive and could be auotmated if I knew how to program. Therefore, I started learning Python on my own and mostly because it was free and considered easier to learn than other languages. So I downloaded the software and started searching youtube videos for tutorials. I found that I started to learn and after a few months of 3-4 hours per week I was able to create a couple of scripts to help automate tasks at work.
However we started to get real busy at work with so many other projects that I found I was spending less and less time practicing Python. The 3-4 hours I would spend on the weekends, were now on work projects just so I could catch up as the week was so busy. I realized that I started forgetting much of what I had learned after not practicing for a few months.
So the moral of this story and I what I believe is important is to practice, practice and more practice. Just keep doing it and you will become an expert. Its just like, we cant talk about or think about doing pushups and situps. We actually have to do them to get the benefit. The same applies to programming. Put the time in and before long you'll be an expert. If I could learn programming, anyone could.
A couple of years back, I started to think that alot of our work was repetitive and could be auotmated if I knew how to program. Therefore, I started learning Python on my own and mostly because it was free and considered easier to learn than other languages. So I downloaded the software and started searching youtube videos for tutorials. I found that I started to learn and after a few months of 3-4 hours per week I was able to create a couple of scripts to help automate tasks at work.
However we started to get real busy at work with so many other projects that I found I was spending less and less time practicing Python. The 3-4 hours I would spend on the weekends, were now on work projects just so I could catch up as the week was so busy. I realized that I started forgetting much of what I had learned after not practicing for a few months.
So the moral of this story and I what I believe is important is to practice, practice and more practice. Just keep doing it and you will become an expert. Its just like, we cant talk about or think about doing pushups and situps. We actually have to do them to get the benefit. The same applies to programming. Put the time in and before long you'll be an expert. If I could learn programming, anyone could.
Updated
Steve’s Answer
Hi Javion,
Computer science is trendy, but the first thing is to know what's the work contents.
To be the best, you need to have solid logical thinking and well-known theory of those algorithms.
Too many "coders" just do coding without the ability to create anything new or breakthrough.
The second thing is to make sure you do really have the passion and patient to deal with these num codes.
These codes are cold or even too vague to see the substantial showing thing.
If you don't think it through, there's a chance that things will be tougher than you think.
Hope this advice helps you.
Computer science is trendy, but the first thing is to know what's the work contents.
To be the best, you need to have solid logical thinking and well-known theory of those algorithms.
Too many "coders" just do coding without the ability to create anything new or breakthrough.
The second thing is to make sure you do really have the passion and patient to deal with these num codes.
These codes are cold or even too vague to see the substantial showing thing.
If you don't think it through, there's a chance that things will be tougher than you think.
Hope this advice helps you.
Updated
Andrew’s Answer
To me, this means:
- Having a broad interest in things beyond programming, like the arts, humanities, philosophy, psychology, etc. as this sort of cross-pollination is driving innovation these days.
- Practice, practice, practice.
- Having a positive attitude and showing a willingness to learn.
- Knowing how and when to ask for help.
- Working on your soft skills.
- Having a good analytical mind.
- Always keeping on top of the latest developments.
- Knowing how to write automated tests.
- Having a broad interest in things beyond programming, like the arts, humanities, philosophy, psychology, etc. as this sort of cross-pollination is driving innovation these days.
- Practice, practice, practice.
- Having a positive attitude and showing a willingness to learn.
- Knowing how and when to ask for help.
- Working on your soft skills.
- Having a good analytical mind.
- Always keeping on top of the latest developments.
- Knowing how to write automated tests.
Updated
Mickael’s Answer
Hi Javion,
If only I knew, I would be one of them.
To be a good programmer you need:
- a good analytics mind
- good coding skills (of course)
- know how the program is executed on the target
- know how to write readable yet fast programs
And then practice, learn, practice, learn ... repeat. Affinity with coding, having good analytics mind will help differentiate two persons with the same practice and experience. But nothing replace experience.
If only I knew, I would be one of them.
To be a good programmer you need:
- a good analytics mind
- good coding skills (of course)
- know how the program is executed on the target
- know how to write readable yet fast programs
And then practice, learn, practice, learn ... repeat. Affinity with coding, having good analytics mind will help differentiate two persons with the same practice and experience. But nothing replace experience.