Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
GOLD1176

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

Recommended Posts

Posted · Original PosterOP

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 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-3820 | Corsair H100i | ASUS P9X79-LE | 16GB Patriot Viper 3 1866MHz DDR3 | MSI GTX 970 Gaming 4G | 2TB WD Blue M.2 SATA SSD | 2TB Hitachi Deskstar HDD | 1TB WD Black HDD | Corsair CX750M Fractal Design Define R5 Windows 10 Pro / Linux Mint 19 Cinnamon

 

Laptop:

Dell XPS 15 9560 4K Touch | Intel Core i5-7300HQ | 12GB Generic (Crucial?) 2133MHz DDR4 | Nvidia GTX 1050 | 256GB Toshiba M.2 NVMe SSD | Windows 10

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.


PCMR

Primary PC: Lazarus | Build: https://pcpartpicker.com/list/tv7hLJ | Build Log: https://linustechtips.com/main/topic/1000427-lazarus/

Case: Fractal Design Define R6 | PSU: Seasonic Focus Platinum 750W | Mobo: Asus ROG STRIX B350-F | Front Panel: Asus DVD/RW Drive

CPU: Ryzen 5 2600x @ Stock Speeds | 32 GB DDR4 RAM (4x8) Corsair Vengeance 2933MHz | CPU Cooler: Noctua NH-D15 SE-AM4

Storage: 1TB 7200rpm Toshiba 3.5" HDD, 2TB 5400rpm Seagate Firecuda SSHD, 500GB Samsung 970 EVO, 500GB Samsung 860 EVO, 4TB Toshiba X300 7200rpm HDD

Fans: Corsair 120mm SF x 3, Fractal Design 140mm Dynamic X2 x 3 | Peripherals: Asus Strix Flare, Corsair Scimitar Pro | GPU: GTX 1070 STRIX

Expansion Cards: Asus Hyper M.2 x16 Card, Asus Xonar DGX | USB devices: Asus AC66 USB 3.0 AC wifi adapter, Blue Snowball, NZXT Hue+

Displays:  23" 1080p 60Hz, Asus PB258Q 27" 1440p 60Hz | OS: Windows 10 Home x64

Secondary PC: Dell Inspiron 15 5000 Gaming 

CPU: Intel Core i5-7300 HQ | RAM: 16 GB DDR4 RAM | GPU: GTX 1050 4 GB | Storage: 1TB 5400rpm Western Digital HDD, 500GB 960 EVO

OS: Windows 10 Home x64

Tertiary PC: *insert name here*/HTPC | Build: https://pcpartpicker.com/list/8W4cLJ | Build Log: https://linustechtips.com/main/topic/1030228-htpcconsole-build/

Case: Silverstone Grandia GD09 | PSU: Seasonic Focus Plus Gold 650W | Mobo: Asus Q87m-E/CSM | Front Panel: DVD/RW Drive

CPU: Intel Core i5-4670k | RAM: 32GB DDR3 (4x8) Kingston HyperX | CPU Cooler: Cryorig C7

Fans: Arctic F8 PWM x2, Arctic F12 PWM x 2 | Peripherals: Generic USB Mouse, Dell PS/2 keyboard | Display: HP 2310m 23" 1080p

Expansion Cards: Asus PCE-AC55 PCIe AC wifi/bluetooth adapter, (may, add Asus Xonar DG)

Storage: 1TB 7200rpm Western Digital 3.5" HDD, 1TB Western Digital 2.5" SSD

GPU: Asus GTX 960 Turbo 4GB| OS: Windows 10 Home x64

Mobile Devices

Asus Zenfone 4 Max | Battery: 5400 mAh | Approx Battery Life: 3 Days | Storage: 32 GB Internal Memory, 32 GB mSD Card

RAM: 3 GB RAM | APU: Qualcomm Snapdragon 435 @ 1.4 GHZ | Display: 5.5" 720p | OS: Android 8.1

 

Asus ZenPad S3 10 | Battery: 4000 mAh | Approx Battery Life: 2 Days | Storage: 64 GB Internal Memory, 32 GB mSD Card

RAM: 4 GB RAM | CPU: MTK MT8176 | GPU: IMG GX6250 | Display: 9.7" 2k | OS: Android 7.1

Consoles

Nintendo Switch | 128 GB Samsung micro SD

PS4 Slim | Stock 1TB 5400rpm HDD

Networking

Cable Modem | Asus CM-16

Wireless Router | Asus RT-AC66U_B1

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 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


