Jump to content

Learning a new language

stevemenendez
Go to solution Solved by PeachyUwUSenpai,

probably start with something like c java or rust. then try out different types once you have the first one down since its pretty easy to jump between languages since you can do the same thing in most languages there just named differently. (and some languages just make it easier to do certain things that are harder in other languages)

ones you may want to check out after you learn c java or rust 

python

nodejs 

haskell

c++

c#

theres also a bunch more

 

I am relatively young but I want to challenge myself. I want to learn a programing language, but I have no idea what language would be useful. I do want to be challenged and I want to learn something that I will actually use. Any suggestions?

Intel 7700k @stock// Asus rog strix GeForce GTX 1080// Asus rog Z-270E// Phantels Enthoo Evolv// 32gb (2x16) Corsair Vengance LPX// Corsair H100i V2// Samsung 850 Evo 250gb// Seagate BarraCuda 3tb// Corsair RM750i

Link to comment
Share on other sites

Link to post
Share on other sites

what do you want to program? for websites, start with HTML and CSS, for robots, maybe python? (I am not an expert, but these are some of the most common I think)

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, GeorgeKellow said:

Python is simple apprantly 

So is Swift, if you want to do iOS or macOS apps. 

Intel HEDT and Server platform enthusiasts: Intel HEDT Xeon/i7 Megathread 

 

Main PC 

CPU: i9 7980XE @4.5GHz/1.22v/-2 AVX offset 

Cooler: EKWB Supremacy Block - custom loop w/360mm +280mm rads 

Motherboard: EVGA X299 Dark 

RAM:4x8GB HyperX Predator DDR4 @3200Mhz CL16 

GPU: Nvidia FE 2060 Super/Corsair HydroX 2070 FE block 

Storage:  1TB MP34 + 1TB 970 Evo + 500GB Atom30 + 250GB 960 Evo 

Optical Drives: LG WH14NS40 

PSU: EVGA 1600W T2 

Case & Fans: Corsair 750D Airflow - 3x Noctua iPPC NF-F12 + 4x Noctua iPPC NF-A14 PWM 

OS: Windows 11

 

Display: LG 27UK650-W (4K 60Hz IPS panel)

Mouse: EVGA X17

Keyboard: Corsair K55 RGB

 

Mobile/Work Devices: 2020 M1 MacBook Air (work computer) - iPhone 13 Pro Max - Apple Watch S3

 

Other Misc Devices: iPod Video (Gen 5.5E, 128GB SD card swap, running Rockbox), Nintendo Switch

Link to comment
Share on other sites

Link to post
Share on other sites

probably start with something like c java or rust. then try out different types once you have the first one down since its pretty easy to jump between languages since you can do the same thing in most languages there just named differently. (and some languages just make it easier to do certain things that are harder in other languages)

ones you may want to check out after you learn c java or rust 

python

nodejs 

haskell

c++

c#

theres also a bunch more

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, M.Yurizaki said:

If you want a programming language challenge, you could always try the appropriately named Brainfuck

Bodyfuck is way superieur

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Zando Bob said:

So is Swift, if you want to do iOS or macOS apps. 

Where to get it?

"Make it future proof for some years at least, don't buy "only slightly better" stuff that gets outdated 1 year, that's throwing money away" @pipoawas

 

-Frequencies DON'T represent everything and in many cases that is true (referring to Individual CPU Clocks).

 

Mention me if you want to summon me sooner or later

Spoiler

My head on 2019 :

Note 10, S10, Samsung becomes Apple, Zen 2, 3700X, Renegade X lol

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Ordinarily_Greater said:

Where to get it?

You have to have a Mac so you can get Xcode.

Intel HEDT and Server platform enthusiasts: Intel HEDT Xeon/i7 Megathread 

 

Main PC 

CPU: i9 7980XE @4.5GHz/1.22v/-2 AVX offset 

Cooler: EKWB Supremacy Block - custom loop w/360mm +280mm rads 

Motherboard: EVGA X299 Dark 

RAM:4x8GB HyperX Predator DDR4 @3200Mhz CL16 

GPU: Nvidia FE 2060 Super/Corsair HydroX 2070 FE block 

Storage:  1TB MP34 + 1TB 970 Evo + 500GB Atom30 + 250GB 960 Evo 

Optical Drives: LG WH14NS40 

PSU: EVGA 1600W T2 

Case & Fans: Corsair 750D Airflow - 3x Noctua iPPC NF-F12 + 4x Noctua iPPC NF-A14 PWM 

OS: Windows 11

 

Display: LG 27UK650-W (4K 60Hz IPS panel)

Mouse: EVGA X17

Keyboard: Corsair K55 RGB

 

Mobile/Work Devices: 2020 M1 MacBook Air (work computer) - iPhone 13 Pro Max - Apple Watch S3

 

Other Misc Devices: iPod Video (Gen 5.5E, 128GB SD card swap, running Rockbox), Nintendo Switch

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Zando Bob said:

You have to have a Mac so you can get Xcode.

I am using iPad right now

