this post was submitted on 05 Jun 2026
101 points (96.3% liked)

Programming

28194 readers
274 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
 

I have been thinking of learning some programming recently, but I don't feel confident enough. Is there any point in beginning with something like Zig or Go, and switching to something more serious later?

(page 2) 50 comments
sorted by: hot top controversial new old
[–] spj@sh.itjust.works 4 points 2 months ago (3 children)

Modern OOP is an antipattern.

[–] MyNameIsRichard@lemmy.ml 3 points 2 months ago* (last edited 2 months ago)

OOP isn't an anti-pattern, but the way it's used in the enterprise Java world definitely is. And it's all based on a fundamental misunderstanding of what an interface is.

[–] Magnum@infosec.pub 3 points 2 months ago (7 children)
[–] Tja@programming.dev 2 points 2 months ago

The fedora prevents them from typing fast enough.

[–] amorangi@lemmy.nz 1 points 2 months ago

From my understanding, anti OOP aficionados say too much energy is spent constructing the framework, often unnecessarily, instead of writing the code that needs to be done. I think they have some merit in their argument. It's easy to see both points of view.

load more comments (5 replies)
load more comments (1 replies)
[–] spj@sh.itjust.works 4 points 2 months ago

I try to only write in easy language if I can. My favorite one is Lean4.

There's lots of this vs that discussion in this thread. IMO the most useful such distinction I've encountered is languages that encourage you to think about data vs languages that encourage you to think about transformations (of data). Excel and modern OOP are the former while haskell and digital signal processing are the latter.

[–] rostselmasch@lemmygrad.ml 3 points 2 months ago

Why is Go not a serious language? Programming backend stuff is great with it. Especially networking. Reading Go is not hard and in my opinion it is more easy to understand Go code you find from other programmers than Python. Companies are build on Go and people make a living from it. However you need to look into you local job market, where I live there are very few companies looking for Go developers. It is a serious language. But I don't know much about zig, I used it once for CGO.

[–] hendrik@palaver.p3x.de 3 points 2 months ago* (last edited 2 months ago)

Lmao. First, everyone is right. Go is serious. An Zig as well. And a bit niche.

Furthermore: Yes. Unless you like learning curves as steep as a brick wall... You should probably start with something beginner friendly.

And you should get some kind of book to learn it. That's easier and faster than poking around and learning things in random order.

As an adult, just skip the programming languages made for children. And skip the crazy ones like PHP. Go for something that is both useful and doesn't come with 5 bazillion things to learn at once, and as many exceptions to those rules.

[–] NotSteve_@lemmy.ca 3 points 2 months ago (1 children)

When I first started programming I was constantly thinking the same thing: should I learn this or that language? Will it be useful or a waste of time?, etc but it really doesn't matter. Nearly every modern language has the same core principles of variables, constants, functions and data structures. Once you've gotten the hang of those ideas then switching languages is just a matter of learning the new syntax which isn't hard when you already know how it's going to work

[–] heartSagan5@lemmy.zip 1 points 2 months ago (1 children)

Whoa, whoa. Data structures in C are not at all like in C++ or others because “data management” changes how the whole enchilada is cooked.

load more comments (1 replies)
[–] sexual_tomato@lemmy.dbzer0.com 3 points 2 months ago (1 children)

I learned with python and switched to rust when that started to piss me off. It'll be awhile until you know enough about why you want a different language for a task. Until then, python and JavaScript are totally fine; you may never even need to leave those ecosystems depending on what you want to do.

load more comments (1 replies)
[–] AllHailTheSheep@sh.itjust.works 3 points 2 months ago

I get paid a whole lot to work solely in Deluge. which is the most painfully simple language ever. you want a join() built in? fuck you. sleep()? not allowed. you want a "for i in range()"? nope, they don't do that here.

simple languages are often the most used in production unless you're doing something highly specific that warrants a specific language.

