Programming specifics
I've been learning programming and I've got the basics of c++ and java. But I recently learned that there are a lot more fields of programming whether it's javascript or python or html. So can someone tell me the difference between the fields and recommend which fields I should learn quickly and others that I should wait. Also I would like to know how and for what each field of coding is used for. #programming
4 answers
Fred’s Answer
Some companies divide between production and support. The former is building new pieces of technology, adding in functionality, or improving how the current software works. Support fixes all the things the prod team missed that users report. ;-)
C++, Java, Pythons, etc. are all programming languages, and there are dozens more. A language is a tool, often created to solve a type of problem. C/C++ are very early languages (C especially) created when you needed to be able to directly address memory, but was difficult to manage the executable files for every platform. Java was created so that you could send the same (sort of) executable file to any operating system. Perl was created to help process data and text...and so on (these are gross generalizations).
I would suggest you not focus on learning a technology, but instead on programming practices. I was once offered a position that required me to use a language (TCL) I had never even HEARD of, but because I could demonstrate solid fundamentals, my manager said "we can teach you the language". Writing clean code in whatever language that is clear, self-documenting, follows conventions, etc. is more important than knowing clever "tricks". Being able to think through a problem, identifying gaps in the specs, identifying assumptions (both your own and those in the specs) is MUCH more important than knowing 20 different programming languages.
Eric’s Answer
There are many fields of programming, with many different things to focus on.
However, the principles of programming that you learn in C++ and Java are generally applicable. I recommend learning them, and finding one or two other languages to learn with radically different styles. Scheme or Haskell are good for learning "functional programming," for example. Once you have several languages under your belt, you'll begin to see the ways that they're all just expressing how to solve a problem in a computer, and you can choose the right tool for the right job.
There are far too many fields to list here. Your best bet is to learn about a few and stay open to other possibilities. Whenever possible, try out a new focus when you learn one, to see if it grabs your attention. Ideally, you'll be able to get a job doing something that is both in high demand (so pays well), and you are interested by (so it will keep your mind functioning at its best).
A few focuses, off the top of my head: Web development, game development, mobile apps (Android and iOS, they're pretty different, to say nothing of Windows Phone and more obscure systems), the server side of all of the above, kernel hacking, embedded systems (so programming microchips), databases.
Each one of these will have one or more languages which are particularly good at it, but you can usually bend many different languages to the task.
Does this help answer your question?
Peter’s Answer
It is really depends on where you want to go and do, it is a tool to solve some specific problems.
hope that help
Michael’s Answer
Front end,
back end
Web
Mobile App
Security
Graphics
Simulations
Networking
Algorithms
Cryptocurrency/Blockchain
Here's a good starter to get an idea of what kind of industries or focuses out there: https://www.cc.gatech.edu/academics/degree-programs/bachelors/computer-science/threads
But in terms of picking which one to do and the timing? There is no right time. As a developer, this field is constantly evolving and you're expected to keep up with the pace of change, so the better mindset would be to pick the one that interests you. Picking something cuz it's quick or easy might burn you out in the long run rather than picking something that you draws out your passion and will keep you motivated.