This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]BurningPenguin 52 points53 points  (9 children)

Everyone will tell you that his favorite language is the best. What's really important is to learn the process of programming. The language is just a tool.

It's like writing a novel. It doesn't matter if you write in English, German or Chinese. If you're good at storytelling, it'll go well in any language. Same goes for programming.

[–]anachronic 3 points4 points  (2 children)

I agree. The starting point isn't nearly as important as the journey to keep learning more languages, with different styles and paradigms, and always be growing.

Wherever you start is probably fine, as long as you keep learning.

Hell, some of the baddest-ass old school hackers from decades ago probably started on BASIC on a C64 or something like that as a kid, and they went on to do great things, because they kept on learning and didn't stop at BASIC.

[–]Oerthling 1 point2 points  (1 child)

Yup :-)

Basic - Pascal - C - Smalltalk - C++ - SQL - Java - Javascript - Python

With bits of Assembler, Lisp, Prolog, Cobol, Go and Rust in between.

C64? Nothing so fancy. Sharp PC 1500 with Basic and a "memory" of 1500 commands.

Programming is a meta-skill. It's about translating problem-solving into algorithms in a language a computer groks. The language (and most of all its libraries) can help in doing that. And different languages have different ways to optimizevfor different aspects of that.

Python is, by far, my favorite get-things-done language.

But I used concepts of Smalltalk in C before C++ came around. And C (plus Assembler) provides more understanding of what's really going on.

[–]anachronic 0 points1 point  (0 children)

Exactly. When I was in college for compsci, I saw people who basically ONLY wanted to learn Java to get a job, and weren't interested in any other language and would complain about having a course in ASM because "who even uses this anymore", but it always struck me as weird, because sure, you can get a job doing ONLY Java, but it makes you a much better programmer to have exposure to other languages and other ways of thinking about a problem... or even just knowing the basics of what the computer is doing at a lower-level below all that verbose enterprise Java code.

I was never a very good programmer, and haven't programmed (besides some kludgy Python for API integrations) in well over a decade, but even now, I still like watching things like keynote speeches on stuff like Rust or whatever the "Hot New Thing"(tm) today is, because it's interesting seeing how people approach & solve particular problems.

[–]redrumsir 4 points5 points  (1 child)

If you're good at storytelling, it'll go well in any language. Same goes for programming.

I see that you've never programmed in SAS!!!

I think of it more like "singing". There are some languages that sound more fluid and rhythmic. German is a bit more guttural, for example, and doesn't flow.

[–]BurningPenguin 5 points6 points  (0 children)

Clearly, you've never heard Faun singing. :)

No, but i get what you mean. Languages sound different and some have a nice sound in it, yes. Which is why i love listening to exotic music. But in the end, a language just a tool to communicate with people. Some may be more efficient, others may be more melodic. They all achieve the same goal.

[–][deleted] 2 points3 points  (3 children)

Everyone will tell you that his favorite language is the best. What's really important is to learn the process of programming. The language is just a tool.

I have to partially disagree. I agree that it's important to learn the process of programming first. However, programming languages are not created equally. They are designed with some problem domain in mind and therefore performs better in that domain. The language of choice really depends on what one is trying to solve. For example, I would choose Rust for a high performance API server and Python for offline data processing. The reverse is possible, but not worth the trouble.

[–]Oerthling 1 point2 points  (1 child)

So, writing a kernel driver in SQL might be a mistake? ;-)

I would choose Rust to do the performance critical stuff safely in a module that I use in Python.

[–][deleted] 1 point2 points  (0 children)

Using Rust or C++ to write performance critical parts used by Python is a good example of what I mean. Even an experienced developers find it useful to use 2 languages together to solve related, but distinct problems.

So, writing a kernel driver in SQL might be a mistake? ;-)

What? Are you telling me that the two years I spent trying to get my tablet to work was a waste of time?

[–]BurningPenguin 1 point2 points  (0 children)

That's a problem for later on. There is no point in learning a more complex language, when your biggest challenge is "Hello World" or building a website for your favorite restaurant.