"Make it future proof for some years at least, don't buy "only slightly better" stuff that gets outdated 1 year, that's throwing money away" @pipoawas

 

-Frequencies DON'T represent everything and in many cases that is true (referring to Individual CPU Clocks).

 

Mention me if you want to summon me sooner or later

Spoiler

My head on 2019 :

Note 10, S10, Samsung becomes Apple, Zen 2, 3700X, Renegade X lol

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Ordinarily_Greater said:

I am using iPad right now

Yeah, I think there's a Swift playground app for iPad so you can learn it, but to make a full app you need a Mac. 

Intel HEDT and Server platform enthusiasts: Intel HEDT Xeon/i7 Megathread 

 

Main PC 

CPU: i9 7980XE @4.5GHz/1.22v/-2 AVX offset 

Cooler: EKWB Supremacy Block - custom loop w/360mm +280mm rads 

Motherboard: EVGA X299 Dark 

RAM:4x8GB HyperX Predator DDR4 @3200Mhz CL16 

GPU: Nvidia FE 2060 Super/Corsair HydroX 2070 FE block 

Storage:  1TB MP34 + 1TB 970 Evo + 500GB Atom30 + 250GB 960 Evo 

Optical Drives: LG WH14NS40 

PSU: EVGA 1600W T2 

Case & Fans: Corsair 750D Airflow - 3x Noctua iPPC NF-F12 + 4x Noctua iPPC NF-A14 PWM 

OS: Windows 11

 

Display: LG 27UK650-W (4K 60Hz IPS panel)

Mouse: EVGA X17

Keyboard: Corsair K55 RGB

 

Mobile/Work Devices: 2020 M1 MacBook Air (work computer) - iPhone 13 Pro Max - Apple Watch S3

 

Other Misc Devices: iPod Video (Gen 5.5E, 128GB SD card swap, running Rockbox), Nintendo Switch

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, Ordinarily_Greater said:

Where to get it?