I took a walk around the world to Ease my troubled mind I left my body lying somewhere In the sands of time I watched the world float to the dark Side of the moon I feel there is nothing I can do, yeah I watched the world float to the Dark side of the moon After all I knew it had to be something To do with you I really don't mind what happens now and then As long as you'll be my friend at the end If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite You called me strong, you called me weak But still your secrets I will keep You took for granted all the times Never let you down You stumbled in and bumped your head, if Not for me then you'd be dead I picked you up and put you back On solid ground If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite Oh whoa whoa If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite

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.


Studying abroad, ditched the crappy laptop for a do-all laptop double. Dried factory CPU paste, long memory timings, cooler cools the inductors but not the mosfets and an inch of unused internal space on both left and right

Model: HP Omen 17 17-an110ca CPU: i7-8750H (0.125V core & cache, 50mV system agent undervolt) GPU: GTX 1060 6GB Mobile (1696MHz 0.812V ~ 1860MHz 0.95V) RAM: 12GB DDR4-2666 19-19-19-43 2T Storage: 128GB Toshiba NVMe SSD (KBG30ZMV128G) + 1TB Seagate 7200RPM 2.5" HDD (ST1000LM049-2GH172) Monitor: 1080p 120Hz IPS G-sync

 

The best thing to do is reading the clock speed that doesnt end in a pair of zeros. Software voltage readings are wrong if your motherboard's not a high end model

