What programming languages/pathways should I focus on?

In summary: I would also recommend taking a class in basic data structures and algorithms. This will give you the basics of how computers work and will help you understand why programming is necessary.In summary, a Senior in High School wants to go to college and study Computer Science. They have been learning Front End Development and Java in the past year, but feel like they need more focus and direction. They would benefit from taking a class in algorithms and data structures, as well as learning more about the different areas of programming.
  • #1
JackF
1
1
TL;DR Summary
I am a senior in high school with front-end and back-end experience. I struggle from a lack of focus on specific languages and paths due to curiosity and being overwhelmed and hope to get suggestions on how to hone in on specific topics.
I am a Senior in High School looking to go to college for Computer Science. Since Freshmen year I have been learning Front End Development (HTML, CSS, and Javascript), albeit somewhat slowly and staggered due to school getting in the way and whatnot. In the past year, I have learned some more about Java - with my AP CS A class, as well as a little bit of Python.

My end goal is to get out of college with the ability to get a well-paying CS job. As you might be able to tell, I have not yet narrowed it down to Front End or Back End because both entice me and I figure I’m still young enough to do both. However, I feel like I have the problem of getting sidetracked by projects and languages - partly because I am curious and also partly because I am nervous that the path I decide to stick to one day is not the best path. I’ve looked at job offerings online just for the heck of it in the past, and it’s overwhelming to see how many languages are out there that I have no idea about.

This all goes to say that I feel like I need a plan. I know I’m still in High School but I’m driven and I want to get ahead. Does anyone with CS knowledge have suggestions in regard to:

How many languages should I learn?
How focused should I be on specific areas?
How to best develop myself to achieve these future job goals.

Thank you very much for any and all answers. I really appreciate it.
 
  • Like
Likes DeBangis21
Technology news on Phys.org
  • #2
You have a lot of time to answer those questions. Your question about "front end" versus "back end" makes me think that your exposure to programming has been fairly limited. There are many applications and uses of computer programming that require different languages and techniques. As time goes on, you will want to determine what type of application are you interested in: Artificial intelligence? Video games? Embedded programs? Big Data? Operating systems? etc.
Also, as a software engineer, there are many jobs that are not programming directly. From https://www.mastersportal.com/disciplines/329/software-engineering.html: "Software Engineering topics include: computer programming, algorithms, data structures, human-computer interaction, web development, software project management, architecture and operating systems, security and usability, social responsibility and ethics, etc. Software engineers usually work in teams."
 
  • Like
Likes DeBangis21
  • #3
It's not about knowing a lot of languages. It's about knowing how to program.. (There is a difference between knowing how to paint and owning a lot of brushes)

When you get to college, take a class in algorithms and one in data structures.
 
  • Like
Likes phinds, Hornbein and FactChecker
  • #4
If you are going to pick one language to learn, C is probably it. That is a language that practically every programmer knows, is used very widely, and is the basis for many other languages.
 
Last edited:
  • #5
Vanadium 50 said:
It's not about knowing a lot of languages. It's about knowing how to program.. (There is a difference between knowing how to paint and owning a lot of brushes)

When you get to college, take a class in algorithms and one in data structures.
This is quite true. My (very famous) college didn't teach me to program at all. I learned through books and experience. Most programmers just hack together shoddy goods. I'm retired so maybe things are better now.
 
  • #6
FactChecker said:
If you are going to pick one language to learn, C is probably it.
Or C++, as many schools, including colleges and universities, don't offer C at all. In the past 10 years I've taught at two nearby community colleges. At the first, a three-quarter CS sequence started with C, with the last two quarters being taught using C++. At the second, the first quarter of the CS sequence was taught using C++, but with little emphasis on its object-oriented features.
FactChecker said:
That is a language that practically every programmer knows, is used very widely, and is the basis for many other languages.
I'm not sure that it's one that "practically every programmer knows" these days, with so many higher-ed institutions having switched to Java as their main vehicle for CS courses. In my view, that's an unfortunate choice, and one I share with Joel Spolsky, a co-creator of Stack Overflow. Here's a blog post by Joel, titled "The Peril of JavaSchools" -- https://www.joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2/
 
Last edited:
  • Like
Likes FactChecker
  • #7
Mark44 said:
I'm not sure that [C]'s onel that "practically every programmer knows" these days, with so many higher-ed institutions having switched to Java as their main vehicle for CS courses. In my view, that's an unfortunate choice, and one I share with Joel Spolsky, a co-creator of Stack Overflow. Here's a blog post by Joel, titled "The Peril of JavaSchools" -- https://www.joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2/
If I was interviewing a programmer for long-term employment (not just one specific program) and he did not know C, I would probably skip to the next one. (As you said, C++ would be better.)
 
  • #8
