DEV Community

Juan Julián Merelo Guervós
Juan Julián Merelo Guervós

Posted on

What would you like your first programming language to be (or have been)?

Floppies. I used Pascal with them, although I started with Basic

You probably learned to program a long time ago, with a personal computer-toy such as the Spectrum. There were not many options: there was Basic and then Basic in a different computer. If you went the formal way, probably you started with Pascal or, later on, Java, and, even later, Python. Not many options there either. It was that way or the highway.
But say you could have had a choice in your first programming language, say, you started right now. What would you like your language to be like? Is there any one language now that could be all you wanted your first language to be?

Top comments (28)

Collapse
 
scottshipp profile image
scottshipp

I've been considering whether BASH or JavaScript should be the go to language. Certainly these two languages are the ones on almost every computer straight out of the box. Anyone with a web browser can open "Javascript console" and start learning programming. BASH is good because you immediately get the ability to feel like the master of your computer. Plus if you do go into development later, you can use BASH skills for all kinds of developer tasks from renaming classes, to counting how many lines of code are in a directory, to using cURL to see what a request or response should look like, and beyond.

Collapse
 
jj profile image
Juan Julián Merelo Guervós

I kind of seem unable to remember bash syntax from one time to the next... I keep the Bash cookbook handy. OTOH, now that it's in Windows too, and of course in Macs (although most users probably ignore that) it's kinda everywhere too...

Collapse
 
edh_developer profile image
edh_developer

I started with Applesoft Basic, which is what you got with an Apple //e.

If I could go back and choose a different language for myself that was widely available in the early 80's, along with a good book to go with it, I'd choose Pascal.

If I was starting today, and I'm not being pushed in a particular direction by some specific end goal (like native development for some particular platform).... I'm going with Groovy.

Why Groovy? Well...

  • As much as I'd like to think the right answer is Scheme, which I would then use to work my way through SICP, I think the truth is that I wouldn't stick with it.

  • I'd like to start with a strongly typed language, or something that can act like one. Groovy, if I pretend the keyword def doesn't exist, is close enough. I want to have to explicitly spell out what I'm doing, and have the compiler double-check me on it. I want the IDE support that strong typing helps enable. Speaking of which...

  • I want a reasonable IDE to work with. I'd be fine with Eclipse.

  • I want the various libraries that I'm likely to want to be built-in. If it's my first language, I don't want to mess around with package management.

  • I want well-organized API documentation. On that front, I like the online javadoc/groovydoc for whatever JDK version I'm using.

  • I would like reasonable built-in syntax for basic collection types. Lists and maps, for instance.

  • I would like to get started without needing to understand what's going on with lots of boilerplate. And without needing to understand and spell out packages for something as simple as a print statement. Looking at you Java...

  • I shouldn't have to know about backwards compatibility issues. And, cutting and pasting code should never lead to something bring broken because of issues with significant whitespace. Hi Python!

  • A REPL isn't a hard requirement, but it earns some bonus points.

The other option that I'd like to consider is Go, which I'm just getting to know. It seems like it has a lot going for it, but for now I don't know it well enough to feel comfortable choosing it over groovy.

Collapse
 
evanoman profile image
Evan Oman

You make a good argument! My experience with Groovy hasn't been great (mostly deciphering wild Gradle scripts) but I am always willing to give a JVM family member a chance :D

Collapse
 
jj profile image
Juan Julián Merelo Guervós

Thanks! I do think that REPLs are great to learn syntax and single-statement and sequencing before building whole programs.

Collapse
 
ben profile image
Ben Halpern

I wish I'd started with Ruby. I started with Java and fell off from programming for a couple years before getting back into it. There were other factors involved, but Java was not a super friendly for me at the time. I got back into code in Ruby and I really loved the simplicity of it. Now that I'm back in code, I'm a lot less sensitive to syntax stuff.

Collapse
 
nektro profile image
Meghan (she/her)

