this post was submitted on 02 Jun 2023
15 points (100.0% liked)

Programming

13361 readers
3 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 1 year ago
MODERATORS
 

Personally, I started off with Roblox back in the early 2010s, and taught myself Lua. I really liked those Tycoon games, and wanted to see how they worked.

I eventually found Minecraft (like every kid back in the day did), and learnt Java to make Bukkit server mods.

Around 2016 I thought websites were kinda cool, so I started learning HTML, CSS, and JS, and I've been in the web dev space ever since.

What about the rest of y'all? What's your personal programming path?

you are viewing a single comment's thread
view the rest of the comments
[–] dax@beehaw.org 4 points 1 year ago

Now I know how all the old guys felt when I asked this question in 2000.

I got my start making GW Basic programs for classes I had in ... 1996? Visual Basic 6 came to me in '98, ADA95 in 2000, Java 1.5 in 2003, and then I got a job doing it while finishing my degree and mostly writing Coldfusion. Then it turned into Java, Java, Java, more Java, some extra Java, and some more Java on that.

The last few years it's mostly been Python, Rust, C++, C#, Scala, Kotlin, and Java - all because I work in a research org and can just pick the best tool for the job at the time and not worry about much beyond showing our research POCs in the best light possible. For some cases, that's writing Rust with pyo3 Python bindings so the dsci's can still do real high performance computation from their cute little jupyter notebooks, in others it's a quick Python fastapi rest interface; sometimes I gotta write some Azure Functions and pick C#, and sometimes I need something fast and easy to wack out something a bit more enterprise grade and I go back to Java and SpringBoot.

And right now I'm suffering with C++ and trying to track down a sometimes segmentation fault sometimes double free sometimes munmap chunk error that only happens when we use the lib through the pybind11 bindings we've built, and I'm just not having any fun at all. It's amazing how frustrating debugging is without a viable debugging environment. I had forgotten how brutal this is in your early days when you don't know how to set up a good debugging environment until now when my tools have forsaken me. I'm back to ye olden std::cerr << __LINE__ << "here" << std::endl; insertions like a baby programmer and it's both exceptionally frustrating AND rewarding - mostly because when I go back to a problem space where I can use a debugger, I realize how fucking good I have it.

The one nice thing about becoming a software developer is that, if you want, you can write in any language you want and learn new things constantly. Eventually you'll reach a pretty high level but still a plateau in your given language - and that's awesome. You can stop there if you want. If you're motivated to figure out how everything ticks, though, I urge you to learn a new language. Find a new job if you have to. I would say the biggest boon to my understanding of programming, languages, etc has been when I went deep in LanguageX for a long time, then shifted to something well outside the bounds of LanguageX - like jumping from Java to Scala (diving wholesale into FP), or Scala to Python (giving up on sanity and type checking and a hilariously difficult time to write robust libraries), or Python to Rust , or Rust to C++. So much of what you know from your experience is just you knowing something by looking at one or two sides of it at a time from a fixed position. Learning a different language (to a professional level) is like changing your position around the outside of the room to look at things from a completely different perspective. Suddenly your Java gets better because you've learned Scala. Suddenly your Scala gets better because you've gone to Python. Suddenly your Python gets better because you learned Rust, and suddenly Rust makes sense because you've been strugglebussing with C++.

There's a ton of value in diving deep on a language for a few years. Don't ever regret that opportunity. But for me, I really think changing things up every few years has made me a distinctly better developer overall, and understanding so many more things that I never would have had any insight at all into without my madcap sprint through languages; language features, language constructs, language paradigms; entire ecosystems of different approaches.

I've come a long way since I struggled to write my first hangman game in GW Basic and used variable names like g_string : str, thinking I was the most clever sob who ever lived (clearly, I was not).