As the song goes.

When I find my code in tons of trouble
Friends and colleagues come to me
Speaking words of wisdom
Write in C


It's not crazy for colleges to centralize around Java, especially early on. C and C++ usually offer many ways to do the same thing. Java tries, with varying degrees of success, to limit this to one. For someone trying to understand something else, like data structures. this simplification can be helpful.

Also, C++ was late to the game with enums, and "just use int" (not even unsigned!) is part of the style and culture. Personally, I want Tuesday*Monday - Tuesday to throw an error, not evaluate to something.
 
  • Like
Likes Ibix and FactChecker
  • #9
Mark44 said:
so many higher-ed institutions having switched to Java as their main vehicle for CS courses. In my view, that's an unfortunate choice, and one I share with Joel Spolsky, a co-creator of Stack Overflow. Here's a blog post by Joel, titled "The Peril of JavaSchools" -- https://www.joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2/
I remember when the trend in schools was to teach Pascal. Schools still seem to focus on one language or another. My experience is that specialized languages for particular applications can offer a lot of benefits. In any case, a professional programmer has to deal with so many language types: general, scripting, database, assembly, etc., let alone languages, that making students think in terms of one language is very misleading.
 
  • #10
FactChecker said:
I remember when the trend in schools was to teach Pascal.
Yep, me, too. In fact, I took a summer class at UW (Univ. of Washington) that was advertised to be in Pascal, but the instructor decided to use Modula-2 instead. That was in 1984.

FactChecker said:
In any case, a professional programmer has to deal with so many language types: general, scripting, database, assembly, etc.
With a very small minority being conversant in assembly, I suspect. I recently taught about a half dozen classes in Computer Architecture in which there was a strong emphasis on MIPS, a kind of assembly language.
 
  • Like
Likes FactChecker
  • #11
Mark44 said:
With a very small minority being conversant in assembly, I suspect. I recently taught about a half dozen classes in Computer Architecture in which there was a strong emphasis on MIPS, a kind of assembly language.
I'll buy that. I never had to be conversant in assembly. The only thing I ever had to do was to count lines of assembly code to see (and understand) how fast things would run and to insert inline assembly code to track test coverage. But it is handy to be able to do small things like that in assembly code. And many of the people I worked with did a lot more assembly code.
 
  • #12
The whole discussion is moot: a good programmer can write Fortran in any language

(at least one hit says it quotes
Ed Post, Real Programmers Don't Use Pascal, 1982. )

##\ ##
 
  • Haha
Likes shivajikobardan and berkeman

1. What are the most popular programming languages currently in demand?

The most popular programming languages currently in demand include Java, Python, JavaScript, C++, and C#. These are used in a wide variety of industries and have a high demand for skilled developers.

2. Should I focus on learning a specific language or a general programming pathway?

This depends on your career goals and the industry you are interested in. If you are interested in a specific field, such as web development or data science, it may be beneficial to focus on a specific language. However, if you are interested in a more general programming career, it may be better to focus on learning fundamental concepts and principles that apply to multiple languages.

3. How can I determine which programming language is right for me?

Consider your interests and career goals when choosing a programming language. If you are interested in building websites, JavaScript may be a good choice. If you are interested in data analysis, Python may be a better fit. You can also try out different languages through online tutorials or coding bootcamps to see which one you enjoy working with the most.

4. Are there any programming languages that are becoming obsolete?

While some programming languages may not be as popular as others, it is rare for a language to become completely obsolete. However, it is important to stay updated on industry trends and be willing to learn new languages and technologies as they emerge.

5. Is it better to specialize in one programming language or be proficient in multiple?

Again, this depends on your career goals and the industry you are interested in. Specializing in one language may make you more marketable for certain jobs, while having a diverse skillset in multiple languages may make you more versatile and able to adapt to different projects and technologies. It is always beneficial to have a strong understanding of fundamental programming concepts regardless of the number of languages you know.

Similar threads

  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
8
Views
880
  • Programming and Computer Science
4
Replies
107
Views
5K
  • Programming and Computer Science
Replies
15
Views
1K
  • Sticky
  • Programming and Computer Science
Replies
13
Views
4K
  • Programming and Computer Science
12
Replies
397
Views
13K
  • Programming and Computer Science
Replies
7
Views
1K
  • Programming and Computer Science
Replies
13
Views
1K
  • Programming and Computer Science
Replies
15
Views
2K
Back
Top