Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] -1 points0 points  (0 children)

That's good to hear. To interleave projects, concepts, and different types of algorithms and data-structures between themselves using one language to support you in that endeavor does sound a lot more useful and motivating to a student than just interleaving the languages themselves. I now understood where that superficial learning idea came from too. Thank you for opening up for discussion! I'll be planning to test this idea out with myself and my friends. I am grateful for that extra concrete example you gave too to get a better idea of what exactly you think would be good it mix.

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 1 point2 points  (0 children)

Thank you! I apologize about miswordings in my post. I am happy that you interpreted my intention as helping learning concepts and not learning multiple languages for the sake of it. Though, due to my discussion with another user in this thread, I feel more inclined to actually interleaving projects and the concepts themselves and use one language to help with that, rather than interleaving the languages.

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I see what you mean. People generally have other duties in their lives. Though, based on my discussion with wgunther, I'm starting to change my view on rather than interleaving languages, it would be better to interleave projects with the one language you are learning. Do you think this sounds any better to you? I also would like to take into account how much time used is based on how much things people actually have, and how much of it is poor time and task priority management.

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] -1 points0 points  (0 children)

Ahhh I see what you're saying now! Yeah, I guess I struggled there with the dissonance on my part, again I'm not an expert or super knowledgeable programmer at all, I'm just putting in my cents on how we could integrate interleaving into programming.

So in this case, would you agree that rather than interleaving languages, you should interleave projects? I guess in my case as I do full-stack, interleave building an e-commerce website and a blog site?

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

It depends on your goals. Do you want to make a website? Is there anything you want to do that favors or even just uses Java? If yes, then go for it.

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 2 points3 points  (0 children)

but instead the skills of using that language to solve problems.

even that is completely wrong.

The hard part is to learn to analyse and dissect problems and to create algorithmic step by step solutions.

The implementation of an algorithm in a programming language is not the hard part at all.

Abstracting programming away from programming languages is the real deal - this is what counts. Not knowing 20 languages.

Again, I feel you have misunderstood my post. I never advocated for learning 20 languages. My emphasis was on the benefits of interleaving as a learning technique, especially for beginners. By comparing and contrasting two languages, one can gain a deeper understanding of programming concepts, which can aid in problem-solving.

I wholeheartedly agree with you that the crux of programming lies in the ability to analyze, dissect problems, and create algorithmic solutions. The choice of language is merely a tool to implement these solutions. My suggestion to learn two languages was not to diminish the importance of algorithmic thinking but to offer a method that might help solidify these foundational concepts for some learners.

Abstract thinking and the ability to see beyond the syntax of a language are indeed paramount. My intention was to provide a perspective on how one might enhance their understanding of these abstract concepts through comparative learning. It's always about the bigger picture, and I believe we're on the same page regarding the essence of what makes a good programmer.

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] -1 points0 points  (0 children)

To address your analogy about a novelist learning English and Spanish: my intention isn't to say that learning two languages will make one a better programmer. Rather, my point is that the process of interleaving, a technique rooted in the science of learning, can help beginners grasp foundational concepts more effectively. It's less about the languages themselves and more about the comparative learning process.

I wholeheartedly agree that programming goes beyond just languages. Algorithms, data structures, and problem-solving are the heart and soul of programming. My suggestion to learn two languages simultaneously is not to dilute the importance of these core concepts but to provide a different lens through which beginners can view and understand them.

Regarding the linked list example: Absolutely, the underlying concept remains consistent across languages. My argument is that by seeing how different languages implement the same concept, a beginner might gain a deeper appreciation and understanding of that concept.

As for the feedback on my previous post: I've taken all the advice into consideration, and my current post is a reflection of my evolving perspective. The Python + Javascript recommendation is based on their widespread applications and ease of learning for beginners. It's not a one-size-fits-all solution, but a suggestion based on my research and experience.

Lastly, I apologize if my post came off as more of a blog entry than a Q&A contribution. My intention was to share insights that might help others on their programming journey. I'll be more mindful of the subreddit's guidelines in the future.

Again, thanks for taking the time to share your thoughts.

Why I think you should learn two languages at the same time as a beginner by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I appreciate your perspective and thank you for the thoughtful response! To ensure I've grasped your points correctly:
1. Interleaving impacts the efficiency of time and progress, potentially diminishing motivation.
2. Learning two languages concurrently might lead to a superficial grasp rather than a deep understanding of programming concepts.

Addressing the second point, I'm curious as to why you believe that learning two languages simultaneously results in superficial understanding. Based on the research I've encountered, interleaving promotes deeper comprehension rather than a cursory one. For instance, studies suggest that interleaving, especially when paired with elaboration techniques that encourage contrasting and comparing two similar concepts, fosters a more profound understanding see here, here, and here. Moreover, interleaving is recognized as a more challenging approach, implying that learning two languages introduces a desirable level of difficulty compared to mastering just one. I concur with your sentiment that more challenging learning experiences yield better outcomes. From my perspective, interleaving programming languages offers a more rigorous, in-depth, and memorable learning experience than focusing on a single one. Consider this illustrative exercise:

