How do I start right now to become an programmer?
I a sophomore in high school, and i am interested in learning as much as programming language as i can specially Java, and python. i tried many youtube course, and i get the basics of all of them, what would be my next move in becoming fluent with all the languages. #computers #java #python
Mark Robert’s Answer
Short Answer: Don't Overthink It and Just Start Programming
Slightly longer answer: You're not going to benefit from just learning syntax, nor are you going to benefit from programming anything without a purpose. Computer Science is incredibly important, but the computer is just a tool so studying CS is kind of like studying "Screwdriver Science."
Pick something else that you love, besides computers, and look there for something to build. Then, use building that as the impetus for you learning how to program. Then program, and program a lot.
Here's one of my favorite links: http://norvig.com/21-days.html
Learning programming well is a process. And it almost always requires the practical application of your skills. In other words, writing real code for real problems that produce real results. Programming exercises only familiarize you with the syntax and concept. It's the same as the difference between taking online German lessons and actually having to walk into a restaurant and order dinner in Stuttgart.
So, I'd recommend finding an open source project that interests you on github. Look at its bug list. See if you can find an issue that you think is within your skill level to fix, and fix it. Test it. Submit the code back to the project. Over time, expand the number of projects you contribute to, and the difficulty level of the code you're working on. Start taking on feature or change requests in addition to bugs.
Alternately, find something associated with a hobby that you already enjoy and write some code to make something about that hobby easier or better. Then maybe you can open that code up to the community and, if there's enough interest, get additional exposure to new techniques by having more experienced programmers contribute to your project.
In addition to all the good suggestions here already, I would take the time now to make sure you pay attention to other useful skills besides just rote programming:
1) keep taking as much math as you can in HS, it'll make some stuff easier later. This is especially true if you can get some proof based or graph theory courses under your belt (maybe in Uni though). Math will help with logical thinking.
2) take writing courses (like English writing, not programming writing). While it will not be directly helpful to programming at all, if you end up working as a programmer later, you will need to communicate with other people by writing a LOT, so the more comfortable you are with writing, the more effective you'll be. This will include just trying to convince people with short emails, but also detailing larger plans in many-many-long-pages of design documents. Depending on how good (or not) you are at writing already, this may be painful now, but it'll be very useful later.
At the very end of the day when you're programming a lot, writing new program code isn't the hardest thing you'll be doing. The hardest stuff will be
- reading other people's code to figure out what it does
- reading your own and other people's code to find bugs
- figuring out at a larger system scale what needs to get written
- convincing other people that your ideas are correct
That is to say though... they're harder AFTER you get really good at programming, so that's definitely step #1 (or step #2 if you wanna just focus on math first, which would be fine).
I'd suggest finding some open source projects that you find interesting which are written in the languages you are practicing. They should have a bug list associated with them. You might ask someone from a project for help in finding a good starter bug for you to get your feet wet in their code base. If you give a bit more information on what you'd like to work on (web apps, mobile apps, tools, games, etc), maybe others could recommend some specific projects...?
I'm personally always an advocate of the approach where you just jump in, try something, and see what happens. To that end: think about things you want to program. In my case, because I do a lot of word puzzles, I started out by writing Python programs that would help keep track of the letters in a cryptogram, and one that would help me find words in a word search. If you've got other hobbies, think about ways in which a program could make things easier--even something silly, like "I play a lot of computer games and want something that will help me plan out upgrades/purchases/etc. in one of the games", will give you a chance to write something.
Another way to go about it, if you can't think of anything that you're dying to have a program for, is to look for various "programming challenges" online. http://projecteuler.net" can be a good starting point--after a while the problems require a lot of mathematical knowledge, but the starting ones like "Find the sum of all the multiples of 3 or 5 below 1000" are straightforward programming tasks--many of them ill-suited to brute force, that make you think about the right way to track information--that have clear answers, and whose answers you can then confirm. (I enjoyed http://adventofcode.com/ for this as well; the "competition" is over, but there are still 50 decent problems that can make for decent exercises in writing small programs.)