CPU: i7-2600K 4493MHz (multiplier: 43x) 1.35V (software) --> 1.4V at the back of the socket Motherboard: Asrock Z77 Extreme4 (BCLK: 104.5MHz) CPU Cooler: Noctua NH-D15 RAM: Adata XPG 2x8GB DDR3 (XMP: 10-11-11-30 2T 2133MHz, custom: 10-11-10-30 1T 2229MHz) GPU: Asus GTX 1070 Dual 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 (OC'd 150Hz) TN Keyboard: Logitech G610 Orion (Cherry MX Blue) with SteelSeries Apex M260 keycaps Mouse: BenQ Zowie FK1

 

Results: Cinebench R15 Single thread:159 Multi-thread: 770 (thx Meltdown Spectre patch) Super Pi (v1.5 from Techpowerup, PI value output) 16K: 0.11s 1M: 8.4s 32M: 7m 45.9s

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 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 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


I took a walk around the world to Ease my troubled mind I left my body lying somewhere In the sands of time I watched the world float to the dark Side of the moon I feel there is nothing I can do, yeah I watched the world float to the Dark side of the moon After all I knew it had to be something To do with you I really don't mind what happens now and then As long as you'll be my friend at the end If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite You called me strong, you called me weak But still your secrets I will keep You took for granted all the times Never let you down You stumbled in and bumped your head, if Not for me then you'd be dead I picked you up and put you back On solid ground If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite Oh whoa whoa If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite If I go crazy then will you still Call me Superman If I'm alive and well, will you be There holding my hand I'll keep you by my side with My superhuman might Kryptonite

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 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 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 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


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 (Planned) 

CPU: i3-8100 | Motherboard: Gigabyte - B360 HD3 | Memory: .Skill - NT Series 8GB (2 x 4GB) | Storage: Kingston A400 120GB & Western Digital - Caviar Blue 1TB
Video Card: MSI - GeForce GTX 1050 Ti 4GB | Case: Rosewill - Galaxy-02 ATX Mid Tower | Power Supply: EVGA - BQ 500W 80+ Bronze

 

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.


<Make me a sandwich.> <No! Make it yourself!> <Sudo make me a sandwich.> <FINE.> What is scaling and how does it work? Asus PB287Q unboxing! Console alternatives :D  CoC F.A.Q Beginner's Guide To LTT (by iamdarkyoshi)

Sauron'stm Product Scores:

Spoiler

Just a list of my personal scores for some products, in no particular order, with brief comments. I just got the idea to do them so they aren't many for now :)

Don't take these as complete reviews or final truths - they are just my personal impressions on products I may or may not have used, summed up in a couple of sentences and a rough score. All scores take into account the unit's price and time of release, heavily so, therefore don't expect absolute performance to be reflected here.

 

-Lenovo Thinkpad X220 - [8/10]

Spoiler

A durable and reliable machine that is relatively lightweight, has all the hardware it needs to never feel sluggish and has a great IPS matte screen. Downsides are mostly due to its age, most notably the screen resolution of 1366x768 and usb 2.0 ports.

 

-Apple Macbook (2015) - [Garbage -/10]

Spoiler

From my perspective, this product has no redeeming factors given its price and the competition. It is underpowered, overpriced, impractical due to its single port and is made redundant even by Apple's own iPad pro line.

 

-OnePlus X - [7/10]

Spoiler

A good phone for the price. It does everything I (and most people) need without being sluggish and has no particularly bad flaws. The lack of recent software updates and relatively barebones feature kit (most notably the lack of 5GHz wifi, biometric sensors and backlight for the capacitive buttons) prevent it from being exceptional.

 

-Microsoft Surface Book 2 - [Garbage - -/10]

Spoiler

Overpriced and rushed, offers nothing notable compared to the competition, doesn't come with an adequate charger despite the premium price. Worse than the Macbook for not even offering the small plus sides of having macOS. Buy a Razer Blade if you want high performance in a (relatively) light package.

 

-Intel Core i7 2600/k - [9/10]

Spoiler

Quite possibly Intel's best product launch ever. It had all the bleeding edge features of the time, it came with a very significant performance improvement over its predecessor and it had a soldered heatspreader, allowing for efficient cooling and great overclocking. Even the "locked" version could be overclocked through the multiplier within (quite reasonable) limits.

 

-Apple iPad Pro - [5/10]

Spoiler

A pretty good product, sunk by its price (plus the extra cost of the physical keyboard and the pencil). Buy it if you don't mind the Apple tax and are looking for a very light office machine with an excellent digitizer. Particularly good for rich students. Bad for cheap tinkerers like myself.

 

 

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 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?

 

 


Teacher: Does anyone have a thin ruler?

Students: No.

Teacher: Ok. Does anyone have a nail file.

Students: Why do you need a nail file?
Teacher: I have a staple I need to remove.

Student: Oh. I have a staple remover...

 

People don't want power drills, they want holes.

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 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 post
Share on other sites
21 minutes ago, vorticalbox said:

functional > OOP :P

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


<Make me a sandwich.> <No! Make it yourself!> <Sudo make me a sandwich.> <FINE.> What is scaling and how does it work? Asus PB287Q unboxing! Console alternatives :D  CoC F.A.Q Beginner's Guide To LTT (by iamdarkyoshi)

Sauron'stm Product Scores:

Spoiler

Just a list of my personal scores for some products, in no particular order, with brief comments. I just got the idea to do them so they aren't many for now :)

Don't take these as complete reviews or final truths - they are just my personal impressions on products I may or may not have used, summed up in a couple of sentences and a rough score. All scores take into account the unit's price and time of release, heavily so, therefore don't expect absolute performance to be reflected here.

 

-Lenovo Thinkpad X220 - [8/10]

Spoiler

A durable and reliable machine that is relatively lightweight, has all the hardware it needs to never feel sluggish and has a great IPS matte screen. Downsides are mostly due to its age, most notably the screen resolution of 1366x768 and usb 2.0 ports.

 

-Apple Macbook (2015) - [Garbage -/10]

Spoiler

From my perspective, this product has no redeeming factors given its price and the competition. It is underpowered, overpriced, impractical due to its single port and is made redundant even by Apple's own iPad pro line.

 

-OnePlus X - [7/10]

Spoiler

A good phone for the price. It does everything I (and most people) need without being sluggish and has no particularly bad flaws. The lack of recent software updates and relatively barebones feature kit (most notably the lack of 5GHz wifi, biometric sensors and backlight for the capacitive buttons) prevent it from being exceptional.

 

-Microsoft Surface Book 2 - [Garbage - -/10]

Spoiler

Overpriced and rushed, offers nothing notable compared to the competition, doesn't come with an adequate charger despite the premium price. Worse than the Macbook for not even offering the small plus sides of having macOS. Buy a Razer Blade if you want high performance in a (relatively) light package.

 

-Intel Core i7 2600/k - [9/10]

Spoiler

Quite possibly Intel's best product launch ever. It had all the bleeding edge features of the time, it came with a very significant performance improvement over its predecessor and it had a soldered heatspreader, allowing for efficient cooling and great overclocking. Even the "locked" version could be overclocked through the multiplier within (quite reasonable) limits.

 

-Apple iPad Pro - [5/10]

Spoiler

A pretty good product, sunk by its price (plus the extra cost of the physical keyboard and the pencil). Buy it if you don't mind the Apple tax and are looking for a very light office machine with an excellent digitizer. Particularly good for rich students. Bad for cheap tinkerers like myself.

 

 

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


×