Jump to content

Is it a good idea for a beginner programmer to learn two languages at once?

GOLD1176

I've been learning to program with Java for a few months now (through YT tutorials and a book), and I've been enjoying it for the most part. The object-orientedness of Java is making sense to me and I like it. But I've read that being a good programmer involves knowing more than just one language. This sounds valid to me, but I don't know when I should begin learning a second language.


Would it be a good idea to learn Java and Python, for example (I'm sort of interested in Python because it sounds like a relatively easier, yet relatively powerful language), or should I become proficient with Java and then learn a second language, (maybe even a more advanced one than Python)?

Link to comment
Share on other sites

Link to post
Share on other sites

There isn't really a "wrong" way to learn programming. Do whatever seems to come easiest. Switching between syntax while learning might help or hinder you, it depends mostly on how you learn. 

¯\_(ツ)_/¯

 

 

Desktop:

Intel Core i7-11700K | Noctua NH-D15S chromax.black | ASUS ROG Strix Z590-E Gaming WiFi  | 32 GB G.SKILL TridentZ 3200 MHz | ASUS TUF Gaming RTX 3080 | 1TB Samsung 980 Pro M.2 PCIe 4.0 SSD | 2TB WD Blue M.2 SATA SSD | Seasonic Focus GX-850 Fractal Design Meshify C Windows 10 Pro

 

Laptop:

HP Omen 15 | AMD Ryzen 7 5800H | 16 GB 3200 MHz | Nvidia RTX 3060 | 1 TB WD Black PCIe 3.0 SSD | 512 GB Micron PCIe 3.0 SSD | Windows 11

Link to comment
Share on other sites

Link to post
Share on other sites

Most programming languages function very similarly, the differences are in how the syntax and arguments work.

Personally, I despise Python; the way its formatted seriously bothers me. I like C++ syntax the best; its a language I had to teach myself for a school project once so maybe I just feel more attached to it. Java's syntax is quite similar to C, so I'd consider branching into that before trying Python.

Primary PC: - https://pcpartpicker.com/list/8G3tXv (Windows 10 Home)

HTPC: - https://pcpartpicker.com/list/KdBb4n (Windows 10 Home)
Server: Dell Precision T7500 - Dual Xeon X5660's, 44GB ECC DDR3, Dell Nvidia GTX 645 (Windows Server 2019 Standard)      

*SLI Rig* - i7-920, MSI-X58 Platinum SLI, 12GB DDR3, Dual EVGA GTX 260 Core 216 in SLI - https://pcpartpicker.com/list/GHw6vW (Windows 7 Pro)

HP DC7900 - Core 2 Duo E8400, 4GB DDR2, Nvidia GeForce 8600 GT (Windows Vista)

Compaq Presario 5000 - Pentium 4 1.7Ghz, 1.7GB SDR, PowerColor Radeon 9600 Pro (Windows XP x86 Pro)
Compaq Presario 8772 - Pentium MMX 200Mhz, 48MB PC66, 6GB Quantum HDD, "8GB" HP SATA SSD adapted to IDE (Windows 98 SE)

Asus M32AD - Intel i3-4170, 8GB DDR3, 250GB Seagate 2.5" HDD (converting to SSD soon), EVGA GeForce GTS 250, OEM 350W PSU (Windows 10 Core)

*Haswell Tower* https://pcpartpicker.com/list/3vw6vW (Windows 10 Home)

*ITX Box* - https://pcpartpicker.com/list/r36s6R (Windows 10 Education)

Dell Dimension XPS B800 - Pentium 3 800Mhz, RDRAM

In progress projects:

*Skylake Tower* - Pentium G4400, Asus H110

*Trash Can* - AMD A4-6300

*GPU Test Bench*

*Pfsense router* - Pentium G3220, Asrock H97m Pro A4, 4GB DDR3

Link to comment
Share on other sites

Link to post
Share on other sites

I've often seen similar questions on  this forum. Learning a language is nothing, what matters is learning programming concepts. Programming languages are only a matter of syntax and they all have their specificities, however if you are a good programmer you can learn a new language in just a couple hours, or maybe less. You might not know all its specificities but you should still be able to write complex applications if you are comfortable with the complex (or not) programming concepts/data structures, etc.

So to answer your question, learning a new language won't get you more confused or make your learning harder as long as you do it the right way, which is mostly through practice and personal projects.

Link to comment
Share on other sites

Link to post
Share on other sites

No, I learne HTML and CSS at the same time (almost, I learned some css while learning html and some html while learning css)

 

 

whatever makes you be able to learn

✧・゚: *✧・゚:*  Quote for a reply  *:・゚✧*:・゚✧

 

✧・゚: *✧・゚:*   Ask for discord   *:・゚✧*:・゚✧

Link to comment
Share on other sites

Link to post
Share on other sites

I'd say learn one language first, because the logic of programming is more important for starters. After that, you could learn multiple languages if you feel like it.

CPU: i7-2600K 4751MHz 1.44V (software) --> 1.47V at the back of the socket Motherboard: Asrock Z77 Extreme4 (BCLK: 103.3MHz) CPU Cooler: Noctua NH-D15 RAM: Adata XPG 2x8GB DDR3 (XMP: 2133MHz 10-11-11-30 CR2, custom: 2203MHz 10-11-10-26 CR1 tRFC:230 tREFI:14000) GPU: Asus GTX 1070 Dual (Super Jetstream vbios, +70(2025-2088MHz)/+400(8.8Gbps)) SSD: Samsung 840 Pro 256GB (main boot drive), Transcend SSD370 128GB PSU: Seasonic X-660 80+ Gold Case: Antec P110 Silent, 5 intakes 1 exhaust Monitor: AOC G2460PF 1080p 144Hz (150Hz max w/ DP, 121Hz max w/ HDMI) TN panel Keyboard: Logitech G610 Orion (Cherry MX Blue) with SteelSeries Apex M260 keycaps Mouse: BenQ Zowie FK1

 

Model: HP Omen 17 17-an110ca CPU: i7-8750H (0.125V core & cache, 50mV SA undervolt) GPU: GTX 1060 6GB Mobile (+80/+450, 1650MHz~1750MHz 0.78V~0.85V) RAM: 8+8GB DDR4-2400 18-17-17-39 2T Storage: HP EX920 1TB PCIe x4 M.2 SSD + Crucial MX500 1TB 2.5" SATA SSD, 128GB Toshiba PCIe x2 M.2 SSD (KBG30ZMV128G) gone cooking externally, 1TB Seagate 7200RPM 2.5" HDD (ST1000LM049-2GH172) left outside Monitor: 1080p 126Hz IPS G-sync

 

Desktop benching:

Cinebench R15 Single thread:168 Multi-thread: 833 

SuperPi (v1.5 from Techpowerup, PI value output) 16K: 0.100s 1M: 8.255s 32M: 7m 45.93s

Link to comment
Share on other sites

Link to post
Share on other sites

As so many already has told you, it's really not the language, but your reasoning/problem solving skills that you develop here. Your first programming language should be one that's used widely and has loads of support on forums and documentation. I would start on something like JAVA or C# because these languages are Object Oriented and Strongly Typed.

 

When you have grasped the core concepts of one of these languages I would recommend starting on a Weakly Typed language like Python or JavaScript to see the differences. Link to article about this subject. Loads more info on a simple google search.

 

So in short - I would recommend learning one language first and then branching out. A good site for learning code for free is CodeCademy

A simple software developer from the far away land of Denmark

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, iLostMyXbox21 said:

No, I learne HTML and CSS at the same time (almost, I learned some css while learning html and some html while learning css)

 

 

whatever makes you be able to learn

Hate to be a sucker on this one, but HTML and CSS are technically not programming languages. These are markup and styling languages. For a language to be considered a Programming Language I believe it has to be Turing Complete

A simple software developer from the far away land of Denmark

Link to comment
Share on other sites

Link to post
Share on other sites

37 minutes ago, IncrediblePony said:

Hate to be a sucker on this one, but HTML and CSS are technically not programming languages. These are markup and styling languages. For a language to be considered a Programming Language I believe it has to be Turing Complete

I know, those were just examples

✧・゚: *✧・゚:*  Quote for a reply  *:・゚✧*:・゚✧

 

✧・゚: *✧・゚:*   Ask for discord   *:・゚✧*:・゚✧

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, GOLD1176 said:

I've been learning to program with Java for a few months now (through YT tutorials and a book), and I've been enjoying it for the most part. The object-orientedness of Java is making sense to me and I like it. But I've read that being a good programmer involves knowing more than just one language. This sounds valid to me, but I don't know when I should begin learning a second language.


Would it be a good idea to learn Java and Python, for example (I'm sort of interested in Python because it sounds like a relatively easier, yet relatively powerful language), or should I become proficient with Java and then learn a second language, (maybe even a more advanced one than Python)?

Knowing a language doesn't make a good programmer. All you need is analyst mind. A good programmer can figure out the generic steps to achieve what he needs. Knowing how to build it is secondary. Language is a tool, logic is the structure. Even if you have the best tool to build a house but your plan is total garbage your house will fall down.

 

Knowing more language will help you getting on jobs where they already use specific languages. That is the main reason to know more languages.

 

That being said, from Java a natural path for OOP would be any C base language as it will be the easiest to pickup. I would skip C and check out C++ or even easier C# (syntax is 90% same as Java).

 

You mentioned Python and it's a good choices too. It's also OOP~ish and probably the easiest to pick up when you have a Java/C background. Knowing a scripting language is good.

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, iLostMyXbox21 said:

No, I learne HTML and CSS at the same time (almost, I learned some css while learning html and some html while learning css)

 

 

whatever makes you be able to learn

that's because HTML and CSS are required together in order to make web pages that aren't trash.

 

14 hours ago, GOLD1176 said:

I've been learning to program with Java for a few months now (through YT tutorials and a book), and I've been enjoying it for the most part. The object-orientedness of Java is making sense to me and I like it. But I've read that being a good programmer involves knowing more than just one language. This sounds valid to me, but I don't know when I should begin learning a second language.


Would it be a good idea to learn Java and Python, for example (I'm sort of interested in Python because it sounds like a relatively easier, yet relatively powerful language), or should I become proficient with Java and then learn a second language, (maybe even a more advanced one than Python)?

python is a great first language due to it being very "English"

numbers = [1,2,3,4]

for number in numbers:

    print(number)

 

where is java would be something like


int numbers[] = { 1,2,3,4 };

for (int i = 0; i < numbers.length; i++) {

    System.out.println(numbers[i]);

}

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

No issue whatsoever doing that, as long as you mentally keep those languages boxed and don't force one to work like the other one. But I don't see why not.  

Link to comment
Share on other sites

Link to post
Share on other sites

It depends on the person.

My mates started with C and Python while I started with C++ only since I got overwhelmed pretty easily when I wanted to learn Javascript and Assembly alongside C++, after I got used to C++ then I started moving to Javascript.

 

What matters is the basic, the foundation. Different language's got different syntax, but the logic (I mean the foundation/basic) remains.

If you are really motivated to learn more than one language at once, I don't see why not.

Where I hang out: The Garage - Car Enthusiast Club

My cars: 2006 Mazda RX-8 (MT) | 2014 Mazda 6 (AT) | 2009 Honda Jazz (AT)


PC Specs

Indonesia

CPU: i5-4690 | Motherboard: MSI B85-G43 | Memory: Corsair Vengeance 2x4GB | Power Supply: Corsair CX500 | Video Card: MSI GTX 970

Storage: Kingston V300 120GB & WD Blue 1TB | Network Card: ASUS PCE-AC56 | Peripherals: Microsoft Wired 600 & Logitech G29 + Shifter

 

Australia 

CPU: Ryzen 3 2200G | Motherboard: MSI - B450 Tomahawk | Memory: Mushkin - 8GB (1 x 8GB) | Storage: Mushkin 250GB & Western Digital - Caviar Blue 1TB
Video Card: GIGABYTE - RX 580 8GB | Case: Corsair - 100R ATX Mid Tower | Power Supply: Avolv 550W 80+ Gold

 

Link to comment
Share on other sites

Link to post
Share on other sites

Once you know how to program, it doesn't matter what language you use - I would recommend trying as many common languages as possible though, just to see what's out there, even if not right now. Once you get comfortable with the oop paradigm you may also want to take a look at a functional language, they're quite different.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

JavaScript should be learned alongside HTML and CSS. Otherwise, don't. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/12/2019 at 7:12 PM, GOLD1176 said:

I've been learning to program with Java for a few months now...But I've read that being a good programmer involves knowing more than just one language. This sounds valid to me, but I don't know when I should begin learning a second language.

That's kind of a tough one to answer correctly.
 

In short words:

It depends on the definition of "beginner".

In general, one should start learning a second language when learning the second language is nearly entirely about learning the new syntax and grammar, and doesn't require you to learn basic things to make simple programs.

The one exception to that rule is when you switch paradigms: C is very different from Java, and will require "relearning" (or rather, forgetting) quite a few things. A similar thing happens when switching to a language like Common-Lisp, for example.

 

In longer words:

  • Are you aware of the basics of OOP programming?
    • What is polymorphism, and what mechanism allows us to achieve polymorphism?
    • What does "Separation of Concerns" mean?
    • What is encapsulation, and why can it be important?
      • What are "invariants" and how do we make sure that our *thing always maintains its invariants?
  • Are you aware of the basics of data structures?
    • What is a self referential structure?
    • How does a linked list work?
    • Can you make a min/max heap?
  • Do you know the basics of algorithms in general?
    • Given a simple algorithm, can you determine its Big O runtime?
    • What level of understanding do you have with Boolean Algebra?

 

 

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/13/2019 at 8:59 AM, vorticalbox said:

that's because HTML and CSS are required together in order to make web pages that aren't trash.

 

python is a great first language due to it being very "English"
 


numbers = [1,2,3,4]

for number in numbers:

    print(number)

 

 

where is java would be something like

 


int numbers[] = { 1,2,3,4 };

for (int i = 0; i < numbers.length; i++) {

    System.out.println(numbers[i]);

}

 

Ummm I don't really like your example since for it to be equivalent you'd need to have

numbers = [1,2,3,4]

for x in range(len(numbers)):

    print(numbers[x])

for the python example or

int numbers[] = { 1,2,3,4 };

for (int number : numbers) {

    System.out.println(number);

}

for the java example.

Besides, you'd probably be best off using functional programming instead of a more traditional for or for each loop.
 

 

Anyway regarding the OP,

I don't really see why you couldn't do that? It might be a bit annoying confusing from a syntax point of view but that's really the least important aspect of computer science. Programming is just a tool that is heavily used to gain insight and understanding into CS and from that point of view there's no reason why you couldn't learn multiple languages at the same time.

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/16/2019 at 5:27 PM, Sauron said:

Once you know how to program, it doesn't matter what language you use - I would recommend trying as many common languages as possible though, just to see what's out there, even if not right now. Once you get comfortable with the oop paradigm you may also want to take a look at a functional language, they're quite different.

functional > OOP :P

 

Spoiler

~$ flamewar init

 

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

21 minutes ago, vorticalbox said:

functional > OOP :P

Sorry, no flamewar - I agree on this ?‍♂️

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×