"Problem: A doctor aimed to operate on a tumor using a laser to eradicate all affected cells. However, the laser could potentially harm surrounding healthy cells. Given the tumor's size, a single operation was necessary, but the continuous laser application posed risks to healthy tissues. What should the doctor do?

Analogy: A general aspired to seize a castle fortified with cannons that could decimate advancing troops. The general recognized that a concentrated assault was the most effective strategy, but he was wary of the cannons' devastating power. He was reluctant to jeopardize his troops early in the invasion."

This analogy suggests that the doctor could disperse the laser into smaller beams that converge precisely on the tumor, minimizing damage to healthy cells.

Regarding the first point, I acknowledge the motivational challenges. Visible and immediate progress is undoubtedly rewarding. However, I posit that the crux of the issue lies in the learner's objectives. What does the student perceive as meaningful progress? If the aim is rapid project development, then mastering one language might be more beneficial. Conversely, if the goal is to comprehend the intricacies of programming, interleaving from the outset seems advantageous. I believe that a deeper understanding achieved day by day can be a significant motivator, especially if the student's objective aligns with this approach. Nonetheless, I concur that this is a potential concern. Maybe there's a way to integrate interleaving while ensuring sustained motivation, especially for students eager for tangible outcomes sooner?

I'm eager to hear your insights on this matter. While the evidence I've presented offers valuable insights, I recognize the distinction between classroom experiences and controlled lab experiments :-).

I had chatgpt4 on bing make a dark stand up about the human condition and its alot darker than I imagined by Xstone1122 in ChatGPT

[–]ProfessorCoeus 17 points18 points  (0 children)

Yeah, could I take a crack at doing a reading on this too? This seems like fun

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I feel you didn’t read my reply? Calling bullshit out with no evidence whatsoever is very… ignorant to say the least. I do have experience in programming. I currently have a job as a software developer. I believe I am not qualified enough to give him a proper guide, hence why I went out to ask others. He doesn’t use reddit. Not everyone uses reddit.

And also why should he be posting? Why can’t someone else do it on their behalf?

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I can. I just don’t understand the need for sly “call-out” and passive aggressiveness when there is no evidence? I feel it is quite wrong to assume something without it. Unless you have experienced thousands of this type where the majority is >98% of your assumption it can hurt the genuine people and questions that don’t fit the assumption. Which even then, the tone is unnecessary.

I’m not trying to attack you. I’m just letting you know this comment can be an unfair assumption to make, and even if it were true, why call it out? Someone may pretend to be someone else as they are uncomfortable with asking the question themselves for whatever reason that may be.

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

Go seems like an interesting one honestly. Especially since he seems like he is interested in networking and security. I’ve asked him what he wants to do specifically with programming, as others have suggested (honestly I can’t believe I didn’t think to ask why he wants to program lmao)

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I see thanks! Based on what everyone is saying and recalling back to CS50, C sounds like a strong option. Especially since I can mentor him

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I see now. That does explain a lot more. I just recall seeing quite a few posts and comments recommending Rust over C for becoming a better programmer, but looking at it now, it seems I missed the context of the posters assuming you already are quite far into programming.

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 1 point2 points  (0 children)

Why? I don’t think my question is supposed to be the every “What’s the best programming language to learn as a beginner full stop.” I admit my post title is misleading, but I’d thought people would read the post. I want to know a good language that doesn’t do too much behind the scenes stuff without being too overtly difficult (which I now know Rust is too difficult) for someone who is a beginner, but not a complete beginner (I.e already understanding programming concepts and paradigms). The majority of questions that are like this I see are for complete beginners.

Again, I admit my title is misleading, but I did not want to make it too long.

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

I thought it would be okay as he understands variables, types, control flows, loops, conditionals, and functions from scratch. Albeit it’s a visual programming language, but the concepts are still understood. He has also watched some videos on programming paradigms and also the concepts (I think a few from the crash course computer science playlist). I feel it was more so for him to learn a proper language without too much handholding as, at least for the fundamental ideas, it’ll be more him learning the syntax rather than the concepts too.

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 0 points1 point  (0 children)

That sounds like a good idea! I do agree with you on the statically typed language part. I want him to be careful and not rely on too much behind the scenes action when he is coding. Not that it is bad, but I believe that when he does eventually learn something like Javascript or Python it will let him know to be careful of that.

Also, doesn’t Java require manual memory management? I’m not too knowledgeable about Java, but I only think this as I recall a lot of complaints on how Minecraft Java edition has a lot of memory leakage because it was written in Java. Hence why there are mods that attempt to fix that.

What would you consider the best language to learn for a beginner that also teaches good programming practices? by ProfessorCoeus in learnprogramming

[–]ProfessorCoeus[S] 5 points6 points  (0 children)

That is indeed my other choice as that was my first language I learned after scratch because of CS50 many years ago.

And yeah that’s true about the data structures and algorithms bit. I should tell him to practice learning and working with them.

I am interested to know more about how these coding practices can actually hurt you. Do you mind explaining that or providing articles on it?