What programming languages/pathways should I focus on?

Click For Summary

Discussion Overview

The discussion revolves around the programming languages and pathways a high school senior should focus on as they prepare for a college education in Computer Science. Participants explore various aspects of programming, including front-end versus back-end development, the importance of foundational programming skills, and the relevance of different programming languages in education and industry.

Discussion Character

  • Exploratory
  • Debate/contested
  • Technical explanation
  • Conceptual clarification

Main Points Raised

  • One participant expresses uncertainty about whether to focus on front-end or back-end development, highlighting the overwhelming number of programming languages available.
  • Another participant suggests that the type of application (e.g., AI, video games, embedded programs) should guide language selection and learning focus.
  • Some participants emphasize that understanding programming concepts is more important than knowing multiple languages, comparing it to the difference between owning many brushes and knowing how to paint.
  • Several participants advocate for learning C or C++ as foundational languages, noting their widespread use and importance in many programming contexts.
  • There is a discussion about the trend in higher education favoring Java over C, with some participants expressing concern that this may not be beneficial for students.
  • One participant recalls past trends in programming education, mentioning languages like Pascal and the evolution of teaching practices in computer science.
  • Another participant mentions the necessity for professional programmers to be familiar with various language types, including general, scripting, and assembly languages.
  • Some participants reflect on their own educational experiences and the languages they were taught, noting the diversity of programming languages encountered in the field.
  • A humorous remark is made about the ability of good programmers to write Fortran in any language, referencing a quote about programming culture.

Areas of Agreement / Disagreement

Participants express a range of opinions on the best languages to learn and the focus of programming education. While there is some agreement on the importance of foundational skills and the relevance of C/C++, there is no consensus on the best approach or the most suitable languages for beginners.

Contextual Notes

Participants note the limitations of focusing on a single language for education, suggesting that exposure to various languages and paradigms is beneficial. There is also mention of the evolving nature of programming education and the impact of institutional choices on learning outcomes.

Who May Find This Useful

This discussion may be useful for high school students considering a career in computer science, educators in programming, and professionals reflecting on the evolution of programming education and language relevance.

JackF
Messages
1
Reaction score
1
TL;DR
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   Reactions: DeBangis21
Technology news on Phys.org
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   Reactions: DeBangis21
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   Reactions: phinds, Hornbein and FactChecker
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:
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.
 
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   Reactions: FactChecker
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.)
 
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   Reactions: Ibix and FactChecker
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   Reactions: 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   Reactions: shivajikobardan and berkeman

Similar threads

  • · Replies 15 ·
Replies
15
Views
4K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
16
Views
3K
  • · Replies 133 ·
5
Replies
133
Views
11K
  • Sticky
  • · Replies 13 ·
Replies
13
Views
8K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 397 ·
14
Replies
397
Views
20K
  • · Replies 17 ·
Replies
17
Views
3K
  • · Replies 18 ·
Replies
18
Views
2K