[–] cley_faye@lemmy.world 3 points 2 months ago

A lot of basic principles remain the same from one language to another. Some have more features than other, some have slightly obtuse grammar, but as long as you stay in the same class of programming language, it can be a good learning experience. Learning from "simple" languages and building up was the way to go for a long while.

I'm not sure I'd call Zig or Go "easy" programming language though. Most languages you'll hear about these days are quite high level (even C++ and C got there over time). These days, I'm not sure where one would start from scratch. "scripting" languages are a good idea, since they are extremely easy to experiment with, and unless you start poking too much can't do any harm.

But basically, if you stay with imperative programming (most used languages are like this) 80-90% of the knowledge you'll get in one translate into another; there's no bad way to start.

[–] tomjuggler@lemmy.world 3 points 2 months ago

I would suggest a different approach. Think about what you want to achieve with programming. Look at the languages which can be used to do this task. Choose one and try some tutorials, I recommend freecodecamp it helped me a lot.

I can't really comment on zig and go but I think they are pretty serious languages tbh.

[–] Swedneck@discuss.tchncs.de 3 points 2 months ago* (last edited 2 months ago)

i mean, you'll be able to write things in that language, which i'd say is somewhat useful 🤔

It's kinda like asking "is it worth doing long hikes before training to do 5km runs?", you probably don't need to go on hikes in order to start running, but it's less intimidating and if you then realize you're just not into running then you're still left with a useful skill.

[–] TrippinMallard@lemmy.ml 2 points 2 months ago* (last edited 2 months ago)

Programming is a tool. Systems understanding is what has value. Pick a system you want to learn and actively build and fail consistently.

Repeated exposure to reality is the way to learn fast and gain confidence.

[–] Hoohoo@fedia.io 2 points 2 months ago

I don't think your plan to get more serious is pointed at the right end or means.

You don't point criticism at programming languages necessarily. Because, later you'll want to find an ecosystem best suited to achieve a specific task.

If a later task becomes a serious consideration, then you'll seriously consider the best placed language to complete that task. Consequent language quibbles might be path of the course.

For example, working on Android is only going to be effective through a handful of languages such as Java, Kotlin, C#, JavaScript, …

Breaking new ground with another language pointed at Android would be like climbing Mt Everest without all the usual equipment. Sure it's a challenge, but is it the challenge you want?

Learn any language that helps you learn, but that's only as a means to that (learning) end.

[–] dogs0n@sh.itjust.works 2 points 2 months ago

If you are learning because you are just interested in this, then I might say go with any language like C/Go where you have real datatypes you can work with.

C might be a good place to start for a little while where you can learn the fundamentals like data types, logic, etc.

Once armed with the fundamentals, you can really just go wherever you desire, look at and maybe try a few to see what you like.

[–] MonkderVierte@lemmy.zip 2 points 2 months ago* (last edited 2 months ago) (1 children)

I don't like complex languages. Why do i have to remember x100 for thing that a proper design from start would have accomplished? Some of the larger ones even have different keywords for basically the same task duplicated.

By that note, D seems decent.

load more comments (1 replies)
[–] insomniac_lemon@lemmy.cafe 1 points 2 months ago* (last edited 2 months ago)

Personally I'm in a similar situation with Nim-lang. I like the style and performance, it hits a spot for me that other languages do not*. I wouldn't call it "easy" though, as you still have to think about typing and other structure stuff (but not to the degree that you'd have to deal with for other languages). Being less popular of a language is probably the main issue here (there are many options for bindings, but you may find yourself waiting on something specific with smaller communities).

TBH I haven't used it as much as I should, having other issues. The last thing I did though (sweeper clone), I finished it and it made me feel better about my possibility of understanding complexities.

* I guess newer changes to Python and LUA might make a difference, though I still get the feeling those are not just-enable-to-be-reasonably-fast options.

load more comments
view more: ‹ prev next ›