loading...

re: What was your first programming language and why? VIEW POST

FULL DISCUSSION
 

Let's see...

Started with a dialect of Scheme called Racket (known back then as DrScheme) when I was a pre-teen (I expressed interest in learning to code, and that's what my father (who's a software engineer himself) suggested), never went past tutorials with that, and gave up pretty quickly. Toyed a tiny bit with C shortly afterwards but never went very far at the time. Technically learned basic Ruby, and JS (that is, I read the language definitions, but never wrote any code) at about the same time.

Fast-forward to my senior year in high-school when I took a course on BASIC (using FreeBASIC) which I mostly regret (I developed a lot of bad coding habits as a result of it). Started learning Lua at about the same time (mostly because of being a bit beyond obsessed with the original Star Wars Battlefront II, which uses Lua for a lot of stuff internally) and got a LEGO Mindstorms NXT set (with their weird native graphical coding environment) but never went very far with either. Started learning shell script about a year later because of learning to use Linux, and pretty quickly started learning Python after that as well as actually using some C (it's kind of hard to work on a POSIX-like system without picking up at least a little C).

Now, almost a decade later, the only things I actively use today are shell script and Python. I occasionally drop to Lua for rapid prototyping of algorithms (faster at run time than Python without the feedback delas from a compiled language), but that's getting less and less frequent (not because I don't like Lua, but because I have less and less need to prototype algorithms). I spent the past 9 months learning JS properly, and am reasonably competent with it, though I likely won't use it much and absolutely despise a number of things about the language. I also just started (past few weeks) learning Elixir, which I've been mostly enjoying so far but also don't expect to end up using all that much.

 

That's a really interesting journey, it sounds like you've jumped around a lot.

Firstly, what were the biggest challenges you faced learning programming in some of your earlier endeavours i.e. Racket and C?

Secondly, it sounds like Python is the one you use the most today, along with shell scripting, why do you think these clicked?

 

Firstly, what were the biggest challenges you faced learning programming in some of your earlier endeavours i.e. Racket and C?

The biggest issue for me with Racket was the syntax. For some reason, I just can't consistently wrap my head around LISP-style syntaxes like Scheme (and by extension, Racket) has. Even today, with multiple years of experience programming, I have to put a lot more mental energy into understanding LISP or Scheme, or SmallTalk, or even OCaml than most other languages when I'm reading code.

C, OTOH, was mostly a case of just not getting any real experience. At the time, I hadn't really 'discovered' FOSS yet, so my only percieved option was to shell out money for Visual Studio, which I had absolutely zero interest in doing (aside from not having any practical way to earn that much money either). I'm actually reasonably competent with C these days, but I don't really use it much because very little that I do actually needs it.

Somewhat ironically, I had issues with BASIC too when I was taking that course in high-school because the prior (limited) experience with Racket and C meant I was already thinking at a much lower level than the dialect of BASIC we used operated.

Secondly, it sounds like Python is the one you use the most today, along with shell scripting, why do you think these clicked?

For shell script, it's necessity. I work IT and mostly deal with UNIX-like systems, as well as using Linux on most of my personal systems, so it's kind of hard for me to get anything done on a computer without knowing at least some shell script.

For Python, I think it's that so many things about it are just kind of intuitive for me. The off-sides syntax just makes sense to me, exception handling in Python has always seemed more robust and well designed than other languages, the concepts around context managers fit perfectly with the way I think, etc. The robust standard library has also been a major factor for me, as it means I quite often don't need any external dependencies.

Great points, thanks for sharing your insight. Python seems to be a favourite among Dev Ops and IT because as you said, you can be productive with an extensive standard library.

Code of Conduct Report abuse