You can get Swift from the Swift download page. There is a download for Mac (as has been said there may also be a Swift playground for iPads, I'm not sure I don't use Apple products, so you're going to have to do some research yourself), there are also tarballs available for Ubuntu.

 

Being young doesn't matter, I'm only 15 and I enjoy programming (a lot), and I began learning programming when I was 12. I would recommend that you choose a project that you want to work on (which programming language is irrelevant for this), so you have a goal to fuel your learning. I hope that you have fun with programming, good luck! :D

Link to comment
Share on other sites

Link to post
Share on other sites

On 20.6.2017 at 6:08 PM, stevemenendez said:

I want to learn something that I will actually use. Any suggestions?

 

C, C++, Perl, Common Lisp.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

I suggest you start by learning python. Although it's sort of different from c syntaxtically it's far easier to run as it's an interpretative language that doesn't have to be compiled. It's basically the go to language for beginners.

 

Just as a heads up its possible to make cool stuff with a rather limited understanding of programming. It'll just take a bit longer and be a lot messier but if your ever getting bored try to interest yourself by attempting to make something fun. 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, edward30 said:

Do you want to learn how to program well, or do you want the hollow satisfaction of making junk quickly? The choice between C and Python is exactly that.

I fail to see the logic in how which language you start with determines how you program well and how you don't. I've seen poorly written C programs that were a nightmare to look at and I've seen well written Python scripts that allow me to figure out what's going on without pinging the original author every 10 minutes, if the original author is even around.

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, edward30 said:

The logic is in as much as C will teach you how computers work, and give you greater control.

 

Being able to implement your own structures and algorithms, and the understanding that comes with it, makes one a better programmer. So if you're learning to program, what makes more sense?

 

To paraphrase the article I posted, going from user to python programmer is essentially replacing the mystery of user facing software, with the mystery of how the abstractions you use are implemented. You have some understanding of imperative programming, but in meaningful ways, you're still ignorant.

 

I strongly support C as a first programming language.

While I find it important to understand how a computer works, I do not find it important to need to learn C just to get an appreciation of it. A cursory knowledge of what goes on in a computer is fine, but an application software developer doesn't really need to know how create a pimpl list from scratch and why it works the way it does.

 

It's like saying if you want to want to create a website, you should learn the OSI model down to telling me the voltage values of a proper RS-232 line is and how the signal is structured because RS-232 is a valid PHY layer protocol. No, that's not important. However, it's still good to know the general overview of the OSI model if you're going to be serious about creating a website.

 

Making software exists to solve a problem. I don't care how you solve it as long as you solve it. If I have a performance requirement, so be it and use the right tool for the job. But I don't care if you've written the application in C, Python, Pascal, Objective-C, FORTRAN, Brainfuck, or LOLCODE.

 

Now making sure the code is designed well such that it's readable and maintainable? That's independent of any language.

Link to comment
Share on other sites

Link to post
Share on other sites

Also learning how computers work doesn't teach you that bubble sorting is very inefficient; that binary searching is a good first crack at looking into a range of values; that if you're repeating yourself, you should stick the routine in a function or loop; that if you have five nested levels of if-statements, you have a problem; that you shouldn't use GOTO; etc.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, edward30 said:

I suggest, strongly, against this approach.

 

Do you want to learn how to program well, or do you want the hollow satisfaction of making junk quickly? The choice between C and Python is exactly that.

 

Be sure to read the article I posted above.

The language one learns really doesn't matter. What matters is that you learn something about how code works and are engaged enough that you want to keep learning how code works.

 

Learning Python is easier than learning C, especially if you are a beginner. Which essentially means that by learning Python you will have the basics for how code works and will have a much easier time learning C than if you tried learning C and ended up giving up cause it was too difficult. Sure if you manage to learn C well then yes learning Python will be easier for you than learning C from a Python background but that's not the most probable outcome.

 

TLDR: Entertain people first then teach them, since if you start by teaching them, then by the time you get to the entertaining stuff they'll already be too bored to continue.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, edward30 said:

The language one learns DOES matter. A lot. Heck, Dijkstra said "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

 

Entertain first? Entertain who? The smartest students will think the field is boring and leave for more challenging and engaging work. Keep the poor students (as they are more numerous), and discard the high quality students... Not an especially original idea; that's in the ballpark of what CS departments in the US do.

 

The languages one learns really don't matter. Why? Cause if you understand computer science then you can learn any new language within a few days if not hours. All languages are built ontop of essentially the exact same principles. Which language you chose to start with doesn't matter as long as it's easy, quick, and fun to work with.


If you really want people to get a deep understanding into computer science as right off the start then why not dump them into making an OS for a pi 3 using ARMv8 Assembly, C, and C++? Assuming they survive that they'll have a very deep understanding of linkers, compilers, interrupts, hardware, memory, pointers, etc.


Surely even you would agree that such knowledge would be basically worthless to someone that's just starting out and be a huge barrier which would ensure that only a few would be able to get into the field. Is that really what you want, for only a few very like minded individuals to get into computer science? Less people almost always means less ideas and less ideas almost always means less progress.

 

The way people learn is by doing something they care about and consider enjoyable. The easiest way to make something enjoyable is to make it entertaining. This is basic human psychology... why not exploit this? Why would you intentionally make things harder to learn? Look at Linux for instance if only it was more popular then it would have all ports of all the software that I need it to have before I can switch to it as my daily driver. Unfortunately many hardcore Linux users do not seem to understand this fact and act as though they intentionally want to scare people away from their platform.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, edward30 said:

I wouldn't go to that extreme -- at least not right away. But I will say that I think we could do with fewer programmers if the average quality of programmers increases. There is a lot of truly awful code out there -- and maintaining/fixing awful code is a great deal of what programmers do. Some programmers are a drain and should be in other careers.

 

Some people are entertained by challenge and difficulty... and bored by what is easy. Those are the people the field needs most of all.

Okay, glad to know you agree with me on something. With that said I don't think how well someone knows C or Assembly directly affects their code quality. That's mostly a result of experience, reading style guides, taking software engineering classes, working with other programmers, etc.


Also some computer scientists go on to careers where they barely ever write code. Need I remind you that theoretical computer science is a thing? One of my friends is basically going into that and he's been mainly writing code in Matlab for a still theoretical quantum computer.

Link to comment
Share on other sites

Link to post
Share on other sites

@edward30 Also prove to us that what language you start off with determines how well you do in the field. As much as I respect Dijkstra, just because one expert in the field said something, doesn't mean it's true. And if anything, he was only expressing his disdain for the language. Much like so many people here seem to take potshots at their favorite language to make fun of.

 

I mean, my first foray into programming was the Starcraft map editor, RPG Maker (yes those two count as programming), and... wait for it... BASIC. And yet I'm currently having a successful career in the field. I'm pretty sure if I didn't do any of those, I wouldn't have had my interest piqued.

Link to comment
Share on other sites

Link to post
Share on other sites

Exactly @M.Yurizaki one of my profs started with Basic and he's been able to learn other languages. Although he did mention that learning his second language was the most difficult... which I guess could have been a result of starting with Basic.

 

Anyway I've started with Python and have since learned Java, ARMv8 and ARMv7 Assembly, C#, Haskell, Prolog, and some C and C++. Also even before I learned Python I messed around in Unity with C# by effectively googling what I wanted to do and copy pasting code with perhaps some minor changes. That along with my interset in hardware drove my interest in computer science.

Link to comment
Share on other sites

Link to post
Share on other sites

26 minutes ago, ElfFriend said:

Although he did mention that learning his second language was the most difficult... which I guess could have been a result of starting with Basic.

I don't see BASIC entirely as a language to beat down and kick, but going from a language that is generally implemented with a lot of natural words to one that includes the use of parentheses, dots,  arrows, and braces out the wazoo would probably make anyone's head spin for a bit.

 

I still get tripped up on Python from time to time when I should  use "not" instead of !. Though I will criticize its use of "elif" instead of "else if"

 

EDIT: To explain the above about BASIC, I don't mind if you use it as a language to poke around in as a curiosity, but don't invest too much time into it. It's mostly I don't care what language you use to grasp the basics of programming, because the basics are pretty much the same regardless of language.

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

×