What was your first programming language?

Assembly language for 1802, 6502, z80, Atria basic, Commodore basic, Visual basic, ladder logic, and now maybe C/C++ maybe.

For the first time in my life, I'm having problems trying to learn a programming language and I don't know why.

Naneen:
For the first time in my life, I'm having problems trying to learn a programming language and I don't know why.

Because all the others are easier ?

...R

Naneen:
Assembly language for 1802, 6502, z80, Atria basic, Commodore basic, Visual basic, ladder logic, and now maybe C/C++ maybe.

For the first time in my life, I'm having problems trying to learn a programming language and I don't know why.

For years C (and all its variants) seemed incomprehensible and difficult to learn to me. Arduino changed all that - I still don't 'get' the value of stdio and all that stuff (seems to make the simple more complex), but the flow of the language makes perfect sense in a hardware oriented environment. I'm now a believer!

Fortran on punch cards

Boardburner2:
Fortran on punch cards

That came later - modelling the life-time economics of a gas field.

Later on spreadsheets made that sort of thing much easier.

...R

BASIC for me.

For the first time in my life, I'm having problems trying to learn a programming language and I don't know why.

While the Arduino environment is based on C/C++, the Arduino Community is very much about "doing things" without really learning the language. If you have prior programming experience, and want to learn C, you might be better off looking for traditional tutorials and books, rather than Arduino stuff. And if you have a lot of experience with assemblers, it probably is better to learn C before trying C++; C is almost a "high level assembler" (although, for the PDP11 :slight_smile: ), but I suspect modern C++ teaching will throw you into a higher-level view of things (that will be LESS portable to an embedded environment.)

Boardburner2:
Fortran on punch cards

Oh geez! I must've blanked that one out. In the early 70s as a chemistry student, I had to use Fortran (I think punch cards was the only way to do it!) to calculate electron density in a molecule. I learned enough to get the assignment done, then put away my enthusiasm for computers until they got small enough to own one.

I never considered that I had 'learned' the language, rather I learned how to mimic the patterns others used.

Oh ... wait.

TRS-80 basic.

ChrisTenone:
I never considered that I had 'learned' the language, rather I learned how to mimic the patterns others used.

Likewise - for all programming languages. :slight_smile:

...R

Fortran

Robin2:
Likewise - for all programming languages. :slight_smile:

...R

For all languages, and quite possible for all 'intelligent' activity. Fortunately we are imperfect mimics, so we do continue to evolve, in a way.

Back to computer languages, I don't recognize some of my early languages. Basic now-a-days looks completely foreign. Where are all the line numbers!! And Forth! Oh, don't for a minute think it's gone. Buried perhaps, but not gone. Take a look at PostScript code, or the 'Macintosh "bootloader"'. There is even a Forth interpreter that runs as an app on my phone: it's a threaded interpretive language called 'Retro'. It runs in a weird, split window, and don't get the purpose, but it's cool. That is the most recent language I've 'tried' to learn.

westfw:
BASIC for me.

While the Arduino environment is based on C/C++, the Arduino Community is very much about "doing things" without really learning the language. If you have prior programming experience, and want to learn C, you might be better off looking for traditional tutorials and books, rather than Arduino stuff. And if you have a lot of experience with assemblers, it probably is better to learn C before trying C++; C is almost a "high level assembler" (although, for the PDP11 :slight_smile: ), but I suspect modern C++ teaching will throw you into a higher-level view of things (that will be LESS portable to an embedded environment.)

I think i agree with that.
I have been trying to learn C for a couple of years now but when it comes to arduino i find it best to just dive in and get something working by copying or adapting others examples.
Fortunately there seem to be many examples out there similar enough for my needs.

I'm now a believer!

I resemble that remark. Tried learning C off and on for years. Like Chris, it seemed too complex for me. Happily programmed in various Assembly languages, Basics, Labview. Had no real reason to learn C until I bought an Uno to replace an old 8051 board. Now wish I had learned C years ago.

C always gives me the impression that it was deliberately designed so it would not be easy to learn only be accessible to experts.

The basics of it are no more difficult than any other language. But trying to make sense of a program that has been created from 10 or 20 .h and .cpp files and without any obvious way to know which functions are where is a nightmare. "Write-only" code :slight_smile:

Ruby programs can also have a large number of source-code files but somehow I have always found it much easier to work my way through them.

...R

C always gives me the impression that it was deliberately designed so it would not be easy to learn only be accessible to experts

C is just a development of the Algol-60 family of languages.
If you've been exposed to any language like Algol, PL/1 (and cut-down versions like PL/M), Pascal or BCPL, C is easy to learn.

APL has to be the ultimate write-only "language" (I think most people who have encountered it would call it "a notation" rather than "a language")

AWOL:
If you've been exposed to any language like Algol, PL/1 (and cut-down versions like PL/M), Pascal or BCPL,

I escaped those :slight_smile:

...R

AWOL:
C is just a development of the Algol-60 family of languages.

ARRGH i forgot about that one.

AWOL:
If you've been exposed to any language like Algol, PL/1 (and cut-down versions like PL/M), Pascal or BCPL, C is easy to learn.

Pascal i was taught , C i find difficult for some reason.

Robin2:
But trying to make sense of a program that has been created from 10 or 20 .h and .cpp files and without any obvious way to know which functions are where is a nightmare. "Write-only" code :slight_smile:

...R

Pascal functions and procedures are much easier to read through .To me anyway.

I've enjoyed reading the last few post. I've been wanting to talk about the difficulty of learning C/C++. I thought it was just me, but now I know I'm not alone. Glad to know my mind hasn't slow down that much. It seams to me that the Arduino language is now a derivative of C or C++. But not knowing C/C++ that well I feel I'm not in a position to make that assumption. Yes I can make my Arduino do what I want. A lot of reading other user programs and modifying them. But after a comment about using using brackets I decided it was time to learn C/C++. Think I'll go back to what I was doing. Maybe I'll get a book on Arduino programing instead.

Hi,
I learn't
HP Basic
Fortran
Cobol (a little as a computing exercise for Engineering Computations subject)
Pascal
QBasic
C++
Machine Code (Z80)

PLC
Machine Code (German Cellatronics)
Ladder Logic
State Diagram
Function Block
Structured Text
(Seimens, Visilogic(Unitronics), Mitsubishi, RXlogix, CodeSys)

And I'm not an expert at any of them.

Tom... :slight_smile:

TomGeorge nice to meet with some who knows what PLC programming is. Makes me wonder ho many others on this forum is familiar with PLC programming.