My first real programming language was Java back in 2013 (I'm only 21) when I picked up Java to try and make a mod for Minecraft. I ended up making a mod or two that did almost nothing and never figured out how to enact my grand plan of a mod, (long story), but it was a great experience regardless. I then moved on to more Java doing some work my high school's new FIRST robotics team and concurrently starting my web development career. I promptly picked up HTML, CSS, JS, and a touch of SQl. As the web goes I also learned generic XML and JSON, but those aren't exactly languages. Fast forward to college, and so far we've done Java, C, MIPS Assembly, and more C.

In my own time I've decided to work on my web development side as I actually love Javascript, though I will add I'm glad I'm in the JS world now and not 10 years ago.

As far as the best starting language, I feel it's whatever language is best suited for the thing you want to make, though purely from a language analysis perspective, I do really like Java because, while it is not a systems programming language, it is very strongly typed and declarative, and IDEs like Eclipse make getting started extremely easy.

Collapse
 
rimobul profile image
Rimobul

My first contact with coding was HTML, CSS and snippets of JavaScript copied from various coding schools. This was during high school back in 2010 and I did not truly understand what I was doing.

At university I started with C++, which was a real shock to me. Although I try to avoid using C++ professionally, I must appreciate the insight it gave me on how code is executed at lower levels. Then I took courses on Java and Python, but the language I fell in love with was C#. C# is just so beautiful and powerful - it feels like poetry. I quickly gave up on C++, Java and Python (and practically forgot them). They just felt so old, non-intuitive and heavy, compared to C#. I even went so far that during my Android lectures I used Xamarin instead of Java - just to have the pleasure of coding in C#.

Today, I still strongly prefer C#. I do use also JavaScript, because it is literally everywhere. Plus, the new ES standards have transformed it into an actually good language. But I would not change the way I learned languages - going through C++, Java and Python gave me a good perspective for why C# is so cool. I wish more people would appreciate it :)

Collapse
 
evanoman profile image
Evan Oman

I started with C# and unfortunately haven't used it since. However the more I learn about Software Development the more I realize that all of the stuff I learned about C# was pretty awesome. I'll have to use it again some day (in love with the JVM right now so we'll see if that happens...).

Collapse
 
darkliahos profile image
Sohail Nasir

I started with VB in college, I kind of wished it was C just because it would give me an appreciation of having to learn about things like memory management, etc.

Collapse
 
gregorgonzalez profile image
Gregor Gonzalez

Started with c++ and I don't like it, our teacher didn't explain anything and was a mess to understand.

Then VB. Same problem before but I get it fast.

PHP + Html + JavaScript. I love PHP because is easy to understand, is a good "start", I learned to code with this.

I prefer java for a starting language. More robust, strict and POO is important, also C#

Collapse
 
evanoman profile image
Evan Oman • Edited

I agree, Java is a great choice (especially Java 8/9). I think if more people used a good IDE (like IntelliJ) they wouldn't have as many issues with Java's verbosity. 90%+ of the characters in my code base were read from my mind by the IDE :D

Collapse
 
gregorgonzalez profile image
Gregor Gonzalez

Yes! That's a good point. I started to code with microsoft notepad xD then dreamweaver and later NetBeans and was amazing the change. Now I want to try intelliJ

Collapse
 
leightondarkins profile image
Leighton Darkins

I started with Python many moons ago...

I really want to say that I wish I started with Javascript, because it's so pervasive. But the issue I have with that is all the fragmentation and weirdness that can be super overwhelming for beginners. Don't get me wrong, with a little experience, the JS landscape isn't impossible to navigate, but just the idea of its convoluted landscape is enough to throw new folks off.

When I think of beginner programming I think Variables, Types, Conditionals, Repetition and basic IO. For the purpose of starting on this journey, I think Python was great.

I haven't touched it in years though...

Collapse
 
csguy4023 profile image
TheCSGuy

I started with c and java but it was c# which fascinated me with its rich features.

Collapse
 
kspeakman profile image
Kasey Speakman

Elm. It is niche -- focused on UI programming. But it would have exposed me to the practice of programming with pure functions much earlier, since the language requires that. I think I would not have tried to avoid programming early in my professional career if I had started with Elm. And I would have had a good base to start from when I learn other languages.

Collapse
 
jj profile image
Juan Julián Merelo Guervós

What an interesting choice. Thanks for sharing! I would never have thought about it.

Collapse
 
aspittel profile image
Ali Spittel

I started with Python and I loved it. The syntax was so similar to natural language and I could build stuff so fast!

If I had to pick a different language to have learned first, it would have been JavaScript. You can build such practical and fun things with just a little bit of code, which I think gets new developers excited!

From a practical standpoint, Java is probably the happy middle ground of programming right now -- it is nicer to work with than C++ and C though it has some similar tendencies and it doesn't spoil you like super high level languages do!

Collapse
 
jj profile image
Juan Julián Merelo Guervós

Thanks!

Collapse
 
terceranexus6 profile image
Paula

Strictly my first programming language was javascript, I coded a Lucas Duck translator at the age of 14. After that I learned python and jumped to C, and I feel happy I gave those steps. If I got to choose now, I think I would choose python over javascript, mostly because it has so many libraries that feels like doing techie magic .

But I also think starting with a, let's say, hardcore language such as C (or C++), can help you understand the rest easily.

Collapse
 
dougmckechie profile image
Douglas McKechie

Interesting question!

Lol, yeah Q Basic was the first I learned from copying code listings in books from the library in the early 90s to make simple games, and Come Uni time the first language we learned was Pascal.

I like the look of Python having written a few programs in it for my Raspberry Pi; I think that is a good option for beginners as its quite readable and teaches a tidy coding style with the indentation necessary for the programs to operate correctly.

Collapse
 
evanoman profile image
Evan Oman • Edited

I started with C# which is a pretty solid choice (by my prof). I haven't touched it since but I think it did a good job introducing many of the important introductory topics (Types, Variables, Control Flow, Classes, Encapsulation, Inheritance, Polymorphism, etc).

If I were to choose a language to start with now it would have to be Scala (my favorite, go figure!). Scala is multi-paradigm (Object Oriented and Functional), has a strong static type system + type inference, and can generally be quite terse. All of these characteristics would allow students to start in the language doing simple things and then take on more and more complicated topics as time goes on, all while staying the in the same language.

I agree that the many ways to use Scala make it a bit complicated, but this same property makes it flexible enough to cover a wide swath of CS topics.

Collapse
 
pradeep_io profile image
Pradeep Sharma

Major languages I used for significant work [in chronological order)]

C++->Java->HTML/CSS/Javascript(Basic)->Python->Ruby->JavaScript advanced